(57)【特許請求の範囲】
【請求項１】
記憶回路に接続され、インターフェイス回路を介して他のデータ転送装置に接続されるデータ転送装置において、
読出しアドレスを含む要求信号を前記記憶回路に出力し、調停された要求信号に応じて、許可信号とともに前記記憶回路から読み出したデータを前記インターフェイス回路に転送するとともに、前記インターフェイス回路への転送を抑止する抑止信号に応じて前記読み出したデータの前記インターフェイス回路への転送を中断し、前記受信した抑止信号の終了後に前記読出したデータの前記インターフェース回路への転送を再開する複数の制御回路と、
前記複数の制御回路が出力する要求信号の調停を行ない、前記調停された要求信号を出力する第１の調停回路と、
前記複数の制御回路に接続するとともに、前記第1の調停回路による要求信号の調停に基づき、前記制御回路が出力する要求信号のいずれかを選択して前記記憶回路に出力する第１の選択回路と、
前記複数の制御回路が転送するデータの調停を行なう第２の調停回路と、
前記複数の制御回路に接続するとともに、前記第２の調停回路によるデータの調停に基づき、前記第1の選択回路が出力した要求信号が含む読出しアドレスに応じて前記記憶回路が出力して前記制御回路が転送するデータのいずれかを選択して前記インターフェイス回路に出力する第２の選択回路と、
前記第２の選択回路が前記インターフェイス回路を介して前記他のデータ転送装置に転送したデータ量と前記転送したデータ量について前記他のデータ転送装置が処理したデータ量とに基づき、前記他のデータ転送装置がビジー状態にあると判断した場合には、前記抑止信号を出力するビジー回路を有することを特徴とするデータ転送装置。
【請求項２】
前記データ転送装置において、
前記ビジー回路は、
前記第２の選択回路が前記インターフェイス回路を介して前記他のデータ転送装置に転送したデータ量に応じて計数値を増加させ、前記転送したデータ量について前記他のデータ転送装置が処理したデータ量に応じて前記計数値を減少させるカウンタの前記計数値が所定値に達した場合に、前記他のデータ転送装置がビジー状態にあると判断することを特徴とする請求項１記載のデータ転送装置。
【請求項３】
前記データ転送装置において、
前記制御回路は、
前記制御回路が読出しアドレスを含む要求信号を出力する準備が完了した場合、アイドル状態から第１の状態に遷移し、
前記第1の状態に遷移した場合、読出しアドレスを含む要求信号を出力したとき、前記第1の状態から第２の状態に遷移し、
前記第２の状態に遷移した場合、許可信号を出力したとき、第２の状態から第３の状態に遷移し、
前記第３の状態に遷移した場合、前記要求信号が含む読出しアドレスに対応するデータを出力したとき、第３の状態から第４の状態に遷移する状態遷移回路を有することを特徴とする請求項１又は２記載のデータ転送装置。
【請求項４】
記憶回路に接続されたデータ転送装置と、前記データ転送装置にインターフェイス回路を介して接続された他のデータ転送装置とを有するデータ転送システムにおいて、
前記データ転送装置は、
読出しアドレスを含む要求信号を前記記憶回路に出力し、調停された要求信号に応じて、許可信号とともに前記記憶回路から読み出したデータを前記インターフェイス回路に転送するとともに、前記インターフェイス回路への転送を抑止する抑止信号に応じて前記読み出したデータの前記インターフェイス回路への転送を中断し、前記抑止信号の終了後に前記読出したデータの前記インターフェイス回路への転送を再開する複数の制御回路と、
前記複数の制御回路が出力する要求信号の調停を行ない、前記調停された要求信号を出力する第１の調停回路と、
前記複数の制御回路に接続するとともに、前記第1の調停回路による要求信号の調停に基づき、前記制御回路が出力する要求信号のいずれかを選択して前記記憶回路に出力する第１の選択回路と、
前記複数の制御回路が転送するデータの調停を行なう第２の調停回路と、
前記複数の制御回路に接続するとともに、前記第２の調停回路によるデータの調停に基づき、前記第１の選択回路が出力した要求信号が含む読出しアドレスに応じて前記記憶回路が出力して前記制御回路が転送するデータのいずれかを選択して前記インターフェイス回路に出力する第２の選択回路と、
前記第２の選択回路が前記インターフェイス回路を介して前記他のデータ転送装置に転送したデータ量と前記転送したデータ量について前記他のデータ転送装置が処理したデータ量とに基づき、前記他のデータ転送装置がビジー状態にあると判断した場合には、前記抑止信号を出力するビジー回路を有することを特徴とするデータ転送システム。
【請求項５】
前記データ転送システムが有するデータ転送装置において、
前記ビジー回路は、
前記第２の選択回路が前記インターフェイス回路を介して前記他のデータ転送装置に転送したデータ量に応じて計数値を増加させ、前記転送したデータ量について前記他のデータ転送装置が処理したデータ量に応じて前記計数値を減少させるカウンタの前記計数値が所定値に達した場合に、前記他のデータ転送装置がビジー状態にあると判断することを特徴とする請求項４記載のデータ転送システム。
【請求項６】
前記データ転送システムが有するデータ転送装置において、
前記制御回路は、
前記制御回路が読出しアドレスを含む要求信号を出力する準備が完了した場合、アイドル状態から第１の状態に遷移し、
前記第1の状態に遷移した場合、読出しアドレスを含む要求信号を出力したとき、前記第１の状態から第２の状態に遷移し、
前記第２の状態に遷移した場合、許可信号を出力したとき、第２の状態から第３の状態に遷移し、
前記第３の状態に遷移した場合、前記要求信号が含む読出しアドレスに対応するデータを出力したとき、第３の状態から第４の状態に遷移する状態遷移回路を有することを特徴とする請求項４又は５記載のデータ転送システム。
【請求項７】
記憶回路に接続され、インターフェイス回路を介して他のデータ転送装置に接続されるデータ転送装置の制御方法において、
前記データ転送装置が有する制御回路が、読出しアドレスを含む要求信号を出力するステップと、
前記データ転送装置が有する第１の調停回路が、前記複数の制御回路が出力する要求信号の調停を行ない、調停された要求信号を出力するステップと、
前記制御回路が、前記調停された要求信号に応じて、許可信号とともに前記記憶回路から読み出したデータを前記インターフェイス回路に転送するステップと、
前記データ転送装置が有する第１の選択回路が、前記第1の調停回路による要求信号の調停に基づき、前記制御回路が出力する要求信号のいずれかを選択して前記記憶回路に出力するステップと、
前記データ転送装置が有する第２の調停回路が、前記複数の制御回路が転送するデータの調停を行なうステップと、
前記データ転送装置が有する第２の選択回路が、前記第２の調停回路によるデータの調停に基づき、前記第１の選択回路が出力した要求信号が含む読出しアドレスに応じて前記記憶回路が出力して前記制御回路が転送するデータのいずれかを選択して前記インターフェイス回路に出力するステップと、
前記データ転送装置が有するビジー回路が、前記第２の選択回路が前記インターフェイス回路を介して前記他のデータ転送装置に転送したデータ量と前記転送したデータ量について前記他のデータ転送装置が処理したデータ量とに基づき、前記他のデータ転送装置がビジー状態にあると判断した場合には、前記インターフェイス回路への転送を抑止する抑止信号を出力するステップと、
前記制御回路が、前記ビジー回路から受信した抑止信号に応じて前記読み出したデータの前記インターフェイス回路への転送を中断し、前記受信した抑止信号の受信の終了後に前記読出したデータの前記インターフェイス回路への転送を再開するステップを有することを特徴とするデータ転送装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、システムコントローラ(System Controller)内に設けられているRAM(Random Access Memory)からの読み出しパケットを送出側インターフェイスに送るパケット送出制御装置および方法に関する。
【背景技術】
【０００２】
図１は、従来のマルチコンピュータシステムの構成を示す概略図である。図１ではシステムコントローラ(System Controller：ＳＣ)10，20に付けた番号、すなわち０及び１でもって０系コンピュータシステム、１系コンピュータシステムと呼ぶことにする。【０００３】
０系コンピュータシステム、１系コンピュータシステムとも構成要素は同じなので、０系コンピュータシステムについて簡単に構成を説明する。０系コンピュータシステムは、システムコントローラSC0（10）に第１のＣＰＵ１、第２のＣＰＵ２が接続され、さらに、第１及び第２のメディアアクセスコントローラ（Media Access Controller：MAC）3，5を介してそれぞれ複数のDIMM(Dual Inline Memory Module)4，6が接続される。また、０系コンピュータシステムと１系コンピュータシステムはシステムコントローラSC10，20を介して相互に接続される。【０００４】
そして、システムコントローラSC10，20内には、RAM(Random Access Memory)(図示せず)が納められており、RAMからの読み出しパケットがインターフェイス(図示せず)を介して相手先に送出されるようになっている。【０００５】
図２は、従来のパケット送出制御装置の構成を示す図であり、システムコントローラSC10内に納められているRAMからコントローラCNTLひとつを使用してパケットを読み出し、インターフェイス(図示せず)を介して相手先に送出するものである。図２において従来のパケット送出制御装置は、インターフェイス(IF)部へのパケット送出の制御とRAMへのデータ要求及びデータ受取りを管理するコントローラ部(CNTL)30、パケット送出先の制御部(図示せず)のビジー(BUSY)状態を把握するBUSY制御回路40、および、要求されるデータを格納するRAM(メモリ)50から構成されている。【０００６】
図２に示したコントローラ部(CNTL)30は、内部にSTM(State-Machine)31（特許文献１参照）を持ち、RAM50への要求のタイミング制御や、データの受取りを行いデータ長やエラーなどを判断して送出するパケットをRAM格納データから用意する。またSTM31は、制御信号またはタイミングでもって、ステート(State)を遷移させ、そのステートで行う処理を管理する。なおコントローラ部(CNTL)30は、RAM50とのデータのやりとりのためにラッチ32,33を持っている。【０００７】
またBUSY制御回路40は、インターフェイス(IF)側から送られてくる信号から、相手側インターフェイスのパケットの処理状態を判断し、ビジー(BUSY)を認識した時は、STM31にデータの送出を止めるよう働き掛ける。【０００８】
またRAM(メモリ)50は、要求されるデータを保持し、アドレスを指定して、読み出しの要求を受けることで、アドレスとくくりつけられたデータを読み出す。
次に、従来のパケット送出制御装置の動作を図３に示すタイムチャートで説明する。図３においてデータの要求が可能になった時点で、CNTL30のSTM31が起動しIDLE(アイドル)(00)からST0に遷移する。CNTL30からRAM50へ読み出しの要求（RAMへのREQ(request)）を送ると、STM31はST0からST1に遷移して、RAM50からの要求許可信号（RAMからのVLD(valid)）を待つ。要求許可信号（RAMからのVLD）がRAM50から発行された時に、RAM50はデータの読み出し準備をし、一方、CNTL30のSTM31はST1からST2に遷移してデータ（READ DATA）の受け取り準備を行う。CNTL30はRAM50から読み出されたデータ（READ DATA）を受け取り、STM31がST2からST3に遷移するに従い、IF部へDATAを送出する(IFへの出力DATA)。データの送出終了とともに、STM31の動作も終了し、初期状態に戻り、またデータの要求を繰り返す。BUSYが発生した時は、BUSY制御回路40からSTM31に制御信号が送られ、データの送出を止める。制御信号の解除とともに、STM31が動き、データ送出を行う。【０００９】
上述した従来のパケット送出制御装置の場合には、コントローラひとつを使用して要求を処理しているため、次の要求を処理するには、一つの処理が終了するまで待たねばならない。それを解決するために、RAMへの読み出し要求の競合解決による待ち時間を含めたRAMからの読み出しのレイテンシ、データ送出先のインターフェイス側のBUSY反映によるデータの送出停止および送出再開のタイミングを計算した上で、RAMの読み出しコントローラが隙間なくパケットを制御するためのタイミング制御回路を設計することが考えられるが、複雑な制御が必要となり、実現させるには多くの困難を克服しなければならないという課題があった。
【特許文献１】特開2001-337861号公報(第4欄15行〜第7欄2行、図１、図４)
【発明の開示】
【００１０】
本発明は、インターフェイスへのパケット送出の制御とメモリへのデータ要求とデータ受取りを管理する複数のコントローラと、前記複数のコントローラのうち、どのコントローラを使用するかを選択する調停手段と、送出先の制御部のBUSY状態を把握するBUSY制御回路と、要求されるデータを格納するメモリを備えていることを特徴とする。
【００１１】
本発明によれば、隙間なくパケットを出すことができなくても制御が比較的容易なコントローラを複数個、及びコントローラ間の調停手段を備え、その上でコントローラを交互に動作させることで、パケットとパケットの隙間を容易に埋めることができる。また各コントローラは、他のコントローラの状態を意識することなく動作しており、インターフェイスにパケットを送信しているコントローラがインターフェイス側の都合でパケットが送出できず、コントローラの動作がとまっている時に、別のコントローラが動作することで次のデータをメモリから読み出すことができる。別のコントローラが、あらかじめ、データを読み出しているため、パケット送出再開時に、複雑な制御をすることなく連続してパケットを処理することができる。
【図面の簡単な説明】
【００１２】
【図１】従来のマルチコンピュータシステムの構成を示す概略図である。
【図２】従来のパケット送出制御装置の構成を示す図である。
【図３】従来のパケット送出制御装置の動作を説明するタイムチャートである。
【図４】本発明の実施形態に係るパケット送出制御装置の構成を示す図である。
【図５】本発明の実施形態に係るパケット送出制御装置の動作を説明するタイムチャートである。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施形態を、図面を参照しながら詳細に説明する。
図４は、本発明の実施形態に係るパケット送出制御装置の構成を示す図である。図４において本発明の実施形態に係るパケット送出制御装置は、インターフェイス(IF)部へのパケット送出の制御とRAMへのデータ要求及びデータ受取りを管理する複数のコントローラ部(CNTL0、CNTL1)130,230、複数のコントローラ部のうち、どのコントローラ部をRAMへのデータ要求及びデータの受け取りに使用するかを選択する第１のアービター回路101、複数のコントローラ部のうち、どのコントローラ部をIF部へのパケット送出に使用するかを選択する第２のアービター回路102、パケット送出先の制御部(図示せず)のビジー(BUSY)状態を把握するBUSY制御回路140、および、要求されるデータを格納するRAM(メモリ)150から構成されている。【００１４】
本発明の実施形態に係るパケット送出制御装置の特徴は、制御が比較的容易なコントローラを複数個備え、且つ複数のコントローラ間の調停を行なう調停手段(アービター回路)を備えるようにした上で複数のコントローラを交互に動作させることにより送出先へのパケット送出停止のギャップを埋めることができるので、コントローラ多重化によってRAMからのパケット読み出しレイテンシを考慮せずに動作させることができる。【００１５】
図４に示したコントローラ部(CNTL0、CNTL1)130,230は、内部にSTM(State-Machine)131,231を持ち、RAM150への要求のタイミング制御や、データの受取りを行いデータ長やエラーなどを判断して送出するパケットをRAM格納データから用意する。またSTM131,231は、制御信号またはタイミングでもって、ステート(State)を遷移させ、そのステートで行う処理を管理する。なおコントローラ部(CNTL0、CNTL1)130,230は、RAM150とのデータのやりとりのためにラッチ132,133、232,233を持っている。【００１６】
アービター回路101,102は、コントローラ130,230と、RAM150、インターフェイスの間に存在し、RAM150への要求やRAM150からのデータ、インターフェイスへ送信するデータについて、どのコントローラへ送るか、または使用するかをセレクタ(selector)111,112にコントロール信号を与えて選択する。そこで第１のアービター回路101は、セレクタ(selector)111に指示してどのコントローラを使用するかを選択し選択したコントローラの信号を優先して処理し、第２のアービター回路102はセレクタ(selector)112に指示してどのコントローラを使用するかを選択し選択したコントローラの信号を優先して処理する。【００１７】
またBUSY制御回路140は、インターフェイス(IF)側から送られてくる信号から、相手側インターフェイスのパケットの処理状態を判断し、ビジー(BUSY)を認識した時は、STM131,231にデータの送出を止めるよう働き掛ける。BUSY制御回路140は、例えばアップダウンカウンタで構成され、相手先の制御部に所定長のパケットデータを送信した場合にカウンタをアップし、相手先の制御部が送信された所定長のパケットデータを処理した場合にはカウンタをダウンし、アップ値が所定値に到達した場合には相手側の制御部のパケット処理が滞ったとしてビジー(BUSY)を認識する。【００１８】
またRAM(メモリ)150は、要求されるデータを保持し、アドレスを指定して、読み出しの要求を受けることで、アドレスとくくりつけられたデータを読み出す。
図５は、本発明の実施形態に係るパケット送出制御装置の動作を説明するタイムチャートである。まず、図４に示された第１のアービター回路101により選択された第１のコントローラCNTL0(130)が動作を開始し、データの要求が可能になった時点で、CNTL0(130)のSTM0(131)が起動しIDLE(アイドル)(00)からST0に遷移する。第１のコントローラCNTL0(130)からRAM150へ読み出しの要求（CNTL0 RAMへのREQ(request)）を送ると、STM0(131)はST0からST1に遷移して、RAM150からの要求許可信号（CNTL0 RAMからのVLD(valid)）を待つ。このとき、複数のコントローラからの要求が競合した際には、第１のアービター回路101により、選択されたコントローラの要求が優先して処理される。【００１９】
要求許可信号（CNTL0 RAMからのVLD）がRAM150から発行された時に、RAM150はデータの読み出し準備をし、一方、第１のコントローラCNTL0(130)のSTM0(131)はST1からST2に遷移してデータ（CNTL0 READ DATA）の受け取り準備を行う。第１のコントローラCNTL0(130)はRAM150から読み出されたデータ（READ DATA）を受け取り、STM0(131)がST2からST3に遷移するに従い、IF部へDATAを送出する(CNTL0 IFへの出力DATA)。【００２０】
第２のコントローラCNTL1(230)は第１のコントローラCNTL0(130)が動作中からCNTL1(230)のSTM1(231)を起動することができ（CNTL1 STM1）、読み出し要求を発行することができる（CNTL１ RAMへのREQ(request)）。この間、CNTL1(230)のSTM1(231)はST1の状態で保持され、RAM150からの要求許可信号（CNTL1 RAMからのVLD(valid)）を待つ。第２のコントローラCNTL1(230)はRAM150からの要求許可信号が発行され、第１のコントローラCNTL0(130)がRAM150からデータを受け取り終わっていれば、第１のコントローラCNTL0(130)がIF部にデータを送出している最中に、RAM150からデータを読み出すことができる。そして、第１のコントローラCNTL0(130)のデータの送出終了とともに、第１のコントローラCNTL0(130)のSTM0(131)の動作も終了し、第２のコントローラCNTL1(230)のSTM1(231)がデータ送出を行うことが可能になる。【００２１】
また図５に示すようにBUSY制御回路140からBUSYが発行された際は、IF部へのDATAの送信(CNTL0 IFへの出力DATA)は中断される。その間も別のコントローラ、図の例では第２のコントローラCNTL1(230)は動作が可能だが、IF部のDATA送信(CNTL1 IFへの出力DATA)は、第２のアービター回路102で選択された第１のコントローラCNTL0(130)の出力が完了してから送信される。【００２２】
以上説明したように本発明によれば、読み出し要求時に、競合解決やRAM(メモリ)の読み出しレイテンシなどを考慮した複雑な制御を必要としないという利点を有する。
また本発明によれば、複数のコントローラを順番に動かすため、ひとつの要求を発行した後に、競合解決の待ち時間を含めたRAM(メモリ)の読み出しレイテンシを考慮せずに、競合解決後に別の要求を発行することができるという利点を有する。【００２３】
さらに本発明によれば、送出側インターフェイスのBUSY状態による、パケット送出停止時に、別のコントローラからのRAM(メモリ)の読み出し要求を発行することができるという利点を有する。
【産業上の利用可能性】
【００２４】
上記ではシステムコントローラ(SC)での適用を説明したが、これへの適用に限定されず、他のコントローラ例えばメモリコントローラでの適用も可能である。
【図１】
0004856695.tif 000002
【図２】
0004856695.tif 000003
【図３】
0004856695.tif 000004
【図４】
0004856695.tif 000005
【図５】
0004856695.tif 000006