(57)【要約】【課題】周期的に動作する周辺装置にかかわるＤＭＡ転送のリアルタイム制御を低コスト・低消費電力で実現するＤＭＡコントローラを提供する。【解決手段】時間を計測するためのカウンタ１１２と、該カウンタ１１２の値とＤＭＡ転送の予定時間を示すカウンタ値とを比較するカウンタ比較器１１３と、周辺装置１０７のレジスタをリードして状態を取得する周辺装置リード部１１４と、前記周辺装置１０７のレジスタの値とＤＭＡ転送の開始条件とを比較する状態比較器１１５とを有するＤＭＡコントローラ１０８であって、前記カウンタ比較器１１３による比較結果の成立をトリガに、指定された順序に従い、前記ＤＭＡ転送の予定時間を示すカウンタ値の更新と、前記周辺装置１０７のレジスタのリードと、前記状態比較器１１５による比較と、前記状態比較器１１５による比較結果の成立を条件としたＤＭＡ転送とを実行する。【選択図】図１
2008262315.tif 000002
【特許請求の範囲】
【請求項１】
時間を計測するためのカウンタと、該カウンタの値とＤＭＡ転送の予定時間を示すカウンタ値とを比較するカウンタ比較器と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とＤＭＡ転送の開始条件とを比較する状態比較器とを有するＤＭＡコントローラであって、
前記カウンタ比較器による比較結果の成立をトリガに、指定された順序に従い、前記ＤＭＡ転送の予定時間を示すカウンタ値を次の予定時間を示す値へ更新する処理と、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたＤＭＡ転送とを実行することを特徴とするＤＭＡコントローラ。
【請求項２】
周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とＤＭＡ転送の開始条件とを比較する状態比較器とを有するＤＭＡコントローラであって、
前記周辺装置からの割込み信号をトリガに、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたＤＭＡ転送とを実行することを特徴とするＤＭＡコントローラ。
【請求項３】
請求項１または２記載のＤＭＡコントローラにおいて、
前記周辺装置リード部は、前記状態比較器による比較結果が成立するまで、前記周辺装置のレジスタのリードを繰り返すことを特徴とするＤＭＡコントローラ。
【請求項４】
請求項１〜３のいずれか１項記載のＤＭＡコントローラにおいて、
前記周辺装置のレジスタに対して指定された条件に従ってライトする周辺装置ライト部を有し、ＤＭＡ転送の開始時または終了後に、前記周辺装置ライト部により前記周辺装置のレジスタをライトすることによって、前記周辺装置の制御もしくは前記周辺装置への情報の通知を行うことを特徴とするＤＭＡコントローラ。
【請求項５】
ＤＭＡコントローラにおいて、時間を計測するカウント手順と、前記計測された時間とＤＭＡ転送の予定時間とを比較するカウンタ比較手順と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード手順と、前記周辺装置リード手順によってリードされた前記レジスタの値とＤＭＡ転送の開始条件とを比較する状態比較手順とを実行するＤＭＡ転送方法であって、
前記カウンタ比較手順による比較結果の成立をトリガに、指定された順序に従い、前記ＤＭＡ転送の予定時間を次の予定時間へ更新するカウンタ更新手順と、前記周辺装置リード手順と、前記状態比較手順と、前記状態比較手順による比較結果の成立を条件としたＤＭＡ転送とを実行することを特徴とするＤＭＡ転送方法。
【請求項６】
ＤＭＡコントローラにおいて、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード手順と、前記周辺装置リード手順によってリードされた前記レジスタの値とＤＭＡ転送の開始条件とを比較する状態比較手順とを実行するＤＭＡ転送方法であって、
前記周辺装置からの割込み信号をトリガに、前記周辺装置リード手順と、前記状態比較手順と、前記状態比較手順による比較結果の成立を条件としたＤＭＡ転送とを実行することを特徴とするＤＭＡ転送方法。
【請求項７】
請求項５または６記載のＤＭＡ転送方法において、
前記周辺装置リード手順では、前記状態比較手順による比較結果が成立するまで、前記周辺装置のレジスタのリードを繰り返すことを特徴とするＤＭＡ転送方法。
【請求項８】
請求項５〜７のいずれか１項記載のＤＭＡ転送方法において、
ＤＭＡ転送の開始時または終了後に、前記周辺装置のレジスタに対して指定された条件に従ってライトする周辺装置ライト手順を実行することによって、前記周辺装置の制御もしくは前記周辺装置への情報の通知を行うことを特徴とするＤＭＡ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、計算機システムにおいてマルチメディアデータを取り扱う周辺装置間のデータ転送を行うＤＭＡコントローラに関し、例えば、映像、音声、それらに関わるメタデータを格納したストレージと映像、音声デコーダ間のデータ転送をＣＰＵに負荷をかけず効率良く高速に行う技術に適用して有効な技術に関するものである。
【背景技術】
【０００２】
近年、計算機システムが普及するに従って、音声や動画などマルチメディアデータの処理を効率よく行う技術の必要性が高まってきた。マルチメディア処理は単純なデータ転送の繰り返しであり、かつ高いリアルタイム性、スループットが要求される。このため、マルチメディア処理にはＣＰＵの負荷が大きいプログラムＩ／Ｏ制御方式（ＰＩＯ制御方式）ではなくダイレクト・メモリ・アクセス方式（ＤＭＡ方式）が採用される。
【０００３】
ＣＰＵ、メモリ、入力装置、出力装置およびＤＭＡコントローラを備えた従来の計算機システムにおいて、入力装置とメモリ間、メモリの異なる領域間、メモリと出力装置間のマルチメディアデータの周期的な高速転送を実現する場合、タイマーからＣＰＵへの周期的な割込みにより割込みプログラムを起動し、この割込みプログラムでＤＭＡコントローラの動作を制御していた。
【０００４】
また、タイマーではタイミングを計ることができない場合は、周辺装置がＤＭＡ転送を開始できる適切な状態になるまで、ＣＰＵにより周辺装置の状態を表すレジスタ値のリードを続けるポーリング方式をとっていた。
【０００５】
また、特開平８−２４９２６７号公報（特許文献１）に開示されているＤＭＡコントローラのように、ＤＭＡコントローラの制御周期が正確な場合は、ＤＭＡコントローラ内蔵のカウンタにより時間を計測し、ＣＰＵの介在なしに一定の周期でＤＭＡ転送を行い、割込みにかかるＣＰＵ負荷を低減する方式がとられてきた。
【０００６】
しかし、周辺装置の動作周期にジッタがある場合は、特許文献１のような方式はとることができず、上記のような割込みやポーリング方式を採用する必要があった。
【特許文献１】特開平８−２４９２６７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
多くのメディア処理に関する周辺装置は、完全に一定の周期で動作させることができない。例えば、ハードディスクなどのディスク記憶装置は、ヘッドを移動するシークやエラー処理のためその応答時間が一定ではない。また、ネットワークも経路やエラーによりスループットは一定ではなくジッタが発生する。映像や音声のデコーダもほぼ一定の周期で動作するが、映像、音声データの圧縮率が一定ではなく、その展開にかかる時間も一定ではないため、一定周期でその処理が完了しない場合がある。この様に、多くの周辺装置はほぼ一定周期で動作するがジッタがあるため、ＤＭＡ転送を行う前に各周辺装置の状態を確認するためのＣＰＵ処理が必要となり、周辺装置による割込みやポーリング方式が採用されてきた。
【０００８】
割込みやポーリング方式では、ＣＰＵにより周期的に繰り返される処理を実現していたため、以下のような問題があった。
【０００９】
まず、周期的に起動する割込みやポーリング用のプログラムが必要となるため、プログラムサイズが大きくなりメモリを圧迫してしまう。さらに、周期的にアプリケーションとは異なるプログラムを実行するためにＣＰＵのキャッシュ利用効率低下によるＣＰＵ処理性能の低下が発生する。
【００１０】
また、アプリケーションとは異なるプログラムの実行および実行するプログラムの切り替えにかかるＣＰＵ負荷が大きくなり、アプリケーションで使用できるＣＰＵ資源が減少してしまう。ＣＰＵの負荷低減の方法としてはマルチＣＰＵ構成をとる方法がある。しかし、この方法はアプリケーションを実行するＣＰＵの効率は向上するが、ＤＭＡや周辺装置の制御を行うＣＰＵにおいては同様の問題が発生し、ＣＰＵ負荷が上がってしまうという問題もある。
【００１１】
さらに、ＣＰＵに高いリアルタイム性が要求されるため、システムコストが高くなってしまう。例えば、ＤＭＡ起動時間の精度を高めるためには、動作プログラムを割込みプログラムやポーリングプログラムに切替える時間およびその実行時間を短縮しなければならない。このためマルチＣＰＵ化や、プログラム切替え用のメモリ、レジスタ、その制御回路の増強、ＣＰＵ動作周波数向上などハードウェアを高性能化することによるハードウェアコストの上昇、およびプログラムの高度な最適化にかかるソフトウェア開発コストの上昇などが考えられる。特に上記のようなハードウェアの高性能化は消費電力の上昇要因ともなり、さらに問題となる。
【００１２】
これらＣＰＵ処理のリアルタイム性に関する要求は、周期の異なる複数の周辺装置を取り扱う場合さらに厳しくなる。タイマー割込みで実行する場合、その割込み周期は各周辺装置の割込み周期の最大公約数となり、割込みプログラムの動作回数が激増するため、ＣＰＵ負荷が増加する。
【００１３】
そこで本発明は、ＣＰＵが行っていた割込みプログラムやポーリングプログラムの処理を、小規模な回路の付加により実行可能とし、既存の周辺装置の有効利用、周辺装置の動作周期のジッタへの柔軟な対応、プログラムによるメモリやストレージの使用量削減、ＣＰＵのキャッシュ効率の向上ならびに高いリアルタイム性を低コスト・低消費電力で実現するＤＭＡコントローラおよびＤＭＡ転送方法を提供することを目的とする。
【００１４】
本発明の前記ならびにその他の目的と新規な特徴は、本明細書の記述および添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１５】
本願において開示される発明のうち、代表的なものの概要を簡単に説明すれば、次のとおりである。
【００１６】
本発明によるＤＭＡコントローラは、時間を計測するためのカウンタと、該カウンタの値とＤＭＡ転送の予定時間を示すカウンタ値とを比較するカウンタ比較器と、周辺装置のレジスタをリードして周辺装置の状態を取得する周辺装置リード部と、該周辺装置リード部によってリードされた前記レジスタの値とＤＭＡ転送の開始条件とを比較する状態比較器とを有するＤＭＡコントローラであって、前記カウンタ比較器による比較結果の成立をトリガに、指定された順序に従い、前記ＤＭＡ転送の予定時間を示すカウンタ値を次の予定時間を示す値へ更新する処理と、前記周辺装置リード部による前記周辺装置のレジスタのリードと、前記状態比較器による比較と、前記状態比較器による比較結果の成立を条件としたＤＭＡ転送とを実行することを特徴とするものである。
【発明の効果】
【００１７】
本願において開示される発明のうち、代表的なものによって得られる効果を簡単に説明すれば以下のとおりである。
【００１８】
本発明のＤＭＡコントローラによれば、小規模な回路で切り替え速度の速いメモリバスを有効に利用して、ＣＰＵの助けを借りず自立的にＤＭＡコントローラが周期的に既存周辺装置のレジスタやメモリの状態を確認してＤＭＡ転送することが可能となる。このため、既存周辺装置に特別な変更を加えるコストをかけることなく、周辺装置の動作周期のジッタに柔軟に対応し、ＣＰＵ負荷を低減してシステム性能を向上させることができる。
【発明を実施するための最良の形態】
【００１９】
以下、本発明の実施の形態を図面に基づいて詳細に説明する。なお、実施の形態を説明するための全図において、同一部には原則として同一の符号を付し、その繰り返しの説明は省略する。
【００２０】
本発明の実施の形態は、周期的なＤＭＡ転送を行うために時間を計測するためのカウンタまたは割込み信号を利用し、カウンタの値により判定された周期または割込み信号をトリガにＤＭＡ転送に関連する周辺装置の状態やＣＰＵでのプログラムの実行状況を取得する周辺装置リード部を有し、当該周辺装置リード部にて取得した周辺装置の状態やＣＰＵでのプログラムの実行状況に応じて自立的なＤＭＡ転送を実現する周辺装置状態確認機能付ＤＭＡコントローラである。
【００２１】
＜実施の形態１＞
本発明の実施の形態１である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１、図２を用いて説明する。
【００２２】
図１は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。図１において、当該計算機システムは、ＣＰＵ１０１、バス１０２、アービタ１０３、メモリ１０４、入力装置１０５、出力装置１０６、周辺装置１０７、ＤＭＡＣ１０８を有する構成となっている。
【００２３】
ＣＰＵ１０１は、バス１０２を介して、アービタ１０３、メモリ１０４、入力装置１０５、出力装置１０６、周辺装置１０７、ＤＭＡＣ１０８の各装置を管理、制御する。アービタ１０３は、ＣＰＵ１０１や、メモリ１０４、入力装置１０５、出力装置１０６、周辺装置１０７、ＤＭＡＣ１０８によるバス１０２の利用要求を調停する。メモリ１０４は、ＣＰＵ１０１が実行するプログラムやデータを格納する。入力装置１０５は、当該計算機システムのユーザによる操作や、入力データを受け取る。出力装置１０６は、当該計算機システムからユーザへの通知情報やデータを送出する。周辺装置１０７は、ＣＰＵ１０１の処理を補助するためのデコーダやチューナ等であり、周辺装置１０７を複数有する構成も可能である。
【００２４】
本実施の形態によるＤＭＡＣ１０８は、バスＩＦ１１０、レジスタ１１１、カウンタ１１２、カウンタ比較器１１３、周辺装置リード部１１４、状態比較器１１５、転送部１１６の各機能ブロックから構成される。
【００２５】
バスＩＦ１１０は、ＣＰＵ１０１からの指示をバス１０２を介して受け取り、ＤＭＡＣ１０８がメモリ１０４や周辺装置１０７のレジスタのリード／ライトを行うためのインターフェースを提供する。レジスタ１１１は、ＣＰＵ１０１からの指示内容を格納する。カウンタ１１２は、レジスタ１１１の設定内容に従って動作し、ＤＭＡＣ１０８の動作タイミングを決定するため、一定周期のクロックに従って時間をカウントして計測するカウント手順を実行する。
【００２６】
カウンタ比較器１１３は、カウンタ１１２の値を基に、ＣＰＵ１０１によってレジスタ１１１に設定された指示内容に従い、後段の周辺装置リード部１１４〜転送部１１６の各機能ブロックが周期動作を実行するタイミングであるかどうかを判定するカウンタ比較手順を実行する。周辺装置リード部１１４は、カウンタ比較器１１３の比較の結果、周期動作を実行するタイミングであると判定された場合に、ＣＰＵ１０１によって設定されたレジスタ１１１の指示内容に従って、メモリ１０４や周辺装置１０７の状態を検出するためにこれらのレジスタのリードを行う周辺装置リード手順を実行する。
【００２７】
状態比較器１１５は、周辺装置リード部１１４がリードしたメモリ１０４や周辺装置１０７のレジスタの内容と、ＣＰＵ１０１によってレジスタ１１１に設定されたＤＭＡ転送の開始条件とを比較する状態比較手順を実行する。転送部１１６は、状態比較器１１５による比較結果を受け、ＤＭＡ転送開始の条件を満たしていると判定された場合に、ＣＰＵ１０１によってレジスタ１１１に設定された指示内容に従って、メモリ１０４内、メモリ１０４と周辺装置１０７間、周辺装置１０７間でのデータ転送を行う。
【００２８】
図２は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。ＣＰＵ１０１はこれらのレジスタを設定し、本実施の形態によるＤＭＡＣ１０８は、その設定内容に従いバスＩＦ１１０を介して周期的にメモリ１０４や周辺装置１０７の状態を確認して、これら装置と同期を取りながらＤＭＡ転送を行う。
【００２９】
図２において、動作イネーブルレジスタ２０１は、ＤＭＡＣ１０８の動作、非動作の設定を格納するレジスタである。周辺装置リードカウンタイネーブルレジスタ２０２は、カウンタ１１２の動作、非動作の設定を格納するレジスタである。
【００３０】
周辺装置リードカウンタ値レジスタ２０３は、カウンタ１１２の動作開始からの時間を格納するレジスタである。ＣＰＵ１０１によりカウンタ１１２の初期値を設定し、周辺装置リードカウンタイネーブルレジスタ２０２を動作状態に設定した後は、ＣＰＵ１０１は周辺装置リードカウンタ値レジスタ２０３をリードすることにより、動作中のカウンタ１１２の値を取得することができる。
【００３１】
周辺装置リード周期レジスタ２０４は、周辺装置リード部１１４がメモリ１０４や周辺装置１０７の状態を確認するためのリードを行う周期を格納するレジスタである。周辺装置次回リードカウンタ値レジスタ２０５は、周辺装置リード部１１４が次にリードを行うカウンタ値を格納するレジスタである。当該レジスタの値とカウンタ１１２の値とをカウンタ比較器１１３によって比較し、一致した時に周辺装置リード部１１４を動作させて周期的な動作を実現する。
【００３２】
周辺装置リードアドレスレジスタ２０６は、周辺装置リード部１１４が状態を確認する対象である、ＣＰＵ１０１が実行中のプログラムの状態を示すメモリ１０４の領域や、周辺装置１０７のレジスタのアドレスを格納するレジスタである。周辺装置リードアクセスサイズレジスタ２０７は、周辺装置リード部１１４が状態を確認する対象である、ＣＰＵ１０１が実行中のプログラムの状態を示すメモリ１０４の領域や周辺装置１０７のレジスタのアクセスサイズを格納するレジスタである。
【００３３】
比較条件レジスタ２０８は、ＣＰＵ１０１によって設定され、周辺装置リード部１１４によるメモリ１０４や周辺装置１０７のレジスタをリードした結果と、周辺装置リード比較データレジスタ２１０、周辺装置リードマスクデータレジスタ２１１の内容とを状態比較器１１５にて比較する際の条件を格納するレジスタである。前記条件としては、リードした結果について、周辺装置リードマスクデータレジスタ２１１で指定された位置のビットが１ビット以上Ｈｉｇｈ、１ビット以上Ｌｏｗ、もしくは周辺装置リード比較データレジスタ２１０と１ビット以上一致、完全一致、不一致、より大きい、以上、より小さい、以下というような内容を設定することができる。
【００３４】
動作内容レジスタ２０９は、周辺装置リード部１１４、状態比較器１１５および転送部１１６が、カウンタ比較器１１３での周期判定の比較結果の成立をトリガに動作する際の動作内容のパターンを格納するレジスタである。動作内容レジスタ２０９に設定される動作内容のパターンは以下の通りである。
【００３５】
（１）２０９−１
メモリ１０４または周辺装置１０７のリードは行わず、後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行する。その後、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行った後、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００３６】
（２）２０９−２
後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行する。その後、比較条件レジスタ２０８の比較条件が成立するまでメモリ１０４または周辺装置１０７のリードを続ける。比較条件が成立したら、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行った後、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００３７】
（３）２０９−３
比較条件レジスタ２０８の比較条件が成立するまでメモリ１０４または周辺装置１０７のリードを続ける。比較条件が成立したら、後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行する。その後、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行った後、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００３８】
（４）２０９−４
比較条件レジスタ２０８の比較条件が成立するまでメモリ１０４または周辺装置１０７のリードを続ける。比較条件が成立したら、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行う。その後、後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行した後、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００３９】
（５）２０９−５
後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行した後、メモリ１０４または周辺装置１０７のリードを行う。比較条件レジスタ２０８の比較条件が成立していなければ、カウンタ比較器１１３の次の比較結果の成立待ちとなる。比較条件が成立していれば、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行った後、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００４０】
（６）２０９−６
メモリ１０４または周辺装置１０７のリードを行い、比較条件レジスタ２０８の比較条件が成り立っていなければ、後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行した後に、カウンタ比較器１１３の次の比較結果の成立待ちとなる。比較条件が成り立っていれば、後述の転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタに設定された内容に従ってＤＭＡ転送を行った後に、後述の周辺装置リード次周期調整方法レジスタ２１２の内容に従って周辺装置次回リードカウンタ値レジスタ２０５の値を更新するカウンタ更新手順を実行し、カウンタ比較器１１３の次の比較結果の成立待ちとなる。
【００４１】
以上に説明したような動作内容のパターンを複数有することにより、周辺装置１０７の特性や動作速度などの違いに応じて、転送可能な状態ではなかった場合の対応などを柔軟に設定することが可能となる。
【００４２】
周辺装置リード比較データレジスタ２１０は、状態比較器１１５において周辺装置リード部１１４でリードしたデータと比較する対象となるデータを格納するレジスタである。周辺装置リードマスクデータレジスタ２１１は、状態比較器１１５において周辺装置リード部１１４でリードしたデータと周辺装置リード比較データレジスタ２１０のデータとを比較する範囲を格納するレジスタである。
【００４３】
周辺装置リード次周期調整方法レジスタ２１２は、周辺装置リード部１１４による周辺装置１０７のリードの次周期を調整する方法のパターンを格納するレジスタである。調整方法のパターンとしては、（１）次周期無し、（２）周辺装置次回リードカウンタ値レジスタ２０５を、周辺装置リードカウンタ値レジスタ２０３の値に周辺装置リード周期レジスタ２０４の値を加えた値に更新する、（３）周辺装置次回リードカウンタ値レジスタ２０５を、周辺装置次回リードカウンタ値レジスタ２０５の値に周辺装置リード周期レジスタ２０４の値を加えた値に更新する、といったパターンを設定することができる。これにより、周辺装置１０７の特性や動作速度などの違いに応じて、次周期のタイミングの調整方法を柔軟に設定することが可能となる。
【００４４】
転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタは、転送部１１６の転送動作を決定するためのレジスタである。
【００４５】
転送ソースアドレスレジスタ２１３は、転送部１１６によって転送する、メモリ１０４または周辺装置１０７のソースデータが格納されているアドレスを格納するレジスタである。転送デスティネーションアドレスレジスタ２１４は、転送部１１６による転送先である、メモリ１０４または周辺装置１０７のデータ格納領域のアドレスを格納するレジスタである。転送ソースアクセスサイズレジスタ２１５は、転送部１１６がソースデータの格納されているメモリ１０４または周辺装置１０７のリードを行うときのアクセスサイズを格納するレジスタである。転送デスティネーションアクセスサイズレジスタ２１６は、転送部１１６が転送データの書き込み先であるメモリ１０４または周辺装置１０７にライトを行うときのアクセスサイズを格納するレジスタである。
【００４６】
転送ソースループサイズレジスタ２１７は、転送を繰り返し行う場合のリードする領域のサイズを格納するレジスタである。転送部１１６は、当該レジスタに格納されたサイズ分の転送を行うと、リードするアドレスを転送ソースアドレスレジスタ２１３に格納されたアドレスに戻す。これによって転送部１１６は、転送ソースアドレスレジスタ２１３を先頭とした転送ソースループサイズレジスタ２１７に格納されたサイズの領域を繰り返しリードすることができ、小さい領域を使用して大きなデータを転送することが可能となる。
【００４７】
転送デスティネーションループサイズレジスタ２１８は、転送を繰り返し行う場合のライトする領域のサイズを格納するレジスタである。転送部１１６は、当該レジスタに格納されたサイズ分の転送を行うと、ライトするアドレスを転送デスティネーションアドレスレジスタ２１４に格納されたアドレスに戻す。これによって転送部１１６は、転送デスティネーションアドレスレジスタ２１４を先頭とした転送デスティネーションループサイズレジスタ２１８に格納されたサイズの領域を繰り返しライトすることができ、小さい領域を使用して大きなデータを転送することが可能となる。
【００４８】
転送ソースアドレスカウント方向レジスタ２１９は、転送部１１６のリードを転送ソースアドレスレジスタ２１３に格納するアドレスから加算方向に行うか減算方向に行うかの設定を格納するレジスタである。転送デスティネーションアドレスカウント方向レジスタ２２０は、転送部１１６のライトを転送デスティネーションアドレスレジスタ２１４に格納されたアドレスから加算方向に行うか減算方向に行うかの設定を格納するレジスタである。転送サイズレジスタ２２１は、転送部１１６が１度のＤＭＡ転送で転送するデータ量を格納するレジスタである。
【００４９】
次に、本実施の形態によるＤＭＡＣの動作の流れを以下に説明する。
【００５０】
まず、ＣＰＵ１０１は、アービタ１０３からバス１０２の使用権を獲得し、バス１０２、バスＩＦ１１０を介してレジスタ１１１にアクセスして転送ソースアドレスレジスタ２１３〜転送サイズレジスタ２２１の各レジスタを設定する。これにより、転送部１１６がＤＭＡ転送を実行する際の転送内容を指示する。
【００５１】
次に、ＣＰＵ１０１は、周辺装置リードカウンタ値レジスタ２０３〜周辺装置リード次周期調整方法レジスタ２１２の各レジスタの設定を行い、ＤＭＡＣ１０８の周期的な動作および、メモリ１０４や周辺装置１０７の状態確認方法および同期の取り方を指示する。
【００５２】
次に、ＣＰＵ１０１は、動作イネーブルレジスタ２０１および周辺装置リードカウンタイネーブルレジスタ２０２を動作状態に設定し、カウンタ１１２のカウント手順を開始させ、ＤＭＡＣ１０８の動作を開始させる。
【００５３】
レジスタ１１１からカウンタ１１２に対し、周辺装置リードカウンタイネーブルレジスタ２０２の値を通知しており、周辺装置リードカウンタイネーブルレジスタ２０２が動作状態に設定されたことによりカウンタ１１２がカウント手順を開始する。
【００５４】
また、レジスタ１１１からカウンタ比較器１１３、周辺装置リード部１１４、状態比較器１１５、転送部１１６に対し動作イネーブルレジスタ２０１の値を通知しており、動作イネーブルレジスタ２０１が動作状態に設定されたことにより、カウンタ比較器１１３はカウンタ比較手順を開始し、カウンタ１１２の値と周辺装置次回リードカウンタ値レジスタ２０５の値との比較を開始する。周辺装置リード部１１４はカウンタ比較器１１３からの比較結果成立の通知待ち状態となり、状態比較器１１５は周辺装置リード部１１４からのリード結果通知待ち状態となり、転送部１１６は状態比較器１１５からの比較結果通知待ちおよび転送開始指示待ち状態となる。
【００５５】
カウンタ１１２は、周辺装置リードカウンタイネーブルレジスタ２０２が動作状態に設定されている限りカウントを続ける。ＤＭＡＣ１０８の周期動作を一時的に停止するには、周辺装置リードカウンタイネーブルレジスタ２０２を非動作に設定する。この場合は、カウンタ１１２がカウント値を格納したまま一時停止するため、一時停止中の時間は計測できなくなる。動作イネーブルレジスタ２０１を非動作に設定し、カウンタ比較器１１３、周辺装置リード部１１４、状態比較器１１５、転送部１１６の動作を停止させることでも一時停止することができる。この場合は、周辺装置リードカウンタイネーブルレジスタ２０２が動作状態であれば、カウンタ１１２がカウントを続け、時間を計測できる。
【００５６】
カウンタ比較器１１３でのカウンタ１１２の値と周辺装置次回リードカウンタ値レジスタ２０５の値との比較において、両者の値が一致すると、周期判定の比較結果成立を周辺装置リード部１１４に通知する。
【００５７】
周辺装置リード部１１４が、カウンタ比較器１１３からの周期判定の比較結果成立の通知を受け取った後、周辺装置リード部１１４および状態比較器１１５は、動作内容レジスタ２０９の設定内容に従って周期動作を開始する。図３〜図８は、動作内容レジスタ２０９の設定内容に対応する周辺装置リード部１１４および状態比較器１１５での周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。以下に、動作内容レジスタ２０９の設定内容毎にその内容を説明する。
【００５８】
（１）２０９−１の場合（図３）
周辺装置リード部１１４は、リードを行わず、状態比較器１１５に周辺装置次回リードカウンタ値レジスタ２０５の更新指示を通知し、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００５９】
状態比較器１１５は、周辺装置リード部１１４から周辺装置次回リードカウンタ値レジスタ２０５の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新し、転送開始条件成立を転送部１１６に通知する。
【００６０】
（２）２０９−２の場合（図４）
周辺装置リード部１１４は、状態比較器１１５に周辺装置次回リードカウンタ値レジスタ２０５の更新指示を通知する。次に周辺装置リードアドレスレジスタ２０６に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ２０７に格納されたアクセスサイズでリードを行い、リードデータを状態比較器１１５に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００６１】
状態比較器１１５は、周辺装置リード部１１４から周辺装置次回リードカウンタ値レジスタ２０５の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新する。また、周辺装置リード部１１４からリードデータを受け取ると、比較条件レジスタ２０８の設定内容および周辺装置リードマスクデータレジスタ２１１に格納された比較範囲に従って、周辺装置リード比較データレジスタ２１０の内容とリードデータとを比較して、比較結果を周辺装置リード部１１４と転送部１１６に通知する。
【００６２】
（３）２０９−３の場合（図５）
周辺装置リード部１１４は、周辺装置リードアドレスレジスタ２０６に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ２０７に格納されたアクセスサイズでリードを行い、リードデータを状態比較器１１５に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、状態比較器１１５に周辺装置次回リードカウンタ値レジスタ２０５の更新指示を通知して、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００６３】
状態比較器１１５は、周辺装置リード部１１４からリードデータを受け取ると、比較条件レジスタ２０８の設定内容および周辺装置リードマスクデータレジスタ２１１に格納された比較範囲に従って、周辺装置リード比較データレジスタ２１０の内容とリードデータとを比較して、比較結果を周辺装置リード部１１４に通知する。また、周辺装置次回リードカウンタ値レジスタ２０５の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新し、転送開始条件成立を転送部１１６に通知する。
【００６４】
（４）２０９−４の場合（図６）
周辺装置リード部１１４は、周辺装置リードアドレスレジスタ２０６に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ２０７に格納されたアクセスサイズでリードを行い、リードデータを状態比較器１１５に渡してその比較結果を受け取る。当該比較結果が成立するまでリードを繰り返し、比較結果が成立したら、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００６５】
状態比較器１１５は、周辺装置リード部１１４からリードデータを受け取ると比較条件レジスタ２０８の設定内容及び、周辺装置リードマスクデータレジスタ２１１に格納された比較範囲に従って、周辺装置リード比較データレジスタ２１０の内容とリードデータとを比較して、比較結果を周辺装置リード部１１４と転送部１１６に通知する。また、転送部１１６から転送終了通知を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新する。
【００６６】
（５）２０９−５の場合（図７）
周辺装置リード部１１４は、状態比較器１１５に周辺装置次回リードカウンタ値レジスタ２０５の更新指示を通知する。次に周辺装置リードアドレスレジスタ２０６に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ２０７に格納されたアクセスサイズでリードを行い、リードデータを状態比較器１１５に渡してその比較結果を受け取った後、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００６７】
状態比較器１１５は、周辺装置リード部１１４から周辺装置次回リードカウンタ値レジスタ２０５の更新指示を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新する。また、周辺装置リード部１１４からリードデータを受け取ると、比較条件レジスタ２０８の設定内容及び、周辺装置リードマスクデータレジスタ２１１に格納された比較範囲に従って、周辺装置リード比較データレジスタ２１０の内容とリードデータとを比較し、比較結果を周辺装置リード部１１４と転送部１１６に通知する。
【００６８】
（６）２０９−６の場合（図８）
周辺装置リード部１１４は、周辺装置リードアドレスレジスタ２０６に格納されたアドレスに対し、周辺装置リードアクセスサイズレジスタ２０７に格納されたアクセスサイズでリードを行い、リードデータを状態比較器１１５に渡してその比較結果を受け取る。当該比較結果が成立でなければ、状態比較器１１５に周辺装置次回リードカウンタ値レジスタ２０５の更新指示を通知してから、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。比較結果が成立であれば、カウンタ比較器１１３からの次の比較結果成立の通知待ち状態に戻る。
【００６９】
状態比較器１１５は、周辺装置リード部１１４からリードデータを受け取ると、比較条件レジスタ２０８の設定内容及び、周辺装置リードマスクデータレジスタ２１１に格納された比較範囲に従って、周辺装置リード比較データレジスタ２１０の内容とリードデータとを比較し、比較結果を周辺装置リード部１１４と転送部１１６に通知する。また、周辺装置リード部１１４から周辺装置次回リードカウンタ値レジスタ２０５の更新指示を受け取るか、または転送部１１６から転送終了通知を受け取ると、周辺装置リード次周期調整方法レジスタ２１２の内容に従い、周辺装置リードカウンタ値レジスタ２０３〜周辺装置次回リードカウンタ値レジスタ２０５の各レジスタの値を基に周辺装置次回リードカウンタ値レジスタ２０５の値を更新する。
【００７０】
以上に説明した動作によって状態比較器１１５から受けた転送開始条件成立、または比較結果の通知をトリガとして、転送部１１６はＤＭＡ転送の動作を開始する。状態比較器１１５から比較結果を受け取った場合は、当該比較結果が成立である場合のみＤＭＡ転送を行う。
【００７１】
まず、転送ソースアドレスレジスタ２１３に格納されたアドレスを先頭とし、転送ソースアドレスカウント方向レジスタ２１９に設定された方向に、転送ソースループサイズレジスタ２１７または転送サイズレジスタ２２１に格納されたサイズの領域のデータをリードする。
【００７２】
次に、リードしたデータを、転送デスティネーションアドレスレジスタ２１４に格納されたアドレスを先頭とし、転送デスティネーションアドレスカウント方向レジスタ２２０に設定された方向に、転送デスティネーションループサイズレジスタ２１８または転送サイズレジスタ２２１に格納されたサイズの領域にライトする。
【００７３】
このとき、リード単位は、転送ソースアクセスサイズレジスタ２１５に格納されたアクセスサイズであり、アドレスは順次このアクセスサイズ分、転送ソースアドレスカウント方向レジスタ２１９に設定された方向に更新され、転送ソースループサイズレジスタ２１７に格納されたサイズ分転送するたびに、転送ソースアドレスレジスタ２１３に格納されたアドレスに戻る。
【００７４】
また、ライト単位は、転送デスティネーションアクセスサイズレジスタ２１６に格納されたアクセスサイズであり、アドレスは順次このアクセスサイズ分、転送デスティネーションアドレスカウント方向レジスタ２２０に設定された方向に更新され、転送デスティネーションループサイズレジスタ２１８に格納されたサイズ分転送するたびに、転送デスティネーションアドレスレジスタ２１４に格納されたアドレスに戻る。
【００７５】
この様に、繰り返し同じアドレスにアクセスできるようにすることによって、ＣＰＵ１０１が実行するプログラム、周辺装置１０７の管理する２面バッファやリングバッファなどを対象とした転送も可能となる。
【００７６】
以上に説明した通り、本実施の形態によるＤＭＡＣ１０８では、ＣＰＵ１０１によって設定されたレジスタ１１１の内容に従って各機能ブロックが動作することによって、周期的なＤＭＡ転送をＣＰＵ１０１が実行するプログラムの進行状況や周辺装置１０７の動作状況を確認しながら行うことができ、これらと同期を取りながら、その動作周期のジッタに対応することができる。
【００７７】
また、一度ＤＭＡＣ１０８に周期動作の設定を行うと、ＤＭＡＣ１０８が自立的に周期動作をすることができるので、ＣＰＵ１０１が実行するプログラムとして、メモリ１０４や周辺装置１０７の状態を確認してＤＭＡ転送のタイミングを調整するための割込みプログラムやポーリングプログラムを用意する必要がない。このため、割込みプログラムやポーリングプログラムをアプリケーションプログラムと同時に共存して動作させるためのプログラムも不要となり、プログラムを格納するためのメモリやストレージの容量を削減することができる。
【００７８】
さらに、ＣＰＵ１０１によるアプリケーションプログラム実行中に、割込みプログラムやポーリングプログラムが実行されることがなくなるため、アプリケーションプログラムのキャッシュヒット率が向上し、システム性能の向上を実現できる。同様に、ＣＰＵ１０１にて、割込みプログラムやポーリングプログラムを実行するためのコンテキストスイッチが発生しなくなるので、コンテキストスイッチにかかる数十ｍｓのオーバヘッドを排除することができ、ＣＰＵ１０１の動作効率が向上する。
【００７９】
また、ＤＭＡＣ１０８がハードウェアにより自立的に周期動作を行うので、時間や周辺装置の状態変化に対する応答時間が、ＣＰＵ１０１によって行う場合の数ｍｓ〜数十ｍｓに対して、バス権獲得にかかる数ｎｓ〜数十ｎｓですみ、費用のかかるＣＰＵ１０１の高機能化やマルチＣＰＵ化を行わなくても高いリアルタイム性を実現できる。
【００８０】
また、カウンタ１１２やカウンタ比較器１１３、状態比較器１１５などの各部は、ＣＰＵ１０１やＣＰＵ１０１の高機能化回路に比べて規模が小さいハードウェアで実装でき、低消費電力、低コスト化が可能となる。また、ＤＭＡ転送の間隔が周期的に決まり、その間隔をＤＭＡＣ１０８自身で自立的に判定しているため、ＤＭＡ転送を行わない期間は転送部１１６内のクロックを停止することができ、さらに低消費電力化が可能となる。
【００８１】
＜実施の形態２＞
本発明の実施の形態２である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図９、図１０を用いて説明する。
【００８２】
図９は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるＤＭＡＣ１０８は、実施の形態１における図１に示すＤＭＡＣ１０８の構成に、さらに周辺装置ライト部１１７が追加された構成となっている。
【００８３】
周辺装置ライト部１１７は、ＤＭＡ転送の開始時または終了後に、ＣＰＵ１０１によって設定されたレジスタ１１１の指示内容に従って、メモリ１０４や周辺装置１０７のレジスタに書き込みを行う周辺装置ライト手順を実行する。これにより、本実施の形態によるＤＭＡＣ１０８は、ＣＰＵ１０１が実行するプログラムや周辺装置１０７の状態の確認だけではなく、これらの制御も行うことができる。
【００８４】
図１０は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。図１０において、周辺装置ライト方法レジスタ２３１〜周辺装置ライトマスクデータレジスタ２３５の各レジスタは、周辺装置ライト部１１７の追加に伴って、実施の形態１の図２に示すレジスタ１１１の構成に追加されたレジスタである。
【００８５】
周辺装置ライトアドレスレジスタ２３２は、ＤＭＡＣ１０８によってＣＰＵ１０１の実行プログラムや周辺装置１０７の制御を行うための、メモリ１０４や周辺装置１０７のレジスタのアドレスを格納するレジスタである。
【００８６】
周辺装置ライトアクセスサイズレジスタ２３３は、前記メモリ１０４や前記周辺装置１０７のレジスタのアクセスサイズを格納するレジスタであり、周辺装置ライトデータレジスタ２３４は、前記メモリ１０４や前記周辺装置１０７のレジスタに対してライトするデータを格納するレジスタであり、周辺装置ライトマスクデータレジスタ２３５は、前記メモリ１０４や前記周辺装置１０７のレジスタに対してライトするデータの範囲を指定するレジスタである。
【００８７】
周辺装置ライト方法レジスタ２３１は、前記メモリ１０４や前記周辺装置１０７のレジスタに対してライトする方法のパターンを格納するレジスタである。周辺装置ライト方法レジスタ２３１に設定されるパターンは以下の通りである。
【００８８】
（１）２３１−１
転送部１１６が単位転送を完了した後に、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲に、周辺装置ライトデータレジスタ２３４に格納されたデータを書き込む。
【００８９】
（２）２３１−２
転送部１１６が単位転送を完了した後に、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＸＯＲした結果を書き込む。
【００９０】
（３）２３１−３
転送部１１６が単位転送を完了した後に、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＯＲした結果を書き込む。
【００９１】
（４）２３１−４
転送部１１６が単位転送を完了した後に、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＡＮＤした結果を書き込む。
【００９２】
（５）２３１−５
転送部１１６が単位転送を開始するときに、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲に、周辺装置ライトデータレジスタ２３４に格納されたデータを書き込む。
【００９３】
（６）２３１−６
転送部１１６が単位転送を開始するときに、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＸＯＲした結果を書き込む。
【００９４】
（７）２３１−７
転送部１１６が単位転送を開始するときに、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＯＲした結果を書き込む。
【００９５】
（８）２３１−８
転送部１１６が単位転送を開始するときに、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで、周辺装置ライトマスクデータレジスタ２３５に格納された範囲で周辺装置ライトデータレジスタ２３４に格納されたデータとＡＮＤした結果を書き込む。
【００９６】
以上のパターンの設定により、前記メモリ１０４や前記周辺装置１０７のレジスタに対して対象とするビットのデータを維持したり、反転させたり、ＯＮ／ＯＦＦしたりという指定ができ、これによりＣＰＵ１０１の実行プログラムや周辺装置１０７に対してＤＭＡ転送の状況等を通知したり制御を行ったりすることができる。
【００９７】
次に、周辺装置ライト部１１７の動作の内容について以下に説明する。
【００９８】
周辺装置ライト部１１７は、転送部１１６からの単位転送の完了通知もしくは状態比較器１１５からの比較結果の通知を受け、周辺装置ライト方法レジスタ２３１に設定された方法に従って、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたサイズで、周辺装置ライトデータレジスタ２３４に格納されたデータを、周辺装置ライトマスクデータレジスタ２３５に格納された範囲分だけ書き込む。
【００９９】
周辺装置ライト方法レジスタ２３１に設定された方法毎の書き込み手順は以下の通りである。
【０１００】
（１）２３１−１の場合
周辺装置ライト部１１７は、転送部１１６から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータに置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０１】
（２）２３１−２の場合
周辺装置ライト部１１７は、転送部１１６から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＸＯＲをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０２】
（３）２３１−３の場合
周辺装置ライト部１１７は、転送部１１６から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＯＲをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０３】
（４）２３１−４の場合
周辺装置ライト部１１７は、転送部１１６から単位転送の完了通知が来るのを待ち、単位転送の完了通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＡＮＤをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０４】
（５）２３１−５の場合
周辺装置ライト部１１７は、状態比較器１１５からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータに置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０５】
（６）２３１−６の場合
周辺装置ライト部１１７は、状態比較器１１５からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＸＯＲをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０６】
（７）２３１−７の場合
周辺装置ライト部１１７は、状態比較器１１５からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＯＲをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０７】
（８）２３１−８の場合
周辺装置ライト部１１７は、状態比較器１１５からの比較結果の通知が来るのを待ち、比較結果が成立である通知を受け取ると、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスから、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズでリードを行う。このリードしたデータのうち、周辺装置ライトマスクデータレジスタ２３５に格納された範囲を周辺装置ライトデータレジスタ２３４に格納されたデータとＡＮＤをとった値に置き換え、周辺装置ライトアドレスレジスタ２３２に格納されたアドレスに対し、周辺装置ライトアクセスサイズレジスタ２３３に格納されたアクセスサイズで書き戻す。
【０１０８】
以上に説明した通り、本実施の形態によるＤＭＡＣ１０８では、ＣＰＵ１０１によって設定されたレジスタ１１１の内容に従って各機能ブロックが動作することによって、周期的なＤＭＡ転送をＣＰＵ１０１が実行するプログラムの進行状況や周辺装置１０７の動作状況を確認しながら行い、かつこれらに対してＤＭＡ転送の状況等を通知したり制御を行ったりすることでさらに柔軟に同期を取りながら、その動作周期のジッタに対応することができる。
【０１０９】
＜実施の形態３＞
本発明の実施の形態３である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１１を用いて説明する。本実施の形態によるＤＭＡＣは、複数の周期、複数の周辺装置間のＤＭＡ転送に対応するものである。
【０１１０】
本実施の形態によるＤＭＡＣを搭載した計算機システムの構成は、実施の形態１の図１もしくは実施の形態２の図９の構成と同様である。
【０１１１】
図１１は、実施の形態２の図９の構成をとった場合のＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。本実施の形態によるＤＭＡＣ１０８では、第二の周期転送を定義するために、周辺装置リード周期レジスタ３０４〜転送サイズレジスタ３２１、および周辺装置ライト方法レジスタ３３１〜周辺装置ライトマスクデータレジスタ３３５の各レジスタをレジスタ１１１に追加している。
【０１１２】
第二の周期転送を定義するために追加した前記レジスタの内容は、第一の周期転送を定義する周辺装置リード周期レジスタ２０４〜転送サイズレジスタ２２１、および周辺装置ライト方法レジスタ２３１〜周辺装置ライトマスクデータレジスタ２３５の各レジスタの内容と同一である。
【０１１３】
また、カウンタ比較器１１３から周辺装置リード部１１４に渡される比較結果の通知に、第一の周期転送の条件と第二の周期転送の条件のどちらが成立したかを識別する情報を付加して拡張する。これを受けて、周辺装置リード部１１４は、第一の周期転送を定義するレジスタを参照してリードを行うか、第二の周期転送を定義するレジスタを参照してリードを行うかを決定してメモリ１０４または周辺装置１０７をリードし、リードしたデータを状態比較器１１５に渡す。このとき、第一の周期転送に関するデータであるか、第二の周期転送に関するデータであるかを識別する情報を付加して通知する。
【０１１４】
状態比較器１１５は、付加された識別情報を利用して、比較対象のデータとして第一の周期転送を定義するレジスタを利用するか、第二の周期転送を定義するレジスタを利用するかを決定し、どちらの周期転送を定義するレジスタを利用して比較を行ったかの識別情報を付加して、比較結果を周辺装置リード部１１４、周辺装置ライト部１１７、転送部１１６に通知する。周辺装置ライト部１１７、転送部１１６も同様に、付加された識別情報を利用して使用するレジスタを選択して動作する。
【０１１５】
以上に説明したように、本実施の形態によるＤＭＡＣ１０８によれば、同時に複数の周期、複数の周辺装置間のＤＭＡ転送に対応することができる。また、本実施の形態によるＤＭＡＣ１０８は、第一と第二の２つの周期転送を定義するレジスタを有する構成であるが、さらに第三以降の周期転送を定義するレジスタを追加することで、同時に対応できる周期転送の数をさらに増やすことも可能である。
【０１１６】
＜実施の形態４＞
本発明の実施の形態４である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１２、図１３を用いて説明する。本実施の形態によるＤＭＡＣは、複数の周期、複数の周辺装置間のＤＭＡ転送に対応するためにディスクリプタを用いるものである。ディスクリプタは、周期動作を定義する内容を、レジスタではなくメモリ上に保持したものである。
【０１１７】
本実施の形態によるＤＭＡＣと搭載した計算機システムの構成は、実施の形態１の図１もしくは実施の形態２の図９の構成と同様である。
【０１１８】
図１２は、実施の形態２の図９の構成をとった場合のＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。図１２において、動作記述アドレスレジスタ２４１は、前記ディスクリプタを定義することに伴って、実施の形態２の図１０に示すレジスタ１１１の構成に追加されたレジスタである。動作記述アドレスレジスタ２４１は、後述の図１３に示す構成のディスクリプタが格納されたメモリ１０４のアドレスを格納する。
【０１１９】
図１３は、本実施の形態によるＤＭＡＣ１０８における、ディスクリプタの構成を示した図である。図１３において、周辺装置リード周期ディスクリプタ４０４〜転送サイズディスクリプタ４２１、および周辺装置ライト方法ディスクリプタ４３１〜周辺装置ライトマスクデータディスクリプタ４３５の各ディスクリプタは、それぞれ図１２の周辺装置リード周期レジスタ２０４〜転送サイズレジスタ２２１、および周辺装置ライト方法レジスタ２３１〜周辺装置ライトマスクデータレジスタ２３５の各レジスタと対応する情報を記述するディスクリプタである。当該ディスクリプタに定義されている内容により周期転送を実行しようとする際に、当該ディスクリプタの内容がメモリ１０４からレジスタ１１１内の対応する前記各レジスタに読み込まれる。
【０１２０】
動作記述終了フラグディスクリプタ４４１は、メモリ１０４上に次のディスクリプタがあるかどうかを示すディスクリプタである。
【０１２１】
以下に、本実施の形態によるＤＭＡＣ１０８における動作の内容を説明する。
【０１２２】
ＣＰＵ１０１によって動作イネーブルレジスタ２０１が動作状態に設定されると、レジスタ１１１はバスＩＦ１１０を介して、動作記述アドレスレジスタ２４１に格納されたアドレスに記述されている図１３の構成の前記ディスクリプタを、メモリ１０４から周辺装置リード周期レジスタ２０４〜転送サイズレジスタ２２１、および周辺装置ライト方法レジスタ２３１〜周辺装置ライトマスクデータレジスタ２３５の各レジスタに読み込む。その後、読み込んだレジスタ１１１の内容にしたがって、前述の実施の形態１もしくは実施の形態２で説明した内容と同様の動作により周期転送を行う。
【０１２３】
当該周期転送の実行が終了すると、動作記述アドレスレジスタ２４１に格納されているアドレスを、動作記述終了フラグディスクリプタ４４１が格納されているメモリ１０４上のアドレスに更新することにより、動作記述終了フラグディスクリプタ４４１を読み込む。読み込んだデータがディスクリプタの終了を示す値であれば周期転送の動作を終了する。読み込んだデータが次のディスクリプタの存在を示す値であれば、さらに動作記述アドレスレジスタ２４１を次のディスクリプタが格納されているアドレスに更新し、当該アドレスに格納されているディスクリプタを読み込み、読み込んだ内容によってレジスタ１１１の内容を更新して、当該ディスクリプタに記述されていた内容に従って周期転送を実行する。
【０１２４】
本実施の形態によるＤＭＡＣ１０８によれば、複数の周期、複数の周辺装置間のＤＭＡ転送に対応する際に、動作内容の定義をＤＭＡＣ内のハードウェアではなくメモリ１０４上にディスクリプタという形で保持するため、動作内容の定義の柔軟性・拡張性を高めることができる。
【０１２５】
＜実施の形態５＞
本発明の実施の形態５である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１４、図１５を用いて説明する。本実施の形態によるＤＭＡＣでは、トリガ型の割込みによって周期動作を実現する。
【０１２６】
図１４は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるＤＭＡＣ１０８は、実施の形態１における図１に示すＤＭＡＣ１０８の構成において、カウンタ１１２とカウンタ比較器１１３の動作による比較結果の代わりに、周辺装置１０７から送られるトリガ型の割込み信号１１８を周辺装置リード部１１４に入力する構成となっている。
【０１２７】
図１５は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態１における図２の内容と同様なので、ここでの再度の説明は省略する。
【０１２８】
周辺装置リード部１１４は、前述の実施の形態１の図１におけるカウンタ比較器１１３からの比較結果の代わりに、割込み信号１１８を受け取り、その後は実施の形態１によるＤＭＡＣ１０８と同様の動作をする。
【０１２９】
本実施の形態によるＤＭＡＣ１０８によれば、周辺装置１０７の動作周期が安定していてジッタが無視できるような場合に、周辺装置１０７からの割込み信号１１８を利用することによりＤＭＡＣ１０８で周期をカウントする必要を無くし、より低コスト・低消費電力で、ＣＰＵに負荷をかけずに周期的なＤＭＡ転送を行うことができる。
【０１３０】
＜実施の形態６＞
本発明の実施の形態６である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１６、図１７を用いて説明する。本実施の形態によるＤＭＡＣでは、レベル型の割込みによって周期動作を実現する。
【０１３１】
図１６は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるＤＭＡＣ１０８は、実施の形態２における図９に示すＤＭＡＣ１０８の構成において、カウンタ１１２とカウンタ比較器１１３の動作による比較結果の代わりに、周辺装置１０７から送られるレベル型の割込み信号１１８を周辺装置リード部１１４に入力する構成となっている。
【０１３２】
図１７は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態２における図１０の内容と同様なので、ここでの再度の説明は省略する。
【０１３３】
周辺装置リード部１１４は、前述の実施の形態２の図９におけるカウンタ比較器１１３からの比較結果の代わりに、割込み信号１１８を受け取り、その後は実施の形態２によるＤＭＡＣ１０８と同様の動作をする。
【０１３４】
本実施の形態によるＤＭＡＣ１０８によれば、前述の実施の形態５と同様に、周辺装置１０７の動作周期が安定していてジッタが無視できるような場合に、周辺装置１０７からの割込み信号１１８を利用することによりＤＭＡＣ１０８で周期をカウントする必要を無くし、より低コスト・低消費電力で、ＣＰＵに負荷をかけずに周期的なＤＭＡ転送を行うことができる。
【０１３５】
また、周辺装置１０７の割込み要因の解除などの制御を周辺装置ライト部１１７によって行うことが可能になり、より柔軟に周辺装置との同期を取ることが可能となる。
【０１３６】
＜実施の形態７＞
本発明の実施の形態７である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図１８、図１９を用いて説明する。本実施の形態によるＤＭＡＣでは、複数の周辺装置に対してこれら周辺装置からの割込みによって周期動作を実現する。
【０１３７】
図１８は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるＤＭＡＣ１０８は、実施の形態２における図９に示すＤＭＡＣ１０８の構成において、カウンタ１１２とカウンタ比較器１１３の代わりに、複数の周辺装置１０７から送られる割込み信号１１８と割込み選択部１１９とを有する構成となっている。割込み選択部１１９は、複数の割込み信号１１８を入力可能とし、割込み信号１１８が重複した場合は優先順位に基づいてそのうちの１つを選択して周辺装置リード部１１４に渡す。
【０１３８】
図１９は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図である。各レジスタの内容は、前述の実施の形態３における図１１の内容と同様なので、ここでの再度の説明は省略する。
【０１３９】
周辺装置リード部１１４は、前述の実施の形態２の図９におけるカウンタ比較器１１３からの比較結果の代わりに、割込み選択部１１９から、どの周辺装置１０７からの割込みであるかを識別する情報を付加した割込み信号１１８を受け取り、その後は実施の形態３によるＤＭＡＣ１０８と同様の動作をする。
【０１４０】
本実施の形態によるＤＭＡＣ１０８によれば、複数の周辺装置１０７からの割込み信号１１８が重複した場合には優先順位に従って１つを選択することで、複数の周辺装置１０７に対して割込み信号１１８を利用してＤＭＡ転送を行うことが可能となる。
【０１４１】
＜実施の形態８＞
本発明の実施の形態８である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図２０、図２１を用いて説明する。本実施の形態によるＤＭＡＣでは、複数の割込みの優先順位に基づいて周期転送を実現する際に、周期転送の動作の定義にディスクリプタを用いる。
【０１４２】
本実施の形態によるＤＭＡＣを搭載した計算機システムの構成は、実施の形態７の図１８の構成と同様である。
【０１４３】
図２０は、本実施の形態によるＤＭＡＣ１０８における、レジスタ１１１の有するレジスタの構成を示した図であり、図２１は、本実施の形態によるＤＭＡＣ１０８における、ディスクリプタの構成を示した図である。
【０１４４】
図２１の対応割込みディスクリプタ４５１は、図１８における複数の割込み信号１１８に対して、それぞれの周期転送の動作を定義するディスクリプタを対応させるための識別情報を格納する。その他の各レジスタおよび各ディスクリプタの内容は、それぞれ前述の実施の形態４における図１２および図１３の内容と同様なので、ここでの再度の説明は省略する。
【０１４５】
周辺装置リード部１１４は、前述の実施の形態２の図９におけるカウンタ比較器１１３からの比較結果の代わりに、割込み選択部１１９から、どの周辺装置１０７からの割込みであるかを識別する情報を付加した割込み信号１１８を受け取り、当該識別情報に対応する対応割込みディスクリプタ４５１を有するディスクリプタを特定してレジスタ１１１に読み込み、その後は実施の形態４によるＤＭＡＣ１０８と同様の動作をする。
【０１４６】
本実施の形態によるＤＭＡＣ１０８によれば、複数の周辺装置１０７からの割込み信号１１８を利用してＤＭＡ転送を行う場合に、動作内容の定義をＤＭＡＣ内のハードウェアではなくメモリ１０４上にディスクリプタという形で保持するため、動作内容の定義の柔軟性・拡張性を高めることができる。
【０１４７】
＜実施の形態９＞
本発明の実施の形態９である周辺装置状態確認機能付ＤＭＡコントローラ（以下「ＤＭＡＣ」と記載する）を、図２２を用いて説明する。
【０１４８】
図２２は、本実施の形態によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。本実施の形態によるＤＭＡＣ１０８は、実施の形態２における図９に示すＤＭＡＣ１０８の構成において、さらに割込み信号１１８および割込み選択部１１９と、割込み・周期動作選択部１２０とを有している。
【０１４９】
割込み信号１１８および割込み選択部１１９については、前述の実施の形態７の図１８の内容と同様なので、ここでの再度の説明は省略する。割込み・周期動作選択部１２０は、カウンタ比較器１１３からの比較結果と、割込み選択部１１９からの割込み信号とを入力として、いずれかを選択して周辺装置リード部１１４に渡すものである。
【０１５０】
本実施の形態によるＤＭＡＣ１０８によれば、カウンタ１１２を用いた時間計測による周期動作と、割込みによる周期動作とを混在して利用することができ、既存周辺装置を有効に利用することが可能となる。
【０１５１】
以上、本発明者によってなされた発明を実施の形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
【産業上の利用可能性】
【０１５２】
本発明は、計算機システムにおいてマルチメディアデータを取り扱う周辺装置間のデータ転送を取り扱うＤＭＡコントローラに利用可能である。さらには、ＤＭＡコントローラだけではなく、例えば、ＨＤＤ、ＳＤメモリ、ＳＤＩＯ、ＭＭＣ、ネットワークＩＦ、チューナ、デコーダ、映像出力装置などの周辺装置自体が高速化の結果としてバスマスタの機能を持ち、周辺装置間のデータ転送を行うようになった際にはこれらの周辺装置にも利用可能である。
【図面の簡単な説明】
【０１５３】
【図１】本発明の実施の形態１によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【図２】本発明の実施の形態１によるＤＭＡＣにおけるレジスタの構成を示した図である。
【図３】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図４】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図５】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図６】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図７】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図８】本発明の実施の形態１によるＤＭＡＣにおける周辺装置リード手順、状態比較手順、カウンタ更新手順の流れを表したフロー図である。
【図９】本発明の実施の形態２によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【図１０】本発明の実施の形態２におけるレジスタの構成を示した図である。
【図１１】本発明の実施の形態３におけるレジスタの構成を示した図である。
【図１２】本発明の実施の形態４におけるレジスタの構成を示した図である。
【図１３】本発明の実施の形態４におけるディスクリプタの構成を示した図である。
【図１４】本発明の実施の形態５によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【図１５】本発明の実施の形態５におけるレジスタの構成を示した図である。
【図１６】本発明の実施の形態６によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【図１７】本発明の実施の形態６におけるレジスタの構成を示した図である。
【図１８】本発明の実施の形態７によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【図１９】本発明の実施の形態７におけるレジスタの構成を示した図である。
【図２０】本発明の実施の形態８におけるレジスタの構成を示した図である。
【図２１】本発明の実施の形態８におけるディスクリプタの構成を示した図である。
【図２２】本発明の実施の形態９によるＤＭＡＣを搭載した計算機システムの構成を示す機能ブロック図である。
【符号の説明】
【０１５４】
１０１…ＣＰＵ、１０２…バス、１０３…アービタ、１０４…メモリ、１０５…入力装置、１０６…出力装置、１０７…周辺装置、１０８…周辺装置状態確認機能付ＤＭＡコントローラ、１１０…バスＩＦ、１１１…レジスタ、１１２…カウンタ、１１３…カウンタ比較器、１１４…周辺装置リード部、１１５…状態比較器、１１６…転送部、１１７…周辺装置ライト部、１１８…割込み信号、１１９…割込み選択部、１２０…割込み・周期動作選択部、
２０１…動作イネーブルレジスタ、２０２…周辺装置リードカウンタイネーブルレジスタ、２０３…周辺装置リードカウンタ値レジスタ、２０４…周辺装置リード周期レジスタ、２０５…周辺装置次回リードカウンタ値レジスタ、２０６…周辺装置リードアドレスレジスタ、２０７…周辺装置リードアクセスサイズレジスタ、２０８…比較条件レジスタ、２０９…動作内容レジスタ、２１０…周辺装置リード比較データレジスタ、２１１…周辺装置リードマスクデータレジスタ、２１２…周辺装置リード次周期調整方法レジスタ、２１３…転送ソースアドレスレジスタ、２１４…転送デスティネーションアドレスレジスタ、２１５…転送ソースアクセスサイズレジスタ、２１６…転送デスティネーションアクセスサイズレジスタ、２１７…転送ソースループサイズレジスタ、２１８…転送デスティネーションループサイズレジスタ、２１９…転送ソースアドレスカウント方向レジスタ、２２０…転送デスティネーションアドレスカウント方向レジスタ、２２１…転送サイズレジスタ、
２３１…周辺装置ライト方法レジスタ、２３２…周辺装置ライトアドレスレジスタ、２３３…周辺装置ライトアクセスサイズレジスタ、２３４…周辺装置ライトデータレジスタ、２３５…周辺装置ライトマスクデータレジスタ、
２４１…動作記述アドレスレジスタ、
３０４…周辺装置リード周期レジスタ、３０５…周辺装置次回リードカウンタ値レジスタ、３０６…周辺装置リードアドレスレジスタ、３０７…周辺装置リードアクセスサイズレジスタ、３０８…比較条件レジスタ、３０９…動作内容レジスタ、３１０…周辺装置リード比較データレジスタ、３１１…周辺装置リードマスクデータレジスタ、３１２…周辺装置リード次周期調整方法レジスタ、３１３…転送ソースアドレスレジスタ、３１４…転送デスティネーションアドレスレジスタ、３１５…転送ソースアクセスサイズレジスタ、３１６…転送デスティネーションアクセスサイズレジスタ、３１７…転送ソースループサイズレジスタ、３１８…転送デスティネーションループサイズレジスタ、３１９…転送ソースアドレスカウント方向レジスタ、３２０…転送デスティネーションアドレスカウント方向レジスタ、３２１…転送サイズレジスタ、
３３１…周辺装置ライト方法レジスタ、３３２…周辺装置ライトアドレスレジスタ、３３３…周辺装置ライトアクセスサイズレジスタ、３３４…周辺装置ライトデータレジスタ、３３５…周辺装置ライトマスクデータレジスタ、
４０４…周辺装置リード周期ディスクリプタ、４０５…周辺装置次回リードカウンタ値ディスクリプタ、４０６…周辺装置リードアドレスディスクリプタ、４０７…周辺装置リードアクセスサイズディスクリプタ、４０８…比較条件ディスクリプタ、４０９…動作内容ディスクリプタ、４１０…周辺装置リード比較データディスクリプタ、４１１…周辺装置リードマスクデータディスクリプタ、４１２…周辺装置リード次周期調整方法ディスクリプタ、４１３…転送ソースアドレスディスクリプタ、４１４…転送デスティネーションアドレスディスクリプタ、４１５…転送ソースアクセスサイズディスクリプタ、４１６…転送デスティネーションアクセスサイズディスクリプタ、４１７…転送ソースループサイズディスクリプタ、４１８…転送デスティネーションループサイズディスクリプタ、４１９…転送ソースアドレスカウント方向ディスクリプタ、４２０…転送デスティネーションアドレスカウント方向ディスクリプタ、４２１…転送サイズディスクリプタ、
４３１…周辺装置ライト方法ディスクリプタ、４３２…周辺装置ライトアドレスディスクリプタ、４３３…周辺装置ライトアクセスサイズディスクリプタ、４３４…周辺装置ライトデータディスクリプタ、４３５…周辺装置ライトマスクデータディスクリプタ、
４４１…動作記述終了フラグディスクリプタ、
４５１…対応割込みディスクリプタ。
【図１】
2008262315.tif 000003
【図２】
2008262315.tif 000004
【図３】
2008262315.tif 000005
【図４】
2008262315.tif 000006
【図５】
2008262315.tif 000007
【図６】
2008262315.tif 000008
【図７】
2008262315.tif 000009
【図８】
2008262315.tif 000010
【図９】
2008262315.tif 000011
【図１０】
2008262315.tif 000012
【図１１】
2008262315.tif 000013
【図１２】
2008262315.tif 000014
【図１３】
2008262315.tif 000015
【図１４】
2008262315.tif 000016
【図１５】
2008262315.tif 000017
【図１６】
2008262315.tif 000018
【図１７】
2008262315.tif 000019
【図１８】
2008262315.tif 000020
【図１９】
2008262315.tif 000021
【図２０】
2008262315.tif 000022
【図２１】
2008262315.tif 000023
【図２２】
2008262315.tif 000024