(57)【要約】  拡張ダイレクト・メモリ・アクセス（ＥＤＭＡ）オペレーションは、データを要求するためソース・ポートへ読み出しコマンド（３２２）を発行する。ソース・ポートは、このデータ（３２５）を、チャネル及び有効バイト数を含む応答情報と共に返す。ＥＤＭＡは、読み出しデータを書き込みバッファ（３１１）に保存し、ＥＤＭＡが更に多くのデータを受けることができることをソース・ポートに確認する。読み出し応答及びデータは、１つ以上のポートから到来し得、異なるチャネルに属し得る。本発明に従ってチャネル優先順位付けをなくすことにより、ＥＤＭＡが読み出しデータを書き込みバッファ（３１１）に保存することができ、その後、ＥＤＭＡが、全てのチャネルにわたって同時にポート読み出し応答を確認することができる。これによりＥＤＭＡ受信及び送信データ・フローが劇的に改善される。
2008541276.tif 000002
【特許請求の範囲】
【請求項１】
複数のポートの選択されたソースとデスティネーションの対の間のデータ転送のための方法であって、
前記複数のポートの特定のソース・ポートへソース読み出し要求を送信し、
前記ソース・ポートから読み出しデータを受信し、
受信した読み出しデータをバッファ・メモリに保存し、
前記複数のポートの特定のデスティネーション・ポートへデスティネーション書き込み要求を送信し、
前記読み出し要求に応答して前記ソース・ポートから読み出し応答信号を受信し、
前記読み出し応答を受信する際及び先行する読み出し要求に応答して読み出しデータを受信する前に、前記ソース・ポートへ新しい読み出し要求を発行し、更に、
前記バッファ・メモリから呼び出されるデータを送信する書き込みポートへ、書き込み要求を発行する、
工程を含む方法。
【請求項２】
請求項１に記載の転送方法であって、
各ソース読み出し要求にチャネル及び優先度を割当て、更に、
前記読み出しバッファ・メモリが記憶容量を有する場合、保留中の転送及び優先度に関わらず、読み出しポートへ新しい読み出し要求を発行する、
転送方法。
【請求項３】
請求項１に記載の転送方法であって、
前記バッファ・メモリ内の複数のチャネルからの読み出しデータを保存する、転送方法。
【請求項４】
請求項１に記載の転送方法であって、
前記バッファ・メモリ内の複数の読み出しポートからの読み出し応答を保存し、
保存された読み出し応答を対応する書き込み要求にマッチングさせ、
対応するデスティネーション・チャネルに対し、前記保存された読み出しデータを前記バッファ・メモリから書き込みデータ・バッファへ誘導する、
転送方法。
【請求項５】
請求項４に記載の転送方法であって、
データが前記書き込みデータ・バッファに保存されるとき、スペース数に加算し、データが前記書き込みデータ・バッファから前記書き込みポートへ転送されるとき、前記スペース数から減算することによって、前記書き込みデータ・バッファ内の空きスペースを追跡する、転送方法。
【請求項６】
データ転送コントローラであって、
複数のデータ・ポートであって、第１の複数の前記データ・ポートは、データ読み出し要求に応答して読み出しデータを供給することが可能であり、第２の複数の前記データ・ポートは、書き込み要求に応答して書き込みデータを保存することが可能である、複数のデータ・ポート、
複数のチャネル・パラメータ・レジスタであって、各々が、対応するデータ転送チャネルの固定パラメータを保存する、複数のチャネル・パラメータ・レジスタ、
複数のポート・パラメータ・レジスタであって、各々が、前記複数のデータ・ポートの対応する１つの固定パラメータを保存する、複数のポート・パラメータ・レジスタ、
複数のチャネル・レジスタであって、各々が、対応するデータ転送チャネルの可変パラメータを保存する、複数のチャネル・レジスタ、
割り当てられたチャネルに従って前記第１の複数のデータ・ポートの１つから読み出しデータに対して読み出し要求を生成するように機能し得る、ソース・パイプライン、
読み出し要求に応答して前記第１の複数のデータ・ポートの１つから返された読み出しデータを保存するため、前記第１の複数のデータ・ポートに接続される、書き込みデータ・バッファ、
読み出し要求に応答して前記第１の複数のデータ・ポートの１つから返された読み出し応答を保存するため、前記第１の複数のデータ・ポートに接続される、読み出し応答バッファ、
前記書き込みデータ・バッファ及び前記読み出し応答バッファに接続され、割り当てられたチャネルに従って前記第２の複数のデータ・ポートの１つに、前記書き込みデータ・バッファに保存されたデータの書き込みを要求するため書き込み要求を生成するように機能し得る、デスティネーション・パイプライン、及び
前記チャネル・パラメータ・レジスタ、前記ポート・パラメータ・レジスタ、前記チャネル・レジスタ、前記ソース・パイプライン、及び前記デスティネーション・パイプラインに接続される、要求キュー・マネジャーを含み、前記要求キュー・マネジャーは、
受信したデータ転送要求を保存し、それらに優先順位付けし、
先行する読み出し要求への読み出し応答を受信する際に新しい読み出し要求を発行することを含み、対応する読み出し要求を前記ソース・パイプラインに及び対応する書き込み要求を前記デスティネーション・パイプラインに個別に割り当てることにより、保存されたデータ転送要求を空きチャネルに発行する、
ように機能し得る、データ転送コントローラ。
【請求項７】
請求項６に記載のデータ転送コントローラであって、
前記要求キュー・マネジャーは、更に、
チャネル及び優先度を各ソース読み出し要求に割当て、更に、
前記書き込みバッファが記憶容量を有する場合、如何なる保留中の転送及び優先度にも関わらず、読み出しポートへ新しい読み出し要求を発行する、
ように機能し得る、データ転送コントローラ。
【請求項８】
請求項６に記載のデータ転送コントローラであって、
前記バッファ・メモリ要素が複数のチャネルからの読み出しデータを保存する、データ転送コントローラ。
【請求項９】
請求項６に記載のデータ転送コントローラであって、
前記要求キュー・マネジャーは更に、
対応するデスティネーション・チャネルに対し、複数の読み出しポートからの読み出し応答を誘導し、複数の読み出しポートからの読み出しデータを前記書き込みデータ・バッファへ誘導する、
ように機能し得る、データ転送コントローラ。
【請求項１０】
請求項９に記載のデータ転送コントローラであって、
前記書き込みデータ・バッファは、前記書き込みデータ・バッファ内の空きスペースを追跡するカウンタを含み、前記カウンタは、保存される更なるデータの保存の際にその中に保存される数を加算し、前記書き込みデータ・バッファから前記書き込みポートへのデータのデータ転送の際にカウント数から減算する、データ転送コントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データ処理デバイスにおけるダイレクト・メモリ・アクセス・ユニットに関連する。
【背景技術】
【０００２】
（背景）
現在のマイクロプロセッサ設計では、データ転送アクセス・ユニット又は拡張ダイレクト・メモリ・アクセス（ＥＤＭＡ）ユニットとして知られる、統合された機能ユニットの制御下でデータ転送オペレーションを集中処理することが必要である。ＥＤＭＡは本明細書において最も関心のあるものであり、特に関心が高いのはハブ・ポート（ｈｕｂ−ａｎｄ−ｐｏｒｔ）形式のアーキテクチャを用いるＥＤＭＡ設計である。このようなＥＤＭＡはハブ・ユニットを特徴として備えており、ハブ・ユニットは、転送要求のキューを保持し、多数のこのような要求の処理のため優先度プロトコル及び適切なインターフェースを提供する。また、ハブ・ポートＥＤＭＡは、１つ又はそれ以上のハブ・インターフェース・ユニット（ＨＩＵ）を有しており、これらの各々がＥＤＭＡハブとそのポートとの間のシームレスなインターフェースを提供する。ポートは、周辺装置としても知られている外部アプリケーション・ユニット（ＡＵ）であることが典型的である。内部メモリ・ポートもＥＤＭＡポートに含まれる。
【発明の開示】
【発明が解決しようとする課題】
【０００３】
図１は、ＥＤＭＡ１００及び中央処理装置（ＣＰＵ）１０１を有するマイクロプロセッサ・システムの本質的な要素を図示する。ＥＤＭＡ１００は、転送コントローラ１０２、及びハブ・インターフェース・ユニット（ＨＩＵ）１０４、１０５、及び１０６を含む。転送コントローラ・ハブ・ユニット１０２、及びＨＩＵ１０４、１０５、及び１０６間の通信は、バス１０３、１０７、１０８、１０９、及び１１０を用いる。各ＨＩＵは単一のポートへのインターフェースを提供する。周辺装置１１４及び１１５は、それぞれパス１１１及び１１２を介して、対応するＨＩＵ１０４及び１０５と通信する。各ＥＤＭＡポートは内部メモリ・ポート・デバイス１１６も含み、内部メモリ・ポート・デバイス１１６は、パス１１３を介してＨＩＵ１０６と通信する。ＥＤＭＡ１００は、ＣＰＵ１０１からのみではなく、ＥＤＭＡ１００が取り扱うポートのうち任意のものからの転送要求にも応答する。転送コントローラ（ＴＣ）・ハブ・ユニット１０２によって扱われる転送要求（ＴＲ）は、１つのポートから別のポートへのデータの転送を含む。転送コマンドは、転送の詳細なパラメータ全てを提供する転送要求パケット内にある。
【０００４】
図２は、ＥＤＭＡ２００の転送コントローラ部の機能ユニットを図示する。転送要求プロセッサ２０１は、ＣＰＵ２３０から、及び１つ又はそれ以上のＨＩＵ２１０からパス２２８を介して、転送要求を受ける。転送要求プロセッサは、これらの要求をキュー・マネジャー２０２に伝達する。キュー・マネジャー２０２は、データ転送要求パケット（ＴＲＰ）を受け、それらをキュー・マネジャーＲＡＭ２０３に置き、それらをＰ個のチャネル優先度レベルの１つに割り当てる。キュー・マネジャーＲＡＭ２０３に保存されたＴＲＰはキューにあり、チャネル・レジスタ・ブロック２０４に保存されたＴＲＰはアクティブである、と識別することが有用となる。例えば、Ｎ＝３２の場合、ＥＤＭＡ２００は、４個のチャネル優先度を有し得、チャネル・レジスタ・ブロック２０４は、各優先度レベルに８個のアクティブ転送パケットを保持し得る。チャネル・レジスタ・ブロック２０４は、常に総計３２個までのＴＲＰを保持することができる。
【０００５】
キュー・マネジャー２０２に入るＴＲＰの直接処理に用いることのできるチャネルが存在しない場合、ＴＲＰは、キュー・マネジャー・ランダム・アクセス・メモリ（ＲＡＭ）２０３に保存される。ＴＲＰはその後、チャネルが利用可能になったとき、チャネル・レジスタ２０４にサブミットされる。ソース・レディ信号２１３及びデスティネーション・レディ信号２１５は、チャネル・レジスタ２０４内のチャネル・スペースの利用可能度を示す。チャネル・レジスタ２０４は、ソース・パイプライン２０５及びデスティネーション・パイプライン２０６とインターフェースする。ソース・パイプライン２０５及びデスティネーション・パイプライン２０６は、ソース（読み出し）及びデスティネーション（書き込み）オペレーションのアドレス計算ユニットである。これらのパイプラインは、Ｍ個のハブ・インターフェース・ユニット２１０を介してＥＤＭＡ２００のＭ個のポートへ出力を一斉通信（ｂｒｏａｄｃａｓｔ）し、これにより、存在し得るＭ個の外部ポート・ユニットが駆動される。図２は、一例として１つのポート２２９のみを図示する。ソース・パイプライン・スペースが利用可能であるとき、ソース・パイプライン２０４は、ソース・レディ信号２１６をチャネル・レジスタ２０４に伝達し、チャネル・レジスタ２０４はソース・レディ信号２１３をキュー・マネジャー２０２に伝達する。デスティネーション・パイプライン・スペースが利用可能であるとき、デスティネーション・パイプライン２０６はレディ信号２１９をチャネル・レジスタ２０４に伝達し、チャネル・レジスタ２０４はレディ信号２１５をキュー・マネジャー２０２に伝達する。キュー・マネジャー・ブロック２０２は、転送パケットから生成されるソース読み出しコマンドをパス２１４を介してチャネル・レジスタ２０４へ、及びこれをもとにしてパス２１７を介してソース・パイプライン２０５へ伝達する。キュー・マネジャー・ブロック２０２は、転送パケットから生成されるデスティネーション書き込みコマンドをパス２１４を介してチャネル・レジスタ２０４へ、及びこれをもとにしてパス２２０を介してデスティネーション・パイプライン２０６へ伝達する。チャネル・レジスタ２０４からのソース有効信号２１８及びデスティネーション有効信号２２１は、有効転送が処理され得る状況であることをそれぞれのパイプラインに通知する。
【０００６】
転送コントローラ（ＴＣ）からハブ・インターフェース・ユニット（ＨＩＵ）２１０へ、及びＨＩＵからＴＣへ戻る、信号一斉通信は、ソース読み出しコマンド２２２、デスティネーション書き込みコマンド２２３、デスティネーション書き込みデータ２２４、ＨＩＵから読み出し応答ＦＩＦＯバッファ２０８への読み出し応答情報２２７、ポートから書き込みデータ先入れ先出し（ＦＩＦＯ）バッファ２０７に保存されるべき読み出しリターン・データ２２５、応答確認（ａｃｋｎｏｗｌｅｄｇｅ）ロジック２０９からＨＩＵ２１０へのＴＣ確認フラグ２２６を含む。
【課題を解決するための手段】
【０００７】
（概要）
本発明の拡張ダイレクト・メモリ・アクセス（ＥＤＭＡ）オペレーションは、これまでのＥＤＭＡデバイスの拡張機能を提供する。本発明において、ＥＤＭＡは、ソース・ポートへデータを要求する読み出しコマンドを発行する。ソース・ポートは、このデータを、チャネル及び有効バイト数を含む応答情報と共に返す。ＥＤＭＡは、読み出しデータを書き込みバッファに保存し、ＥＤＭＡが更に多くのデータを受けることができることを知らせるため、ソース・ポートへ確認する。読み出し応答及びデータは、１つ以上のポートから到来し得、異なるチャネルに属し得る。かつては、ＥＤＭＡは、これらの処理チャネルに優先順位をつけ、最も高い優先度のチャネルのみが処理され得るようになっていた。全ての他の保留中のチャネルは待機し、これらは、ＥＤＭＡに送り返す準備のできたデータを既に有するアイドリング・ポートとなっていた。本発明に従ってチャネル優先順位付けをなくすことにより、ＥＤＭＡが読み出しデータを書き込みバッファ内に保存することができるようになり、ＥＤＭＡが、全てのチャネルにわたって同時にポート読み出し応答を確認することができ、このことはＥＤＭＡ受信及び送信データ・フローを劇的に改善させる。
【実施例】
【０００８】
図３は、キュー・マネジャー３００と、ＥＤＭＡハブ・ユニット境界へのキュー・マネジャーのインターフェース、及び特に、チャネル・レジスタ３１５、チャネル・パラメータ・レジスタ３０１、及びポート・パラメータ・レジスタ３０２とのキュー・マネジャー通信を図示する。チャネル・パラメータ・レジスタ３０１及びポート・パラメータ・レジスタ３０２は、例えば、転送の種類、モード情報、状態、及び転送プロセスに重要な多くの他の情報に関連する、重要データを保存する。
【０００９】
チャネル・レジスタ３１５は、読み出しコマンド３２２の生成のためソース・パイプライン３０５において用いられる情報を伝達する。同様に、チャネル・レジスタ３１５は、書き込みデータ３２３の伝達をＨＩＵへ誘導する書き込みコマンド３２４の生成のためデスティネーション・パイプライン３０６において用いられる情報を伝達する。ポートからの読み出し応答情報３２７は、データ・ルーター・ユニット３１０を介してデスティネーション・パイプライン３０６へ返される。データ・ルーター・ユニット３１０は、２つのＦＩＦＯ、書き込みデータＦＩＦＯバッファ３１１及び読み出し応答ＦＩＦＯバッファ３１２、を含む。応答確認ロジック３０９は、データ読み出しが受信されたことを示す応答確認信号３２６をＨＩＵに供給する。
【００１０】
ＥＤＭＡ内のチャネルがアイドルであり、キュー・マネジャー３００がそのチャネルに対し別のＥＤＭＡ入力を有する場合、キュー・マネジャー３００は、その転送に関して、パス３２０を介して転送要求パケットを読み出し、それをチャネル・レジスタ３１５へ送信する。この情報は保存され、そのチャネルは、データを転送し始めるためＥＤＭＡ内部でアクティブにされる。この転送の間、ソース・パイプライン３０５及びデスティネーション・パイプライン３０６は、転送パラメータの幾つかをインクリメンタルに修正し、チャネル・レジスタ３１５は、チャネル・パラメータ・レジスタ３０１及びポート・パラメータ・レジスタ３０２の更新を扱う。ソース・パイプライン３０５及びデスティネーション・パイプライン３０６は、その後、更新された値をＥＤＭＡの残りに送信する。ＥＤＭＡがそのチャネルの処理を終了すると、チャネル・レジスタ３１５は、ソース・レディ信号３１８又はデスティネーション・レディ信号３１９を生成する。キュー・マネジャー３００は、転送の終了を検出し、別の要求をチャネル・レジスタ３１５へ送信する。
【００１１】
図３に図示した、例示の拡張ダイレクト・メモリ・アクセス（ＥＤＭＡ）ユニットについて検討する。この例のＥＤＭＡは、８つの優先度チャネル及び４つのポートを有する。典型的なオペレーションにおいて、読み出しコマンドが実行されると、対応する書き込みオペレーションが終了されるまで、更なる読み出しコマンドは実行され得ない。このＥＤＭＡは、保留中の書き込みの終了まで更なる読み込みを遅らせる。本発明の同時読み出し応答ＥＤＭＡは、読み出しデータのＥＤＭＡへの流れにおけるこの制約をなくす。
【００１２】
本発明の同時読み出し応答確認拡張ＤＭＡは、ソース・ポートからの読み出し応答及びデータを全てのチャネルにわたって同時に受ける。ＥＤＭＡ書き込みバッファが充分なスペースを有する限り、ソース・ポートは、準備できているときはいつでも常にデータを返すことができる。ソース・ポート・バッファは妨げられることはなく、ＥＤＭＡは、デスティネーション・ポートにリアルタイムにデータを書き込むことができる。ＥＤＭＡ帯域幅は最大限に利用される。
【００１３】
本発明は以下のシーケンスで動作する。ＥＤＭＡは、データを要求するためソース・ポートＡへ読み出しコマンドを発行する。ポートＡは、このデータを応答情報と共に返す。この応答情報は、チャネル及び有効バイト数を含む。ＥＤＭＡは、読み出しデータを書き込みバッファに保存し、ソース・ポートに、ＥＤＭＡが更に多くのデータを受けることができることを確認する。読み出し応答及びデータは、現在、１つ以上のポートから到来し得、異なるチャネルに属し得る。ＥＤＭＡは、これらの処理チャネルに優先順位をつけ、最も高い優先度を有するチャネルのみが先に進み得る。全ての他の保留中のチャネルは待機し、その結果、ＥＤＭＡに送り返す準備ができているデータを既に有するアイドリング・ポートとなっている。本発明に従ってチャネル優先順位付けをなくすことにより、ＥＤＭＡは、書き込みバッファ内の他のチャネルからの更なる読み出しデータを保存することができる。その後、ＥＤＭＡは、全てのチャネルにわたって同時に、多数のポートに確認しかつ読み出し応答を受信することができる。このことは、ＥＤＭＡ受信及び送信データ・フローを著しく改善する。
【００１４】
図４は、本発明の同時読み出し応答確認を図示する。特定の転送に対するチャネル及び有効データ・バイト情報を含む、特定のソース・ポート（例えばソース・ポートＡ）からのポート読み出し応答４０１は、読み出し応答ＦＩＦＯバッファ４０２に保存される。その後、ＥＤＭＡは、そのデータが実際に処理されることを知らせる、ポートＡに戻る確認（ＡＣＫ）信号４０３を生成する。
【００１５】
全てのサイクルで新しい応答を処理するため、複数の３入力読み出し応答ＦＩＦＯが各ポートに提供される。一方、ＥＤＭＡは所定のチャネルに対しソース・ポート有効信号４１０を受け、この情報を読み出し応答からのチャネル数と組み合わせる。ＥＤＭＡは、どのチャネルが、処理される準備のできた読み出しデータを有するかを判定するため、ソース・レディ４１１を生成する。全てのポートからの読み出しデータ４２０は、そのチャネルに対する応答ポートからのデータ４１８を抽出するため、データ・マルチプレクサ４１６で多重化される。このデータ４１８は書き込みデータＦＩＦＯバッファ４０４への入力である。
【００１６】
各チャネルは、各チャネル自身の書き込みデータＦＩＦＯバッファ４１７を有する。書き込みポインタ４２１は、更新されるべきバッファ位置を識別し、読み出しポインタ４０７は、デスティネーション・ポート４１９へ出力されるべきデータを示す。書き込みバッファ・スペース・カウンタ４０８は、更なる保存データに用いることのできる書き込みデータＦＩＦＯバッファ４０４内の空きスペースを常に把握している。書き込みバッファ・スペース・カウンタ４０８は、（１）書き込みデータＦＩＦＯバッファに書き込まれるバイト数を加算すること、及び（２）デスティネーション・ポート４１９へ出力されるバイト数を減算することによって更新される。応答確認ロジック・ブロック４０６は、書き込みバッファ・スペース・カウンタ４０８の値を、ポート読み出し応答のバイト数と比較する。充分なスペースがある場合、応答確認ロジック４０６は、ソース・ポートへ応答確認４０３を発行する。その結果、ソース・ポートは、利用可能である場合、別の読み出し応答を返信することができる。
【００１７】
各チャネルに対して１つ付加的な書き込みデータＦＩＦＯバッファ４１７を、及び各ポートに対して１つ付加的な読み出し応答ＦＩＦＯバッファ４０２を提供することにより、データ処理量における障害は著しく緩和される。対応する保留中の書き込みが終了する前でも、多数の読み込みが処理され得る。
【図面の簡単な説明】
【００１８】
【図１】図１（先行技術）は、中央処理装置によって駆動され、周辺装置機能を駆動する幾つかのハブ・インターフェース・ユニットとインターフェースする転送コントローラを有する、ハブ・ポート・アーキテクチャを備えた拡張ダイレクト・メモリ・アクセス・ユニット（ＥＤＭＡ）の高レベルの機能図を図示する。
【図２】図２（先行技術）は、ＥＤＭＡの基本的な主要機能を機能ブロック図で図示する。
【図３】図３は、ＥＤＭＡソース・パイプライン及びデスティネーション・パイプラインへのキュー・マネジャー・インターフェースを図示する。
【図４】図４は、本発明の同時読み出し応答確認ＥＤＭＡのブロック図を図示する。
【図１】
2008541276.tif 000003
【図２】
2008541276.tif 000004
【図３】
2008541276.tif 000005
【図４】
2008541276.tif 000006
【国際調査報告】
2008541276.tif 000007