(57)【要約】【課題】完了保証指示情報が付与されたＤＭＡ転送命令を含む複数のＤＭＡ転送命令を、高速に実行する。【解決手段】複数のＤＭＡコントローラ２４−１乃至２４−ｎによって個々に実行される複数のＤＭＡ転送命令のいずれかが、完了保証指示情報が付与された第１のＤＭＡ転送命令である場合、複数のＤＭＡ転送命令のうち未だ実行状態にある第２のＤＭＡ転送命令の実行が完了する前に、第１のＤＭＡ転送命令の実行を開始するように、複数のＤＭＡコントローラのいずれかを制御する第１制御部２１と、第１及び第２のＤＭＡ転送命令の実行が完了したことを検知したのち、複数のＤＭＡ転送命令のうち、第１のＤＭＡ転送命令に後続する第３のＤＭＡ転送命令の実行を開始するように、複数のＤＭＡコントローラの少なくともいずれかを制御する第２制御部と、を備える。【選択図】      図７
2018120484.tif 000002
【特許請求の範囲】
【請求項１】
複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令と未だ実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御する第一制御手段と、
前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する第二制御手段と、
を備えるＤＭＡ転送制御装置。
【請求項２】
前記複数のＤＭＡ転送命令による処理内容を示すＤＭＡ転送情報が記憶された記憶手段をさらに備え、
前記ＤＭＡ転送情報は、前記複数のＤＭＡコントローラが前記複数のＤＭＡ転送命令を実行する際に、前記複数のＤＭＡコントローラによって参照される、
請求項１に記載のＤＭＡ転送制御装置。
【請求項３】
前記ＤＭＡ転送情報は、前記複数のＤＭＡ転送命令の個々に関して、前記完了保証指示情報と、実行状態を表す実行状態情報と、を含む、
請求項２に記載のＤＭＡ転送制御装置。
【請求項４】
前記第一制御手段は、前記複数のＤＭＡコントローラが前記複数のＤＭＡ転送命令を開始するときに、前記実行状態情報を更新し、
前記第二制御手段は、前記複数のＤＭＡコントローラから通知される、前記複数のＤＭＡ転送命令に関する実行状態を表す情報に基づいて、前記実行状態情報を更新することによって、前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知する、
請求項３に記載のＤＭＡ転送制御装置。
【請求項５】
前記複数のＤＭＡコントローラをさらに備える、
請求項１乃至４のいずれか一項に記載のＤＭＡ転送制御装置。
【請求項６】
請求項１乃至５のいずれか一項に記載のＤＭＡ転送制御装置と、
前記複数のＤＭＡ転送命令を発行する中央処理装置と、
前記複数のＤＭＡ転送命令により転送されるデータを記憶する主記憶装置と、
前記複数のＤＭＡ転送命令により転送されるデータに関して、外部装置との入出力を制御する入出力制御装置と、
を有するＤＭＡ転送制御システム。
【請求項７】
前記第二制御手段は、前記第一及び第二のＤＭＡ転送命令の実行が完了したときに、前記第一及び第二のＤＭＡ転送命令の実行完了に伴う処理を指示する完了保証指示命令を、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置と、に対して、前記第一のＤＭＡ転送命令を実行した前記ＤＭＡコントローラが発行するように制御したのち、前記中央処理装置と、前記主記憶装置と、前記入出力制御装置とから、前記完了保証指示命令の実行を完了したことを通知されたときに、前記第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する、
請求項６に記載のＤＭＡ転送制御システム。
【請求項８】
前記中央処理装置、前記主記憶装置、及び、前記入出力制御装置は、それぞれ自装置において、前記完了保証指示命令に対する処理が、前記第三のＤＭＡ転送命令の実行開始に伴い発生する処理に追い越されないことが保証されるタイミングに、前記完了保証指示命令の実行を完了したことを、前記第二制御手段へ通知する、
請求項７に記載のＤＭＡ転送制御システム。
【請求項９】
情報処理装置によって、
複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令と未だ実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御し、
前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する、
ＤＭＡ転送制御方法。
【請求項１０】
複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令と未だ実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御する第一制御処理と、
前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する第二制御処理と、
をコンピュータに実行させるためのＤＭＡ転送制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本願発明は、複数のＤＭＡ（Direct Memory Access）転送の並列実行を制御する技術に関する。
【背景技術】
【０００２】
近年、情報処理の性能を向上させるために、ＤＭＡ転送機能を実装するコンピュータシステムが増加している。このＤＭＡ転送は、ＣＰＵ（Central Processing Unit）を介することなく、例えば、主記憶装置と拡張記憶装置などの周辺装置との間でデータを直接転送する技術である。ＣＰＵは、ＤＭＡ転送によって、主記憶装置と周辺装置との間におけるデータ転送を制御する処理から解放されるので、コンピュータシステムの性能が大きく向上する。したがって、ＤＭＡ転送を、より効率的かつ高性能に実現する技術に対する期待が高まってきている。
【０００３】
このような技術に関連する技術として、特許文献１には、メモリを有し、ＤＭＡ転送を行うコンピュータシステムにおいて、Ｉ／Ｏ（Input/Output)チャネルとプロセッサとの間のデータ整合性を保証する方法が開示されている。この方法では、ＤＭＡ転送完了の通知を受け取ったとき、コンピュータシステム内の全てのＩ／Ｏチャネルに対し、ＤＭＡ＿ＳＹＮＣトランザクションをブロードキャストする。この方法は、ＤＭＡ＿ＳＹＮＣトランザクションが完了したことを示す報告手段を提供する。当該ＤＭＡ＿ＳＹＮＣトランザクションは、当該Ｉ／Ｏチャネルに一貫性を守るように命令し、一貫性が保証された後でのみ応答を返すようにする。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開2000-082012号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年のコンピュータシステムは、ＤＭＡコントローラ（ＤＭＡエンジン）を複数備えることによって、複数のＤＭＡ転送を並列（以降本願では、「略並列」を含むこととする）に行なうことが可能である。図９は、複数のＤＭＡコントローラを備えた一般的なＤＭＡ転送制御装置３０の構成を概念的に示すブロック図である。ＤＭＡ転送制御装置３０は、ＣＰＵ１００から発行された、主記憶装置１０１と入出力制御装置１０２との間でデータ転送を行なうＤＭＡ転送命令を制御する装置である。
【０００６】
ＤＭＡ転送制御装置３０は、ＤＭＡコントローラ制御部３１と、複数のＤＭＡコントローラ３４−１乃至３４−ｎ（ｎは２以上の任意の整数）と、記憶部３３とを備える。記憶部３３には、ディスクリプタ３３０−１乃至３３０−ｍ（ｍは２以上の任意の整数）が格納されている。ディスクリプタ３３０−１乃至３３０−ｍは、個々のＤＭＡ転送命令による処理内容を示す情報である。ＤＭＡコントローラ制御部３１は、記憶部３３から読み出したディスクリプタ３３０−１乃至３３０−ｍが示す処理内容を、ＤＭＡコントローラ３４−１乃至３４−ｎが実行するように制御する。
【０００７】
複数のＤＭＡ転送を並列に行なうコンピュータシステムでは、特定のＤＭＡ転送命令を含む実行中の全てのＤＭＡ転送命令が完了したことを保証した後に、その特定のＤＭＡ転送命令に後続するＤＭＡ転送を行なう必要がある場合がある。この場合、その特定のＤＭＡ転送命令に完了保証指示情報（ＳＹＮＣフラグ）が付与されたＤＭＡ転送（以降、「ＳＹＮＣフラグ付きＤＭＡ転送」と称する）が行なわれる。
【０００８】
図１０は、このようなＳＹＮＣフラグ付きＤＭＡ転送を行なわない場合における、ＤＭＡ転送制御装置３０の動作例を示すシーケンス図である。図１０に示す例では、ＤＭＡ転送制御装置３０は、ディスクリプタ３３０−１及び３３０−２が処理内容を示す２つのＤＭＡ転送命令を、並列に実行する。すなわち、ＤＭＡ転送制御装置３０は、図１０に示すステップＳ２０１乃至Ｓ２０７を、２つのＤＭＡ転送命令に関して並列に実行することが可能である。尚、各ステップの詳細については周知であるので、これらのステップに関する詳細な説明は省略する。
【０００９】
図１１Ａ及び１１Ｂは、上述したＳＹＮＣフラグ付きＤＭＡ転送を行なう場合における、ＤＭＡ転送制御装置３０の動作例を示すシーケンス図である。図１１Ａ及び１１Ｂに示す例では、ディスクリプタ３３０−２が示すＤＭＡ転送命令にＳＹＮＣフラグが付与されていることとする。この場合、ＤＭＡ転送制御装置３０は、ディスクリプタ３３０−１が示すＤＭＡ転送命令に関する処理（即ち、ステップＳ３０１乃至Ｓ３０７）を完了した後、ディスクリプタ３３０−２が示すＳＹＮＣフラグ付きＤＭＡ転送命令に関する処理（即ち、ステップＳ３０８乃至Ｓ３１５）を行なう。これにより、ＤＭＡ転送制御装置３０は、後続するＤＭＡ転送命令を開始する（ステップＳ３１６）前に、ＳＹＮＣフラグ付きＤＭＡ転送命令を含む実行中の全てのＤＭＡ転送命令が完了したことを保証する。尚、各ステップの詳細については周知であるので、これらのステップに関する詳細な説明は省略する。
【００１０】
このように、複数のＤＭＡコントローラを備える一般的なＤＭＡ転送制御装置は、ＳＹＮＣフラグ付きＤＭＡ転送命令を、先行して実行中であるＤＭＡ転送命令が全て完了した後に実行する。すなわち、一般的なＤＭＡ転送制御装置は、複数のＤＭＡ転送を並列に実行可能なハードウェア構成を備えているにもかかわらず、ＳＹＮＣフラグ付きＤＭＡ転送に関しては、単独で実行する必要があるので、効率的であるとは言えない。したがって、例えば、ＳＹＮＣフラグ付きＤＭＡ転送命令が処理対象とするデータの長さが極めて長い場合などでは、コンピュータシステムの性能が大きく低下する要因になる。特許文献１は、このような問題について言及していない。本願発明の主たる目的は、このような問題を解決するＤＭＡ転送制御装置等を提供することである。
【課題を解決するための手段】
【００１１】
本願発明の一態様に係るＤＭＡ転送制御装置は、複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令と未だ実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御する第一制御手段と、前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する第二制御手段と、を備える。
【００１２】
上記目的を達成する他の見地において、本願発明の一態様に係るＤＭＡ転送制御方法は、情報処理装置によって、複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令と未だ実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御し、前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する。
【００１３】
また、上記目的を達成する更なる見地において、本願発明の一態様に係るＤＭＡ転送制御プログラムは、複数のＤＭＡコントローラによって個々に実行される複数のＤＭＡ転送命令のいずれかが、自ＤＭＡ転送命令未だと実行状態にある先行する他のＤＭＡ転送命令との実行が完了するまで、後続する他のＤＭＡ転送命令の実行を保留することを指示する完了保証指示情報が付与された第一のＤＭＡ転送命令である場合、前記複数のＤＭＡ転送命令のうち未だ実行状態にある第二のＤＭＡ転送命令の実行が完了する前に、前記第一のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラのいずれかを制御する第一制御処理と、前記第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、前記複数のＤＭＡ転送命令のうち、前記第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、前記複数のＤＭＡコントローラの少なくともいずれかを制御する第二制御処理と、をコンピュータに実行させるためのプログラムである。
【００１４】
更に、本願発明は、係るＤＭＡ転送制御プログラム（コンピュータプログラム）が格納された、コンピュータ読み取り可能な、不揮発性の記録媒体によっても実現可能である。
【発明の効果】
【００１５】
本願発明は、完了保証指示情報が付与されたＤＭＡ転送命令を含む複数のＤＭＡ転送命令を、高速に実行することを可能とする。
【図面の簡単な説明】
【００１６】
【図１】本願発明の第１の実施形態に係るＤＭＡ転送制御システム１の構成を示すブロック図である。
【図２】本願発明の第１の実施形態に係るディスクリプタ１３０の構成を例示する図である。
【図３】本願発明の第１の実施形態に係るＤＭＡ転送制御装置１０が、ＳＹＮＣフラグ付きＤＭＡ転送命令を含む複数のＤＭＡ転送命令の実行を順番に開始するときにおける、ディスクリプタ１３０の更新推移を例示する図である。
【図４】本願発明の第１の実施形態に係るＤＭＡ転送制御装置１０が、ＳＹＮＣフラグ付きＤＭＡ転送命令までの複数のＤＭＡ転送命令の実行を完了するときにおける、ディスクリプタ１３０の更新推移を例示する図である。
【図５】本願発明の第１の実施形態に係るＤＭＡ転送制御装置１０が、ＳＹＮＣフラグ付きＤＭＡ転送命令に伴うＳＹＮＣ命令を完了し、当該ＳＹＮＣフラグ付きＤＭＡ命令に後続するＤＭＡ転送命令の実行を開始するときにおける、ディスクリプタ１３０の更新推移を例示する図である。
【図６Ａ】本願発明の第１の実施形態に係るＤＭＡ転送制御装置１０の動作を示すシーケンス図（１／２）である。
【図６Ｂ】本願発明の第１の実施形態に係るＤＭＡ転送制御装置１０の動作を示すシーケンス図（２／２）である。
【図７】本願発明の第２の実施形態に係るＤＭＡ転送制御装置２０の構成を示すブロック図である。
【図８】本願発明の各実施形態に係るＤＭＡ転送制御装置を実行可能な情報処理装置９００の構成を示すブロック図である。
【図９】一般的なＤＭＡ転送制御装置３０の構成を示すブロック図である。
【図１０】一般的なＤＭＡ転送制御装置３０の動作（ＳＹＮＣフラグ付きＤＭＡ転送を行なわない場合）を示すシーケンス図である。
【図１１Ａ】一般的なＤＭＡ転送制御装置３０の動作（ＳＹＮＣフラグ付きＤＭＡ転送を行なう場合）を示すシーケンス図（１／２）である。
【図１１Ｂ】一般的なＤＭＡ転送制御装置３０の動作（ＳＹＮＣフラグ付きＤＭＡ転送を行なう場合）を示すシーケンス図（２／２）である。
【発明を実施するための形態】
【００１７】
以下、本願発明の実施の形態について図面を参照して詳細に説明する。
【００１８】
＜第１の実施形態＞
図１は、本願発明の第１の実施の形態に係るＤＭＡ転送制御システム１の構成を概念的に示すブロック図である。ＤＭＡ転送制御システム１は、複数のＤＭＡ転送を並列に行なうことが可能であり、必要に応じて、ＳＹＮＣフラグ付きＤＭＡ転送命令を実行する。ＤＭＡ転送制御システム１は、大別して、ＤＭＡ転送制御装置１０、ＣＰＵ（中央処理装置）１００、主記憶装置１０１、及び、入出力制御装置１０２を有する。ＤＭＡ転送制御システム１は、例えば、１つの情報処理装置（サーバ装置等）として構成されてもよい。
【００１９】
ＣＰＵ１００は、例えば主記憶装置１０１と入出力制御装置１０２との間でデータ転送を行なうＤＭＡ転送命令を発行する。主記憶装置１０１は、ＤＭＡ転送命令により転送されるデータを記憶する。入出力制御装置１０２は、ＤＭＡ転送命令により転送されるデータに関して、例えば拡張記憶装置などの外部装置（図示せず）との入出力を制御する。
【００２０】
ＤＭＡ転送制御装置１０は、ＣＰＵ１００から発行されたＤＭＡ転送命令の実行を制御する。ＤＭＡ転送制御装置１０は、第１制御部１１、第２制御部１２、記憶部１３、及び、ＤＭＡコントローラ１４−１乃至１４−ｎ（ｎは２以上の任意の整数）を備えている。
【００２１】
記憶部１３は、電子メモリ等の記憶デバイスであり、ディスクリプタ１３０−１乃至１３０−ｍ（ｍは２以上の任意の整数）を記憶している。ディスクリプタ１３０−１乃至１３０−ｍ（本願では以降、ｍ個のディスクリプタを代表して、ディスクリプタ１３０と称する場合がある）は、各々、１つのＤＭＡ転送命令による処理内容を示す情報（ＤＭＡ転送情報）である。ディスクリプタ１３０は、例えばＣＰＵ１００によって、記憶部１３に格納される。
【００２２】
図２は、本実施形態に係るディスクリプタ１３０の構成を概念的に例示する図である。ディスクリプタ１３０は、図２に示す通り、下記の情報を含んでいる。
・実行バリッド１３１、
・転送元開始アドレス１３２、
・転送先開始アドレス１３３、
・データサイズ１３４、
・ＳＹＮＣフラグ１３５、
・ＤＭＡ転送実行フラグ１３６、
・ＤＭＡ転送完了フラグ１３７、
・ＳＹＮＣ命令完了フラグ１３８、
・結果情報１３９。
【００２３】
実行バリッド１３１は、ディスクリプタ１３０が処理内容を示すＤＭＡ転送命令が有効か否かを示す情報であり、ＤＭＡ転送命令の実行前及び実行中は「１」を示し、ＤＭＡ転送命令が完了した後は「０」を示す。転送元開始アドレス１３２は、ＤＭＡ転送命令により転送されるデータの転送元の開始アドレスを示す。転送先開始アドレス１３３は、ＤＭＡ転送命令により転送されるデータの転送先の開始アドレスを示す。データサイズ１３４は、ＤＭＡ転送命令により転送されるデータのデータ長を示す。
【００２４】
ＳＹＮＣフラグ１３５は、ＤＭＡ転送命令がＳＹＮＣフラグ付きＤＭＡ転送命令であること、即ち、当該ＤＭＡ転送命令を含む実行中の全てのＤＭＡ転送命令が完了したことを保証した後に、当該ＤＭＡ転送命令に後続するＤＭＡ転送を行なう必要があることを示す情報（完了保証指示情報）である。ＳＹＮＣフラグ１３５は、ＤＭＡ転送命令がＳＹＮＣフラグ付きＤＭＡ転送命令である場合に「１」を示す。
【００２５】
ＤＭＡ転送実行フラグ１３６は、ＤＭＡ転送命令が実行中であることを示す情報（実行状態情報）であり、ＤＭＡ転送命令が実行中のときに「１」を示す。ＤＭＡ転送完了フラグ１３７は、ＤＭＡ転送命令の実行が完了したことを示す情報（実行状態情報）あり、ＤＭＡ転送命令の実行が完了した後に「１」を示す。ＳＹＮＣ命令完了フラグ１３８は、ＤＭＡ転送命令がＳＹＮＣフラグ付きＤＭＡ転送命令である場合に、ＳＹＮＣフラグ付きＤＭＡ転送命令に含まれるＳＹＮＣ命令（詳細は後述する）の実行が完了したことを示す情報（実行状態情報）である。ＳＹＮＣ命令完了フラグ１３８は、ＳＹＮＣ命令が完了した後に「１」を示す。結果情報１３９は、ＤＭＡ転送命令の実行においてエラーや例外等が発生した場合に、そのエラーや例外等の内容を示す情報である。
【００２６】
図１に示すＤＭＡコントローラ１４−１乃至１４−ｎ（本願では以降、ｎ個のＤＭＡコントローラを代表して、ＤＭＡコントローラ１４と称する場合がある）は、後述する第１制御部１１及び第２制御部１２により制御されることにより、記憶部１３に記憶されたディスクリプタ１３０が示すＤＭＡ転送命令を実行する。
【００２７】
ＤＭＡコントローラ１４は、ＤＭＡリクエスト制御部１４０、及び、データバッファ１４１を有している。ＤＭＡリクエスト制御部１４０は、第１制御部１１によって選択されたディスクリプタ１３０が示すＤＭＡ転送命令を実行する。
【００２８】
当該ＤＭＡ転送命令が、例えば、入出力制御装置１０２に接続された拡張記憶装置等などの外部装置（不図示）から主記憶装置１０１に対してデータ転送を行なう命令である場合について説明する。この場合、ＤＭＡリクエスト制御部１４０は、外部装置における、転送元開始アドレス１３２が示すアドレスから、データ長がデータサイズ１３４により示される値であるデータを、入出力制御装置１０２を介して読み出す。ＤＭＡリクエスト制御部１４０は、読み出したデータを、データバッファ１４１に一時格納する。ＤＭＡリクエスト制御部１４０は、データバッファ１４１に一時格納したデータを、主記憶装置１０１における、転送先開始アドレス１３３が示すアドレスを先頭とする記憶領域に書き込む。
【００２９】
ＤＭＡリクエスト制御部１４０は、ＳＹＮＣフラグ付きＤＭＡ転送命令を実行する場合、第２制御部１２による制御を受けて、ＳＹＮＣ命令（完了保証指示命令）を、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２に対して発行する。ＳＹＮＣ命令は、ＳＹＮＣフラグ付きＤＭＡ転送命令によるデータ転送処理の完了に伴い、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２において行うべき、完了保証に関する処理（実行中の全てのＤＭＡ転送命令が完了したことを確認する処理など）を指示する命令である。ＤＭＡリクエスト制御部１４０は、その後、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２から、ＳＹＮＣ命令の実行完了を通知され、ＳＹＮＣ命令の実行完了を、第２制御部１２に通知する。
【００３０】
第１制御部１１は、記憶部１３に記憶されたディスクリプタ１３０が示すＤＭＡ転送命令をＤＭＡコントローラ１４に割り当てて、割り当てたＤＭＡ転送命令を順次実行するように、ＤＭＡコントローラ１４を制御する。第１制御部１１は、ディスクリプタ１３０を更新することによって、ＤＭＡコントローラ１４を制御する。
【００３１】
図３は、本実施形態に係るＤＭＡ転送制御装置１０が、ＳＹＮＣフラグ付きＤＭＡ転送命令を含む複数のＤＭＡ転送命令の実行を順番に開始するときにおける、第１制御部１１によって更新されるディスクリプタ１３０の更新推移を例示する図である。第１制御部１１は、内包するＤＭＡ割付ポインタ１１０を用いて、ディスクリプタ１３０が示すＤＭＡ転送命令を、ＤＭＡコントローラ１４に順番に割り当てる。本実施形態では、ＤＭＡ割付ポインタ１１０は、初期値として例えば「１」が設定されていることとする。この場合、第１制御部１１は、ディスクリプタ１３０−１から順番に、ディスクリプタ１３０を参照する。
【００３２】
図３に示す例では、ディスクリプタ１３０−１における実行バリッド１３１は「１」を示し、ＳＹＮＣフラグ１３５は「０」を示し、ＤＭＡ転送実行フラグ１３６は「０」を示している。即ちこの場合、ディスクリプタ１３０−１が示すＤＭＡ転送命令は、ＳＹＮＣフラグ付きＤＭＡ転送命令でない通常のＤＭＡ転送命令であり、実行待ちの状態にある。第１制御部１１は、ディスクリプタ１３０−１が示すＤＭＡ転送命令を、ＤＭＡ割付ポインタ１１０により示されるＤＭＡコントローラ１４−１に割り当てたのち、ディスクリプタ１３０−１が示すＤＭＡ転送命令の実行を開始するように、ＤＭＡコントローラ１４−１を制御する。第１制御部１１は、この際、ディスクリプタ１３０−１におけるＤＭＡ転送実行フラグ１３６を「０」から「１」に更新し、ＤＭＡ割付ポインタ１１０を「１」から「２」に更新する。
【００３３】
第１制御部１１は、次に、ディスクリプタ１３０−２及び１３０−３を順番に参照し、ディスクリプタ１３０−２及び１３０−３が示す通常のＤＭＡ転送命令を、順に、ＤＭＡ割付ポインタ１１０により示されるＤＭＡコントローラ１４−２及び１４−３に割り当てる。そして、第１制御部１１は、ディスクリプタ１３０−２及び１３０−３が示すＤＭＡ転送命令の実行を開始するように、ＤＭＡコントローラ１４−２及び１４−３を制御する。第１制御部１１は、この際、ディスクリプタ１３０−２及び１３０−３におけるＤＭＡ転送実行フラグ１３６を「０」から「１」に更新し、ＤＭＡ割付ポインタ１１０を「２」から「３」、そして「３」から「４」に更新する。
【００３４】
第１制御部１１は、その次に、ディスクリプタ１３０−４を参照する。図３に示す例では、ディスクリプタ１３０−４におけるＳＹＮＣフラグ１３５は「１」を示している。即ちこの場合、ディスクリプタ１３０−４が示すＤＭＡ転送命令は、ＳＹＮＣフラグ付きＤＭＡ転送命令である。第１制御部１１は、ディスクリプタ１３０−１及び１３０−３が示す通常のＤＭＡ転送命令に実行を開始したときと同様に、ディスクリプタ１３０−４が示すＳＹＮＣフラグ付きＤＭＡ転送命令の実行を開始するように、ＤＭＡ割付ポインタ１１０により示されるＤＭＡコントローラ１４−４を制御する。この際、第１制御部１１は、ディスクリプタ１３０−１及び１３０−３が示す通常のＤＭＡ転送命令の実行が完了するまで待つことはしない。第１制御部１１は、ディスクリプタ１３０−５以降のディスクリプタ１３０が示すＤＭＡ転送命令に関しては、ディスクリプタ１３０−１及び１３０−４が示すＤＭＡ転送命令の実行が全て完了するまで、その実行開始を保留する。
【００３５】
図１に示す第２制御部１２は、ＤＭＡコントローラ１４−１乃至１４−４が実行していたＤＭＡ転送命令を完了したことを検知して、その検知結果に基づいて、ディスクリプタ１３０を更新する。
【００３６】
図４は、本実施形態に係るＤＭＡ転送制御装置１０が、図３に実行開始を例示した、ＳＹＮＣフラグ付きＤＭＡ転送命令までの複数のＤＭＡ転送命令の実行を完了するときにおける、第２制御部１２によって更新されるディスクリプタ１３０の更新推移を例示する図である。図４に示す例では、図３に例示するＤＭＡ転送命令の実行開始順番とは異なり、ディスクリプタ１３０−１、１３０−３、１３０−２、及び、１３０−４が示すＤＭＡ転送命令の順に、その実行が完了している。
【００３７】
第２制御部１２は、ディスクリプタ１３０−１が示すＤＭＡ転送命令を実行していたＤＭＡコントローラ１４−１から、当該ＤＭＡ転送命令の実行を完了したことを通知されたときに、ディスクリプタ１３０−１を以下の通り更新する。即ち、第２制御部１２は、実行バリッド１３１を「１」から「０」に、ＤＭＡ転送実行フラグ１３６を「１」から「０」に、ＤＭＡ転送完了フラグ１３７を「０」から「１」に更新する。
【００３８】
第２制御部１２は、また、内包するＳＹＮＣ確認ポインタ１２０を用いて、ＳＹＮＣフラグ付きＤＭＡ転送命令までの複数のＤＭＡ転送命令の実行完了を順番に確認する。本実施形態では、ＳＹＮＣ確認ポインタ１２０は、初期値として例えば「１」が設定されていることとする。第２制御部１２は、ディスクリプタ１３０−１が示すＤＭＡ転送命令の実行が完了したことをもって、ＳＹＮＣ確認ポインタ１２０を「１」から「２」に更新する。
【００３９】
第２制御部１２は、次に、ディスクリプタ１３０−３が示すＤＭＡ転送命令を実行していたＤＭＡコントローラ１４−３から、当該ＤＭＡ転送命令の実行を完了したことを通知される。第２制御部１２は、このとき、ディスクリプタ１３０−３における、実行バリッド１３１、ＤＭＡ転送実行フラグ１３６、及び、ＤＭＡ転送完了フラグ１３７を、ディスクリプタ１３０−１と同様に更新する。この時点で、ＳＹＮＣ確認ポインタ１２０は「２」を示しているが、ディスクリプタ１３０−２が示すＤＭＡ転送命令はまだ完了していない。したがって、第２制御部１２は、このときにＳＹＮＣ確認ポインタ１２０を更新しない。
【００４０】
第２制御部１２は、次に、ディスクリプタ１３０−２が示すＤＭＡ転送命令を実行していたＤＭＡコントローラ１４−２から、当該ＤＭＡ転送命令の実行を完了したことを通知される。第２制御部１２は、このとき、ディスクリプタ１３０−２を、ディスクリプタ１３０−１及び１３０−３と同様に更新する。この時点で、ＳＹＮＣ確認ポインタ１２０は「２」を示しており、ディスクリプタ１３０−２及び１３０−３が示すＤＭＡ転送命令は既に完了している。したがって、第２制御部１２は、このときにＳＹＮＣ確認ポインタ１２０を「２」から「３」に更新したのち、さらに「３」から「４」に更新する。
【００４１】
第２制御部１２は、その次に、ディスクリプタ１３０−４が示すＳＹＮＣフラグ付きＤＭＡ転送命令を実行していたＤＭＡコントローラ１４−４から、当該ＤＭＡ転送命令の実行を完了したことを通知される。第２制御部１２は、このとき、ディスクリプタ１３０−４における、ＤＭＡ転送実行フラグ１３６、及び、ＤＭＡ転送完了フラグ１３７を、ディスクリプタ１３０−１乃至１３０−３と同様に更新するが、この時点で、実行バリッド１３１は更新しない。第２制御部１２は、この時点で、ＳＹＮＣ確認ポインタ１２０の更新も行わない。
【００４２】
第２制御部１２は、この後、ＳＹＮＣ命令を、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２に対して発行するように、ＤＭＡコントローラ１４−４を制御する。そして第２制御部１２は、発行された当該ＳＹＮＣ命令の実行が、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２において完了したことを、ＤＭＡコントローラ１４−４から通知される。
【００４３】
図５は、本実施形態に係るＤＭＡ転送制御装置１０が、ＳＹＮＣフラグ付きＤＭＡ転送命令に伴うＳＹＮＣ命令を完了し、当該ＳＹＮＣフラグ付きＤＭＡ命令に後続するＤＭＡ転送命令の実行を開始するときにおける、第１制御部１１及び第２制御部１２によって更新されるディスクリプタ１３０の更新推移を例示する図である。第２制御部１２は、当該ＳＹＮＣ命令が完了した後、ディスクリプタ１３０−４における実行バリッド１３１を「１」から「０」に、ＳＹＮＣ命令完了フラグ１３８を「０」から「１」に更新する。そして、第２制御部１２は、ＳＹＮＣ確認ポインタ１２０を「４」から「５」に更新する。
【００４４】
この時点で、ＤＭＡ転送制御装置１０は、ＳＹＮＣフラグ付きＤＭＡ転送命令に後続するＤＭＡ転送命令の実行を開始することが可能となる。このとき第２制御部１２は、ＳＹＮＣフラグ付きＤＭＡ転送命令に後続するＤＭＡ転送命令の実行を開始できることを第１制御部１１に通知することによって、当該後続するＤＭＡ転送命令の実行を開始するように、ＤＭＡコントローラ１４を制御する。このとき、第１制御部１１は、図５に例示する通り、ディスクリプタ１３０−５が示すＤＭＡ転送命令を、ＤＭＡ割付ポインタ１１０により示されるＤＭＡコントローラ１４−５に割り当てたのち、ディスクリプタ１３０−５が示すＤＭＡ転送命令の実行を開始するように、ＤＭＡコントローラ１４−５を制御する。第１制御部１１は、ディスクリプタ１３０−１乃至１３０−４のときと同様に、ディスクリプタ１３０−５におけるＤＭＡ転送実行フラグ１３６を「０」から「１」に更新し、ＤＭＡ割付ポインタ１１０を「５」から「６」に更新する。
【００４５】
次に図６Ａ及び６Ｂのシーケンス図を参照して、本実施形態に係るＤＭＡ転送制御装置１０の動作（処理）について詳細に説明する。ただし、図６Ａ及び６Ｂのシーケンス図では、図１１Ａ及び１１Ｂに示す一般的なＤＭＡ転送制御装置３０の動作と比較できるように、実行するＤＭＡ転送命令の内容は、図１１Ａ及び１１Ｂに示すシーケンス図のときと同様とする。すなわち、図６Ａ及び６Ｂのシーケンス図において、ディスクリプタ１３０−１には、通常のＤＭＡ転送命令に関するＤＭＡ転送情報が記憶され、ディスクリプタ１３０−２には、ＳＹＮＣフラグ付きＤＭＡ転送命令に関するＤＭＡ転送情報が記憶されていることとする。また、図６Ａ及び６Ｂにおける装置間のデータの入出力に関し、実線は通常のＤＭＡ転送命令によるデータの入出力を表し、点線はＳＹＮＣフラグ付きＤＭＡ転送命令によるデータの入出力を表すこととする。
【００４６】
第１制御部１１は、記憶部１３に記憶されたディスクリプタ１３０−１及び１３０−２を選択する（ステップＳ１０１）。第１制御部１１は、ディスクリプタ１３０−１及び１３０−２に含まれるＳＹＮＣフラグ１３５を参照することによって、ディスクリプタ１３０−１は通常のＤＭＡ転送命令を示し、ディスクリプタ１３０−２はＳＹＮＣフラグ付きＤＭＡ転送命令を示すことを確認する（ステップＳ１０２）。
【００４７】
第１制御部１１は、ディスクリプタ１３０−１が示す、入出力制御装置１０２に対するＤＭＡ転送（リード）を実行するようにＤＭＡコントローラ１４−１を制御するとともに、ディスクリプタ１３０−２が示す、入出力制御装置１０２に対するＤＭＡ転送（リード）を実行するようにＤＭＡコントローラ１４−２を制御する（ステップＳ１０３）。
【００４８】
ＤＭＡコントローラ１４−１及び１４−２は、入出力制御装置１０２から入力されたデータを、自ＤＭＡコントローラにおけるデータバッファ１４１へ格納する（ステップＳ１０４）。ＤＭＡコントローラ１４−１及び１４−２は、データバッファ１４１に格納したデータを、主記憶装置１０１に対してＤＭＡ転送（ライト）する（ステップＳ１０５）。
【００４９】
第２制御部１２は、ＤＭＡコントローラ１４−１及び１４−２が、ＤＭＡ転送（ライト）に対するリプライを主記憶装置１０１から受け取ったのち、ＤＭＡコントローラ１４−１及び１４−２から転送が完了したこと（転送完了報告）を通知される（ステップＳ１０６）。第２制御部１２は、ディスクリプタ１３０−１及び１３０−２におけるＤＭＡ転送実行フラグ１３６及びＤＭＡ転送完了フラグ１３７を更新する（ステップＳ１０７）。
【００５０】
第２制御部１２は、ディスクリプタ１３０−１及び１３０−２の両方が更新されている（即ち、ディスクリプタ１３０−１及び１３０−２が示すＤＭＡ転送が両方とも完了している）ことを確認する（ステップＳ１０８）。第２制御部１２は、ＣＰＵ１００（図６Ｂでは不図示）と主記憶装置１０１と入出力制御装置１０２に対して、ＳＹＮＣ命令を発行するように、ＤＭＡコントローラ１４−２を制御する（ステップＳ１０９）。
【００５１】
第２制御部１２は、ＤＭＡコントローラ１４−２を介して、ＣＰＵ１００と主記憶装置１０１と入出力制御装置１０２とから、ＳＹＮＣ命令に対する命令完了報告を入手する（ステップＳ１１０）。第２制御部１２は、ディスクリプタ１３０−２におけるＳＹＮＣ命令完了フラグ１３８を更新する（ステップＳ１１１）。ＤＭＡ転送制御装置１０は、ディスクリプタ１３０−２が示すＳＹＮＣフラグ付きＤＭＡ転送命令に後続するＤＭＡ転送命令の実行を開始する（ステップＳ１１２）。
【００５２】
本実施形態に係るＤＭＡ転送制御装置１０は、完了保証指示情報（ＳＹＮＣフラグ）が付与されたＤＭＡ転送命令（ＳＹＮＣフラグ付きＤＭＡ転送命令）を含む複数のＤＭＡ転送命令を、高速に実行することができる。その理由は、ＤＭＡ転送制御装置１０は、実行中の状態にある先行するＤＭＡ転送命令が完了するまで待つことなくＳＹＮＣフラグ付きＤＭＡ転送命令の実行を開始し、ＳＹＮＣフラグ付きＤＭＡ転送命令までのＤＭＡ転送命令が全て完了したことを確認したのち、後続するＤＭＡ転送命令の実行を開始するようにＤＭＡコントローラを制御するからである。
【００５３】
以下に、本実施形態に係るＤＭＡ転送制御装置１０によって実現される効果について、詳細に説明する。
【００５４】
近年のコンピュータシステムは、ＤＭＡコントローラを複数備えることによって、複数のＤＭＡ転送を並列に行なうことが可能である。このような複数のＤＭＡ転送を行なうコンピュータシステムでは、特定のＤＭＡ転送命令を含む実行中の全てのＤＭＡ転送命令が完了したことを保証した後に、その特定のＤＭＡ転送命令に後続するＤＭＡ転送を行なう必要がある場合がある。この場合、その特定のＤＭＡ転送命令にＳＹＮＣフラグが付与されたＳＹＮＣフラグ付きＤＭＡ転送が行なわれる。
【００５５】
複数のＤＭＡコントローラを備える一般的なＤＭＡ転送制御装置は、例えば図１１Ａ及び１１Ｂに例示するように、ＳＹＮＣフラグ付きＤＭＡ転送命令を、先行して実行中であるＤＭＡ転送命令が全て完了した後に実行することによって、完了保証を実現する。すなわち、一般的なＤＭＡ転送制御装置は、複数のＤＭＡ転送を並列に実行可能なハードウェア構成を備えているにもかかわらず、ＳＹＮＣフラグ付きＤＭＡ転送に関しては、単独で実行する必要があるので、効率的であるとは言えない。
【００５６】
このような問題に対して、本実施形態に係るＤＭＡ転送制御装置１０は、第１制御部１１、及び、第２制御部１２を備え、例えば図６Ａ及び６Ｂに例示するように動作する。即ち、第１制御部１１は、複数のＤＭＡコントローラ１４によって個々に実行される複数のＤＭＡ転送命令のいずれかが、完了保証指示情報（ＳＹＮＣフラグ）が付与された第一のＤＭＡ転送命令（ＳＹＮＣフラグ付きＤＭＡ転送命令）である場合、当該複数のＤＭＡ転送命令のうち実行中の状態にある第二のＤＭＡ転送命令の実行が完了する前に、第一のＤＭＡ転送命令の実行を開始するように、当該複数のＤＭＡコントローラ１４のいずれかを制御する。第２制御部１２は、第一及び第二のＤＭＡ転送命令の実行が完了したことを検知したのち、当該複数のＤＭＡ転送命令のうち、第一のＤＭＡ転送命令に後続する第三のＤＭＡ転送命令の実行を開始するように、複数のＤＭＡコントローラ１４の少なくともいずれかを制御する。
【００５７】
このように、一般的なＤＭＡ転送制御装置３０は、通常のＤＭＡ転送とＳＹＮＣフラグ付きＤＭＡ転送命令とを並列に実行しないのに対して、本実施形態に係るＤＭＡ転送制御装置１０は、通常のＤＭＡ転送とＳＹＮＣフラグ付きＤＭＡ転送命令とを並列に実行する。したがって、本実施形態に係るＤＭＡ転送制御装置１０は、ＳＹＮＣフラグ付きＤＭＡ転送命令を含む場合であっても、複数のＤＭＡコントローラ１４を有効に使用することができるので、ＳＹＮＣフラグ付きＤＭＡ転送命令を含む複数のＤＭＡ転送命令を高速に実行することができる。
【００５８】
また、本実施形態に係る第２制御部１２は、ＳＹＮＣフラグ付きＤＭＡ転送命令までの全てのＤＭＡ転送命令が完了したときに、ＳＹＮＣ命令を、ＣＰＵ１００と、主記憶装置１０１と、入出力制御装置１０２と、に対して、ＳＹＮＣフラグ付きＤＭＡ転送命令を実行したＤＭＡコントローラ１４が発行するように制御する。そして、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２は、ＳＹＮＣ命令を実行したのち、ＳＹＮＣ命令を完了したことを、当該ＤＭＡコントローラ１４へ通知する。この際、ＣＰＵ１００、主記憶装置１０１、及び、入出力制御装置１０２は、自装置において、ＳＹＮＣ命令に対する処理が、ＳＹＮＣフラグ付きＤＭＡ転送命令に後続するＤＭＡ転送命令の実行開始に伴い発生する処理に追い越されないことが保証されるタイミングに、ＳＹＮＣ命令の実行を完了したことを、第２制御部１２へ通知するようにしてもよい。これにより、本実施形態に係るＤＭＡ転送制御システム１は、複数のＤＭＡ転送をパイプライン処理する際のスループットが低下することを回避しつつ、ＳＹＮＣフラグ付きＤＭＡ転送命令に対する完了保証を確実に行なうことができる。
【００５９】
＜第２の実施形態＞
図７は、本願発明の第２の実施形態に係るＤＭＡ転送制御装置２０の構成を概念的に示すブロック図である。
【００６０】
本実施形態に係るＤＭＡ転送制御装置２０は、第１制御部２１、及び、第２制御部２２を備えている。
【００６１】
第１制御部２１は、複数のＤＭＡコントローラ２４−１乃至２４−ｎ（ｎは２以上の任意の整数）によって個々に実行される複数のＤＭＡ転送命令のいずれかが、完了保証指示情報２５０が付与された第１のＤＭＡ転送命令２５である場合、下記の通り動作する。即ち、第１制御部２１は、複数のＤＭＡ転送命令のうち未だ実行状態にある第２のＤＭＡ転送命令２６の実行が完了する前に、第１のＤＭＡ転送命令２５の実行を開始するように、複数のＤＭＡコントローラ２４−１乃至２４−ｎのいずれかを制御する。但し、完了保証指示情報２５０は、第１のＤＭＡ転送命令２５と先行する第２のＤＭＡ転送命令２６との実行が完了するまで、後続するＤＭＡ転送命令の実行を保留することを指示する情報である。
【００６２】
第２制御部２２は、第１のＤＭＡ転送命令２５と第２のＤＭＡ転送命令２６の実行が完了したことを検知したのち、複数のＤＭＡ転送命令のうち、第１のＤＭＡ転送命令２５に後続する第３のＤＭＡ転送命令２７の実行を開始するように、複数のＤＭＡコントローラの少なくともいずれかを制御する。
【００６３】
本実施形態に係るＤＭＡ転送制御装置２０は、完了保証指示情報が付与されたＤＭＡ転送命令を含む複数のＤＭＡ転送命令を、高速に実行することができる。その理由は、ＤＭＡ転送制御装置２０は、実行中の状態にある先行する第２のＤＭＡ転送命令２６が完了するまで待つことなく完了保証指示情報２５０が付与された第１のＤＭＡ転送命令２５の実行を開始し、第１のＤＭＡ転送命令２５までのＤＭＡ転送命令が全て完了したことを確認したのち、後続する第３のＤＭＡ転送命令２７の実行を開始するようにＤＭＡコントローラ２４−１乃至２４−ｎを制御するからである。
【００６４】
＜ハードウェア構成例＞
上述した各実施形態において図１、及び、図７に示したＤＭＡ転送制御装置１０及び２０における各部は、専用のＨＷ（ＨａｒｄＷａｒｅ）（電子回路）によって実現することができる。また、図１、及び、図７において、少なくとも、下記構成は、ソフトウェアプログラムの機能（処理）単位（ソフトウェアモジュール）と捉えることができる。
・第１制御部１１及び２１、
・第２制御部１２及び２２。
【００６５】
但し、これらの図面に示した各部の区分けは、説明の便宜上の構成であり、実装に際しては、様々な構成が想定され得る。この場合のハードウェア環境の一例を、図８を参照して説明する。
【００６６】
図８は、本願発明の各実施形態に係るＤＭＡ転送制御装置を実行可能な情報処理装置９００（コンピュータ）の構成を例示的に説明する図である。即ち、図８は、図１、及び、図７に示したＤＭＡ転送制御装置或いはその一部を実現可能なコンピュータ（情報処理装置）の構成であって、上述した実施形態における各機能を実現可能なハードウェア環境を表す。図８に示した情報処理装置９００は、構成要素として下記を備えている。
・ＣＰＵ（Ｃｅｎｔｒａｌ＿Ｐｒｏｃｅｓｓｉｎｇ＿Ｕｎｉｔ）９０１、
・ＲＯＭ（Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）９０２、
・ＲＡＭ（Ｒａｎｄｏｍ＿Ａｃｃｅｓｓ＿Ｍｅｍｏｒｙ）９０３、
・ハードディスク（記憶装置）９０４、
・無線送受信部等の外部装置との通信インタフェース９０５、
・バス９０６（通信線）、
・ＣＤ−ＲＯＭ（Ｃｏｍｐａｃｔ＿Ｄｉｓｃ＿Ｒｅａｄ＿Ｏｎｌｙ＿Ｍｅｍｏｒｙ）等の記録媒体９０７に格納されたデータを読み書き可能なリーダライタ９０８、
・入出力インタフェース９０９。
【００６７】
即ち、上記構成要素を備える情報処理装置９００は、これらの構成がバス９０６を介して接続された一般的なコンピュータである。情報処理装置９００は、ＣＰＵ９０１を複数備える場合もあれば、マルチコアにより構成されたＣＰＵ９０１を備える場合もある。
【００６８】
そして、上述した実施形態を例に説明した本願発明は、図８に示した情報処理装置９００に対して、次の機能を実現可能なコンピュータプログラムを供給する。その機能とは、その実施形態の説明において参照したブロック構成図（図１及び図７）における上述した構成、或いはシーケンス図（図６Ａ及び６Ｂ）の機能である。本願発明は、その後、そのコンピュータプログラムを、当該ハードウェアのＣＰＵ９０１に読み出して解釈し実行することによって達成される。また、当該装置内に供給されたコンピュータプログラムは、読み書き可能な揮発性のメモリ（ＲＡＭ９０３）、または、ＲＯＭ９０２やハードディスク９０４等の不揮発性の記憶デバイスに格納すれば良い。
【００６９】
また、前記の場合において、当該ハードウェア内へのコンピュータプログラムの供給方法は、現在では一般的な手順を採用することができる。その手順としては、例えば、ＣＤ−ＲＯＭ等の各種記録媒体９０７を介して当該装置内にインストールする方法や、インターネット等の通信回線を介して外部よりダウンロードする方法等がある。そして、このような場合において、本願発明は、係るコンピュータプログラムを構成するコード或いは、そのコードが格納された記録媒体９０７によって構成されると捉えることができる。
【００７０】
以上、上述した実施形態を模範的な例として本願発明を説明した。しかしながら、本願発明は、上述した実施形態には限定されない。即ち、本願発明は、本願発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。
【符号の説明】
【００７１】
１    ＤＭＡ転送制御システム
１０    ＤＭＡ転送制御装置
１１    第１制御部
１１０    ＤＭＡ割付ポインタ
１２    第２制御部
１２０    ＳＹＮＣ確認ポインタ
１３    記憶部
１３０    ディスクリプタ
１３０−１乃至１３０−ｍ    ディスクリプタ
１３１    実行バリッド
１３２    転送元開始アドレス
１３３    転送先開始アドレス
１３４    データサイズ
１３５    ＳＹＮＣフラグ
１３６    ＤＭＡ転送実行フラグ
１３７    ＤＭＡ転送完了フラグ
１３８    ＳＹＮＣ命令完了フラグ
１３９    結果情報
１４    ＤＭＡコントローラ
１４−１乃至１４−ｎ    ＤＭＡコントローラ
１４０    ＤＭＡリクエスト制御部
１４１    データバッファ
１００    ＣＰＵ
１０１    主記憶装置
１０２    入出力制御装置
２０    ＤＭＡ転送制御装置
２１    第１制御部
２２    第２制御部
２４−１乃至２４−ｎ    ＤＭＡコントローラ
２５    第１のＤＭＡ転送命令
２５０    完了保証指示情報
２６    第２のＤＭＡ転送命令
２７    第３のＤＭＡ転送命令
３０    ＤＭＡ転送制御装置
３１    ＤＭＡコントローラ制御部
３３    記憶部
３３０−１乃至３３０−ｍ    ディスクリプタ
３４−１乃至３４−ｎ    ＤＭＡコントローラ
９００    情報処理装置
９０１    ＣＰＵ
９０２    ＲＯＭ
９０３    ＲＡＭ
９０４    ハードディスク（記憶装置）
９０５    通信インタフェース
９０６    バス
９０７    記録媒体
９０８    リーダライタ
９０９    入出力インタフェース
【図１】
2018120484.tif 000003
【図２】
2018120484.tif 000004
【図３】
2018120484.tif 000005
【図４】
2018120484.tif 000006
【図５】
2018120484.tif 000007
【図６Ａ】
2018120484.tif 000008
【図６Ｂ】
2018120484.tif 000009
【図７】
2018120484.tif 000010
【図８】
2018120484.tif 000011
【図９】
2018120484.tif 000012
【図１０】
2018120484.tif 000013
【図１１Ａ】
2018120484.tif 000014
【図１１Ｂ】
2018120484.tif 000015