JP2011070259A - データ転送装置及びデータ転送方法 - Google Patents
データ転送装置及びデータ転送方法 Download PDFInfo
- 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
Links
Images
Landscapes
- Bus Control (AREA)
Abstract
【解決手段】CPU10は、指定したデータ転送処理を実行させるデータ転送指示情報と、実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、各チャネル200に対応付けてコマンドメモリ130に設定し、各チャネル200を起動する。各チャネル200は起動されると、コマンドメモリ130に設定された指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す。各チャネル200は、読み出した指示情報がデータ転送指示情報であった場合、データ転送指示情報で指定されたデータ転送処理を実行し、読み出した指示情報が制御指示情報であった場合、他のチャネル200によるデータ転送処理の実行状況に応じて、次の指示情報の読み出しを待つ。
【選択図】図1
Description
チャネル方式では、チャネルと呼ばれる処理の実行部が、メインメモリに記憶されたチャネルプログラムと呼ばれる制御用のプログラムに設定されたCCWを読み込み、読み込んだCCWに従ったI/O装置の操作を行う。
ここで、CCWはコマンドチェーンフラグというフラグ情報を有する。チャネルは、読み込んだCCWのコマンドチェーンフラグが有意である限り、次のCCWを読み込み処理を実行する。したがって、この方法を用いれば、複数のCCWを設定することにより、チャネルへ複数の処理をまとめて指示することができる。
つまり、CPUがデータ転送処理を指示するCCWをDMA転送装置内のメモリに複数設定し、CPUから起動をかけられたDMA転送装置がコマンドチェーンフラグが有意である限り順次CCWを読み込み実行する。これにより、CPUがDMA転送装置を1回起動しただけで、DMA転送装置により連続して複数のデータ転送処理が実行される。
なお、レイテンシとは、データの読み書きが行われるまでにかかる遅延時間のことであり、レイテンシが大きいほど遅延時間が長いことを意味する。
この発明は、実行順序が定められた複数のデータ転送処理をDMA転送装置が実行する場合において、CPUが介在する頻度を少なくすることを目的とする。
データ転送処理を実行する複数の転送処理部を備え、実行順序が定められた複数のデータ転送処理を前記複数の転送処理部で順に実行するデータ転送装置であり、
指定したデータ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、前記複数の転送処理部の各転送処理部に対応付けて複数記憶するコマンド記憶部を備え、
前記各転送処理部は、
前記コマンド記憶部が記憶した指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す指示読出部と、
前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、他の転送処理部によるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
を備えることを特徴とする。
実施の形態1では、実行順序が定められた複数のデータ転送処理を、複数のチャネル200間で実行順序を制御しながら、順次実行するDMA転送装置100について説明する。
図2は、実施の形態1に係るDMA転送装置100が備えるチャネル200の構成図である。なお、図2では、図1に示すチャネル200Aを一例として示す。
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とは、互いに独立して、並列にデータ転送処理を実行することができる。
図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種類がある。
転送実行部230は、データ転送処理の制御を行う転送制御回路231と、データ転送処理を実行する転送回路234とを備える。転送制御回路231は、コマンド全体制御部232とコマンド個別制御部233とを備え、転送回路234は、転送要求部235とバッファ236とを備える。
順序制御部240は、フラグメモリ140に記憶されたフラグへのリードアクセス、ライトアクセスを行うフラグメモリアクセス回路241(アクセス部)、フラグメモリアクセス回路241が読み出したフラグの値が“転送完了状態”又は“CPU処理完了状態”であるか否かを判定するフラグ判定回路242(フラグ判定部)を備える。
また、ここでは、DMA転送装置100がチャネル200Aとチャネル200Bとの2つのチャネルを備える例を説明するが、DMA転送装置100は3つ以上のチャネルを備えていてもよい。また、ここでは、チャネル200毎にコマンドメモリ130を分けているが、各チャネル200で共通のコマンドメモリ130を用いてもよい。
図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」を指示するものとする。
転送元アドレスは、データ転送処理におけるデータの取得先を示すアドレスである。転送先アドレスは、データ転送処理におけるデータの書き込み先を示すアドレスである。転送長は、転送するデータのサイズを示す。
例えば、図3に示すように、CCW0_4のコマンドチェーンフラグの値は“1”であるから、CCW0_4の次にはCCW(ここでは、CCW0_5)が設定されていることを示す。一方、CCW0_5のコマンドチェーンフラグの値は“0”であるから、CCW0_5の次にはCCWが設定されていないことを示す。
図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が完了したかを確認させる。
図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が動作を開始する。
(S11)では、起動レジスタ120から通知を受けたコマンド読出回路210は、対応するコマンドメモリ130へCCWリード要求を送信して、コマンドメモリ130から順にCCWを読み込む。(S12)では、コマンド判別回路220は、コマンド読出回路210が読み込んだCCWが、転送用コマンドであるか、フラグコマンドであるかを判定する。CCWが転送用コマンドであれば(S12でYES)、(S13)で転送実行部230によりデータ転送処理が実行される。一方、CCWがフラグコマンドであれば(S12でNO)、(S14)から(S17)で順序制御部240により実行順序の制御が行われる。
この読み出しと書き込みはバッファ236の容量又はそれ以下の単位サイズで繰り返され、CCWに格納された転送長に達するまで転送元アドレスと転送先アドレスとに前記単位サイズを加算しながら繰り返し処理が行われる。データの書き込みの完了によって、データ転送処理は完了する。
データ転送処理が完了すると転送要求部235は、コマンド個別制御部233へデータ転送処理が完了したことを伝え、コマンド個別制御部233は、データ転送処理が完了したことをコマンド全体制御部232へ伝える。コマンド全体制御部232は、データ転送処理が完了したことの通知を受けると、コマンド読出回路210に次のCCWを読み出すように指令を出す。
そして、フラグ判定回路242は、フラグアクセス制御回路150からアクノリッジ信号(Ack)を受信すると、コマンド読出回路210に次のCCWを読み出すように指令を出す。
フラグの値がデータ転送処理の完了状態を示す“1”であると判定された場合(S17でYES)、フラグ判定回路242は、データ転送処理が完了しているとみなす。そして、フラグ判定回路242は、コマンド読出回路210に次のCCWを読み出すように指令を出す。
一方、読み込んだフラグの値がデータ転送処理の完了状態を示す“1”ではない場合(S17でNO)、フラグ判定回路242は、データ転送処理が完了していないとみなす。そして、フラグ判定回路242は、フラグメモリアクセス回路241に再度フラグメモリ140へリード要求を送信するように指令を出す。つまり、フラグメモリアクセス回路241とフラグ判定回路242とによるフラグの値の読み込みとフラグの値の判定とは、読み込んだフラグの値が“1”になるまで繰り返される。この繰り返し間隔が短すぎると他チャンネルからのフラグメモリ140へのアクセスと競合し易くなるため読み出し間隔をある程度長くしてもよい。
すなわち、waitコマンドで指定されたアドレスにおけるフラグの値が“1”にならない限り、コマンド読出回路210は次のCCWを読み出せず、チャネル200は次のCCWを実行することができない。
すなわち、DMA転送装置100は、あるチャネル200(例えば、チャネル200A)が実行するデータ転送処理と、他のチャネル200(例えば、チャネル200B)が実行するデータ転送処理との間での実行順序を、CPU10の介在なしに制御することができる。
図1に示すように、メモリ20は、フラグ機能22と処理プログラム23とを備える。
図7は、フラグ機能22の構成図である。
フラグ機能22は、フラグメモリ140と同様に、アドレス毎にフラグが設定されている。フラグ機能22が有する各フラグは、各データ転送処理又はCPU10で実行される各CPU処理に対応し、そのデータ転送処理又はCPU処理の実行が完了したか否かを示す。例えば、アドレス“0x1000”のフラグは、転送Eに対応し、データ転送処理Eが完了したか否かを示す。同様に、アドレス“0x2000”のフラグは、CPU処理Fに対応し、CPU処理Fが完了したか否かを示す。
この場合におけるDMA転送装置100の処理の流れは、図6に示す通りである。しかし、図6の(S15)と(S16)とにおける処理が、上述した内容とは若干異なる。
しかし、他のチャネル200が実行するデータ転送処理だけでなく、CPU10が実行するCPU処理との間での実行順序を制御する場合には、フラグメモリアクセス回路241は、フラグコマンドに含まれるアドレスに応じて、ライト要求の送信先を変更する。
つまり、フラグコマンドに含まれるアドレスが、フラグメモリ140におけるアドレスである場合には、フラグメモリアクセス回路241は、ライト要求をフラグメモリ140へ送信する。一方、フラグメモリ140におけるアドレスでない場合(メモリ20におけるフラグ機能22のアドレスである場合)には、フラグメモリアクセス回路241は、ライト要求を内部バス300を介してメモリ20へ送信する。これで、setコマンドで指定されているメモリ20のアドレスに設定されたフラグを、データ転送処理の完了状態を示す“1”に更新される。これにより、CPU10にデータ転送処理が完了したことを示す。
なお、例えば、フラグメモリ140のアドレス領域と、フラグ機能22のアドレス領域とを予めフラグメモリアクセス回路241に設定しておく。これにより、フラグメモリアクセス回路241は、フラグコマンドに含まれるアドレスがフラグメモリ140のアドレスであるかフラグ機能22のアドレスであるかを判定できる。
つまり、フラグコマンドに含まれるアドレスが、フラグメモリ140におけるアドレスである場合には、フラグメモリアクセス回路241は、リード要求をフラグメモリ140へ送信する。一方、フラグメモリ140におけるアドレスでない場合(メモリ20におけるアドレスである場合)には、フラグメモリアクセス回路241は、リード要求をメモリ20へ送信する。
CPU10の処理については詳しくは後述するが、CPU10では、CPU処理が終了した場合に、メモリ20の所定のアドレスに設定されたフラグをCPU処理の完了状態を示す“1”に更新する。したがって、所定のCPU処理が完了しない限り、コマンド読出回路210は次のCCWを読み出せず、チャネル200は次のCCWを実行することができない。
図8は、CPU10の処理の流れを示すフローチャートである。
まず(S21)から(S23)で、CPU10は初期処理を行う。(S21)では、上述したように、CPU10は、DMA転送装置100のコマンドメモリ130Aとコマンドメモリ130BとにCCWを書き込む。(S22)では、CPU10は、フラグメモリ140やメモリ20のフラグをリセットする。(S23)では、上述したように、CPU10は、起動レジスタ120におけるチャネル200についての起動フラグを“1”(有意)にして、チャネル200を起動させる。
(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)、処理を終了する。
なお、図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処理に割り当てられているものとする。
チャネル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が完了すると、処理が全て完了したことになる。
一方、従来のように、実行順序の制御を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とDMA転送装置100との接続がPCIExpressのような読み出しレイテンシが大きいバスを使用している場合バスアクセス時間がかかる。そのため、転送完了を確認することにかかる時間は長くなり、DMA転送に係わるCPU10の処理時間が長くなり、CPU10とDMA転送装置100との連携によるシステム動作の性能が低下していた。
しかし、DMA転送装置100は、データ転送処理が完了したことをメモリ20に書き込む。そのため、CPU10はメモリ20にアクセスするだけで、データ転送処理が完了したことを確認できる。したがって、CPU10がデータ転送処理が完了したことを確認する処理時間を短縮できる。
そこで、フラグメモリ140に対してリード要求やライト要求が同時に送信された場合、フラグメモリ140へ送信するリード要求又はライト要求はフラグアクセス制御回路150によって選択される。選択されていないリード要求やライト要求は、選択されるまでフラグメモリ140への送信が待たされる。これにより、複数のリード要求やライト要求が同時にフラグメモリ140へ送信され、処理に不具合が発生することを防止する。
フラグアクセス制御回路150は、調停部151とアクセス選択部152とを備える。
調停部151は、チャネル200A、チャネル200Bからのリード/ライト信号、リクエスト信号を受信し、所定の調停のプロトコルに従って、アクセス選択部152へ入力されたどのリード要求、ライト要求をフラグメモリ140へ送信するかを決定する。なお、調停のプロトコルとは、チャネル200に割り振られている優先度から決定する規則、リード要求よりもライト要求を優先する規則、ラウンドロビンにより決定する規則等の所定の規則を規定したプロトコルである。
アクセス選択部152は、調停部151の決定に従い、リード要求、ライト要求をフラグメモリ140へ送信する。なお、リード要求をフラグメモリ140へ送信するとは、リード要求とともに送信されたアドレスをフラグメモリ140へ送信することであり、ライト要求をフラグメモリ140へ送信するとは、ライト要求とともに送信されたアドレスと、ライト要求に含まれるライトデータとをフラグメモリ140へ送信することである。
例えば、調停部151は、フラグメモリ140へリード要求を送信する場合には、チップセレクト信号を“1”(有意)とし、ライトイネーブル信号を“0”(非有意)とする。また、調停部151は、フラグメモリ140へライト要求を送信する場合には、チップセレクト信号を“1”(有意)とし、ライトイネーブル信号を“1”(有意)とする。
フラグメモリ140は、チップセレクト信号が“1”(有意)でない場合は、ライトイネーブル信号に関わらず動作しない。一方、フラグメモリ140は、チップセレクト信号が“1”(有意)であり、ライトイネーブル信号が“0”(非有意)の場合、送信されたアドレスからデータを読み出すリード動作を行う。また、フラグメモリ140は、チップセレクト信号が“1”(有意)であり、ライトイネーブル信号が“1”(有意)の場合、送信されたアドレスに、送信されたデータを書き込むライト動作を行う。
例えば、フラグメモリ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度に判定できる。したがって、判定処理を効率化することができる。
実施の形態2では、CPU10からフラグメモリ140へアクセス可能にしたDMA転送装置100について説明する。
図11は、実施の形態2に係るDMA転送装置100の構成図である。
DMA転送装置100がパス301を備えることにより、CPU10は、CPU処理が完了すると、バス11と接続される内部バス300及びパス301を介して、フラグメモリ140のフラグを更新することができる。そして、各チャネル200は、フラグメモリ140のフラグを読み込むことで、CPU処理の完了確認を行うことができる。
つまり、チャネル200は、CPU処理の完了を、フラグメモリ140のフラグの値を読み出すことにより確認できる。チャネルは読み出したフラグの値を判定し、フラグの値がCPU処理完了状態を示す“1”であれば、CPU処理は完了しているとみなし、次のCCWを実行する。一方、フラグの値がCPU処理完了状態を示す“1”ではなければ、CPU処理は完了していないとみなし、値が“1”になるまでフラグの値を繰り返し読み出し、その間は次のCCWを実行しない。
実施の形態3では、フラグメモリ140のリセット処理について説明する。
図12は、実施の形態3に係るDMA転送装置100の構成図である。
図13は、実施の形態3に係るフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図である。
これに対して、実施の形態3では、図8の(S22)において、CPU10は、フラグリセット部160を起動する。フラグリセット部160を起動すると、すぐにCPU10は各チャネル200を起動して、データ転送処理を開始させる。一方、起動されたフラグリセット部160のリセット信号生成部161は、フラグメモリ140に対してフラグリセット起動信号を出力する。フラグメモリ140は、フラグリセット部160からリセット起動情報が入力されると各フラグの値の初期化(例えば、“0”に更新する)を実行する。つまり、DMA転送装置100は、フラグリセット部160によるフラグのリセットと、チャネル200によるデータ転送処理とを並列に実行する。
これにより、フラグアクセスディセーブル信号の入力が解除されるまで、各チャネル200からアクセス選択部152に入力されたフラグメモリ140へのリード要求とライト要求とは待ち状態となる。したがって、フラグメモリ140はチャネル200からアクセスされることがない。
図14は、リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるDMA転送装置100の構成図である。
図15は、リセット起動情報とフラグアクセスディセーブル信号とを1つの信号で実現する場合におけるフラグメモリ140とフラグアクセス制御回路150とフラグリセット部160との構成図である。
図15に示すように、図13に示すフラグリセット部160とは異なり、フラグリセット部160は、ディセーブル信号生成部162を備えず、リセット信号生成部161とリードフラグ出力部163とを備える。
しかし、調停部151は、フラグリセット起動信号が入力されている場合であっても、リード要求を選択することは許される。つまり、フラグメモリ140へのリード要求は送信される可能性がある。しかし、図15に示すように、フラグリセット起動信号が入力されている間は、リード要求に対する応答として、フラグメモリ140から読み出したリードフラグ(フラグの値)と、フラグリセット起動信号をNOT回路164で反転させた値とについて、AND回路165で論理積を計算した値がフラグ判定回路242へ送信される。ここで、フラグリセット起動信号は“1”である。つまり、リード要求に対する応答としてフラグ判定回路242へ送信される値は、リードフラグ(フラグの値)と、“0”との論理積をとった値であり、常に“0”となる。すなわち、フラグリセット起動信号が出力されている間に、フラグメモリ140から読み取った値は、転送完了状態又はCPU処理完了状態を示す状態にはならない。つまり、リセット起動情報が出力されている間、リード要求は結果的に無効となる。
また、初期化の実行方法については、フラグリセット起動信号が入力されるとフラグメモリ140が自身の機能として初期化を実行する方法であってもよい。また、フラグリセット起動信号が入力されている間にフラグメモリ140のフラグの値を順に書き換えて初期化を実行する方法であってもよい。
図16は、実施の形態4に係るDMA転送装置100の構成図である。
実施の形態3では、CPU10がフラグリセット部160を起動させ、フラグメモリ140の初期化を実行させた。実施の形態4では、CPU10は、各チャネル200の中で最も早く起動されるチャネル200が実行する最初のCCWに、フラグリセット部160を起動するリセットコマンド(初期化指示情報)を設定する。なお、リセットコマンドもフラグコマンドの一種である。
フラグメモリアクセス回路241は、コマンド判別回路220から送信されたCCWがリセットコマンドであれば、リセットコマンドを初期化指示部250へ送る。初期化指示部250は、リセットコマンドを受信すると、フラグリセット部160を起動させ、フラグリセット部160の初期化を実行させる。
実施の形態5では、フラグメモリ140として2ポートメモリを使用した場合について説明する。なお、2ポートメモリとは、リード専用とライト専用のポートが1つずつあるメモリのことである。
図17は、フラグメモリ140として2ポートメモリを使用した場合のフラグメモリ140とフラグアクセス制御回路150との構成図である。
このため、調停部151は、2つのチャネル200からリード要求が同時に送信された場合には、どのリード要求をフラグメモリ140へ送信するかを決定し、他方のリード要求を待たせる。同様に、調停部151は、複数のチャネル200からライト要求が同時に送信された場合には、どのライト要求をフラグメモリ140へ送信するかを決定し、他方のライト要求を待たせる。しかし、2つのチャネル200からリード要求とライト要求とが同時に送信された場合には、調停部151はアクセス選択部152に両方を送信させる。
そこで、フラグメモリ140に対するアクセス制御を行うため、フラグアクセス制御回路150はアドレス比較部153を備える。アドレス比較部153は、調停部151によって選択されたリードアドレスとライトアドレスとを比較する。アドレス比較部153は、リードアドレスとライトアドレスとが同じアドレスである場合、調停部151へアドレス一致信号を出力する。調停部151は、アドレス一致信号を受信すると、リード要求に対するアクノリッジ信号の出力をライト要求による書き込みが終わるまで待つ。
実施の形態1で説明したように、アクノリッジ信号が送られてくる前に、フラグメモリ140から送られたデータは無視され、読み出しを完了しない。したがって、リード要求を送信したチャネル200は、他のチャネル200がライトを実行している間は読み出しを完了することができない。
つまり、2つのチャネル200からリード要求とライト要求とが同時に送信された場合に、調停部151は、リード要求に対するアクノリッジ信号の出力をライト要求による書き込みが終わるまで待たせる。これにより、リード要求を送信したチャネル200へはアクノリッジ信号が返らず、他のチャネル200がライトを実行している間は読み出しを完了することができない。
図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でモニタ信号が検出される。
したがって、リード要求とライト要求とが同時に送信された場合であってもすべてのリード要求、ライト要求をモニタリングすることができる。その結果、障害が発生した場合等に、原因の解析を容易に行うことができる。
DMA転送装置100は、
データを読み出す転送元アドレス又はデータを書き込む転送先アドレスと転送長、又はデータを読み出す転送元アドレスとデータを書き込む転送先アドレスの両方と転送長の転送指示情報を用いて転送を行い、転送に先立ちその転送指示情報を一つ又は複数格納し、DMA転送装置とメモリ又はI/Oデバイスが、内部バス又は外部バスと接続され、前記転送を行うチャネルを一つ又は複数備えるDMA転送装置100であり、以下の(a)、(b)、(c)、(d)を備える事を特徴とする
(a)前記チャネルが実行する転送の完了を前記チャネル間で通知する、又は前記チャネルが実行する転送の完了を前記チャネルから前記CPUへ通知する、“転送完了通知”の手段。
(b)前記CPUが実行する処理の完了を前記CPUから前記チャネルへ通知する、“CPU処理完了通知”の手段。
(c)前記チャネルと前記CPUは転送又はCPU処理が順序通りに完了するように、転送又はCPU処理の開始を待たせる”実行待機状態”の手段。
(d)開始を待たせている転送を開始して良い条件になると、前記チャネルが能動的に待ち状態を解除して転送を開始する“転送開始”の手段。
(a)DMA転送装置内に、転送の完了状態を“転送完了状態”、CPU処理の完了状態を“CPU処理完了状態”のフラグ情報として記憶するフラグメモリ、又はメインメモリの一部にフラグ情報として転送の完了状態を“転送完了状態”、CPU処理の完了状態を“CPU処理完了状態”のフラグ情報として記憶するフラグ機能。
(b)前記フラグメモリに前記チャネル又は前記CPUがアクセスし、読み出し又は書き込み又はその両方を行う事が可能である。
(c)前記メインメモリのフラグ機能を前記チャネルが読み出し又は書き込み又はその両方を行う事が可能である。
(a)前記チャネルは転送が完了したことを前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値を“転送完了状態”にすることにより“転送完了通知”の手段を実行可能にする。
(b)前記CPUは処理が完了したことを前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能のフラグ情報の値を“CPU処理完了状態”にすることにより“処理完了通知”の手段を実行可能にする。
(c)前記チャネル又は前記CPUは、前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値が“転送完了状態”又は“CPU処理完了状態”であるかを判定し、判定の結果“転送完了状態”又は“CPU処理完了状態”でなければ、次の転送又はCPU処理を待たせることで、“実行待機状態”の手段を実行可能にする。
(d)前記チャネルは前記フラグメモリのフラグ情報又は前記メインメモリのフラグ機能におけるフラグ情報の値が“転送完了状態”又は“CPU処理完了状態”であるかを判定し、判定の結果“転送完了状態”又は“CPU処理完了状態”であれば、“転送開始”の手段を実行可能にする。
(e)上記の手段により、前記CPUによる前記チャネルの転送起動、転送停止の指示を行わずに転送を自動的に再開すること可能となる。
(a)前記チャネルは、前記フラグメモリの指定するフラグ情報を書き込む指令と、前記フラグメモリの指定するフラグ情報の値を読み込む指令を実行可能である。
(b)前記チャネルは前記フラグメモリの前記フラグ情報の値を読み込み、値が“転送完了状態”であれば、他チャネルの前の転送が完了していると判断し、次の転送指示情報に示された転送を開始する。
(c)前記チャネルは前記フラグメモリの前記フラグ情報の値を読み込み、値が“転送完了状態”でなければ前の転送は完了していないと判断し、値が“転送完了状態になるまでフラグ情報の読み込みを繰り返し、その間は次チャネルの転送の実行は行わない。
(a)前記チャネルは前記メインメモリに置かれたフラグ情報の値を読み込む指令を実行可能する。
(b)前記チャネルは前記メインメモリの前期フラグ情報の値を読み込み、値が“CPU処理完了状態”であればCPU処理は完了していると判断し、次の転送指示情報に示された転送を実行する。
(c)前記チャネルは前記メインメモリの前期フラグ情報の値を読み込み、値が“CPU処理完了状態”でなければCPU処理は完了していないと判断し、値が“CPU処理完了状態”になるまで、フラグ情報の読み込みを繰り返し、その間は転送の実行は行わない。
(a)前記チャネルは、前記フラグメモリの指定するフラグ情報の値を読み込む指令を実行する。
(b)前記チャネルは前記フラグメモリの前記フラグ情報を読み込み、値が“CPU処理完了状態”であれば前のCPU処理は完了していると判断し、次の転送指示情報に示された転送を実行する。
(c)前記チャネルは前記フラグメモリの前記フラグ情報を読み込み、値が“CPU処理完了状態”でなければCPU処理は完了していないと判断し、値が“CPU処理完了状態”になるまで、フラグ情報の読み込みを繰り返し、次の指令である転送の実行は行わない。
(a)前記フラグメモリの内容を初期化するフラグリセット手段を備える。
(b)前記フラグリセット手段はフラグリセット起動情報の送信又はフラグのアドレスを変えながら全フラグを初期状態の値に書き換える回路を持つ。
(c)前記フラグリセット手段は、前記フラグメモリのフラグ情報を初期化している間には、フラグメモリに対して読み書きすることを不可能とする、フラグアクセスディセーブル状態情報を持つ。
(a)前記フラグリセット手段は、前記フラグアクセスディセーブル状態情報をフラグアクセスディセーブル信号として、チャネルからのリード又はライトアクセスを制御する回路に送信する。
(b)前記アクセスを制御する回路は、フラグアクセスディセーブル信号が入力されている間は、チャネルからの前記フラグメモリに対するアクセスを待たせる。
(a)前記フラグリセット起動情報と前記フラグアクセスディセーブル状態情報を同一のリセット信号として実現し、前記フラグリセット信号を前記フラグメモリに対して送る間は前記フラグメモリのフラグ情報の値を初期値に戻し、その間の前記フラグメモリに対するアクセス結果は、転送未完了又はCPU処理未完了に見せる。
(a)前記フラグメモリまたはフラグの値が、“転送完了状態”又は“CPU処理完了状態”になるまで繰り返し確認し、“転送完了状態”又は“CPU処理完了常態”になった事を確認すると次の転送指示情報を実行する時に、転送指示情報を実行するタイミングが各チャネルで同時にならないように、排他制御する手段を備えることにより、デバッグや外部からの観測よる解析を容易にする事を特徴とする。
Claims (15)
- データ転送処理を実行する複数の転送処理部を備え、実行順序が定められた複数のデータ転送処理を前記複数の転送処理部で順に実行するデータ転送装置であり、
指定したデータ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御する制御指示情報との指示情報が並べられた指示コマンドを、前記複数の転送処理部の各転送処理部に対応付けて複数記憶するコマンド記憶部を備え、
前記各転送処理部は、
前記コマンド記憶部が記憶した指示コマンドのうち、自己に対応付けられた指示コマンドの指示情報を並べられた順に読み出す指示読出部と、
前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、他の転送処理部によるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
を備えることを特徴とするデータ転送装置。 - 前記制御指示情報には、指定したデータ転送処理が完了したことを通知させる通知指示情報と、指定したデータ転送処理が完了するまで待たせる待ち指示情報とがあり、
前記順序制御部は、
前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを他の転送処理部へ通知し、
前記制御指示情報が待ち指示情報であった場合には、前記待ち指示情報で指定されたデータ転送処理が完了したことが他の転送処理部から通知されるまで、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項1に記載のデータ転送装置。 - 前記データ転送装置は、さらに、
前記複数のデータ転送処理の各データ転送処理の実行状態を示すフラグ情報を記憶するフラグ記憶部を備え、
前記順序制御部は、
前記制御指示情報が通知指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記通知指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を完了を示す状態に更新し、
前記制御指示情報が待ち指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記待ち指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報が完了を示す状態になるまで、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項2に記載のデータ転送装置。 - 前記順序制御部は、
前記待ち指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を前記フラグ記憶部から読み出すアクセス部と、
前記アクセス部が読み出したフラグ情報が完了を示す状態でない場合、前記アクセス部に再び前記フラグ情報の読み出しをさせるとともに、前記アクセス部が読み出したフラグ情報が完了を示す状態である場合、前記指示読出部に次の指示情報の読み出しをさせるフラグ判定部と
を備えることを特徴とする請求項3に記載のデータ転送装置。 - 前記データ転送装置は、バスを介してCPU(Central Processing Unit)と接続されており、前記CPUで実行される所定の処理との間で実行順序が定められた前記複数のデータ転送処理を実行し、
前記順序制御部は、前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、前記CPUによる前記所定の処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項1に記載のデータ転送装置。 - 前記制御指示情報には、指定したデータ転送処理が完了したことを通知させる通知指示情報と、前記所定の処理が完了するまで待たせる待ち指示情報とがあり、
前記順序制御部は、
前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを前記CPUへ通知し、
前記制御指示情報が待ち指示情報であった場合には、前記所定の処理が完了したことが前記CPUから通知されるまで、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項5に記載のデータ転送装置。 - 前記データ転送装置は、さらに、
前記複数のデータ転送処理の各データ転送処理の実行状態と、前記CPUによる前記所定の処理の実行状態とを示すフラグ情報を記憶するフラグ記憶部を備え、
前記順序制御部は、
前記制御指示情報が通知指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記通知指示情報で指定されたデータ転送処理についての実行状態を示すフラグ情報を完了を示す状態に更新し、
前記制御指示情報が待ち指示情報であった場合には、前記フラグ記憶部が記憶したフラグ情報であって、前記CPUによる前記所定の処理についての実行状態を示すフラグ情報が完了を示す状態になるまで、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項6に記載のデータ転送装置。 - 前記順序制御部は、
前記CPUによる前記所定の処理についての実行状態を示すフラグ情報を前記フラグ記憶部から読み出すアクセス部と、
前記アクセス部が読み出したフラグ情報が完了を示す状態でない場合、前記アクセス部に再び前記フラグ情報の読み出しをさせるとともに、前記アクセス部が読み出したフラグ情報が完了を示す状態である場合、前記指示読出部に次の指示情報の読み出しをさせるフラグ判定部と
を備えることを特徴とする請求項7に記載のデータ転送装置。 - 前記データ転送装置は、バスを介してさらに外部メモリとも接続されており、
前記順序制御部は、
前記制御指示情報が通知指示情報であった場合には、前記通知指示情報で指定されたデータ転送処理が完了したことを示す情報を前記外部メモリに書き込み、
前記制御指示情報が待ち指示情報であった場合には、前記CPUによる前記所定の処理が完了したことを示す情報が前記外部メモリに書き込まれるまで、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とする請求項6に記載のデータ転送装置。 - 前記データ転送装置は、さらに、
前記フラグ記憶部が記憶したフラグ情報を未完了を示す状態に初期化するとともに、前記フラグ情報を初期化している間、他から前記フラグ情報へのアクセスを制限するフラグリセット部
を備えることを特徴とする請求項3又は7に記載のデータ転送装置。 - 前記フラグリセット部は、前記フラグ情報を初期化している間、他から前記フラグ情報へのアクセスを待たせる
ことを特徴とする請求項10に記載のデータ転送装置。 - 前記フラグリセット部は、前記フラグ情報を初期化している間、他から前記フラグ情報の読み出しがされた場合、未完了を示す状態として読み出しさせる
ことを特徴とする請求項10に記載のデータ転送装置。 - 前記コマンド記憶部は、データ転送指示情報と制御指示情報とに加え、前記フラグリセット部を起動させる初期化指示情報が並べられた指示コマンドを記憶し、
前記各転送処理部は、
前記指示読出部が読み出した指示情報が前記初期化指示情報であった場合、前記フラグリセット部を起動させ、前記フラグリセット部に前記フラグ情報を初期化させる初期化指示部
を備えることを特徴とする請求項10から12までのいずれかに記載のデータ転送装置。 - バスを介してCPU(Central Processing Unit)と接続されており、前記CPUで実行される所定の処理との間で実行順序が定められたデータ転送処理を実行するデータ転送装置であり、
データ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御させる制御指示情報との指示情報が並べられた指示コマンドを記憶するコマンド記憶部とを備え、
前記各転送処理部は、
前記コマンド記憶部が記憶した指示コマンドにおける指示情報を並べられた順に読み出す指示読出部と、
前記指示読出部が読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行する転送実行部と、
前記指示読出部が読み出した指示情報が前記制御指示情報であった場合、前記CPUによる前記所定の処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる順序制御部と
を備えることを特徴とするデータ転送装置。 - 一部の実行順序が定められた複数のデータ転送処理を複数のチャネルで順に実行するデータ転送方法であり、
前記複数のチャネルの各チャネルは、
データ転送処理を実行させるデータ転送指示情報と、前記実行順序を制御させる制御指示情報との指示情報が並べられた指示コマンドをチャネル毎に記憶した記憶装置から、自己についての指示コマンドにおける指示情報を並べられた順に読み出し、
読み出した指示情報が前記データ転送指示情報であった場合、前記データ転送指示情報で指定されたデータ転送処理を実行し、
読み出した指示情報が前記制御指示情報であった場合、他のチャネルによるデータ転送処理の実行状態に応じて、前記指示読出部に次の指示情報の読み出しを待たせる
ことを特徴とするデータ転送方法。
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)
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)
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 | プロセッサ及びデータ転送ユニット |
-
2009
- 2009-09-24 JP JP2009218602A patent/JP2011070259A/ja active Pending
Patent Citations (2)
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)
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 |