JP2011070259A - データ転送装置及びデータ転送方法 - Google Patents

データ転送装置及びデータ転送方法 Download PDF

Info

Publication number
JP2011070259A
JP2011070259A JP2009218602A JP2009218602A JP2011070259A JP 2011070259 A JP2011070259 A JP 2011070259A JP 2009218602 A JP2009218602 A JP 2009218602A JP 2009218602 A JP2009218602 A JP 2009218602A JP 2011070259 A JP2011070259 A JP 2011070259A
Authority
JP
Japan
Prior art keywords
flag
data transfer
instruction information
information
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2009218602A
Other languages
English (en)
Inventor
Yasuhiro Omori
康宏 大森
Yasuto Omiya
康人 近江谷
Shigeru Hashimoto
茂 橋本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2009218602A priority Critical patent/JP2011070259A/ja
Publication of JP2011070259A publication Critical patent/JP2011070259A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

【課題】実行順序が定められた複数のデータ転送処理をDMA転送装置が実行する場合において、CPUが介在する頻度を少なくすることを目的とする。
【解決手段】CPU10は、指定したデータ転送処理を実行させるデータ転送指示情報と、実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、各チャネル200に対応付けてコマンドメモリ130に設定し、各チャネル200を起動する。各チャネル200は起動されると、コマンドメモリ130に設定された指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す。各チャネル200は、読み出した指示情報がデータ転送指示情報であった場合、データ転送指示情報で指定されたデータ転送処理を実行し、読み出した指示情報が制御指示情報であった場合、他のチャネル200によるデータ転送処理の実行状況に応じて、次の指示情報の読み出しを待つ。
【選択図】図1

Description

実行順序が定められた複数のデータ転送処理を複数のチャネルで並列に実行する技術に関する。
複数のI/O装置(Input/Output装置)を管理して処理を実行させる方法として、IBM(登録商標)S/370のCCW(チャネルコマンドワード)を使用するチャネル方式がある。
チャネル方式では、チャネルと呼ばれる処理の実行部が、メインメモリに記憶されたチャネルプログラムと呼ばれる制御用のプログラムに設定されたCCWを読み込み、読み込んだCCWに従ったI/O装置の操作を行う。
ここで、CCWはコマンドチェーンフラグというフラグ情報を有する。チャネルは、読み込んだCCWのコマンドチェーンフラグが有意である限り、次のCCWを読み込み処理を実行する。したがって、この方法を用いれば、複数のCCWを設定することにより、チャネルへ複数の処理をまとめて指示することができる。
一方、単純なDMA(Direct Memory Access)転送装置では、1度に1つのデータ転送処理がCPU(Central Processing Unit)から指示されることを基本とする。しかし、DMA転送装置にも上述したチャネル方式の概念を取り入れたものがある。DMA転送装置にチャネル方式の概念を取り入れる場合、前記CCWに相当する指示がCPUによりDMA転送装置内のメモリに設定される。
つまり、CPUがデータ転送処理を指示するCCWをDMA転送装置内のメモリに複数設定し、CPUから起動をかけられたDMA転送装置がコマンドチェーンフラグが有意である限り順次CCWを読み込み実行する。これにより、CPUがDMA転送装置を1回起動しただけで、DMA転送装置により連続して複数のデータ転送処理が実行される。
また、データ転送処理を実行するチャネルを複数備えるDMA転送装置がある。このDMA転送装置では、レイテンシの大きいメモリやレイテンシの大きいI/O装置を効率よく動かすために、複数のチャネルを並列動作させる。つまり、複数のチャネルにより、データ転送処理を並列して実行させる。この場合、各チャネルの動作は独立しているため、各チャネルが同時に同じメモリ領域にアクセスしないように、CPUがチャネルの起動を制御する。
なお、レイテンシとは、データの読み書きが行われるまでにかかる遅延時間のことであり、レイテンシが大きいほど遅延時間が長いことを意味する。
特許文献1には、優先度、タイミング情報、キャンセル情報などのパラメータを転送情報に含めてCPUがDMA転送装置へ与え、DMA転送装置が与えられたパラメータに従ったデータ転送処理を実行することについての記載がある。
特開2002−41445号公報
特許文献1に記載された方法では、DMA転送装置は、タイミング情報によって指定されたタイミングで順次データ転送処理を実行することは可能である。しかし、あるチャネルが他のチャネルでデータ転送処理が完了しているか否かの確認を行うことはできない。そのため、特許文献1に記載された方法を用いたとしても、実行順序が定められた複数のデータ転送処理を実行する場合、CPUが介在して、チャネル間におけるデータ転送処理の実行順序を制御する必要がある。つまり、DMA転送装置は、CPUからの介在なしに、実行順序が定められた複数のデータ転送処理を連続して実行することはできない。
この発明は、実行順序が定められた複数のデータ転送処理をDMA転送装置が実行する場合において、CPUが介在する頻度を少なくすることを目的とする。
この発明に係るデータ転送装置は、例えば、
データ転送処理を実行する複数の転送処理部を備え、実行順序が定められた複数のデータ転送処理を前記複数の転送処理部で順に実行するデータ転送装置であり、
指定したデータ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、前記複数の転送処理部の各転送処理部に対応付けて複数記憶するコマンド記憶部を備え、
前記各転送処理部は、
前記コマンド記憶部が記憶した指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す指示読出部と、
前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、他の転送処理部によるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
を備えることを特徴とする。
この発明に係るデータ転送装置では、各転送処理部が他のデータ転送処理の実行状態に応じて指示コマンドの読み出しを待ち状態として、実行順序を制御する。そのため、実行順序を制御するためにCPUが介在する必要がなく、実行順序が定められた複数のデータ転送処理を連続して実行する場合におけるCPUの介在回数を減らすことができる。
実施の形態1に係るDMA転送装置100の構成図。 実施の形態1に係るDMA転送装置100が備えるチャネル200の構成図。 CCWの一例を示す図(コマンドメモリ130Aに設定されるCCW)。 CCWの一例を示す図(コマンドメモリ130Bに設定されるCCW)。 フラグメモリ140の構成図。 DMA転送装置100における各チャネル200の処理の流れを示すフローチャート。 フラグ機能22の構成図。 CPU10の処理の流れを示すフローチャート。 チャネル200Aとチャネル200Bとによるデータ転送処理と、CPU10によるCPU処理との実行制御の説明図。 フラグメモリ140とフラグアクセス制御回路150との構成の例示す図。 実施の形態2に係るDMA転送装置100の構成図。 実施の形態3に係るDMA転送装置100の構成図。 実施の形態3に係るフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図。 リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるDMA転送装置100の構成図。 リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図。 実施の形態4に係るDMA転送装置100の構成図。 フラグメモリ140として2ポートメモリを使用した場合のフラグメモリ140とフラグアクセス制御回路150との構成図。 ライト要求とリード要求との処理タイミングをずらした場合のタイミングチャート。
実施の形態1.
実施の形態1では、実行順序が定められた複数のデータ転送処理を、複数のチャネル200間で実行順序を制御しながら、順次実行するDMA転送装置100について説明する。
図1は、実施の形態1に係るDMA転送装置100の構成図である。
図2は、実施の形態1に係るDMA転送装置100が備えるチャネル200の構成図である。なお、図2では、図1に示すチャネル200Aを一例として示す。
まず、DMA転送装置100の概要を説明する。
DMA転送装置100は、メモリ20、又は図示されていないI/O装置の所定のアドレスAから所定の転送長Xのデータを、メモリ20、又はI/O装置の所定のアドレスBへ転送するデータ転送処理を実行する装置である。
DMA転送装置100にデータ転送処理を実行させる場合、CPU10は、転送元のアドレスA、転送先のアドレスB、転送長X等を含むCCW(指示情報)をコマンドメモリ130Aやコマンドメモリ130Bに書き込み、DMA転送装置100を起動させる。すると、DMA転送装置100は、書き込まれたCCWに従いデータ転送処理を実行する。特に、CPU10は一度に複数のCCWをコマンドメモリ130Aやコマンドメモリ130Bに書き込み、DMA転送装置100は書き込まれた複数のCCWを順次読み出して、データ転送処理を順次実行する。
また、図1では、DMA転送装置100は、チャネル200Aとチャネル200Bとの2つのチャネル(転送処理部)を備える。チャネル200Aは、コマンドメモリ130Aに書き込まれたCCWに従いデータ転送処理をチャネル200Bとは独立して実行する。同様に、チャネル200Bは、コマンドメモリ130Bに書き込まれたCCWに従いデータ転送処理をチャネル200Aとは独立して実行する。つまり、チャネル200Aとチャネル200Bとは、互いに独立して、並列にデータ転送処理を実行することができる。
次に、DMA転送装置100の構成を説明する。
図1に示すように、DMA転送装置100は、バス11を介してCPU10と接続される。また、CPU10は、メモリバス21を介してメモリ20と接続される。
DMA転送装置100は、バス制御を行うバス制御回路110と、DMA転送装置100の起動設定が行われる起動レジスタ120と、CCWが格納されるコマンドメモリ130A及びコマンドメモリ130B(コマンド記憶部)と、転送完了の状態をフラグとして保持するフラグメモリ140(フラグ記憶部)と、フラグメモリ140へのアクセスを制御するフラグアクセス制御回路150(フラグアクセス制御部)と、データ転送処理を実行するチャネル200A及びチャネル200Bと、内部バス300と、内部バス300と外部バス320とを接続するバスブリッジ310とを備える。なお、内部バス300や外部バス320には、図示されていないI/O装置等と接続されている。
また、コマンドメモリ130A及びコマンドメモリ130Bに格納されるCCWには、転送元アドレス、転送先アドレス、転送長等を含み、データ転送処理を実行させる転送用コマンド(転送指示情報)と、転送完了の通知/確認を指示し、実行順序の制御をするフラグコマンド(制御指示情報)との2種類がある。
図2に示すように、チャネル200Aは、コマンドメモリ130AからCCWを読み出すコマンド読出回路210(指示読出部)と、コマンド読出回路210が読み出したCCWが転送用コマンドであるか、フラグコマンドであるかを判定するコマンド判別回路220(コマンド判定部)と、コマンド読出回路210が読み出したCCWが転送用コマンドであった場合、転送用コマンドに従いデータ転送処理を実行する転送実行部230と、コマンド読出回路210が読み出したCCWがフラグコマンドであった場合、他のチャネル(ここでは、チャネル200B)によるデータ転送処理の実行状態に応じて、コマンド読出回路210に次のCCWの読み出しを待たせる順序制御部240とを備える。
転送実行部230は、データ転送処理の制御を行う転送制御回路231と、データ転送処理を実行する転送回路234とを備える。転送制御回路231は、コマンド全体制御部232とコマンド個別制御部233とを備え、転送回路234は、転送要求部235とバッファ236とを備える。
順序制御部240は、フラグメモリ140に記憶されたフラグへのリードアクセス、ライトアクセスを行うフラグメモリアクセス回路241(アクセス部)、フラグメモリアクセス回路241が読み出したフラグの値が“転送完了状態”又は“CPU処理完了状態”であるか否かを判定するフラグ判定回路242(フラグ判定部)を備える。
なお、チャネル200Bは、チャネル200Aと同一の構成である。但し、チャネル200Bが備えるコマンド読出回路210がCCWを読み出すのは、コマンドメモリ130Aではなく、コマンドメモリ130Bである。
また、ここでは、DMA転送装置100がチャネル200Aとチャネル200Bとの2つのチャネルを備える例を説明するが、DMA転送装置100は3つ以上のチャネルを備えていてもよい。また、ここでは、チャネル200毎にコマンドメモリ130を分けているが、各チャネル200で共通のコマンドメモリ130を用いてもよい。
次に、CCWについて説明する。
図3と図4とは、CCWの一例を示す図である。なお、図3は、コマンドメモリ130Aに書き込まれたCCWの例であり、図4は、コマンドメモリ130Bに書き込まれたCCWの例である。
図3,4に示すように、CCWには、転送用コマンドとフラグコマンドとの2種類がある。そして、2種類のCCWがチャネル200に実行させる順に並べられ指示コマンドを形成する。
例えば、図3に示すように、コマンドメモリ130Aには、CCW0_0、CCW0_2、CCW0_5の転送用コマンドと、CCW0_1、CCW0_3、CCW0_4のフラグコマンドとが、CCW0_0、CCW0_1、CCW0_2、CCW0_3、CCW0_4、CCW0_5の順に並べられた指示コマンドが設定されている。なお、ここでは、CCW0_0はデータ転送処理「転送A」を指示し、CCW0_2はデータ転送処理「転送D」を指示し、CCW0_5はデータ転送処理「転送H」を指示するものとする。
また、図4に示すように、コマンドメモリ130Bには、CCW1_0、CCW1_2、CCW1_4の転送用コマンドと、CCW1_1、CCW1_3、CCW1_5のフラグコマンドとが、CCW1_0、CCW1_1、CCW1_2、CCW1_3、CCW1_4、CCW1_5の順に並べられた指示コマンドが設定されている。なお、ここでは、CCW1_0はデータ転送処理「転送B」を指示し、CCW1_2はデータ転送処理「転送E」を指示し、CCW1_4はデータ転送処理「転送G」を指示するものとする。
転送用コマンドは、転送元アドレス、転送先アドレス、転送長を含む。
転送元アドレスは、データ転送処理におけるデータの取得先を示すアドレスである。転送先アドレスは、データ転送処理におけるデータの書き込み先を示すアドレスである。転送長は、転送するデータのサイズを示す。
フラグコマンドは、転送完了を通知させるsetコマンド(フラグコマンドset,通知指示情報)と、転送完了を確認させるwaitコマンド(フラグコマンドwait,待ち指示情報)との2種類がある。setコマンドは、更新するフラグのアドレスを含み、そのアドレスのフラグの値を“1”に更新させる。waitコマンドは、読み出すフラグのアドレスを含み、そのフラグの値を読み出させる。
なお、転送用コマンドとフラグコマンドとのどちらも、コマンドチェーンフラグを含む。コマンドチェーンフラグは、指示コマンドに次のCCWが設定されているか否かを示す。コマンドチェーンフラグの値が“1”であれば、次のCCWが設定されていることを示し、コマンドチェーンフラグの値が“0”であれば、次のCCWが設定されていないことを示す。
例えば、図3に示すように、CCW0_4のコマンドチェーンフラグの値は“1”であるから、CCW0_4の次にはCCW(ここでは、CCW0_5)が設定されていることを示す。一方、CCW0_5のコマンドチェーンフラグの値は“0”であるから、CCW0_5の次にはCCWが設定されていないことを示す。
次に、フラグメモリ140について説明する。
図5は、フラグメモリ140の構成図である。
図5に示すように、フラグメモリ140は、アドレス毎にフラグが設定されている。フラグメモリ140が有する各フラグは、各データ転送処理に対応し、そのデータ転送処理の実行が完了したか否かを示す。例えば、アドレス“0x0000”のフラグは、転送Aに対応し、転送Aが完了したか否かを示す。同様に、アドレス“0x0001”のフラグは、転送Gに対応し、転送Gが完了したか否かを示す。
つまり、図3に示すCCW0_1のsetコマンドは、アドレス“0x0000”を指定して、転送完了を通知させるコマンドであるから、転送Aが完了したことを通知させるコマンドである。すなわち、CCW0_1のsetコマンドは、アドレス“0x0000”のフラグを“1”に更新させることにより、転送Aが完了したことを通知させる。
一方、図4に示すCCW1_1のwaitコマンドは、アドレス“0x0000”を指定して、転送完了を確認させるコマンドであるから、転送Aが完了したことを確認させるコマンドである。すなわち、CCW1_1のwaitコマンドは、アドレス“0x0000”のフラグが“1”であるか確認させることにより、転送Aが完了したかを確認させる。
DMA転送装置100の動作について説明する。
図6は、DMA転送装置100における各チャネル200の処理の流れを示すフローチャートである。
まず、CPU10はバス11を介して、DMA転送装置100のコマンドメモリ130Aとコマンドメモリ130BとにCCWを書き込む。ここでは、コマンドメモリ130Aには、図3に示すCCWが書き込まれ、コマンドメモリ130Bには、図4に示すCCWが書き込まれたものとする。したがって、チャネル200Aは、CCW0_0〜CCW0_5の順に処理を実行することになる。同様に、チャネル200Bは、CCW1_0〜CCW1_5の順に処理を実行することになる。
そして、CPU10は、コマンドメモリ130Aにコマンドを書き込んだ後、チャネル200Aの起動をかけるため、起動レジスタ120におけるチャネル200Aについての起動フラグを“1”(有意)にする。すると、起動レジスタ120が、起動フラグが“1”になったことを、チャネル200Aのコマンド読出回路210へ通知する。これにより、チャネル200Aが動作を開始する。
同様に、CPU10は、コマンドメモリ130Bにコマンドを書き込んだ後、チャネル200Bの起動をかけるため、起動レジスタ120におけるチャネル200Bについての起動フラグを“1”(有意)にする。すると、起動レジスタ120が、起動フラグが“1”になったことを、チャネル200Bのコマンド読出回路210へ通知する。これにより、チャネル200Bが動作を開始する。
各チャネル200(チャネル200Aとチャネル200B)は次のように動作する。
(S11)では、起動レジスタ120から通知を受けたコマンド読出回路210は、対応するコマンドメモリ130へCCWリード要求を送信して、コマンドメモリ130から順にCCWを読み込む。(S12)では、コマンド判別回路220は、コマンド読出回路210が読み込んだCCWが、転送用コマンドであるか、フラグコマンドであるかを判定する。CCWが転送用コマンドであれば(S12でYES)、(S13)で転送実行部230によりデータ転送処理が実行される。一方、CCWがフラグコマンドであれば(S12でNO)、(S14)から(S17)で順序制御部240により実行順序の制御が行われる。
(S13)では、コマンド判別回路220は、コマンド個別制御部233へCCW(転送用コマンド)を送信する。コマンド個別制御部233は、送信された転送用コマンドを構成する転送元アドレスと、転送先アドレスと、転送長とを転送要求部235に設定する。転送要求部235は、設定された転送元アドレスと転送長とに従ったリード要求を内部バス300を経由して送信し、転送元アドレスからデータ(リードデータ)を読み出し、バッファ236に格納する。さらに、転送要求部235は、設定された転送用コマンドを構成する転送先アドレスに従ったライト要求を、バッファ236に格納されたデータ(ライトデータ)とともに内部バス300を経由して送信する。これにより、バッファ236に格納されたデータを転送先アドレスに書き込む。
この読み出しと書き込みはバッファ236の容量又はそれ以下の単位サイズで繰り返され、CCWに格納された転送長に達するまで転送元アドレスと転送先アドレスとに前記単位サイズを加算しながら繰り返し処理が行われる。データの書き込みの完了によって、データ転送処理は完了する。
データ転送処理が完了すると転送要求部235は、コマンド個別制御部233へデータ転送処理が完了したことを伝え、コマンド個別制御部233は、データ転送処理が完了したことをコマンド全体制御部232へ伝える。コマンド全体制御部232は、データ転送処理が完了したことの通知を受けると、コマンド読出回路210に次のCCWを読み出すように指令を出す。
一方、(S14)では、コマンド判別回路220は、フラグメモリアクセス回路241へCCW(フラグコマンド)を送信する。フラグメモリアクセス回路241は、送信されたCCWがsetコマンドであるかwaitコマンドであるかを判定する。フラグコマンドがsetコマンドであれば、(S15)でデータ転送処理が完了したことを通知する。一方、フラグコマンドがwaitコマンドであれば、(S16)と(S17)とで、所定のデータ転送処理が完了するまで処理を待たせる。
(S15)では、フラグメモリアクセス回路241は、フラグコマンドを構成するアドレスとライト要求とをフラグアクセス制御回路150を介してフラグメモリ140へ送信する。なお、ライト要求には、ライトデータ(ここでは、フラグを“1”に更新するため“1”)と、リクエスト信号(例えば、“1”)と、リードライト信号(ライト要求である場合、例えば“1”)とが含まれる。これで、setコマンドで指定されているフラグメモリ140のアドレスに設定されたフラグが、データ転送処理の完了状態を示す“1”に更新される。これにより、他のチャネルにデータ転送処理が完了したことを示す。
そして、フラグ判定回路242は、フラグアクセス制御回路150からアクノリッジ信号(Ack)を受信すると、コマンド読出回路210に次のCCWを読み出すように指令を出す。
一方、(S16)では、フラグメモリアクセス回路241は、waitコマンドを構成するアドレスとリード要求とをフラグアクセス制御回路150を介してフラグメモリ140へ送信する。なお、リード要求には、リクエスト信号(例えば、“1”)と、リードライト信号(リード要求である場合、例えば“0”)とが含まれる。
(S17)では、フラグ判定回路242は、(S16)で送信したリード要求に対する応答としてフラグの値(リードフラグ)を受信し、受信したフラグの値を判定する。
フラグの値がデータ転送処理の完了状態を示す“1”であると判定された場合(S17でYES)、フラグ判定回路242は、データ転送処理が完了しているとみなす。そして、フラグ判定回路242は、コマンド読出回路210に次のCCWを読み出すように指令を出す。
一方、読み込んだフラグの値がデータ転送処理の完了状態を示す“1”ではない場合(S17でNO)、フラグ判定回路242は、データ転送処理が完了していないとみなす。そして、フラグ判定回路242は、フラグメモリアクセス回路241に再度フラグメモリ140へリード要求を送信するように指令を出す。つまり、フラグメモリアクセス回路241とフラグ判定回路242とによるフラグの値の読み込みとフラグの値の判定とは、読み込んだフラグの値が“1”になるまで繰り返される。この繰り返し間隔が短すぎると他チャンネルからのフラグメモリ140へのアクセスと競合し易くなるため読み出し間隔をある程度長くしてもよい。
すなわち、waitコマンドで指定されたアドレスにおけるフラグの値が“1”にならない限り、コマンド読出回路210は次のCCWを読み出せず、チャネル200は次のCCWを実行することができない。
(S18)では、(S13)又は(S15)又は(S17)で、次のCCWを読み出すように指令が出された場合、コマンド読出回路210は(S11)で読み込んだCCWのコマンドチェーンフラグが“1”であるか否かを判定する。CCWのコマンドチェーンフラグが“1”であれば、(S18でYES)、(S11)へ戻って次のCCWを読み出す。一方、CCWのコマンドチェーンフラグが“1”でなければ(S18でNO)、コマンド読出回路210は処理を終了し、アイドル状態になる。
つまり、各チャネル200は、読み込んだCCWがsetコマンドであった場合には、setコマンドで指定されたアドレスのフラグを、データ転送処理が完了したことを示す“1”に更新する。これにより、各チャネル200は、他のチャネル200へそのアドレスのフラグが示すデータ転送処理が完了したことを通知する。一方、各チャネル200は、読み込んだCCWがwaitコマンドであった場合には、waitコマンドで指定されたアドレスのフラグが、データ転送処理が完了したことを示す“1”になるまで処理をループさせて、次のCCWの読み込みを停止する。これにより、複数のチャネル200が独立して動作しながらも、CPU10の介在なしに、他のチャネル200で実行されるデータ転送処理との間の実行順序を制御できる。
すなわち、DMA転送装置100は、あるチャネル200(例えば、チャネル200A)が実行するデータ転送処理と、他のチャネル200(例えば、チャネル200B)が実行するデータ転送処理との間での実行順序を、CPU10の介在なしに制御することができる。
次に、チャネル200間での実行順序の制御に加え、チャネル200が実行するデータ転送処理と、CPU10が実行するCPU処理との間での実行順序を制御する処理について説明する。
まず、メモリ20について説明する。
図1に示すように、メモリ20は、フラグ機能22と処理プログラム23とを備える。
図7は、フラグ機能22の構成図である。
フラグ機能22は、フラグメモリ140と同様に、アドレス毎にフラグが設定されている。フラグ機能22が有する各フラグは、各データ転送処理又はCPU10で実行される各CPU処理に対応し、そのデータ転送処理又はCPU処理の実行が完了したか否かを示す。例えば、アドレス“0x1000”のフラグは、転送Eに対応し、データ転送処理Eが完了したか否かを示す。同様に、アドレス“0x2000”のフラグは、CPU処理Fに対応し、CPU処理Fが完了したか否かを示す。
次に、DMA転送装置100側の処理について説明する。
この場合におけるDMA転送装置100の処理の流れは、図6に示す通りである。しかし、図6の(S15)と(S16)とにおける処理が、上述した内容とは若干異なる。
上記説明において(S15)では、フラグメモリアクセス回路241は、フラグコマンドを構成するアドレスとライト要求とをフラグメモリ140へ送信して、フラグの値を“1”に更新すると説明した。
しかし、他のチャネル200が実行するデータ転送処理だけでなく、CPU10が実行するCPU処理との間での実行順序を制御する場合には、フラグメモリアクセス回路241は、フラグコマンドに含まれるアドレスに応じて、ライト要求の送信先を変更する。
つまり、フラグコマンドに含まれるアドレスが、フラグメモリ140におけるアドレスである場合には、フラグメモリアクセス回路241は、ライト要求をフラグメモリ140へ送信する。一方、フラグメモリ140におけるアドレスでない場合(メモリ20におけるフラグ機能22のアドレスである場合)には、フラグメモリアクセス回路241は、ライト要求を内部バス300を介してメモリ20へ送信する。これで、setコマンドで指定されているメモリ20のアドレスに設定されたフラグを、データ転送処理の完了状態を示す“1”に更新される。これにより、CPU10にデータ転送処理が完了したことを示す。
なお、例えば、フラグメモリ140のアドレス領域と、フラグ機能22のアドレス領域とを予めフラグメモリアクセス回路241に設定しておく。これにより、フラグメモリアクセス回路241は、フラグコマンドに含まれるアドレスがフラグメモリ140のアドレスであるかフラグ機能22のアドレスであるかを判定できる。
(S16)においても、(S15)の場合と同様に、CPU10が実行するCPU処理との間での実行順序を制御する場合には、フラグメモリアクセス回路241は、フラグコマンドに含まれるアドレスに応じて、リード要求の送信先を変更する。
つまり、フラグコマンドに含まれるアドレスが、フラグメモリ140におけるアドレスである場合には、フラグメモリアクセス回路241は、リード要求をフラグメモリ140へ送信する。一方、フラグメモリ140におけるアドレスでない場合(メモリ20におけるアドレスである場合)には、フラグメモリアクセス回路241は、リード要求をメモリ20へ送信する。
CPU10の処理については詳しくは後述するが、CPU10では、CPU処理が終了した場合に、メモリ20の所定のアドレスに設定されたフラグをCPU処理の完了状態を示す“1”に更新する。したがって、所定のCPU処理が完了しない限り、コマンド読出回路210は次のCCWを読み出せず、チャネル200は次のCCWを実行することができない。
次に、CPU10側の処理を説明する。
図8は、CPU10の処理の流れを示すフローチャートである。
まず(S21)から(S23)で、CPU10は初期処理を行う。(S21)では、上述したように、CPU10は、DMA転送装置100のコマンドメモリ130Aとコマンドメモリ130BとにCCWを書き込む。(S22)では、CPU10は、フラグメモリ140やメモリ20のフラグをリセットする。(S23)では、上述したように、CPU10は、起動レジスタ120におけるチャネル200についての起動フラグを“1”(有意)にして、チャネル200を起動させる。
続いて、(S24)から(S30)で、CPU10は、DMA転送装置100が実行するデータ転送処理と実行順序が定められたCPU処理を順次実行する。なお、CPU10が実行するCPU処理の順序や、DMA転送装置100が実行するデータ転送処理との間の実行順序は、メモリ20に設定された処理プログラム23に設定されている。また、CPU10が更新する、又は読み込むフラグが設定されたアドレスも処理プログラム23に設定されているものとする。
(S24)では、CPU10は、処理の実行前に完了しなければならないデータ転送処理がないか否かを判定する。
完了しなければならないデータ転送処理がなければ(S24でYES)、(S25)でCPU10はCPU処理を実行する。
一方、完了しなければならないデータ転送処理があれば(S24でNO)、(S26)でCPU10は、メモリ20の所定のアドレスに設定されたフラグの値を読み込む。そして、(S27)で、(S26)で読み込んだフラグの値を判定する。フラグの値がデータ転送処理の完了状態を示す“1”であると判定された場合は、データ転送処理が完了しているとみなし、CPU10は(S25)へ進みCPU処理を実行する。一方、読み込んだフラグの値がデータ転送処理の完了状態を示す“1”ではない場合は、データ転送処理が完了していないとみなし、CPU10は(S26)へ戻って再びフラグの値を読み込む。つまり、フラグの値がデータ転送処理の完了状態を示す“1”になるまで、CPU10はCPU処理を実行しない。
(S25)でCPU処理を実行すると、(S28)では、CPU10は、CPU処理の完了状態を示す“1”に所定のフラグを更新する必要があるか否かを判定する。フラグを更新する必要があれば(S28でYES)、(S29)でフラグを更新した後、(S30)で次に実行する処理がないか否か判定する。一方、フラグを更新する必要がなければ(S28でNO)、フラグを更新することなく、(S30)で次に実行する処理がないか否か判定する。次に実行する処理があれば(S30でNO)、(S24)へ戻る。一方、次に実行する処理がなければ(S30でYES)、処理を終了する。
以上のようにDMA転送装置100とCPU10とが動作することにより、DMA転送装置100は、チャネル200が実行するデータ転送処理と、CPU10が実行するCPU処理との間での実行順序を制御することができる。
図9は、図3,4のようにCCWが設定されている場合におけるチャネル200Aとチャネル200Bとによるデータ転送処理と、CPU10によるCPU処理との実行制御の説明図である。
なお、図9では、処理プログラム23には、(1)処理Cを実行し、(2)アドレス“0x1000”のフラグが“1”か否か確認し、(3)処理Fを実行し、(4)アドレス“0x2000”のフラグを“1”に更新することが設定されているものとする。
また、転送用コマンドとフラグコマンドが使用するアドレスマップは、アドレス“0x0000”〜“0x0FFF”がフラグメモリ140のアドレスであるとする。同様に、アドレス“0x1000〜0xFFFF”がメモリ20のフラグ機能22で使用するアドレスであるとする。同様に、アドレス“0x10000”〜“0xFFFFF”がメモリ20のフラグ機能以外で使用するアドレスであるとする。そして、フラグメモリ140に設定されたフラグは、図5のようにデータ転送処理に割り当てられ、フラグ機能22に設定されたフラグは、図7のようにデータ転送処理及びCPU処理に割り当てられているものとする。
CPU10が(S21)から(S23)を実行して、チャネル200Aとチャネル200Bとを起動する。すると、図9に示すように、まず、CPU10が処理C(CPUの処理(1))を、チャネル200Aが転送A(CCW0_0)を、チャネル200Bが転送B(CCW1_0)を並列して実行する。
チャネル200Bによる転送Bが最も早く完了するが、チャネル200Bはアドレス“0x0000”のフラグが“1”になるまで待ちに入る(CCW1_1)。データ転送処理Bに続いて、チャネル200Aによる転送Aが完了する。すると、チャネル200Aは、アドレス“0x0000”のフラグを“1”に更新する(CCW0_1)。そして、チャネル200Aは次の転送Dを実行する(CCW0_2)。アドレス“0x0000”のフラグが“1”に更新されたため、チャネル200Aがデータ転送処理Dを実行するのと並列して、チャネル200Bはデータ転送処理Eを実行する(CCW1_2)。一方、CPU10による処理Cも、チャネル200Aによるデータ転送処理Aが完了後まもなく完了するが、CPU10はアドレス“0x1000”のフラグが“1”になるまで待ちに入る(CPUの処理(2))。
チャネル200Aによるデータ転送処理Dと、チャネル200Bによるデータ転送処理Eとが完了する。すると、チャネル200Aは、アドレス“0x2000”のフラグが“1”になるまで待ちに入る(CCW0_3)。チャネル200Bは、アドレス“0x1000”のフラグを“1”に更新する(CCW1_3)。そして、チャネル200Bは次のデータ転送処理Gを実行する(CCW1_4)。アドレス“0x1000”のフラグが“1”に更新されたため、チャネル200Bがデータ転送処理Gを実行するのと並列して、CPU10は処理Fを実行する(CPUの処理(3))。
チャネル200Bによるデータ転送処理Gが、CPU10による処理Fよりも先に完了する。チャネル200Bは、データ転送処理Gが完了すると、アドレス“0x0001”のフラグを“1”に更新する(CCW1_5)。また、CPU10は、処理Fが完了すると、アドレス“0x2000”のフラグを“1”に更新する(CPUの処理(4))。すると、アドレス“0x2000”のフラグが“1”に更新されたため、チャネル200Aはアドレス“0x0001”のフラグが“1”であるかを確認する(CCW0_4)。ここでは、既にアドレス“0x0001”のフラグは“1”であるから、すぐにチャネル200Aは次のデータ転送処理Hを実行する(CCW0_5)。データ転送処理Hが完了すると、処理が全て完了したことになる。
以上のように、DMA転送装置100であれば、図3,4に示す全てのデータ転送処理を実行するには、CPU10は、チャネル200Aの起動とチャネル200Bの起動との計2回、DMA転送装置100へアクセスすればよい。
一方、従来のように、実行順序の制御をCPU10が介在して行った場合、図3,4に示す全てのデータ転送処理を実行するには、CPU10は、チャネル200Aの起動と、チャネル200Bとの起動と、データ転送処理Eの起動と、データ転送処理Hの起動との合計4回の起動に加え、データ転送処理Aの完了確認とデータ転送処理Eの完了確認とデータ転送処理Gの完了確認との3回の完了確認を行う必要がある。つまり、CPU10は、DMA転送装置100に計7回のアクセスが必要となる。
複数のチャネルで複数の転送を並列に実行する場合、特許文献1のような従来技術では、複数の転送を一度の起動で連続して順次実行する事は可能である。しかし、実行するチャネル同士が他のチャネルの転送状況を知る手段がなく、実行の順序が決まっている複数の転送をチャネル間で並列に実行するためには、CPUが転送の完了の確認と転送起動を何度も行わなければならない。
したがって、DMA転送装置100によれば、CPU10がDMA転送装置100へアクセスする回数を少なくすることができ、DMA転送に関するCPU10の負荷を減らすことができる。すなわち、DMA転送装置100では、各チャネル200が、CCWに従い、他のチャネル200のデータ転送処理やCPU処理の完了を確認して、能動的に次のデータ転送処理を開始する。そのため、CPU10が行うデータ転送処理の完了確認と、データ転送処理の起動との回数が減る。その結果、DMA転送に関するCPU10の負荷を減らすことができる。
また、CPU10が実行するCPU処理とDMA転送装置100が実行するデータ転送処理との間の実行順序を制御する場合、従来は、DMA転送装置100の転送完了をCPU10が確認する必要がある。この確認をするためには、DMA転送装置100からの割り込み通知を受信するか、CPU10からポーリングによって確認する必要があった。
ここで、割り込みは処理時間がかかる。一方、ポーリングは、処理時間が短いが、CPU10とDMA転送装置100との接続がPCIExpressのような読み出しレイテンシが大きいバスを使用している場合バスアクセス時間がかかる。そのため、転送完了を確認することにかかる時間は長くなり、DMA転送に係わるCPU10の処理時間が長くなり、CPU10とDMA転送装置100との連携によるシステム動作の性能が低下していた。
しかし、DMA転送装置100は、データ転送処理が完了したことをメモリ20に書き込む。そのため、CPU10はメモリ20にアクセスするだけで、データ転送処理が完了したことを確認できる。したがって、CPU10がデータ転送処理が完了したことを確認する処理時間を短縮できる。
なお、チャネル200Aとチャネル200Bとが同時にフラグメモリ140に対してリード要求やライト要求を出す場合が考えられる。この場合、フラグメモリ140がRAM(Random Access Memory)で構成されていると、処理に不具合が発生する可能性がある。
そこで、フラグメモリ140に対してリード要求やライト要求が同時に送信された場合、フラグメモリ140へ送信するリード要求又はライト要求はフラグアクセス制御回路150によって選択される。選択されていないリード要求やライト要求は、選択されるまでフラグメモリ140への送信が待たされる。これにより、複数のリード要求やライト要求が同時にフラグメモリ140へ送信され、処理に不具合が発生することを防止する。
図10は、フラグメモリ140とフラグアクセス制御回路150との構成の例示す図である。
フラグアクセス制御回路150は、調停部151とアクセス選択部152とを備える。
調停部151は、チャネル200A、チャネル200Bからのリード/ライト信号、リクエスト信号を受信し、所定の調停のプロトコルに従って、アクセス選択部152へ入力されたどのリード要求、ライト要求をフラグメモリ140へ送信するかを決定する。なお、調停のプロトコルとは、チャネル200に割り振られている優先度から決定する規則、リード要求よりもライト要求を優先する規則、ラウンドロビンにより決定する規則等の所定の規則を規定したプロトコルである。
アクセス選択部152は、調停部151の決定に従い、リード要求、ライト要求をフラグメモリ140へ送信する。なお、リード要求をフラグメモリ140へ送信するとは、リード要求とともに送信されたアドレスをフラグメモリ140へ送信することであり、ライト要求をフラグメモリ140へ送信するとは、ライト要求とともに送信されたアドレスと、ライト要求に含まれるライトデータとをフラグメモリ140へ送信することである。
また、調停部151は、フラグメモリ140へ送信するリード要求、ライト要求を決定すると、その要求を出したチャネル200のフラグ判定回路242へアクノリッジ信号を送る。また、調停部151はフラグメモリ140へ送るリクエスト信号、リード/ライト信号に応じてチップセレクト信号とライトイネーブル信号とを生成し、フラグメモリ140の制御を行う。
例えば、調停部151は、フラグメモリ140へリード要求を送信する場合には、チップセレクト信号を“1”(有意)とし、ライトイネーブル信号を“0”(非有意)とする。また、調停部151は、フラグメモリ140へライト要求を送信する場合には、チップセレクト信号を“1”(有意)とし、ライトイネーブル信号を“1”(有意)とする。
フラグメモリ140は、チップセレクト信号が“1”(有意)でない場合は、ライトイネーブル信号に関わらず動作しない。一方、フラグメモリ140は、チップセレクト信号が“1”(有意)であり、ライトイネーブル信号が“0”(非有意)の場合、送信されたアドレスからデータを読み出すリード動作を行う。また、フラグメモリ140は、チップセレクト信号が“1”(有意)であり、ライトイネーブル信号が“1”(有意)の場合、送信されたアドレスに、送信されたデータを書き込むライト動作を行う。
フラグ判定回路242は、ライト要求を出している場合に、調停部151からのアクノリッジ信号を受信することにより、そのライト要求による書き込みが完了したと判断し、コマンド読出回路210に次のCCWを読み出すように指令を出す。一方、フラグ判定回路242は、リード要求を出している場合に、調停部151からのアクノリッジ信号を受信すると、フラグメモリ140から送信されるリードデータが自分の出したリード要求のデータであると判断し、その値の判定を行う。なお、フラグ判定回路242は、アクノリッジ信号が送られてくる前に、フラグメモリ140から送られたデータは無視する。
また、上記説明では、フラグメモリ140やメモリ20に設定された各フラグが個別のアドレスを持つ例を示した。しかし、フラグメモリ140は、各ビットがフラグを表すビット列を記憶してもよい。そして、チャネル200は、アドレスに代えて、どのビットにアクセスするかを示す情報を送信するとしてもよい。
例えば、フラグメモリ140は8ビットで表されたフラグを記憶しており、チャネル200はアクセスするフラグを“0x00000101”のようにビット列で指定する。この場合、リトルエンディアン形式のビット0とビット2が指定されたものとする。
つまり、setコマンドが“set 0x00000001”である場合には、ビット0のフラグを“1”(転送完了状態)にすることを意味する。waitコマンドが“wait 0x00000001”の場合は、ビット0のフラグが“1”になるまで次のデータ転送処理の実行を待つことを意味する。また、waitコマンドが“wait 0x00000101”の場合は、ビット0とビット2のフラグの値が両方とも“1”になるまで、次のデータ転送処理の実行を待つことを意味する。
このように、フラグをビット列として表した場合、waitコマンドの判定を、フラグを表すビット列と、フラグを指定するビット列とについて所定のブール式の計算により行うことができる。そのため、“wait 0x00000101”のように複数のフラグを指定したwaitコマンドを判定する場合に、複数のフラグを1つずつ判定することなく1度に判定できる。したがって、判定処理を効率化することができる。
また、上記説明では、CPU10とDMA転送装置100における複数のチャネル200との動作について説明した。しかし、DMA転送装置100におけるチャネル200が1つの場合であっても、上記と同様に動作し、チャネル200が実行するデータ転送処理とCPU10が実行するCPU処理との間の実行順序を制御することに関しては同様の効果がある。
実施の形態2.
実施の形態2では、CPU10からフラグメモリ140へアクセス可能にしたDMA転送装置100について説明する。
図11は、実施の形態2に係るDMA転送装置100の構成図である。
実施の形態2に係るDMA転送装置100は、CPU10からフラグメモリ140にアクセス可能とするパス301を備える。
DMA転送装置100がパス301を備えることにより、CPU10は、CPU処理が完了すると、バス11と接続される内部バス300及びパス301を介して、フラグメモリ140のフラグを更新することができる。そして、各チャネル200は、フラグメモリ140のフラグを読み込むことで、CPU処理の完了確認を行うことができる。
つまり、チャネル200は、CPU処理の完了を、フラグメモリ140のフラグの値を読み出すことにより確認できる。チャネルは読み出したフラグの値を判定し、フラグの値がCPU処理完了状態を示す“1”であれば、CPU処理は完了しているとみなし、次のCCWを実行する。一方、フラグの値がCPU処理完了状態を示す“1”ではなければ、CPU処理は完了していないとみなし、値が“1”になるまでフラグの値を繰り返し読み出し、その間は次のCCWを実行しない。
バス11にPCIexpressのようなリードレイテンシが大きいバスを使用している場合に、CPU10からフラグメモリ140へのライトレイテンシが小さい場合がある。このような場合には、実施の形態2に係るDMA転送装置100の構成とすることで、チャネル200はリードレイテンシが大きいバス11を介してフラグの読み出しを行う必要がなくなり、フラグの読み出しを効率的に行うことができる。
実施の形態3.
実施の形態3では、フラグメモリ140のリセット処理について説明する。
図12は、実施の形態3に係るDMA転送装置100の構成図である。
図13は、実施の形態3に係るフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図である。
実施の形態3に係るDMA転送装置100は、図12に示すように、フラグメモリ140のフラグの値を初期化するフラグリセット部160を備える。また、図13に示すように、フラグリセット部160は、リセット信号生成部161とディセーブル信号生成部162とを備える。
実施の形態1では、図8の(S22)でCPU10がフラグメモリ140のフラグをリセットした後、(S23)で各チャネル200が起動されていた。つまり、フラグのリセットと、チャネル200によるデータ転送処理とは並列に実行されていなかった。これは、フラグのリセット中にチャネル200からフラグメモリ140へアクセスされると、処理に不具合が発生する虞があるためである。
これに対して、実施の形態3では、図8の(S22)において、CPU10は、フラグリセット部160を起動する。フラグリセット部160を起動すると、すぐにCPU10は各チャネル200を起動して、データ転送処理を開始させる。一方、起動されたフラグリセット部160のリセット信号生成部161は、フラグメモリ140に対してフラグリセット起動信号を出力する。フラグメモリ140は、フラグリセット部160からリセット起動情報が入力されると各フラグの値の初期化(例えば、“0”に更新する)を実行する。つまり、DMA転送装置100は、フラグリセット部160によるフラグのリセットと、チャネル200によるデータ転送処理とを並列に実行する。
上述したように、フラグメモリ140がフラグの値を初期化している最中に、各チャネル200がフラグメモリ140に対してアクセスすることを防止する必要がある。そこで、フラグリセット部160のディセーブル信号生成部162は、フラグアクセスディセーブル信号をフラグアクセス制御回路150へ送信する。フラグアクセスディセーブル信号は、チャネル200からフラグメモリ140へのリード要求とライト要求とを無効にする情報である。フラグアクセス制御回路150の調停部151は、フラグアクセスディセーブル信号が入力されるとアクセス選択部152に入力されているリード要求とライト要求の選択を行わない。
これにより、フラグアクセスディセーブル信号の入力が解除されるまで、各チャネル200からアクセス選択部152に入力されたフラグメモリ140へのリード要求とライト要求とは待ち状態となる。したがって、フラグメモリ140はチャネル200からアクセスされることがない。
上記説明では、フラグリセット部160は、リセット起動情報とフラグアクセスディセーブル信号との2つの信号を用いてリセット処理を実現した。次に、リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合について説明する。
図14は、リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるDMA転送装置100の構成図である。
図15は、リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図である。
図15に示すように、図13に示すフラグリセット部160とは異なり、フラグリセット部160は、ディセーブル信号生成部162を備えず、リセット信号生成部161とリードフラグ出力部163とを備える。
フラグリセット部160が起動されると、リセット信号生成部161がフラグリセット起動信号を出力する。フラグリセット部160から出力されたフラグリセット起動信号は、フラグメモリ140へ入力されるとともに、フラグアクセス制御回路150の調停部151へ入力される。
フラグメモリ140は、フラグリセット起動信号が入力されている間にフラグの値のリセットを実行する。フラグメモリ140のリセットが完了するとリセット信号生成部161はリセット起動情報の信号出力を停止する。
一方、調停部151は、フラグリセット起動信号が入力されると、ライト要求を選択することが禁止される。つまり、フラグメモリ140へのライト要求はフラグリセット起動信号が入力されなくなるまで待ち状態となる。
しかし、調停部151は、フラグリセット起動信号が入力されている場合であっても、リード要求を選択することは許される。つまり、フラグメモリ140へのリード要求は送信される可能性がある。しかし、図15に示すように、フラグリセット起動信号が入力されている間は、リード要求に対する応答として、フラグメモリ140から読み出したリードフラグ(フラグの値)と、フラグリセット起動信号をNOT回路164で反転させた値とについて、AND回路165で論理積を計算した値がフラグ判定回路242へ送信される。ここで、フラグリセット起動信号は“1”である。つまり、リード要求に対する応答としてフラグ判定回路242へ送信される値は、リードフラグ(フラグの値)と、“0”との論理積をとった値であり、常に“0”となる。すなわち、フラグリセット起動信号が出力されている間に、フラグメモリ140から読み取った値は、転送完了状態又はCPU処理完了状態を示す状態にはならない。つまり、リセット起動情報が出力されている間、リード要求は結果的に無効となる。
以上のように、フラグメモリ140の初期化を行っている間、チャネル200からフラグメモリ140へのアクセスを待ち状態又は無効にする。これにより、フラグメモリ140の初期化を行っている間に、チャネル200がCCWを読み込み、フラグメモリ140へアクセスしてもリセットの動作には影響がない。つまり、チャネル200が読み込んだCCWが転送用のコマンドであれば、フラグメモリ140の初期化を行っている間に、データ転送処理を実行できる。そのため、初期化をした後に、チャネル200を起動する場合に比べ、処理の実行時間を短くすることができる。
なお、フラグメモリ140の初期化を行っている間に、フラグメモリ140へのリード要求とライト要求とを待ち状態又は無効にする方法については、2通りの方法を説明した。しかし、他の方法により実現してもよい。
また、初期化の実行方法については、フラグリセット起動信号が入力されるとフラグメモリ140が自身の機能として初期化を実行する方法であってもよい。また、フラグリセット起動信号が入力されている間にフラグメモリ140のフラグの値を順に書き換えて初期化を実行する方法であってもよい。
実施の形態4.
図16は、実施の形態4に係るDMA転送装置100の構成図である。
実施の形態4に係るDMA転送装置100の各チャネル200は、フラグリセット部160を起動させる初期化指示部250を備える。
実施の形態3では、CPU10がフラグリセット部160を起動させ、フラグメモリ140の初期化を実行させた。実施の形態4では、CPU10は、各チャネル200の中で最も早く起動されるチャネル200が実行する最初のCCWに、フラグリセット部160を起動するリセットコマンド(初期化指示情報)を設定する。なお、リセットコマンドもフラグコマンドの一種である。
フラグメモリアクセス回路241は、コマンド判別回路220から送信されたCCWがリセットコマンドであれば、リセットコマンドを初期化指示部250へ送る。初期化指示部250は、リセットコマンドを受信すると、フラグリセット部160を起動させ、フラグリセット部160の初期化を実行させる。
つまり、フラグリセット部160は、チャネル200により起動されることになり、CPU10がフラグリセット部160の起動をかける必要がない。したがって、CPU10がDMA転送装置100にアクセスしフラグリセット部160の起動を行う時間を短縮できる。言い換えれば、フラグリセット部160の起動をかける分のCPU10の負荷を軽くすることができる。
実施の形態5.
実施の形態5では、フラグメモリ140として2ポートメモリを使用した場合について説明する。なお、2ポートメモリとは、リード専用とライト専用のポートが1つずつあるメモリのことである。
図17は、フラグメモリ140として2ポートメモリを使用した場合のフラグメモリ140とフラグアクセス制御回路150との構成図である。
フラグメモリ140として2ポートメモリを使用した場合、ライト要求とリード要求とを同時に処理することができる。
このため、調停部151は、2つのチャネル200からリード要求が同時に送信された場合には、どのリード要求をフラグメモリ140へ送信するかを決定し、他方のリード要求を待たせる。同様に、調停部151は、複数のチャネル200からライト要求が同時に送信された場合には、どのライト要求をフラグメモリ140へ送信するかを決定し、他方のライト要求を待たせる。しかし、2つのチャネル200からリード要求とライト要求とが同時に送信された場合には、調停部151はアクセス選択部152に両方を送信させる。
この場合、フラグメモリ140の同じアドレスのフラグに対して、読み出しと書き込みとを同時に行ってしまう可能性がある。
そこで、フラグメモリ140に対するアクセス制御を行うため、フラグアクセス制御回路150はアドレス比較部153を備える。アドレス比較部153は、調停部151によって選択されたリードアドレスとライトアドレスとを比較する。アドレス比較部153は、リードアドレスとライトアドレスとが同じアドレスである場合、調停部151へアドレス一致信号を出力する。調停部151は、アドレス一致信号を受信すると、リード要求に対するアクノリッジ信号の出力をライト要求による書き込みが終わるまで待つ。
実施の形態1で説明したように、アクノリッジ信号が送られてくる前に、フラグメモリ140から送られたデータは無視され、読み出しを完了しない。したがって、リード要求を送信したチャネル200は、他のチャネル200がライトを実行している間は読み出しを完了することができない。
上述したように、2ポートメモリを用いた場合、異なるアドレスに対しては、ライト要求とリード要求とを同時に処理できる。しかし、ライト要求とリード要求とを同時に処理した場合、処理のモニタリングができなくなる虞がある。そこで、2ポートメモリを用いた場合であっても、あえてライト要求とリード要求との処理タイミングをずらしてもよい。
つまり、2つのチャネル200からリード要求とライト要求とが同時に送信された場合に、調停部151は、リード要求に対するアクノリッジ信号の出力をライト要求による書き込みが終わるまで待たせる。これにより、リード要求を送信したチャネル200へはアクノリッジ信号が返らず、他のチャネル200がライトを実行している間は読み出しを完了することができない。
図18は、ライト要求とリード要求との処理タイミングをずらした場合のタイミングチャートである。なお、図18において、リード/ライト信号は、High(“1”)がライトをLow(“0”)がリードを示すものとする。
図18に示すように、タイミングT0では、チャネル200Aとチャネル200Bとからライト要求が送信される。ここでは、調停部151は、チャネル200Aからのライト要求を選択して、チャネル200Bからのライト要求を待たせる。したがって、タイミングT0では、チャネル200Aからのライト要求が処理され、チャネル200Aへアクノリッジ信号が送信される。この処理についてはタイミングT1でモニタ信号が検出される(モニタリングされる)。
タイミングT1では、待たされたチャネル200Bのライト要求が処理され、チャネル200Bへアクノリッジ信号が送信される。この処理についてはタイミングT2でモニタ信号が検出される。
タイミングT2では、チャネル200Aからはリード要求が送信され、チャネル200Bからはライト要求が送信される。これらを同時に処理してしまうと、一方の処理をモニタリングできず、モニタ信号を送信できない。そこで、調停部151は、チャネル200Aから送信されたリード要求を待たせ、チャネル200Bから送信されたライト要求を処理させる。したがって、チャネル200Bへアクノリッジ信号が送信される。この処理についてはタイミングT3でモニタ信号が検出される。
タイミングT3では、待たされたチャネル200Aのリード要求が処理され、チャネル200Aへアクノリッジ信号が送信される。この処理についてはタイミングT4でモニタ信号が検出される。
したがって、リード要求とライト要求とが同時に送信された場合であってもすべてのリード要求、ライト要求をモニタリングすることができる。その結果、障害が発生した場合等に、原因の解析を容易に行うことができる。
なお、調停部151は、CPU10等から送信されるリクエスト逐次化信号に応じて、ライト要求とリード要求との処理タイミングをずらすか否かを決定する。例えば、リクエスト逐次化信号が“1”であれば、ライト要求とリード要求との処理タイミングをずらし、リクエスト逐次化信号が“0”であれば、ライト要求とリード要求とを同時に実行させる。
以上をまとめると次のようになる。
DMA転送装置100は、
データを読み出す転送元アドレス又はデータを書き込む転送先アドレスと転送長、又はデータを読み出す転送元アドレスとデータを書き込む転送先アドレスの両方と転送長の転送指示情報を用いて転送を行い、転送に先立ちその転送指示情報を一つ又は複数格納し、DMA転送装置とメモリ又はI/Oデバイスが、内部バス又は外部バスと接続され、前記転送を行うチャネルを一つ又は複数備えるDMA転送装置100であり、以下の(a)、(b)、(c)、(d)を備える事を特徴とする
(a)前記チャネルが実行する転送の完了を前記チャネル間で通知する、又は前記チャネルが実行する転送の完了を前記チャネルから前記CPUへ通知する、“転送完了通知”の手段。
(b)前記CPUが実行する処理の完了を前記CPUから前記チャネルへ通知する、“CPU処理完了通知”の手段。
(c)前記チャネルと前記CPUは転送又はCPU処理が順序通りに完了するように、転送又はCPU処理の開始を待たせる”実行待機状態”の手段。
(d)開始を待たせている転送を開始して良い条件になると、前記チャネルが能動的に待ち状態を解除して転送を開始する“転送開始”の手段。
さらに、DMA転送装置100は、以下の(a)を備え、かつ(b)または(c)であることを特徴とする。
(a)DMA転送装置内に、転送の完了状態を“転送完了状態”、CPU処理の完了状態を“CPU処理完了状態”のフラグ情報として記憶するフラグメモリ、又はメインメモリの一部にフラグ情報として転送の完了状態を“転送完了状態”、CPU処理の完了状態を“CPU処理完了状態”のフラグ情報として記憶するフラグ機能。
(b)前記フラグメモリに前記チャネル又は前記CPUがアクセスし、読み出し又は書き込み又はその両方を行う事が可能である。
(c)前記メインメモリのフラグ機能を前記チャネルが読み出し又は書き込み又はその両方を行う事が可能である。
また、さらに、DMA転送装置100は、(a)または(b)であり、かつ(c)、(d)、(e)であることを特徴とする。
(a)前記チャネルは転送が完了したことを前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値を“転送完了状態”にすることにより“転送完了通知”の手段を実行可能にする。
(b)前記CPUは処理が完了したことを前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能のフラグ情報の値を“CPU処理完了状態”にすることにより“処理完了通知”の手段を実行可能にする。
(c)前記チャネル又は前記CPUは、前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値が“転送完了状態”又は“CPU処理完了状態”であるかを判定し、判定の結果“転送完了状態”又は“CPU処理完了状態”でなければ、次の転送又はCPU処理を待たせることで、“実行待機状態”の手段を実行可能にする。
(d)前記チャネルは前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値が“転送完了状態”又は“CPU処理完了状態”であるかを判定し、判定の結果“転送完了状態”又は“CPU処理完了状態”であれば、“転送開始”の手段を実行可能にする。
(e)上記の手段により、前記CPUによる前記チャネルの転送起動、転送停止の指示を行わずに転送を自動的に再開すること可能となる。
また、さらに、DMA転送装置100は、(a)、(b)、(c)であることを特徴とする。
(a)前記チャネルは、前記フラグメモリの指定するフラグ情報を書き込む指令と、前記フラグメモリの指定するフラグ情報の値を読み込む指令を実行可能である。
(b)前記チャネルは前記フラグメモリの前記フラグ情報の値を読み込み、値が“転送完了状態”であれば、他チャネルの前の転送が完了していると判断し、次の転送指示情報に示された転送を開始する。
(c)前記チャネルは前記フラグメモリの前記フラグ情報の値を読み込み、値が“転送完了状態”でなければ前の転送は完了していないと判断し、値が“転送完了状態になるまでフラグ情報の読み込みを繰り返し、その間は次チャネルの転送の実行は行わない。
また、さらに、DMA転送装置100は、(a)、(b)、(c)であることを特徴とする。
(a)前記チャネルは前記メインメモリに置かれたフラグ情報の値を読み込む指令を実行可能する。
(b)前記チャネルは前記メインメモリの前期フラグ情報の値を読み込み、値が“CPU処理完了状態”であればCPU処理は完了していると判断し、次の転送指示情報に示された転送を実行する。
(c)前記チャネルは前記メインメモリの前期フラグ情報の値を読み込み、値が“CPU処理完了状態”でなければCPU処理は完了していないと判断し、値が“CPU処理完了状態”になるまで、フラグ情報の読み込みを繰り返し、その間は転送の実行は行わない。
また、さらに、DMA転送装置100は、(a)、(b)、(c)であることを特徴とする。
(a)前記チャネルは、前記フラグメモリの指定するフラグ情報の値を読み込む指令を実行する。
(b)前記チャネルは前記フラグメモリの前記フラグ情報を読み込み、値が“CPU処理完了状態”であれば前のCPU処理は完了していると判断し、次の転送指示情報に示された転送を実行する。
(c)前記チャネルは前記フラグメモリの前記フラグ情報を読み込み、値が“CPU処理完了状態”でなければCPU処理は完了していないと判断し、値が“CPU処理完了状態”になるまで、フラグ情報の読み込みを繰り返し、次の指令である転送の実行は行わない。
また、さらに、DMA転送装置100は、(a)、(b)、(c)であることを特徴とする。
(a)前記フラグメモリの内容を初期化するフラグリセット手段を備える。
(b)前記フラグリセット手段はフラグリセット起動情報の送信又はフラグのアドレスを変えながら全フラグを初期状態の値に書き換える回路を持つ。
(c)前記フラグリセット手段は、前記フラグメモリのフラグ情報を初期化している間には、フラグメモリに対して読み書きすることを不可能とする、フラグアクセスディセーブル状態情報を持つ。
また、さらに、DMA転送装置100は、(a)、(b)であることを特徴とする。
(a)前記フラグリセット手段は、前記フラグアクセスディセーブル状態情報をフラグアクセスディセーブル信号として、チャネルからのリード又はライトアクセスを制御する回路に送信する。
(b)前記アクセスを制御する回路は、フラグアクセスディセーブル信号が入力されている間は、チャネルからの前記フラグメモリに対するアクセスを待たせる。
また、さらに、DMA転送装置100は、(a)であることを特徴とする。
(a)前記フラグリセット起動情報と前記フラグアクセスディセーブル状態情報を同一のリセット信号として実現し、前記フラグリセット信号を前記フラグメモリに対して送る間は前記フラグメモリのフラグ情報の値を初期値に戻し、その間の前記フラグメモリに対するアクセス結果は、転送未完了又はCPU処理未完了に見せる。
また、さらに、DMA転送装置100は、(a)であることを特徴とする。
(a)前記フラグメモリまたはフラグの値が、“転送完了状態”又は“CPU処理完了状態”になるまで繰り返し確認し、“転送完了状態”又は“CPU処理完了常態”になった事を確認すると次の転送指示情報を実行する時に、転送指示情報を実行するタイミングが各チャネルで同時にならないように、排他制御する手段を備えることにより、デバッグや外部からの観測よる解析を容易にする事を特徴とする。
以上により、DMA転送装置100は、CPUによってDMA転送装置内のメモリに書き込まれた転送元アドレス、転送先アドレス、転送長の転送用のコマンドに従ってデータ転送を実行するチャネルが複数ある場合に、複数のチャネル同士で転送完了の同期を取る手段を備えることで、他のチャネルの転送実行状態を反映して、転送を実行する事ができる。
また、従来技術では、実行の順序関係が決まっている転送を別々のチャネルで並列に実行するためには、CPUが転送Aの完了のチェックを行い、転送Aが完了したことを確認してから、転送Bの起動をかけていた。そのため、CPUは転送Aの完了確認と、転送Bの起動を行うために負荷が高いという課題がある。これに対して、DMA転送装置100は、各チャネル同士がCPUの介在なしに転送完了の同期を取り、チャネルが能動的に実行順序に従った転送を順次実行することができるため、DMA転送に係わるCPUの負荷が低い。
10 CPU、11 バス、20 メモリ、21 メモリバス、22 フラグ機能、23 処理プログラム、100 DMA転送装置、110 バス制御回路、120 起動レジスタ、130 コマンドメモリ、140 フラグメモリ、150 フラグアクセス制御回路、151 調停部、152 アクセス選択部、153 アドレス比較部、160 フラグリセット部、161 リセット信号生成部、162 ディセーブル信号生成部、163 リードフラグ出力部、164 NOT回路、165 AND回路、200 チャネル、210 コマンド読出回路、220 コマンド判別回路、230 転送実行部、231 転送制御回路、232 コマンド全体制御部、233 コマンド個別制御部、234 転送回路、235 転送要求部、236 バッファ、240 順序制御部、241 フラグメモリアクセス回路、242 フラグ判定回路、250 初期化指示部、300 内部バス、301 パス、310 バスブリッジ、320 外部バス。

Claims (15)

  1. データ転送処理を実行する複数の転送処理部を備え、実行順序が定められた複数のデータ転送処理を前記複数の転送処理部で順に実行するデータ転送装置であり、
    指定したデータ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、前記複数の転送処理部の各転送処理部に対応付けて複数記憶するコマンド記憶部を備え、
    前記各転送処理部は、
    前記コマンド記憶部が記憶した指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す指示読出部と、
    前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
    前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、他の転送処理部によるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
    を備えることを特徴とするデータ転送装置。
  2. 前記制御指示情報には、指定したデータ転送処理が完了したことを通知させる通知指示情報と、指定したデータ転送処理が完了するまで待たせる待ち指示情報とがあり、
    前記順序制御部は、
    前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを他の転送処理部へ通知し、
    前記制御指示情報が待ち指示情報であった場合には、前記待ち指示情報で指定されたデータ転送処理が完了したことが他の転送処理部から通知されるまで、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項1に記載のデータ転送装置。
  3. 前記データ転送装置は、さらに、
    前記複数のデータ転送処理の各データ転送処理の実行状態を示すフラグ情報を記憶するフラグ記憶部を備え、
    前記順序制御部は、
    前記制御指示情報が通知指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記通知指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を完了を示す状態に更新し、
    前記制御指示情報が待ち指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記待ち指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報が完了を示す状態になるまで、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項2に記載のデータ転送装置。
  4. 前記順序制御部は、
    前記待ち指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を前記フラグ記憶部から読み出すアクセス部と、
    前記アクセス部が読み出したフラグ情報が完了を示す状態でない場合、前記アクセス部に再び前記フラグ情報の読み出しをさせるとともに、前記アクセス部が読み出したフラグ情報が完了を示す状態である場合、前記指示読出部に次の指示情報の読み出しをさせるフラグ判定部と
    を備えることを特徴とする請求項3に記載のデータ転送装置。
  5. 前記データ転送装置は、バスを介してCPU(Central Processing Unit)と接続されており、前記CPUで実行される所定の処理との間で実行順序が定められた前記複数のデータ転送処理を実行し、
    前記順序制御部は、前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、前記CPUによる前記所定の処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項1に記載のデータ転送装置。
  6. 前記制御指示情報には、指定したデータ転送処理が完了したことを通知させる通知指示情報と、前記所定の処理が完了するまで待たせる待ち指示情報とがあり、
    前記順序制御部は、
    前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを前記CPUへ通知し、
    前記制御指示情報が待ち指示情報であった場合には、前記所定の処理が完了したことが前記CPUから通知されるまで、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項5に記載のデータ転送装置。
  7. 前記データ転送装置は、さらに、
    前記複数のデータ転送処理の各データ転送処理の実行状態と、前記CPUによる前記所定の処理の実行状態とを示すフラグ情報を記憶するフラグ記憶部を備え、
    前記順序制御部は、
    前記制御指示情報が通知指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記通知指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を完了を示す状態に更新し、
    前記制御指示情報が待ち指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記CPUによる前記所定の処理についての実行状態を示すフラグ情報が完了を示す状態になるまで、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項6に記載のデータ転送装置。
  8. 前記順序制御部は、
    前記CPUによる前記所定の処理についての実行状態を示すフラグ情報を前記フラグ記憶部から読み出すアクセス部と、
    前記アクセス部が読み出したフラグ情報が完了を示す状態でない場合、前記アクセス部に再び前記フラグ情報の読み出しをさせるとともに、前記アクセス部が読み出したフラグ情報が完了を示す状態である場合、前記指示読出部に次の指示情報の読み出しをさせるフラグ判定部と
    を備えることを特徴とする請求項7に記載のデータ転送装置。
  9. 前記データ転送装置は、バスを介してさらに外部メモリとも接続されており、
    前記順序制御部は、
    前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを示す情報を前記外部メモリに書き込み、
    前記制御指示情報が待ち指示情報であった場合には、前記CPUによる前記所定の処理が完了したことを示す情報が前記外部メモリに書き込まれるまで、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とする請求項6に記載のデータ転送装置。
  10. 前記データ転送装置は、さらに、
    前記フラグ記憶部が記憶したフラグ情報を未完了を示す状態に初期化するとともに、前記フラグ情報を初期化している間、他から前記フラグ情報へのアクセスを制限するフラグリセット部
    を備えることを特徴とする請求項3又は7に記載のデータ転送装置。
  11. 前記フラグリセット部は、前記フラグ情報を初期化している間、他から前記フラグ情報へのアクセスを待たせる
    ことを特徴とする請求項10に記載のデータ転送装置。
  12. 前記フラグリセット部は、前記フラグ情報を初期化している間、他から前記フラグ情報の読み出しがされた場合、未完了を示す状態として読み出しさせる
    ことを特徴とする請求項10に記載のデータ転送装置。
  13. 前記コマンド記憶部は、データ転送指示情報と制御指示情報とに加え、前記フラグリセット部を起動させる初期化指示情報が並べられた指示コマンドを記憶し、
    前記各転送処理部は、
    前記指示読出部が読み出した指示情報が前記初期化指示情報であった場合、前記フラグリセット部を起動させ、前記フラグリセット部に前記フラグ情報を初期化させる初期化指示部
    を備えることを特徴とする請求項10から12までのいずれかに記載のデータ転送装置。
  14. バスを介してCPU(Central Processing Unit)と接続されており、前記CPUで実行される所定の処理との間で実行順序が定められたデータ転送処理を実行するデータ転送装置であり、
    データ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御させる制御指示情報との指示情報が並べられた指示コマンドを記憶するコマンド記憶部とを備え、
    前記各転送処理部は、
    前記コマンド記憶部が記憶した指示コマンドにおける指示情報を並べられた順に読み出す指示読出部と、
    前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
    前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、前記CPUによる前記所定の処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
    を備えることを特徴とするデータ転送装置。
  15. 一部の実行順序が定められた複数のデータ転送処理を複数のチャネルで順に実行するデータ転送方法であり、
    前記複数のチャネルの各チャネルは、
    データ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御させる制御指示情報との指示情報が並べられた指示コマンドをチャネル毎に記憶した記憶装置から、自己についての指示コマンドにおける指示情報を並べられた順に読み出し、
    読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行し、
    読み出した指示情報が前記制御指示情報であった場合、他のチャネルによるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる
    ことを特徴とするデータ転送方法。
JP2009218602A 2009-09-24 2009-09-24 データ転送装置及びデータ転送方法 Pending JP2011070259A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009218602A JP2011070259A (ja) 2009-09-24 2009-09-24 データ転送装置及びデータ転送方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009218602A JP2011070259A (ja) 2009-09-24 2009-09-24 データ転送装置及びデータ転送方法

Publications (1)

Publication Number Publication Date
JP2011070259A true JP2011070259A (ja) 2011-04-07

Family

ID=44015513

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009218602A Pending JP2011070259A (ja) 2009-09-24 2009-09-24 データ転送装置及びデータ転送方法

Country Status (1)

Country Link
JP (1) JP2011070259A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120484A (ja) * 2017-01-26 2018-08-02 Necプラットフォームズ株式会社 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2019159750A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データ転送装置、データ転送方法、プログラム
CN110336374A (zh) * 2019-06-24 2019-10-15 南京铁道职业技术学院 铁道供电监控架构与流程

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005202767A (ja) * 2004-01-16 2005-07-28 Toshiba Corp プロセッサシステム、dma制御回路、dma制御方法、dmaコントローラの制御方法、画像処理方法および画像処理回路
JP2008097084A (ja) * 2006-10-06 2008-04-24 Hitachi Ltd プロセッサ及びデータ転送ユニット

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018120484A (ja) * 2017-01-26 2018-08-02 Necプラットフォームズ株式会社 Dma転送制御装置、dma転送制御方法、及び、dma転送制御プログラム
JP2019159750A (ja) * 2018-03-13 2019-09-19 日本電気株式会社 データ転送装置、データ転送方法、プログラム
JP6992616B2 (ja) 2018-03-13 2022-01-13 日本電気株式会社 データ転送装置、データ転送方法、プログラム
CN110336374A (zh) * 2019-06-24 2019-10-15 南京铁道职业技术学院 铁道供电监控架构与流程

Similar Documents

Publication Publication Date Title
JP6602579B2 (ja) 半導体装置およびシステム
JP5287301B2 (ja) ディスクリプタ転送装置、i/oコントローラ、及びディスクリプタ転送方法
JP5499987B2 (ja) 共有キャッシュメモリ装置
US6782463B2 (en) Shared memory array
US20070156937A1 (en) Data transfer in multiprocessor system
JP2003296267A (ja) バスシステム及びバスシステムを含む情報処理システム
JP2011070259A (ja) データ転送装置及びデータ転送方法
JP5304815B2 (ja) マイクロコンピュータ
JP4373485B2 (ja) 情報処理装置及び該制御方法
JP2008146541A (ja) Dma転送システム、dmaコントローラ及びdma転送方法
JP4471947B2 (ja) データ処理装置及びデータ処理方法
JP4446968B2 (ja) データ処理装置
US8909823B2 (en) Data processing device, chain and method, and corresponding recording medium for dividing a main buffer memory into used space and free space
JP6319473B1 (ja) 情報処理装置
JP4649257B2 (ja) マルチcpuシステム
US6829692B2 (en) System and method for providing data to multi-function memory
JP2009053963A (ja) プログラマブルコントローラ、そのcpuモジュール
JP6416488B2 (ja) 半導体装置
JP2009217336A (ja) 計算機システム、ネットワークブートロードシステム、及び、そのブートロード方法
JP6381270B2 (ja) 情報処理装置、情報処理方法、システム
JPH09218859A (ja) マルチプロセッサ制御システム
JPH1185673A (ja) 共有バスの制御方法とその装置
JP2000040057A (ja) 計算機システム、バッファ制御装置及び転送方法
JP6535516B2 (ja) マルチ・プログラマブルデバイス・システムとその制御方法
JP6626216B2 (ja) コントローラ

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120201

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130131

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130205

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130312

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130423

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130820