(57)【要約】送信されたデータを中間媒体に最初に保存しないでＤＭＡコントローラ（２０２）によってデータを変換するための方法およびシステムが開示される。本方法は、システム内の起点ロケーションとシステム内の宛先ロケーションとの間で転送するためにＤＭＡコントローラ（２０２）がデータへアクセスすることを含む。アクセスされたデータは宛先ロケーションへ送信される前にＤＭＡコントローラ（２０２）を通じて渡される。ＤＭＡコントローラ（２０２）を通じてデータが渡されている間に、それは修正状態へ変換される。この変換は、データの暗号化または復号を含みうる。この変換はまた、符号化プロセスを通じてデータへ誤り訂正ビットを付加することまたは以前に符号化されたデータを復号することを含みうる。変換が完了すると、典型的にはメモリ回路またはＩ／Ｏ装置である前述の宛先ロケーションへデータは直接に送信される。また、データ変換を実行することが可能なＤＭＡコントローラ（２０２）が開示される。
2011516978.tif 000002
【特許請求の範囲】
【請求項１】
ＤＭＡコントローラであって、
装置制御情報を受信し、ＤＭＡ転送信号を生成するように構成された制御回路と、
ＤＭＡ転送されるデータを受信し、前記ＤＭＡ転送されるデータを変換データへ変換するように構成された変換器と、
前記ＤＭＡ転送信号と前記変換データとを受信するように構成された複数のＤＭＡチャネル・インタフェースと
を備えることを特徴とするＤＭＡコントローラ。
【請求項２】
前記変換器は、前記ＤＭＡ転送されるデータを変換データへ変換するために暗号化回路を用いて前記ＤＭＡ転送されるデータを暗号化するように構成されたことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項３】
前記暗号化回路はアドバンスド・エンクリプション・スタンダードに準拠した回路を含むことを特徴とする請求項２に記載のＤＭＡコントローラ。
【請求項４】
前記変換器は、前記ＤＭＡ転送されるデータを変換データへ変換するために暗号化回路を用いて前記ＤＭＡ転送されるデータを復号するように構成されたことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項５】
前記暗号化回路はアドバンスド・エンクリプション・スタンダードに準拠した回路を含むことを特徴とする請求項４に記載のＤＭＡコントローラ。
【請求項６】
前記変換器は、前記ＤＭＡ転送されるデータを変換データへ変換するために誤り検出訂正回路を用いて前記ＤＭＡ転送されるデータを符号化するように構成されたことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項７】
前記変換器は、前記ＤＭＡ転送されるデータを変換データへ変換するために誤り検出訂正回路を用いて前記ＤＭＡ転送されるデータを復号するように構成されたことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項８】
前記変換器は、チェックサムを用いて前記ＤＭＡ転送されるデータを変換データへ変換するように構成されたことを特徴とする請求項１に記載のＤＭＡコントローラ。
【請求項９】
ＤＭＡコントローラを利用してデータを変換する方法であって、
対象装置からＤＭＡ転送されるデータを受信する工程と、
ＤＭＡコントローラにおいて、前記ＤＭＡ転送されるデータを変換データへ変換する工程と、
前記変換データを要求装置へ送信する工程と
を有することを特徴とする方法。
【請求項１０】
前記ＤＭＡ転送されるデータを変換する前記工程は、送信されたデータを中間媒体に最初に保存せずに実行されることを特徴とする請求項９に記載の方法。
【請求項１１】
ＤＭＡチャネルの使用中にエラーが発生した場合に前記ＤＭＡチャネルを停止する工程をさらに有することを特徴とする請求項９に記載の方法。
【請求項１２】
前記エラーが発生した場合に前記ＤＭＡチャネルの停止を記録し、報告する工程をさらに有することを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ＤＭＡチャネルが停止する前に転送されたバイト数を判定する工程をさらに有することを特徴とする請求項１１に記載の方法。
【請求項１４】
前記ＤＭＡコントローラが前記対象装置からＤＭＡ転送されるデータを受信しなくなった場合にＤＭＡチャネルを停止する工程をさらに有することを特徴とする請求項９に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にダイレクトメモリアクセス転送中にデータを修正された状態へ変換することに関する。
【背景技術】
【０００２】
このセクションは、以下に説明および／または主張される本発明の様々な側面に関連しうる技術の様々な側面を読者へ紹介することを意図される。この議論は本発明の様々な側面のよりよい理解を容易にするための背景情報を読者へ提供することにおいて有用であると信じられる。従って、これらの記載はこの観点から解釈されるべきであり、先行技術の自認として解釈されるべきでないことが理解されるべきである。
【０００３】
ダイレクトメモリアクセス（“ＤＭＡ”）コントローラは近年の電子装置で幅広く用いられている。ＤＭＡコントローラは中央処理ユニット（“ＣＰＵ”）に負荷をかけずに電子装置におけるデータ転送を可能にする。ＣＰＵは動作のためのコマンドのリスト、または命令を利用する。これらの命令はしばしばプログラムとして一緒にグループ化される。プログラムは典型的にハードディスクドライブや不揮発性メモリのような長期間記憶装置に格納される。これらの長期間記憶装置へのアクセスは所定量の時間を必要とし、この時間の間、ＣＰＵはアイドルのまま待たなければならない。
【０００４】
ＤＭＡコントローラを使用することによって、ＣＰＵがアイドルのまま留まらなければならない時間を低減できる。典型的に、ＣＰＵはプログラムとしてグループ化された命令のリストのフェッチをＤＭＡコントローラへ引き渡す。ＣＰＵは次いで、ＤＭＡがＣＰＵのためにプログラムをフェッチする間に、以前にフェッチされた命令を自由に実行できる。ＤＭＡコントローラは通常、メモリ内のロケーションとＩ／Ｏ装置との間またはＩ／Ｏ装置とメモリ内のロケーションとの間でデータを転送する。ＤＭＡコントローラはまた、メモリ内の２箇所のロケーションの間で、またはＩ／Ｏ装置間で直接にデータを転送するために用いられうる。何らかのデータ供給元から何らかのデータ受信機への間のＤＭＡコントローラによるデータの転送はＤＭＡチャネルに沿って達成される。ＤＭＡチャネルはＤＭＡコントローラと装置との間の経路である。ＤＭＡチャネルは典型的にデータ、コマンド信号、およびクロック信号を装置へ渡す。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】米国特許出願第１２／０４７１５６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００６】
近年のポータブル電子装置内のデータが動作中にハッカーからセキュアであり且つエラーがないことは重要である。しかしながら、セキュアなデータへの現在の取り組みはシステム遅延の形で装置にオーバヘッドを加える。同様に、破損していないデータが装置のユーザへ利用可能であることを保証することへの取り組みも、システム遅延の形で装置にオーバヘッドを加える。例えば、ＤＭＡ転送の間にアクセスされるデータは、転送が完了しうる前にセキュリティシステムまたは誤り訂正システムを通じて送信されなければならないため、減速されうる。このように、装置の動作を減速せずに破損していないデータを確保する能力への必要性がある。
【課題を解決するための手段】
【０００７】
例として本明細書に開示される実施形態の所定の側面が以下に要約される。これらの側面は、本明細書で開示および／または主張される発明がとりうるだろう所定の形式の簡潔な要約を単に読者に提供し、これらの側面は本明細書で開示および／または主張される如何なる発明の範囲を制限する意図はないことが理解されるべきである。実際のところ、本明細書で開示および／または主張される任意の発明は以下に説明されないかもしれない様々な側面を包含しうる。
【０００８】
ＤＭＡコントローラを有する電子装置が提供される。１つの実施形態では、ＤＭＡコントローラはＤＭＡバスに接続され、ＤＭＡバスを通じて複数のＩ／Ｏ装置および複数の記憶装置がアクセスされうる。ＤＭＡコントローラはまた、複数の個別の有線ＤＭＡチャネルを通じて複数のＩ／Ｏ装置および複数の記憶装置へ個別に接続されうる。Ｉ／Ｏ装置は指定されたＤＭＡチャネルに沿ってそれぞれ通信しつつ、ＤＭＡバスの帯域幅を共有しうる。１つの実施形態では、ＤＭＡコントローラは、ＤＭＡ転送される情報を暗号化するために暗号化技術を利用しデータを直接に要求装置へ送信しうる暗号化回路を含む。この様にして、要求装置へ送信される前に転送装置において非暗号化データが非保護状態で存在しないため、データが未認可ユーザによりハッキングされる機会が低減される。暗号化回路はまた、電子装置にデータをセキュアに記憶するためにデータを暗号化する暗号化技術を利用しうる。
【０００９】
別の実施形態では、ＤＭＡコントローラは、ＤＭＡ転送されるデータ内の誤りを検出して訂正する誤り訂正符号を利用しうる誤り検出訂正回路を含む。誤り検出訂正回路はまた、誤り訂正符号化回路を含んでもよく、誤り訂正符号化回路は誤りが訂正されたデータの読み出しに役立つように電子装置に記憶するためにＤＭＡコントローラがデータを符号化することを可能にする。
【００１０】
本発明のこれらのまたはその他の特徴、側面および利点は、添付の図面を参照しつつ所定の例示の実施形態の以下の詳細な説明が読まれる場合に、より理解されるだろう。添付の図面では図面を通して同様の文字は同様の部分を表す。
【図面の簡単な説明】
【００１１】
【図１】本発明の１つの実施形態に従うポータブル・メディアプレーヤのような電子装置を説明する透視図である。
【図２】本発明の１つの実施形態に従う図１のポータブル・メディアプレーヤの単純化されたブロック図である。
【図３】本発明の第２実施形態に従う図１のポータブル・メディアプレーヤの単純化されたブロック図である。
【図４】本発明の実施形態に従うＤＭＡ転送を実行するポータブル・メディアプレーヤの動作を示すフローチャートである。
【図５】本発明の１つの実施形態に従う図１および図２のＤＭＡコントローラの単純化されたブロック図である。
【図６】本発明の実施形態に従うＤＭＡコントローラの動作を示すフローチャートである。
【図７】本発明の１つの実施形態に従う図５のＤＭＡチャネル・インタフェースの単純化されたブロック図である。
【図８】ＤＭＡ転送中のチャネル制御ロジックの動作を示すフローチャートである。
【発明を実施するための形態】
【００１２】
本発明の１つ以上の個別の実施形態が以下に説明される。これらの説明される実施形態は単なる本発明の例示である。さらに、これらの例示の実施形態の簡潔な説明を提供する取り組みにおいて、実際の実装のすべての特徴が本明細書に説明されないかもしれない。任意の工学または設計プロジェクトのような任意の実際の実装の開発において、実装ごとに変わりうるシステム関連またはビジネス関連の制約への準拠のような開発者固有の目的を達成するために数多くの実装固有の決定がなされなければならないことが理解されるべきである。さらに、このような開発の取り組みが複雑であり時間のかかるものであるかもしれないが、それにもかかわらず本開示の利益を有する当業者にとって日常行われる設計、製作および製造でありうることが理解されるべきである。
【００１３】
ここで図面を参照して、図１は本発明の１つの実施形態に従う電子装置１０を示す。いくつかの実施形態では、電子装置１０は音楽および／またはビデオを再生するためのメディアプレーヤ、携帯電話、パーソナルデータ・オーガナイザ、またはこれらの任意の組み合わせでありうる。よって、電子装置１０はメディアプレーヤ、携帯電話、パーソナルデータ・オーガナイザなどの機能の何れか１つまたは組み合わせを提供する統合装置でありうる。さらに、電子装置１０によって、ユーザはインターネットに、またはローカルエリアネットワークやワイドエリアネットワークのようなその他のネットワークに接続し、これらを通じて通信することが可能になりうる。例えば、電子装置１０によって、ユーザは電子メール、テキスト・メッセージング、インスタント・メッセージングを用いて、または電子通信の他の形式を用いて通信することが可能になりうる。例えば、電子装置１０はアップル・インクから提供される表示スクリーンを有するモデルのｉＰｏＤ（登録商標）またはｉＰｈｏｎｅ（登録商標）でありうる。
【００１４】
ある実施形態では、電子装置１０は充電可能または交換可能なバッテリによって電力供給されうる。このようなバッテリで電力供給される実装によって、ユーザは、旅行中、仕事中、運動中などに電子装置１０を持ち運ぶことが可能になり、非常に可搬的でありうる。このように、電子装置１０のユーザは、装置１０を自由に移動する間に、電子装置１０により提供される機能に依存して、音楽を聴き、ゲームまたはビデオを再生し、ビデオを記録しまたは写真を撮り、電話呼を発着し、他人と通信し、他の装置を制御する（例えば、装置１０は例としてリモート制御および／またはＢｌｕｅｔｏｏｔｈ（登録商標）機能を含みうる）などを行いうる。さらに、ある実施形態では、装置１０はユーザのポケットまたは手に比較的容易に収まるようなサイズでありうる。このような実施形態では、装置１０は比較的小さく、そのユーザによって容易に扱われて利用され、よって事実上ユーザが移動するどこにでも運ばれうる。本明細書で説明される本議論および例は一般に図１に示されるような可搬的ある電子機器１０を参照するが、本明細書で議論される技術は装置の可搬性にかかわらず、ディスプレイを有する任意の電子装置に適用可能でありうる。
【００１５】
説明される実施形態では、電子機器１０は筐体１２、ディスプレイ１４、ユーザ入力機構１６、および入力／出力コネクタ１８を含む。筐体１２はプラスティック、金属、複合材料または他の適切な材料もしくはこれらの任意の組み合わせから形成されうる。筐体１２は物理的損傷から電子装置１０の内部コンポーネントを保護し、電磁妨害（ＥＭＩ）からも内部コンポーネントをシールドしうる。
【００１６】
ディスプレイ１４は液晶ディスプレイ（ＬＣＤ）であってもよいし、発光ダイオード（ＬＥＤ）ベースのディスプレイであってもよいし、有機発光ダイオード（ＯＬＥＤ）ベースのディスプレイであってもよいし、他の適切なディスプレイであってもよい。本技術の所定の実施形態に従って、ディスプレイ１４はユーザ・インタフェース２２だけでなく、ロゴ、アバター、写真、アルバムアートなどのような様々なイメージを表示しうる。さらに、１つの実施形態では、ディスプレイ１４は、ユーザがユーザ・インタフェースと相互作用しうるタッチスクリーンでありうる。ディスプレイ１４はまた、電力状態、通話状態、メモリ状態などのようなフィードバックをユーザへ提供するための機能および／またはシステムの様々なインジケータを表示してもよい。これらのインジケータはディスプレイ１４に表示されるユーザ・インタフェースに組み込まれてもよい。本明細書で説明されるように、所定の実施形態では、ユーザ・インタフェース２２はディスプレイ１４に表示されてもよいし、ユーザが電子装置１０と相互作用するための機構を提供してもよい。ユーザ・インタフェースはテキストベースのユーザ・インタフェースであってもよし、グラフィカル・ユーザ・インタフェース（ＧＵＩ）であってもよいし、またはこれらの任意の組み合わせであってもよく、様々なレイヤ、ウィンドウ、スクリーン、テンプレート、要素、またはディスプレイのすべてまたは一部に表示されうる他のコンポーネントを含みうる。
【００１７】
１つの実施形態では、１つ以上のユーザ入力機構１６が、例えば動作モード、出力レベル、出力タイプなどを制御することによって装置１０を制御するように構成される。例えば、ユーザ入力機構１６は装置１０の電源をオン・オフするためのボタンを含みうる。一般に、電子装置１０の実施形態は、ボタン、スイッチ、コントロールパッド、キー、つまみ、スクロールホイールまたは任意の他の適切な入力機構を含む任意の個数のユーザ入力機構１６を含みうる。入力機構１６は、装置１０の機能を制御するため若しくは装置１０に接続された他の装置又は装置１０により用いられる他の装置の機能を制御するために、装置１０に表示されたユーザ・インタフェースとともに動作しうる。例えば、ユーザ入力機構１６によって、ユーザは表示されたユーザ・インタフェースをナビゲートし、このような表示されたユーザ・インタフェースをデフォルト・スクリーンまたはホーム・スクリーンに戻すことができうる。
【００１８】
所定の実施形態では、ユーザ・インタフェース２２によって、１つ以上のユーザ入力機構１６および／またはディスプレイ１４のタッチセンサ実装を介して、ユーザは表示されたインタフェース要素とのインタフェースを行うことができる。このような実施形態では、ユーザ・インタフェースは相互作用の機能を提供し、ディスプレイ１４に表示されたオプションの中からタッチスクリーンまたは他の入力機構によってユーザが選択することを可能にする。よって、ユーザはユーザ・インタフェース２２との適切な相互作用によって装置１０を操作できる。ユーザ・インタフェース２２はユーザと装置１０との間の相互作用を可能にする任意の適切なデザインでありうる。よって、ユーザ・インタフェース２２はウィンドウ、メニュー、グラフィックス、テキスト、キーボードまたは数字キーパッド、スクロール装置もしくは任意の他の要素を提供しうる。１つの実施形態では、ユーザ・インタフェース２２はスクリーン、テンプレート、ＵＩコンポーネントを含んでもよく、任意の個数のこれらの要素またはその他の要素を含んでもよく、またはこれらに分割されてもよい。ユーザ・インタフェース２２の要素の配置は、スクリーンが１つ以上のテンプレートを含み、テンプレートが１つ以上のＵＩコンポーネントを含むように階層的であってもよい。他の実施形態は任意の階層的構造または任意の非階層的構造でユーザ・インタフェース要素を配置しうることが理解されるべきである。
【００１９】
電子装置１０はまた、追加の装置の接続を可能にする様々な入出力ポート１８を含みうる。例えば、ポート１８はヘッドフォンとの接続を提供するヘッドフォン・ジャックでありうる。さらに、ポート１８は、ヘッドセット（例えばヘッドフォンとマイクとの組み合わせ）との接続を提供するために入力機能／出力機能の両方を有しうる。本発明の実施形態は任意の個数の入力ポートおよび／または出力ポートを含んでもよく、これらはヘッドフォン・ジャックおよびヘッドセット・ジャック、ユニバーサルシリアルバス（ＵＳＢ）ポート、ファイヤワイヤ・ポートすなわちＩＥＥＥ１３９４ポート、ならびにＡＣ電源コネクタおよび／またはＤＣ電源コネクタを含む。さらに、装置１０は他のポータブル電子装置、パーソナル・コンピュータ、プリンタなどのような任意の他の装置に接続してデータを送信または受信する入出力ポートを用いうる。例えば、１つの実施形態では、電子装置１０はメディアファイルのようなデータファイルを送信および受信するためにファイヤワイヤすなわちＩＥＥＥ１３９４接続を介してパーソナル・コンピュータに接続されうる。
【００２０】
電子装置１０はまた、様々なオーディオ入出力部を含みうる。例えば、入力受信器２０はユーザのオーディオ入力を受信するマイクでありうる。さらに、出力送信器２１はオーディオ信号をユーザへ送るスピーカでありうる。入力受信器２０と出力送信器２１とは電話機のオーディオ要素として連動して用いられうる。
【００２１】
ここで図２を参照して、例示の電子装置１０のコンポーネントのブロック図２００が示される。ブロック図は中央処理ユニット（“ＣＰＵ”）２０４に接続されたＤＭＡコントローラ２０２を含む。ＣＰＵ２０４は単一のプロセッサを含んでもよいし、複数のプロセッサを含んでもよい。別の実施形態では、ＣＰＵ２０４は１つ以上の“汎用”マイクロプロセッサ、汎用マイクロプロセッサと特殊用途マイクロプロセッサとの組み合わせ、および／またはＡＳＩＣを含みうる。例えば、ＣＰＵ２０４は１つ以上の縮小命令セット（ＲＩＳＣ）プロセッサだけでなく、グラフィック・プロセッサ、ビデオ・プロセッサおよび／または関連チップセットを含みうる。ＣＰＵ２０４はオペレーティング・システム、プログラム、ユーザ・インタフェース２２、および装置１０の任意の他の機能を実行するために必要な処理能力を提供しうる。ＣＰＵ２０４はまた、装置１０のオペレーティング・システムおよび／または装置１０が機能するために必要な任意の他のプログラムまたは実行可能コードのような装置１０のファームウェアを格納するために用いられうるＲＯＭのような不揮発性メモリを含みうる。
【００２２】
ＣＰＵ２０４はキャッシュメモリ２０６に接続されてもよく、キャッシュメモリ２０６はＣＰＵ２０４によって高速にアクセスされるデータのための一時記憶場所として用いられうる。キャッシュメモリ２０６はメモリコントローラ２０８に接続されてもよく、メモリコントローラ２０８はメインメモリ２１０とキャッシュメモリ２０６との間のデータおよび命令のフローを規制し、またはデータおよび命令への必要性が緊急である場合かデータおよび命令がキャッシュメモリ２０６に一時記憶されることが禁止されている場合にメインメモリ２１０とＣＰＵ２０４との間の直接のデータおよび命令のフローを規制する。１つの実施形態では、ＤＭＡコントローラ２０２とメモリコントローラ２０８との間のデータおよび命令のフローはキャッシュメモリ２０６の中身を判定せずに行われる。別の実施形態では、ＤＭＡコントローラ２０２とメモリコントローラ２０８との間のデータおよび命令のフローは、キャッシュメモリ２０６の中身を判定した後に達成される。更なる実施形態では、ＤＭＡコントローラ２０２はＣＰＵ２０４に直接に接続されうる。さらに、メインメモリ２１０とキャッシュメモリ２０６との中に記憶するためのデータのアクセスはＤＭＡコントローラ２０２の動作から分離した二次バスを介して実行されうる。
【００２３】
ＤＭＡコントローラ２０２は、Ｉ／Ｏ装置同士の間、例えばＵＳＢ装置２１８とオーディオ回路２３０との間のデータや、メインメモリ２１０とＩ／Ｏ装置、例えばオーディオ回路２３０との間のデータや、Ｉ／Ｏ装置、例えばオーディオ回路２３０とメインメモリ２１０との間のデータの転送のための制御装置として動作しうる。利用される特定のＤＭＡコントローラ２０２は、同時出願され同一出願人による２００８年３月２７日に出願された「ＤＭＡバスのためのクロック制御」という名称の特許文献１に記載されるような他の機能を有してもよく、特許文献１の開示はその全体を参照して本明細書に組み込む。このような機能は参照により本明細書に組み込まれる。ＤＭＡコントローラ２０２はＤＭＡインタコネクト２１２を経由してＤＭＡバス２１４に接続されうる。ＤＭＡインタコネクト２１２はデータ、コマンドおよびクロック信号を送信するだけでなく、対象Ｉ／Ｏ装置からＤＭＡ要求信号および転送データを受信するように動作する。これらの送信信号および受信信号は、集合的に「ＤＭＡ転送信号」と呼ばれうる。ＤＭＡインタコネクト２１２はまた、Ｉ／Ｏ装置からＤＭＡバス２１４を介して送信されたコマンドおよびデータの信号を受信する。ＤＭＡバス２１４はＤＭＡ送信信号とＩ／Ｏ装置からのコマンドおよびデータの信号とのための導管として動作する。ＤＭＡバス２１４は複数のＤＭＡチャネルを含みうる。各ＤＭＡチャネルは任意の特定のＩ／Ｏ装置にＤＭＡコントローラ２０２を接続するパスでありうる。１つの実施形態では、これらのパスはＤＭＡバス２１４を共有して事実上同時にアクティブになりうる。
【００２４】
ＤＭＡバス２１４は、ＵＳＢインタフェース２１６を通じたＵＳＢ（“ユニバーサルシリアルバス”）装置２１８、カメラ回路２２０、電話回路２２２、ビデオ回路２２６、ＪＰＥＧ（ジョイント・フォトグラフィック・エキスパート・グループ）回路２２８、およびオーディオ回路２３０のような複数の装置に接続されうる。図１に示される要素に対応するユーザ・インタフェース回路および表示回路のような更なる回路もＤＭＡバス２１４に接続されうる。さらに、長期メモリ２２４がＤＭＡバス２１４に接続されうる。長期メモリ２２４はフラッシュメモリ、磁気ドライブ、光学装置またはリードオンリメモリ回路のような不揮発性メモリでありうる。長期メモリ２２４はメディア（例えば音楽ファイルおよびビデオ・ファイル）のようなデータファイル、（例えば装置１０に機能を実装するための）ソフトウェア、嗜好情報（例えばメディア再生嗜好）、無線接続情報（例えば、電話接続のような無線接続をメディア装置が確立することを可能にする情報）、加入契約情報（例えばユーザが加入しているポッドキャストやテレビ番組、他のメディアの記録を保持する情報）、電話情報（例えば電話番号）および任意の適切な他のデータを格納しうる。
【００２５】
ＵＳＢインタフェース２１６はＵＳＢ装置２１８に接続されうる。このＵＳＢ装置２１８は例えば外部フラッシュメモリ回路または外部ハードディスクドライブでありうる。カメラ回路２２０によって、ユーザがデジタル写真を撮ることが可能になりうる。電話回路２２２によって、ユーザが電話を受信または発信することが可能になりうる。１つの実施形態では、電話回路２２２は通話を完了するために図１の入力受信器２０および出力送信器２１と相互作用しうる。ビデオ回路２２６は、カメラ回路２２０と連動してユーザによって撮影されたビデオサンプル、またはインターネットのような外部供給元からダウンロードされたビデオサンプルを符号化および復号するために用いられうる。同様に、ＪＰＥＧ回路２２８はカメラ回路２２０と連動してユーザによって撮影された写真、またはインターネットのような外部供給元からダウンロードされた写真を符号化および復号することを可能にしうる。最後に、オーディオ回路２３０は圧縮音楽ファイルのようなオーディオファイルを再生することを可能にする。
【００２６】
ここで図３を参照して、例示の電子装置１０のコンポーネントのブロック図が示される。ブロック図はＣＰＵ３０４に接続されたＤＭＡコントローラ３０２を含む。ＣＰＵ３０４は単一のプロセッサを含んでもよいし、複数のプロセッサを含んでもよい。別の実施形態では、ＣＰＵ３０４は１つ以上の“汎用”マイクロプロセッサ、汎用マイクロプロセッサと特殊用途マイクロプロセッサとの組み合わせ、および／またはＡＳＩＣを含みうる。例えば、ＣＰＵ３０４は１つ以上の縮小命令セット（ＲＩＳＣ）プロセッサだけでなく、グラフィック・プロセッサ、ビデオ・プロセッサおよび／または関連チップセットを含みうる。ＣＰＵ３０４はオペレーティング・システム、プログラム、ユーザ・インタフェース２２、および装置１０の任意の他の機能を実行するために必要な処理能力を提供しうる。ＣＰＵ３０４はまた、装置１０のオペレーティング・システムおよび／または装置１０が機能するために必要な任意の他のプログラムまたは実行可能コードのような装置１０のファームウェアを格納するために用いられうるＲＯＭのような不揮発性メモリを含みうる。
【００２７】
ＣＰＵはキャッシュメモリ３０６に接続されてもよく、キャッシュメモリ３０６はＣＰＵによって高速にアクセスされるデータのための一時記憶場所として用いられうる。キャッシュメモリ３０６はメモリコントローラ３０８に接続されてもよく、メモリコントローラ３０８はメインメモリ３１０とキャッシュメモリ３０６との間のデータおよび命令のフローを規制する。さらに、データおよび命令への必要性が緊急である場合およびデータおよび命令がキャッシュメモリ３０６に一時記憶されることが禁止されている場合に、メモリコントローラ３０８はまた、メインメモリ３１０とＣＰＵ３０４との間の直接のデータおよび命令のフローを規制しうる。１つの実施形態では、ＤＭＡコントローラ３０２とメモリコントローラ３０８との間のデータおよび命令のフローはキャッシュメモリ３０６の中身を判定せずに行われる。別の実施形態では、ＤＭＡコントローラ３０２とメモリコントローラ３０８との間のデータおよび命令のフローは、キャッシュメモリ３０６の中身を判定した後に達成される。更なる実施形態では、ＤＭＡコントローラ３０２はＣＰＵ３０４に直接に接続されうる。さらに、メインメモリ３１０とキャッシュメモリ３０６との中に記憶するためのデータのアクセスはＤＭＡコントローラ３０２の動作から分離した二次バスを介して実行されうる。
【００２８】
ＤＭＡコントローラ３０２は、Ｉ／Ｏ装置同士の間、例えばＵＳＢ装置３１８とオーディオ回路３３０との間のデータや、メインメモリ３１０とＩ／Ｏ装置、例えばオーディオ回路３３０との間のデータや、Ｉ／Ｏ装置、例えばオーディオ回路３３０とメインメモリ３１０との間のデータの転送のための制御装置として動作しうる。各ＤＭＡチャネルは任意の特定のＩ／Ｏ装置にＤＭＡコントローラ３０２を接続するパスでありうる。ＤＭＡコントローラ３０２は複数の独立ＤＭＡチャネル、例えば独立ＤＭＡチャネル線３１２に沿って複数のＩ／Ｏ装置に接続されうる。独立ＤＭＡチャネル線３１２はＩ／Ｏ装置との特定のＤＭＡパスを代表する。独立ＤＭＡチャネル線３１２はＵＳＢインタフェース３１６を経由してＤＭＡコントローラ３０２からＵＳＢ装置３１８へデータ、コマンドおよびクロック信号を送信するために用いられうる。ＵＳＢ装置３１８は例えば外部フラッシュメモリ回路または外部ハードディスクドライブでありうる。独立ＤＭＡチャネル線３１２はまた、Ｉ／Ｏ装置（例えばＵＳＢインタフェース３１６を介するＵＳＢ装置３１８）からＤＭＡコントローラ３０２へＤＭＡ要求信号およびデータを送信するために用いられうる。
【００２９】
ＤＭＡコントローラ３０２はまた、カメラ回路３２０、電話回路３２２、ビデオ回路３２６、ＪＰＥＧ回路３２８、およびオーディオ回路３３０のような複数の装置に、独立ＤＭＡチャネル線に沿って接続されうる。図１に示される要素に対応するユーザ・インタフェース回路および表示回路のような更なる回路もＤＭＡコントローラ３０２に接続されうる。カメラ回路３２０によって、ユーザがデジタル写真を撮ることが可能になりうる。電話回路３２２によって、ユーザが電話を受信または発信することが可能になりうる。１つの実施形態では、電話回路２２は通話を完了するために図１の入力受信器２０および出力送信器２１と相互作用しうる。ビデオ回路３２６は、カメラ回路３２０と連動してユーザによって撮影されたビデオサンプル、またはインターネットのような外部供給元からダウンロードされたビデオサンプルを符号化および復号するために用いられうる。同様に、ＪＰＥＧ回路２２８はカメラ回路３２０と連動してユーザによって撮影された写真、またはインターネットのような外部供給元からダウンロードされた写真を符号化および復号することを可能にしうる。オーディオ回路３３０は圧縮音楽ファイルのようなオーディオファイルを再生することを可能にする。
【００３０】
同様に、独立ＤＭＡチャネル線３１４は長期メモリ３２４に接続されたＤＭＡチャネルを代表する。独立ＤＭＡチャネル線３１４はＤＭＡコントローラ３０２から長期メモリ３２４へデータ、コマンド、およびクロック信号を送信するために用いられうる。長期メモリ３２４はフラッシュメモリ、磁気ドライブ、光学装置またはリードオンリメモリ回路のような不揮発性メモリでありうる。長期メモリ３２４はメディア（例えば音楽ファイルおよびビデオ・ファイル）のようなデータファイル、（例えば装置１０に機能を実装するための）ソフトウェア、嗜好情報（例えばメディア再生嗜好）、無線接続情報（例えば、電話接続のような無線接続をメディア装置が確立することを可能にしうる情報）、加入契約情報（例えばユーザが加入しているポッドキャストやテレビ番組、他のメディアの記録を保持する情報）、電話情報（例えば電話番号）および任意の適切な他のデータを格納しうる。独立ＤＭＡチャネル線３１４はまた、長期メモリ３２４からＤＭＡコントローラ３０２へＤＭＡ要求信号およびデータを送信するために用いられうる。
【００３１】
図４は本発明の実施形態に従うＤＭＡ転送を示す方法４００を表すフローチャートを説明する。始めに、ステップは図３に概説されたシステムと合わせて検討される。ステップ４０２で、ＤＭＡコントローラ３０２は要求装置、例えばオーディオ回路３３０からデータ転送要求を受信する。ＤＭＡコントローラは要求されたデータのロケーションを判定する。このロケーションは対象装置である。この対象装置は例えば長期メモリ３２４でありうるだろう。ＤＭＡコントローラ３０２は、要求装置、例えばオーディオ回路３３０に対応する独立ＤＭＡチャネル線３１２と、対象装置、例えば長期メモリ３２４に対応する独立ＤＭＡチャネル線３１４とに沿ってＤＭＡチャネルクロックを駆動しうる。ＤＭＡコントローラ３０２は次いで、チャネルクロックおよびＤＭＡコマンド信号を独立ＤＭＡチャネル線３１４に沿って対象装置へ送信することによって、対象装置からのＤＭＡ転送を開始しうる。
【００３２】
ステップ４０４で、対象装置はＤＭＡチャネルクロックおよびコマンド信号を受信し、要求されたデータをＤＭＡコントローラ３０２へ送信する。ＤＭＡコントローラ３０２はこの送信されたデータを受信し、続いてステップ４０６で、送信されたデータを中間媒体に最初に保存せずにＤＭＡコントローラ３０２において送信されたデータが変換される。
【００３３】
１つの実施形態では、ステップ４０６におけるデータの変換は、ＤＭＡコントローラ３０２に含まれる暗号化回路を用いて達成される。暗号化回路はＤＭＡ送信データを暗号化するために暗号化技術を利用しうる。このように、要求装置へ送信される前にどこにもデータが非保護のまま存在しないため、データが無認可ユーザからハッキングされる機会が低減される。例えば、長期メモリ３２４が対象装置でありオーディオ回路３３０が要求装置である場合に、従来、暗号化回路は長期記憶装置３２４からメインメモリ３１０内の一時バッファにデータをコピーし、次いで、メインメモリ３１０内の一時バッファからメインメモリ３１０内の第２バッファへデータを暗号化しただろう。最後に、暗号化回路は次いで、メインメモリ内の第２バッファからオーディオ回路３３０へ暗号データをコピーしただろう。これによって、メインメモリ３１０内の一時バッファに非暗号化形式でデータが一時的にさらされるだろう。本方法４００を利用すれば、アクセスされるデータは非暗号化形式でさらされることは決してない。その代わりに、送信されたデータを中間媒体に最初に保存せずにＤＭＡコントローラ３０２においてデータを暗号化することによって、ステップ４０８で、送信されたデータが非暗号化形式で一時記憶されずに暗号データがオーディオ回路３３０へ直接に送信されることが可能になる。暗号化回路はまた、電子装置１０内のデータのセキュアな記憶のためにデータを暗号化する暗号技術を含みうる。１つの実施形態では、暗号化回路はアドバンスド・エンクリプション・スタンダード（ＡＥＳ）に準拠した回路を含む。さらなる実施形態では、ハッシュ関数が暗号化回路によって採用されうる。別の実施形態では、暗号化回路はフェアプレイ（登録商標）暗号データを復号するために用いられうる。送信されたデータが暗号化または復号のいずれかを通じて変換されると、変換データはステップ４０８で要求装置へ送信される。
【００３４】
別の実施形態では、ステップ４０６におけるデータの変換は、ＤＭＡコントローラ３０２に含まれる誤り検出訂正回路を用いて達成される。誤り検出訂正回路は誤り訂正検出復号回路を利用しうる。訂正検出復号回路はＤＭＡ転送されるデータ内の誤りを検出して訂正するために誤り訂正符号を利用しうる。誤り検出訂正回路はまた、誤り検出訂正符号化回路を含んでもよく、誤り検出訂正符号化回路はＤＭＡコントローラ３０２がデータの誤り訂正回復を支援するために電子装置に記憶するためのデータを符号化することを可能にする。１つの実施形態では、誤り検出訂正回路は線形ブロック符号化および復号を利用する。さらなる実施形態は、誤り検出訂正回路における誤り検出訂正を実行するために、ハミング符号のような２値ＢＣＨ符号の特化されたサブクラスを利用する。別の実施形態は、誤り検出訂正回路におけるデータの誤り検出訂正を実行するために、リード・ソロモン符号のような非２値ＢＣＨ符号を利用する。誤り検出訂正回路はまた、送信されたデータ内の誤りを検出するためにチェックサムを採用しうる。送信されたデータが誤り符号化技術または誤り復号技術のいずれかを通じて変換されると、ステップ４０８で変換データは要求装置へ送信される。
【００３５】
方法４００はシステム２００に関して実質的に同様に動作しうる。しかしながら、システム２００と合わせて用いられる場合に、方法４００は上述のように専用かつ独立なＤＭＡチャネル線（例えばチャネル線３１２、３１４）のかわりにステップ４０２〜４１２を実行するためにＤＭＡバス２１４を利用しうる。
【００３６】
図５は本発明の１つの実施形態に従う図２、３のＤＭＡコントローラの単純化されたブロック図を示す。ＤＭＡコントローラ２０２が図５で説明されるが、しかしながら図５はそれに代えてＤＭＡコントローラ３０２にも対応しうる。ＤＭＡコントローラ２０２は制御回路５０２を含む。ＤＭＡコントローラ２０２は制御回路５０２を利用することによって、ＤＭＡ転送の初期化、すべてのＤＭＡチャネルの管理、およびＤＭＡチャネルクロックの管理だけでなく、ＤＭＡバス２１４の管理を行える。ＤＭＡコントローラ２０２はＤＭＡバス２１４のマスタであるので、ＤＭＡコントローラ２０２は制御回路５０２を通じてこれらの機能を実行できる。同様に、ＤＭＡコントローラ３０２は独立ＤＭＡチャネル線、例えば３１２、３１４のマスタである。従って、ＤＭＡコントローラ２０２はＤＭＡバス２１４を利用して任意且つすべての装置を認識し、この知識に基づいて特定のＤＭＡ転送特性を判定できる。同様に、ＤＭＡコントローラ３０２は独立ＤＭＡチャネル線、例えば３１２、３１４を利用して、任意かつ全ての装置を認識し、この知識に基づいて特定のＤＭＡ転送特性を判定できる。
【００３７】
スケジューラ５０４は、ＤＭＡバス２１４または独立ＤＭＡチャネル線、例えば３１２、３１４を装置がいつ利用しているかを判定することを支援する。制御回路５０２はスケジューラ５０４から装置ＤＭＡ要求の転送に付随する情報を受信する。１つの実施形態では、スケジューラ５０４は制御回路５０２の内部に存在できる。別の実施形態では、任意のＤＭＡ要求が各独立ＤＭＡチャネル線、例えば３１２に沿って送信され、指定されたＤＭＡチャネル・インタフェース、例えば５１０を経由してスケジューラ５０４へ渡される。スケジューラ５０４は、データ転送を求めるＤＭＡ要求のどれがプライオリティを与えられるかを判定するように動作する。１つの実施形態では、要求は先入れ先出し手順を経由して処理される。別の実施形態では、各チャネルは重み値が与えられる。特定のＤＭＡチャネルへ割り当てられた重み値が大きいほど、特定のＤＭＡ転送についてチャネルが受けるスケジューリング・プライオリティが高くなる。
【００３８】
ＤＭＡコントローラはまた、変換器５０８を含む。変換器５０８は暗号化回路を含みうる。変換器５０８はまた、誤り検出訂正回路を含みうる。変換器５０８はＤＭＡインタフェース５１０〜５１４からデータを受信し、送信されたデータを中間媒体に最初に保存せずにデータを変換しうる。変換が完了すると、変換器５０８は、データが発行されたＤＭＡインタフェース５１０〜５１４へ変換データを返信しうる。制御回路５０２は変換器５０８と相互作用しうる。この相互作用は変換器５０８内の暗号化回路または復号回路の起動を含みうる。この相互作用はまた、変換器５０８内の符号化回路または復号回路の起動を含みうる。
【００３９】
ＤＭＡチャネルクロックおよびＤＭＡコマンド信号は指定されたＤＭＡチャネル・インタフェース、例えばＤＭＡチャネル・インタフェース５１０へ入力として送信されうる。ＤＭＡインタフェース５１０〜５１４はまた、変換器５０８からの信号を受信しうる。１つの実施形態では、変換器５０８から受信される信号は変換データ信号を含む。ＤＭＡインタフェース５１０〜５１４はまた、制御回路５０２および変換器５０８へ信号を送信しうる。１つの実施形態では、変換器５０８へ送信される信号は対象装置から送信されたデータ信号を含む。ＤＭＡインタフェース５１０〜５１４はさらに、独立ＤＭＡチャネル線、例えば３１２に沿ってデータを送信および受信しうる。ＤＭＡインタフェース５１０〜５１４はまた、ＤＭＡインタコネクト２１２のような共通線で対象装置へＤＭＡチャネルに沿ってデータを送信および受信しうる。１つの実施形態では、すべてのＤＭＡチャネルに対応する特定のＤＭＡチャネル・インタフェースが存在する。
【００４０】
図６は本発明の実施形態に従うＤＭＡ転送を示す方法６００を表すフローチャートである。始めに、ステップは図５に概説されたシステムに合わせて検討される。ステップ６０２で、スケジューラ５０４は要求装置、例えばオーディオ回路３３０からＤＭＡ転送要求を受信する。スケジューラ５０４はまた、ステップ６０２で二次ＤＭＡ要求を受信しうる。
【００４１】
ステップ６０４で、スケジューラ５０４はＤＭＡ転送をスケジュールしうる。１つの実施形態では、これは、ＦＩＦＯ（先入れ先出し）手順を用いて行われうる。すなわち、ＤＭＡ転送は、スケジューラ５０４により受信された順番に従ってスケジュールされうる。第２実施形態では、スケジューラ５０４はランク付けシステムに従って、受信されたＤＭＡ転送要求をスケジュールしうる。この実施形態では、各要求装置はプライオリティ・ランクが割り当てられる。高いプライオリティ・ランクを有する装置は、低いプライオリティの装置のＤＭＡ転送要求よりも前に自身のＤＭＡ転送要求をスケジュールさせる。高いプライオリティのＤＭＡ転送要求よりも低いプライオリティを有するすべてのＤＭＡ転送要求は、それぞれのプライオリティ・ランクに従ってキューに入れられるだろう。別の実施形態では、所定のプライオリティを有するＤＭＡ転送要求は、スケジューラ５０４に、現在処理されている任意のＤＭＡ転送を中断させるだろう。このようにして、リアルタイムで発生しなければならないＤＭＡ転送はスケジュールどおりに完了されうる。
【００４２】
どのＤＭＡ転送要求を処理すべきかをスケジューラ５０４が判定すると、適切なＤＭＡ転送要求情報が制御回路５０２へ送信される。１つの実施形態では、この情報は対象装置情報と読み出されるデータとを含みうる。制御回路５０２は次いで、ステップ６０６で、適切なＤＭＡチャネル・インタフェースにアクセスするためにこの情報を利用しうる。ステップ６０６の１つの実施形態では、制御回路５０２は受信されるデータのロケーションを判定し、対応するＤＭＡチャネル・インタフェース、例えば５１０を駆動する。続いて、制御回路５０２は起動信号を変換器５０８へ送信しうる。これらの起動信号は変換器５０８を起動しうる。変換器５０８の起動は変換器５０８内の誤り検出訂正符号化回路をイネーブルにすること、変換器５０８内の誤り検出訂正復号回路をイネーブルにすること、変換器５０８内の暗号化回路をイネーブルにすること、または変換器５０８内の復号回路をイネーブルにすることを含みうる。
【００４３】
チャネルクロックの受信に加えて、選択されたＤＭＡインタフェース、例えば５１０は、制御回路５０２からＤＭＡコマンド信号を受信しうる。ステップ６０８で、選択されたＤＭＡインタフェース、例えば５１０は、３１２のような独立ＤＭＡチャネル線上の対象装置へＤＭＡチャネルに沿ってＭＤＡ転送コマンドとＤＭＡチャネルクロックとを送信しうる。選択されたＤＭＡインタフェース、例えば５１０はまた、共有ＤＭＡバス２１４（図２）へのＤＭＡインタコネクト２１２のような共通線上の対象装置へＤＭＡチャネルに沿ってＤＭＡ転送コマンドとチャネルクロックとを送信しうる。
【００４４】
対象装置、例えば３１８は、ＤＭＡ転送情報を受信し、応答として、要求されたデータを開始ＤＭＡチャネル・インタフェース、例えば５１０へ返信する。ステップ６１０で、対象装置から送信されたデータは、選択されたチャネル・インタフェース、例えば５１０により受信される。データが受信されると、制御回路５０２は、対象装置から変換器５０８へ受信データを送信するために、チャネル・インタフェース、例えば５１０へコマンドを発行しうる。ステップ６１２で、ＤＭＡチャネル・インタフェース、例えば５１０は、対象装置から受信されたデータを変換器５０８へ送信する。
【００４５】
変換器５０８は送信ＤＭＡインタフェース、例えば５１０からデータを受信し、ステップ６１４で、変換器５０８は、送信されたデータを中間媒体に最初に記憶せずにデータを変換する。この変換はデータの誤り検出訂正符号化、データの誤り検出訂正復号、データの暗号化、またはデータの復号を含みうる。１つの実施形態では、変換はアドバンスド・エンクリプション・スタンダード（ＡＥＳ）暗号化技術を利用する。さらなる実施形態では、ハッシュ関数がデータの暗号化または復号に用いられうる。別の実施形態では、変換器５０８は、フェアプレイ暗号化技術に従ってデータを変換しうる。変換器５０８はまた、線形ブロック符号化および復号、ハミング符号のような２値ＢＣＨ符号、リード・ソロモン符号のような非２値ＢＣＨ符号、またはチェックサムを利用した符号化技術および復号技術を通じてデータを変換しうる。
【００４６】
変換が完了すると、ステップ６１６で、変換器５０８はデータを発行した特定のＤＭＡインタフェース、例えば５１０へ変換データを返信しうる。これによって、変換データは要求装置へ送信される。
【００４７】
最後の要求データが要求装置へ送信されると、制御回路５０２は、ステップ６１８で、スケジューラが空であるかどうかを判定する。すなわち、スケジューラが自身のキュー内に残っている任意のスケジュールされたＤＭＡ転送を有するかどうかを制御回路５０２は判定する。スケジュールされたＤＭＡ転送がスケジューラのキュー内に存在するならば、ステップ６０４とステップ６０６との間のブロック図６００へステップ６１８から戻る矢印によって図６に示されるように、上述の処理が繰り返される。スケジューラが空であるならば、制御回路５０２は変換器５０８へ停止（deactivation）信号を送信する。これらの停止信号は、ステップ６２０で、変換器５０８だけでなく、データ転送に用いられている関連したＤＭＡチャネルも停止しうる。
【００４８】
図７は本発明の１つの実施形態に従う図５のＤＭＡチャネル・インタフェース５１０の単純化されたブロック図である。１つの実施形態では、チャネル制御ロジック７０２はＤＭＡチャネルを構成して制御するために用いられる。例えば、チャネル制御ロジック７０２は任意の所与の時点で関連するＤＭＡチャネルを停止してもよく、それによって現在進行中の任意のＤＭＡ転送を中止する。別の実施形態では、チャネル制御ロジック７０２はＤＭＡチャネルの状態の報告に用いられる。例えば、ＤＭＡチャネルの使用中にエラーが発生したら、またはＤＭＡチャネルの使用中に停止が発生したら、チャネル制御ロジック７０２は現在の転送を中止し、記録し、障害を報告しうる。チャネル制御ロジック７０２はクロック線７１４に沿ってチャネルクロックを受信しうる。チャネル制御ロジック７０２はデータ線７１６を越えてデータの送信と受信との両方を行いうる。さらに、チャネル制御ロジック７０２はまた、コマンド線７０６に沿ってＤＭＡコマンド信号を受信しうる。
【００４９】
ＤＭＡコマンド信号はコマンド線７０６を越えて次ＤＭＡコマンド・レジスタ７０４からチャネル制御ロジック７０２へ発行される。次ＤＭＡコマンド・レジスタ７０４は、チャネル制御ロジック７０２へ送信されるＤＭＡコマンドのためのキューとして動作しうる。これらのＤＭＡコマンドは、ＤＭＡコントローラ２０２が対象装置から読み出すデータのアドレスを含みうる。ＤＭＡコマンドはまた、ＤＭＡコントローラ２０２が要求装置において書き込むデータのアドレスを含みうる。ＤＭＡコマンドはまた、チャネル制御ロジック７０２に対する停止コマンドまたは開始コマンドを含みうる。
【００５０】
ＤＭＡコマンドが実行される場合に、次ＤＭＡコマンド・レジスタ７０４に位置するキュー内の次コマンドがコマンド線７０６に沿ってチャネル制御ロジック７０２へ発行される。コマンド線７０６は現ＤＭＡコマンド・レジスタ７０８によって監視される。現ＤＭＡコマンド・レジスタ７０６は実行されている現ＤＭＡコマンドのコピーを記憶する。この情報は例えばＤＭＡ転送が何らかの理由で停止される場合に用いられうる。制御回路５０２は、停止が発生した場合に処理中だった転送を判定するために現ＤＭＡコマンド・レジスタ７０８へアクセスしうる。同様に、転送レジスタ７１０はＤＭＡ転送中に転送されているデータへアクセスしうる。例えば、転送レジスタ７１０は、停止が発生する前にＤＭＡコントローラ２０２によって実際に何バイトが転送されたかを判定しうる。これにより、制御回路５０２は、どれだけ多くのデータが対象装置から要求装置への移動に成功したかを判定できる。
【００５１】
ＤＭＡチャネル・インタフェース５１０はまた、Ｉ／Ｏ装置レジスタ７１２を含む。Ｉ／Ｏ装置レジスタ７１２はなんらかのＩ／Ｏ装置制御情報を含みうる。例えば、Ｉ／Ｏ装置レジスタ７１２は、Ｉ／Ｏ装置が転送または受け入れうるデータ幅に関する情報を含みうる。この情報は、ＤＭＡチャネルを越えて転送されるバイト数を判定する際に有用でありうる。Ｉ／Ｏ装置レジスタ７１２はまた、指定されたＩ／Ｏ装置とのＤＭＡチャネルに沿ったＤＭＡ転送のために必要となる最小チャネルクロック周波数に関する情報を含みうる。この情報はクロックマネージャ５１２においてＤＭＡクロック周波数を設定するために制御回路５０２によって用いられうる。
【００５２】
データ線７１６はデータが流れるリングバッファ７１８に接続される。このようにして、データはチャネル制御ロジック７０２を経由して対象装置からリングバッファ７１８へ渡され、リングバッファ７１８から要求装置へ送信される。リングバッファ７１８は、全キャッシュ線が収まるような十分な大きさでありうる。１つの実施形態では、リングバッファは３２バイトと６４バイトとのいずれかのサイズでありうる。別の実施形態では、リングバッファ７１８はＩ／Ｏ装置の任意のものによって送信可能な最大データパケットと同じサイズである。更なる実施形態では、リングバッファ７１８は分割されうる。例えば、リングバッファ７１８は変換前データの１つ以上のブロックを保持可能な第１パーティションを含みうる。第２パーティションは同様に変換後データのブロックを保持可能である。パーティションは変換器５０８の要求に従ってサイズが決められうる。例えば、アドバンスド・エンクリプション・スタンダード暗号化回路はデータが１６バイト・ブロックで自身へ送信されることを要求する。このように、リングバッファ７１８のパーティションは変換器５０８内の変換回路の要件に適合されうる。
【００５３】
リングバッファ７１８は受信データ線７２２および変換データ線７２４を経由して変換器５０８に結合されうる。１つの実施形態では、受信データ線７２２がリングバッファ７１８の第１パーティションに結合される一方で、変換データ線７２４がリングバッファの第２パーティションに結合されうる。さらなる実施形態では、単一の双方向バスが独立した一方向の受信データ線７２２および変換データ線７２４の代わりに用いられうる。リングバッファ状態レジスタ７２０はまた、どれくらいの量のデータがリングバッファ７１８内にあるかを判定するために用いられうる。これにより、例えば、ＤＭＡ転送が停止した状況において、リングバッファ７１８からどれくらいの量のデータが転送されていたかを判定できる。
【００５４】
図８はＤＭＡ転送の発行に続くチャネル制御ロジック７０２の動作を説明するフローチャート８００である。ステップ８０２で、チャネル制御ロジック７０２は要求されたデータを対象装置から受信する。ステップ８０４で、チャネル制御ロジック７０２からリングバッファ７１８へデータが送信される。１つの実施形態では、この転送は、要求装置に適したサイズで要求装置へ転送されることができるように、データをキューに入れる。別の実施形態では、この転送は、変換器５０８に適したサイズで変換器５０８へ転送されることができるように、データをキューに入れる。例えば、転送装置が８バイト・ブロックでデータを送信し、変換器５０８が適切な動作のために１６バイト・ブロックでデータが受信されることを要求するならば、リングバッファ７１８は、チャネル制御ロジック７０２へ送信された２つの８バイト・ブロックのデータを１つの１６バイト・ブロックのデータへ成形するために用いられうる。
【００５５】
ステップ８０６で、チャネル制御ロジック７０２はリングバッファ７１８がフルかどうかを判定する。１つの実施形態では、リングバッファ７１８は、他のデータがリングバッファ７１８に置けない場合に、リングバッファ７１８はフルである。第２実施形態では、変換器５０８が受信するのに適したサイズへデータが成形される場合に、リングバッファ７１８はフルである。別の実施形態では、変換前データを保持可能な第１パーティションがフルである場合にだけ、リングバッファ７１８はフルである。リングバッファ７１８がフルである場合に、ステップ８０８で、チャネル制御ロジック７０２はリングバッファ内のデータを変換器５０８へ送信する。リングバッファ内のデータの送信は、受信データ線７２２に沿って発生しうる。しかしながら、リングバッファ７１８がフルでないならば、ステップ８１０で、チャネル制御ロジック７０２は、対象装置からの送信が完了したかどうかを判定する。対象装置からの送信が完了したならば、ステップ８０８でリングバッファ７１８はリングバッファ内のデータを変換器５０８へ送信する。しかしながら、対象装置からの送信が完了していないならば、チャネル制御ロジック７０２は、フローチャート８００で概説されたステップをステップ８０２から始めて繰り返す。
【００５６】
ステップ８０８でリングバッファ７１８によってデータが変換器５０８へ送信された後に、ステップ８１０で変換器５０８は受信されたデータを変換しうる。この変換は、暗号化動作または復号動作に用いられるアルゴリズムと鍵とを指定するレジスタの使用で達成されうる。同様に、変換器内のレジスタは、データの符号化又は復号に用いられる誤り訂正符号を指定しうる。暗号化構成において、変換器５０８また、レジスタを含んでもよく、レジスタは暗号化回路により用いられる初期化ベクトルを保持しうる。レジスタはまた、暗号化回路により用いられるＮバイト鍵を保持しうる。１つの実施形態では、これらの鍵は対称鍵タイプでありうる。別の実施形態では、これらの鍵は非対称（公開）鍵タイプでありうる。
【００５７】
ステップ８１０において変換器５０８によってデータが変換されると、ステップ８１２で、変換器は変換データをリングバッファ７１８へ送信する。変換データは変換データ線７２４に沿って送信されうる。１つの実施形態では、この転送は、要求装置に適したサイズで要求装置へ変換データが送信されうるように、リングバッファ７１８内のキューにデータを入れる。例えば、変換器５０８がデータを１６バイトで送信し、要求装置がデータを３２バイト・ブロックで読み出す場合に、リングバッファ７１８は、２つの１６バイト・ブロックの変換データから１つの３２バイト・ブロックへ成形するために用いられうる。リングバッファ７１８のキュー内のデータサイズが要求装置への送信に適したサイズである場合に、ステップ８１４で、チャネル制御ロジック７０２は変換データを要求装置へ送信する。１つの実施形態では、ステップ８１４が完了した後に要求装置へ送信されるデータがさらにある場合に、チャネル制御ロジック７０２はフローチャート８００に概説されたステップをステップ８０２から始めて繰り返す。
【００５８】
本発明は様々な変形および代替の形式を受け入れる余地がありうるものの、特定の実施形態が図面の例を用いて示され、本明細書で詳細に説明さえた。しかしながら、本発明は開示された特定の形式に限定される意図が無いことが理解されるべきである。むしろ、本発明は、以下の添付の特許請求の範囲により規定される本発明の精神および範囲内に入るすべての変形、均等物および代替に及ぶ。
【図１】
2011516978.tif 000003
【図２】
2011516978.tif 000004
【図３】
2011516978.tif 000005
【図４】
2011516978.tif 000006
【図５】
2011516978.tif 000007
【図６】
2011516978.tif 000008
【図７】
2011516978.tif 000009
【図８】
2011516978.tif 000010
【国際調査報告】
2011516978.tif 000011
2011516978.tif 000012
2011516978.tif 000013