JP4372110B2 - データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 - Google Patents

データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 Download PDF

Info

Publication number
JP4372110B2
JP4372110B2 JP2006033829A JP2006033829A JP4372110B2 JP 4372110 B2 JP4372110 B2 JP 4372110B2 JP 2006033829 A JP2006033829 A JP 2006033829A JP 2006033829 A JP2006033829 A JP 2006033829A JP 4372110 B2 JP4372110 B2 JP 4372110B2
Authority
JP
Japan
Prior art keywords
data
merge
buffer
merge data
entries
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.)
Active
Application number
JP2006033829A
Other languages
English (en)
Other versions
JP2007214981A (ja
Inventor
裕治 斎藤
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.)
NEC Computertechno Ltd
Original Assignee
NEC Computertechno Ltd
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 NEC Computertechno Ltd filed Critical NEC Computertechno Ltd
Priority to JP2006033829A priority Critical patent/JP4372110B2/ja
Priority to US11/704,245 priority patent/US7724775B2/en
Publication of JP2007214981A publication Critical patent/JP2007214981A/ja
Application granted granted Critical
Publication of JP4372110B2 publication Critical patent/JP4372110B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements
    • H04L49/9084Reactions to storage capacity overflow
    • H04L49/9089Reactions to storage capacity overflow replacing packets in a storage arrangement, e.g. pushout
    • H04L49/9094Arrangements for simultaneous transmit and receive, e.g. simultaneous reading/writing from/to the storage element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/90Buffering arrangements

Description

本発明は、データ転送回路、マルチプロセッサシステム、及びデータ転送方法に関し、特に、マルチプロセッサシステムの処理装置間において、リードリクエストに応答したリプライデータの転送を制御するデータ転送回路、マルチプロセッサシステム、及びデータ転送方法に関する。
一般に処理装置間におけるデータ転送では、転送するデータに宛て先情報等を含むヘッダを付加し、パケットとしてまとめて転送する。パケットを転送する際、パケットを複数のフリットに分割し、クロックに同期して1フリット毎に転送を行う。ここで、フリットとは1クロックの転送における送信可能なデータの最小単位であり、通常8〜64bit程度の大きさである。
ある処理装置Aが扱う事ができる最大データ長(例えば128Byte)が、ある処理装置Bで扱う事のできる最大データ長(例えば4kByte)より小さい場合、処理装置Aと処理装置Bの間に位置するデータ転送回路は、処理装置Bから処理装置Aに転送されるデータを、処理装置Aで扱える最大データ長に分割して処理するのが通常である。逆に、処理装置Aから処理装置Bに転送されるデータは、データ転送回路によって統合(マージ)処理されてから転送される。例えば、処理装置Bから処理装置Aに対しリードリクエストが発行され、そのリードリクエストに応答して処理装置Aからリプライデータが転送される場合、データ転送回路は、リードリクエストの情報を含むパケットを分割して処理装置Aに転送し、リードリクエストに対応する全てのリプライデータ、又は所定のフリット数分のリプライデータをマージして処理装置Bに転送する。このように従来技術によるデータ転送回路では、マージするフリット数が決まっているため、処理装置Bへの伝送路が空いている場合でもリプライデータのマージ完了を待ち合わせなけらばならず、伝送路を効率良く使用できないためスループットが低下してしまう。
以下に、パケット転送方式に関する開示例が示される。
特開平01−081551号公報には複数のデータを合計データ長が予め定められたパケット長を越えない範囲で合成し、一つのパケットとして通信回線に送出する送信装置と、受信するパケットに含まれるデータを付加されているデータ長に基づき分離する受信装置とを用いたパケット転送方式が記載されている(特許文献1参照)。又、特開昭59−081947号公報には、パケット交換局において予め記憶しているパケット長より短いデータを結合して、当該パケット長に等しい長さのパケットを生成して伝送するパケット転送方式が記載されている(特許文献2参照)。しかし、特許文献1及び2に記載のパケット転送方式では、予め定められたパケット長になるまで待機しなければならず、伝送路を効率良く使用できないためスループットが低下してしまう。
特開2004−032283号公報には、伝送パケットの受信状況や伝送路の状態に基づいた誤り耐性を有する伝送パケットを送信する送信装置が記載されている(特許文献3参照)。特許文献3に記載の受信装置は、送信装置からの伝送パケットの受信間隔、破棄パケット数、スループット等を取得し、この取得結果を送信装置に送信する。送信装置は、この取得結果に基づき送信するパケットのインターリーブ長やペイロード長を決定する。このように、特許文献1に記載の送信装置は、受信状況と伝送路の状態とに応じた伝送パケットを伝送することで、受信装置の処理負荷を軽減できる。特許文献3に記載の送信装置は、1フレーム分のデータを読み込み、そのデータをパラメータ決定部の結果に応じたペイロード長で分割して送信することで、転送効率を向上させている。しかし、データが分割されて転送されるため、転送データに付与されるヘッダ数は増加する。このため転送するデータの総情報量が増加し、スループットが低下する。又、データの読み込みと送信のタイミングによっては、転送するデータを待ち合わせる可能性がある。
特開平11−234347号公報には、受信バッファ不足による送信待ち状態による転送低下を回避し、データ転送の効率を向上させるデータ通信におけるバッファ管理方法が記載されている(特許文献4参照)。特許文献4に記載のデータ送信装置は、送信予定のデータのサイズとともに受信バッファの空き容量の確認信号をデータ受信装置に送信する。データ装置装置は受信装置からの応答に基づき、空き領域が送信予定のデータサイズ以上である場合一括送信し、データサイズ以下である場合、空き領域サイズ分のデータを分割して送信する。しかし、データが分割されて転送されるため、転送データに付与されるヘッダ数は増加する。このため転送するデータの総情報量が増加し、スループットが低下する。
特開平01−081551号公報 特開昭59−081947号公報 特開2004−032283号公報 特開平11−234347号公報
本発明の目的は、処理装置間の伝送路を効率良く使用してスループットの高いパケット転送ができるデータ転送回路、マルチプロセッサシステム、及びデータ転送方法を提供することである。
又、他の本発明の目的は、転送するリプライデータのフリットを効率的にマージすることができるデータ転送回路、マルチプロセッサシステム、及びデータ転送方法を提供することができる。
以下に、[発明を実施するための最良の形態]で使用される番号・符号を括弧付きで用いて、[課題を解決するための手段]を説明する。この番号・符号は、[特許請求の範囲]の記載と[発明を実施するための最良の形態]の記載との対応関係を明らかにするために付加されたものであるが、[特許請求の範囲]に記載されている発明の技術的範囲の解釈に用いてはならない。
本発明によるデータ転送回路(20)は、第1の処理装置(10)からクロックサイクルに応じて入力されるフリット(R)を入力順に統合してマージデータ(R)を生成するデータマージ部(1)と、マージデータ発行制御部(2)とを具備する。マージデータ発行制御部(2)は、マージデータ(R)内のフリット数(205)と第2の処理装置(30)における入力バッファ(31)の空きエントリ数(204)とを比較し、フリット数(205)以下である場合、マージデータ発行許可信号(201)をデータマージ部(1)に発行する。データマージ部(1)は、マージデータ発行許可信号(1)に応答してマージデータ(R)を第2の処理装置(30)に転送する。このように、本発明によるデータ転送回路は、統合(マージ)したマージデータ(R)のフリット数(205)がデータの転送先の空きエントリ数(204)以下であるとき、マージデータ(R)を処理装置(30)に転送する。このため、本発明によるデータ転送回路(20)では、リプライデータの全てのフリットをマージする必要が無く、転送先の入力バッファ(31)の空き容量に応じてマージデータ(R)のフリット数を変化させることができる。又、本発明に係るデータマージ部(1)は、マージデータ(R)の転送許可を受け付けるまで、入力されるフリット(R)をマージし続ける。すなわち、マージデータ(R)を転送しない間はマージ処理を実行し続けるため、より多くのフリット(R)をマージすることができる。
本発明に係るデータマージ部(1)は第1の処理装置(10)からフリット(R)が入力される毎に、入力された全てのフリット(R)を統合してマージデータ(R)を生成し、マージデータ(R)内のフリット数(205)をマージデータ発行要求信号(200)とともにマージデータ発行制御部(2)に送信する。マージデータ発行制御部(2)は、マージデータ発行要求信号(200)に応答して、フリット数(205)とエントリ数(204)とを比較する。この際、マージデータ(R)内のフリット数(205)が空きエントリ数(204)以下である場合、マージデータ発行許可信号(201)をデータマージ部(1)へ発行する。このように、本発明のデータ転送回路(20)はフリット(R)の入力の都度、入力されたフリット(R)をマージし、そのマージデータ(R)の転送可否を判定する。このように、入力されたフリット(R)をマージする毎に通信先の空き容量を確認するため、必要以上のフリット(R)をマージすることなくマージデータ(R)を転送することができる。すなわち、本発明によればリプライデータ(R)の効率的なマージ処理を行うことができる。又、転送先の空き容量が小さく転送できない場合、転送先の空き容量が大きくなるまで、より多くのフリットをマージすることができる。このため、転送するパケット数が抑制され、付与するヘッダ数は削減される。すなわち、無駄なデータの転送を抑制することで伝送路のスループットを向上することができる。
本発明によるデータ転送回路(20)は、更に、データマージ部(1)から転送されたマージデータ(R)を一時格納するバッファ(5)と、発行可能エントリ数(202)を保持する発行可能エントリ数保持部(6)とを更に具備する。ここで、発行可能エントリ数(202)とは、マージデータ発行許可信号(201)が発行されてから、データマージ部(1)からバッファ(5)にマージデータ(R)が送出されるまでのクロックサイクル+1によって設定されるエントリ数である。マージデータ発行制御部(2)は、先行してバッファ(5)に格納されているマージデータ(R)が使用中のエントリ数(203)と、発行可能エントリ数(202)とを比較し、使用中のエントリ数(203)が発行可能エントリ数(202)以下である場合、マージデータ(R)の発行許可信号(201)をデータマージ部(1)に発行する。データマージ部(1)は、発行許可信号(201)に応答して、マージデータ(R)をバッファ(5)を介して第2の処理装置(30)へ転送する。このように設定された発行可能エントリ数(202)によって、マージデータ(R)の転送を制御することで、バッファ(5)に先行して格納されたマージデータ(R)の最後のフリットが、バッファ(5)から処理装置(30)に転送されるのと同時に、後続のマージデータ(R)の最初のフリットがバッファ(5)に送出される。すなわち、先行してバッファ(5)に送出されたマージデータ(R)と後続のマージデータ(R)とを途切れなく連続して処理装置(30)に転送することが可能となる。このため、伝送路を効率良く利用でき、スループットを向上することができる。
本発明によるデータ転送回路及びデータ転送方法によれば、処理装置間の伝送路を効率良く使用してスループットの高いパケット転送ができる。
又、転送するリプライデータのフリットを効率的にマージして転送することができる。
以下、添付図面を参照して、本発明によるデータ転送回路の実施の形態が説明される。図面において同一、又は類似の参照符号は、同一、類似、又は等価な構成要素を示している。
図1を参照して、マルチプロセッサシステム内に設けられる処理装置10とI/Oコントローラ30との間に設けられるパケット転送回路20を一例に、本発明によるデータ転送回路の実施の形態が説明される。処理装置10は、I/Oコントローラ30から発行されたリードリクエストに応答してリプライデータRをI/Oコントローラ30に転送する。この際、処理装置10は、リプライデータRを1クロックサイクルに転送可能なデータ量のフリット(例えばフリットF〜F)に分割し、それぞれをクロックサイクル毎に入力フリットRとしてパケット転送回路20に入力する。本発明によるパケット転送回路20は、クロックサイクルに応じて入力されたフリットRを順に統合(マージ)し、リードリクエストに対応するリプライデータR内の全てのフリットF〜Fの入力を待たずに、マージ処理されたマージデータRをI/Oコントローラ30に転送する。ここで、マージ処理されて転送されるマージデータRのフリット数は、I/Oコントローラ30までの伝送路の空き状況(I/Oコントローラ30における入力バッファ31の空き状況やバッファ5に先行して格納されているリプライデータ)に応じて決定されるため任意である。以下、実施の形態について詳細に説明される。
(構成)
(本発明によるマルチプロセッサシステムの構成)
図1は、本発明によるパケット転送回路20を備えるマルチプロセッサシステムの構成を示すブロック図である。本発明に係るマルチプロセッサシステムは、バスで相互に接続されたCPU11やメモリ12等を備える演算処理装置である処理装置10及び10と、パケット転送回路20及び20と、処理装置10及び10へのパケットデータの入出力制御を行う入出力制御回路(I/Oコントローラ)30及び30とを備えている。処理装置10とパケット転送回路20とは、データ線100で接続され、パケット転送回路とI/Oコントローラ30とはデータ線102で接続されている。又、I/Oコントローラ30と30との間は、データ線103で接続されている。
ここで、処理装置10で処理可能な最大データ長は、処理装置10で処理可能な最大データ長よりも小さいものとする。以下の説明では、処理装置10内のCPU11が処理装置10からのリードリクエストに応答してメモリ12からリプライデータRを読み出し、パケット転送回路20を介して処理装置10に転送することを一例に説明される。
処理装置10内のCPU11は、転送するリプライデータRをデータ線100の伝送容量に応じたデータ量のフリットに分割し、それぞれを入力フリットRとしてクロックサイクルに同期してパケット転送回路20に送出する。パケット転送回路20は、入力フリットRを入力順にマージしてマージデータRを生成する。又、このマージデータRをパケットデータとしてI/Oコントローラ30に転送する。I/Oコントローラ30は、転送されたパケットデータを入力バッファ31に一時格納し、パケットデータのヘッダに基づきI/Oコントローラ30を介して処理装置10に転送する。この際、処理装置10側のパケット転送回路20は、転送されたパケットデータをデータ線100の伝送容量に応じたフリットに分割して処理装置10に転送する。処理装置10のCPU11は、転送されたデータをメモリ12に格納する。
(本発明によるパケット転送回路の構成)
図2は、本発明によるパケット転送回路20の構成を示すブロック図である。図2を参照して、処理装置10に接続されるパケット転送回路20を一例に、本発明によるパケット転送回路20の構成の詳細が説明される。パケット転送回路20は、データ線100を介して処理装置10に接続されるデータマージ部1、マージデータ発行制御部2、バッファ使用エントリ数算出部3、バッファ出力制御部4、データ線102を介してI/Oコントローラ30に接続されるバッファ5、発行可能エントリ数保持部6を具備している。
データマージ部1は、処理装置10からデータ線100を介して送出される入力フリットRを順にマージしてマージデータRを生成する。又、入力フリットRが入力される毎にマージデータ発行要求信号200をマージデータ発行制御部2に発行する。マージデータ発行要求信号200はマージデータR内に含まれるフリット数を示す情報(以下、発行要求フリット数205と称す)を含んでいる。ここで、1フリットは1クロックサイクルに転送され、バッファ5の1エントリに対応するデータ量のデータとする。データマージ部1はマージデータ発行制御部2から発行されるマージデータ発行許可信号201に応答して、データ線101を介して、マージデータRをバッファ5に出力する。
バッファ5は、マージデータ発行制御部2が発行する格納指示300に応答して、データマージ部1からデータ線101を介して送出されるマージデータRを格納する。又、バッファ出力制御部4が発行する出力指示信号301に応答して、データ線102を介してI/Oコントローラ30にマージデータRを転送する。
発行可能エントリ数保持部6は、発行可能エントリ数202を保持している。発行可能エントリ数202とは、バッファ5に先行してマージデータRが格納されている場合、後続のマージデータRがバッファ5に待機する時間を最小にするために設定されるマージデータRの転送条件である。好ましくは、先行してバッファ5に送出されたマージデータRと後続のマージデータRとが途切れなく連続してバッファ5から処理装置30に転送されるように設定される。すなわち、先行して格納されたマージデータRの最後のフリットFがバッファ5から送出される次のクロックサイクルで、後続のマージデータRの最初のフリットFがバッファ5から送出されるように、発行可能エントリ数202は設定される。
ここで、データマージ部1にはマージデータ発行許可信号201が発行されてからマージデータRのフリットの先頭をバッファ5に送出するまでのクロックサイクルが設定されている。このため、発行可能エントリ数202は、マージデータRの転送を制御するマージデータ発行許可信号201が発行されてから、データ線101にマージデータRが送出されるまでのクロックサイクル+1によって設定されるエントリ数となる。ここで、1フリットはバッファ5の1エントリに対応する。発行可能エントリ数保持部6は、発行可能エントリ数202をマージデータ発行制御部2に出力する。
バッファ出力制御部4は、通信先のI/Oコントローラ30から送信されるクレジット信号302に応答して通信先のI/Oコントローラ30における入力バッファ31の空きエントリ数(以下、通信先空きエントリ数204と称す)を算出する。この際、クレジット信号302にはI/Oコントローラ30の入力バッファ31における使用領域の情報(例えば使用中の領域のアドレス、又は使用中のエントリ数)が含まれる。バッファ出力制御部4は、通信先のI/Oコントローラ30の入力バッファ31の領域情報(例えばアドレス情報、又は総エントリ数)を保持している。バッファ出力制御部4は、クレジット信号302に含まれる入力バッファ31の使用領域の情報と、保持している通信先の入力バッファ31の領域情報に基づいて、通信先空きエントリ数204を算出する。又、算出した通信先空きエントリ数204をマージデータ発行制御部2に出力する。更に通信先のI/Oコントローラ30の入力バッファ31の空きエントリ数に基づきバッファ5に格納されているマージデータRの出力判定を行い、出力可能であれば出力指示信号301をバッファ5とバッファ使用エントリ数算出部3に出力する。出力指示信号301が入力されたバッファ5は格納しているフリットFをクロックサイクル毎にI/Oコントローラ30に転送する。
バッファ使用エントリ数算出部3は、格納指示信号300と出力指示信号301とに基づきバッファ5において使用中のエントリ数(以下、使用エントリ数203と称す)を算出し、その使用エントリ数203をマージデータ発行制御部2に出力する。バッファ使用エントリ数算出部3は、格納指示信号300に含まれる格納先情報(例えば格納先アドレスや格納先のエントリ数)からバッファ5で使用予定のエントリ数を算出する。又、出力指示信号301に含まれる空き情報(例えば出力予定のアドレスや出力予定のエントリ数)から新たに空き領域となるエントリ数を算出する。バッファ使用エントリ数算出部3は、これらの使用予定のエントリ数と空き領域となるエントリ数、及び前回算出した使用エントリ数203を用いて最新の使用エントリ数203を算出する。
マージデータ発行制御部2は、マージデータ発行要求信号200の入力を契機に、発行要求フリット数205と、発行可能エントリ数信号202と使用エントリ数信号203及び、通信先空きエントリ数信号204に基づいて、データマージ部1でマージ処理されたマージデータRをI/Oコントローラ30に転送するか否かを判定する。ここで、マージデータ発行制御部2は、使用エントリ数203が発行可能エントリ数202以下である場合、かつ、発行要求フリット数205が通信先空きエントリ数204以下である場合にデータマージ部1へマージデータ発行要求信号201を送出する。
ここで、図3及び図4を参照して、発行可能エントリ数202の設定について詳細に説明される。図3及び図4は、マージデータ発行許可信号201に応答してデータマージ部1から出力されるマージデータRの出力タイミングを示すタイミングチャートである。ここでは、バッファ5に先行して格納されたマージデータRを先行マージデータR、先行マージデータRに続いてバッファ5に出力されるマージデータRを後続マージデータRとする。ただし、先行マージデータRは、フリットF、F、Fを含み、後続マージデータRはフリットF10、F11、F12、F13を含むものとする。以下、先行マージデータRがクロックサイクルTの時にバッファ5からデータ線102に出力される場合について説明される。
図3は、発行可能エントリ数202を1とした場合におけるマージデータR及びRの出力タイミングを示すタイミングチャートである。図3を参照して、データマージ部1が、マージデータ発行許可信号201が入力されると同時(クロックサイクルT)に後続マージデータRの先頭フリットF10をバッファ5に出力できる場合、発行エントリ数202は1に設定される。
図4は、発行可能エントリ数202を3とした場合におけるマージデータR及びRの出力タイミングを示すタイミングチャートである。図4を参照して、データマージ部1が、マージデータ発行許可信号201が入力されたクロックサイクルTの2クロックサイクル後(クロックサイクルT)に後続マージデータRの先頭フリットF10をバッファ5に出力できる場合、発行可能エントリ数202は3に設定される。
マージデータ発行制御部2は、使用エントリ数203が発行可能エントリ数202以下の時にマージデータ発行許可信号201を発行する。このため、発行可能エントリ数202が1の場合、バッファ5に先行マージデータRのフリットF2が1つ格納されている時にマージデータ発行許可信号201が発行される。同様に、発行可能エントリ数202が3に設定された場合、バッファ5に先行マージデータRのフリットF〜Fの3つのフリットFが格納されている時にマージデータ発行許可信号201が発行される。このようなタイミングでマージデータ発行許可信号201が発行されることで、後続のマージデータRはバッファ5で待機することなくバッファ5からI/Oコントローラ30に転送される。バッファ5における待機時間が無くなるため、データマージ部1におけるマージ処理の時間が増加し、より多くの入力フリットRをマージすることができる。
(動作)
以下、図3から図9を参照して、本発明によるパケット転送回路20の実施の形態におけるパケット転送動作について説明される。ここでは、処理装置10から発行されたリードリクエストに応答して処理装置10からI/Oコントローラ30に対しリプライデータRが転送されることを一例に説明される。
図5は、本発明によるパケット転送回路20の実施の形態におけるパケット転送動作を示すフロー図である。処理装置10のCPU11はリードリクエストに応答してリプライデータRをメモリから抽出し、パケット転送回路20に送出する。この際、CPU11はリプライデータRをフリットF〜Fに分割し、それぞれを入力フリットRとしてクロックサイクル毎にパケット転送回路20に送出する(ステップS2)。
データマージ部1は、処理装置10からデータ線100を介して送信される入力フリットRを受信順にマージしてマージデータRを生成する(ステップS4)。次に、マージデータRに含まれるフリットの数を発行要求フリット数205としてデータ発行要求信号200に含めてマージデータ発行制御部2に発行する(ステップS6)。マージデータ発行制御部2は、マージデータ発行要求信号200の入力を契機に、データマージ部1からバッファ5へのマージデータRの発行判定を行う(ステップS8及びステップS12)。データマージ部1は、マージデータ発行要求信号200を発行した後、この発行判定に並行して、入力フリットRの入力を待機する(ステップS10)。その後、次のクロックサイクルにおいて入力フリットRが入力されると、再び入力フリットRをマージしてマージデータRを生成する(ステップS2、S4)。このようにデータマージ部1は、ステップS2からステップS10を繰り返し、入力フリットRを入力順にマージし、マージデータRを生成する毎にマージデータ発行要求信号200を発行する。
マージデータ発行制御部2は、発行要求フリット数205と、通信先のI/Oコントローラ30の入力バッファ31の空きエントリ数を示す通信先空きエントリ数204とを比較する発行判定処理(ステップS8)と、発行可能エントリ数202と、バッファ5で使用中のエントリ数を示す使用エントリ数203とを比較する発行判定処理(ステップS12)とを実行する。発行判定結果は「待ち」と「発行」の2つのステータスから成る。使用エントリ数203が発行可能エントリ数202より大きい場合(ステップS12NO)、又は、発行要求フリット数205が通信先空きエントリ数204より大きい場合(ステップS8NO)、マージデータ発行制御部2は発行判定結果を「待ち」と判定し、マージデータ発行許可信号201を発行しない。マージデータ発行制御部2は、続いて発行されるマージデータ発行要求200に応答して、再度マージデータの発行判定を行う(ステップS8、S12)。
発行判定処理において使用エントリ数203が発行可能エントリ数202以下であり(ステップS12Yes)、かつ、発行要求フリット数205が通信先空きエントリ数204以下である場合(ステップS8Yes)、マージデータ発行制御部2は発行判定結果を「発行」と判定する。「発行」と判定されると、マージデータ発行制御部2は、マージデータ発行許可信号201をデータマージ部1に発行するとともに、バッファ5に対し格納指示信号300を発行する(ステップS14)。データマージ部1はマージデータ発行許可信号201に応答して、マージデータRにヘッダを付与してバッファ5に転送する(ステップS16)。又、バッファ出力制御部4は、I/Oコントローラ30の入力バッファ31の空き容量に応じてバッファ5に出力指示信号5を発行し、バッファ5に格納されたマージデータRをデータ線102を介してI/Oコントローラ30に転送する(ステップS18)。以上のようにステップS2からステップS18の動作を繰り返し、パケット転送回路20は、I/Oコントローラ30からのリードリクエストに対応するリプライデータRを構成するフリットF〜FをI/Oコントローラ30に転送する。
図6から図9を参照して、本発明によるマージデータ発行制御部2における発行判定処理が説明される。ここで、データマージ部1は、マージデータ発行許可信号201を受け付けると同時にマージデータRをバッファ5に送出するように設定されているものとする。すなわち、発行可能エントリ数202は1に設定されている。設定図6から図9は、発行可能エントリ数202が1に設定された場合のマージデータ発行制御部2における発行判定処理の一例を示す概念図である。図6及び図7は、バッファ5にマージデータRが格納されていない場合(使用エントリ数203が0)の発行判定処理の一例を示す概念図である。
図6を参照して、データマージ部1に入力フリットRとしてフリットFが入力されると、データマージ部1は先行して入力されていたフリットFとマージしてマージデータRを生成する。又、マージデータ発行制御部2に対しマージデータ発行要求信号200を発行する。この際、マージデータ発行制御部2は、マージデータRを構成するフリット数=2を、発行要求フリット数205としてマージデータ発行要求信号200に含ませる。このとき、マージデータ発行制御部2は、バッファ出力制御部4から通信先空きエントリ数204=1を取得しているものとする。マージデータ発行制御部2は、マージデータ発行許可信号200に応答し、発行可能エントリ数202=1と使用可能エントリ数203=0とを比較する。又、通信先空きエントリ数204=1と発行要求フリット数205=2とを比較する。この場合、発行要求フリット数205が通信先エントリ数204より大きくなるため判定結果は「待ち」となり、マージデータ発行制御部2はマージデータ発行許可信号201の発行を待機する。
図7を参照して、データマージ部1に更に入力フリットRとしてフリットFが入力されると、データマージ部1は入力されたフリットFと、先行して処理装置10から入力されたマージデータR(フリットF及びF)とをマージして新たなマージデータRを生成する。又、データマージ部1はこのマージデータRのフリット数=3を発行要求フリット数205としてマージ発行要求信号200に含めてマージデータ発行制御部2に対し発行する。ここで、マージデータ発行制御部2は、バッファ出力制御部4から通信先空きエントリ数204=10を取得しているものとする。マージデータ発行制御部2は、マージデータ発行許可信号200に応答し、発行可能エントリ数202=1と使用可能エントリ数203=0とを比較する。又、通信先空きエントリ数204=10と発行要求フリット数205=3とを比較する。この場合、使用エントリ数203が発行可能エントリ数202より小さく、且つ、発行要求フリット数205が通信先エントリ数204より小さくなるため、判定結果は「転送可能」となり、マージデータ発行制御部2はマージデータ発行許可信号201をデータマージ部1に発行する。マージデータ発行許可信号201を受信したデータマージ部1はマージデータR内のフリットF〜Fをクロックサイクルに同期してバッファ5に順に転送する。
図8及び図9は、バッファ5にマージデータRが既に格納されている場合の発行判定処理の一例を示す概念図である。ここで、バッファ5に既に格納されているマージデータRを先行マージデータR(フリットF〜F)、後続してバッファ5に格納されるマージデータRを後続マージデータRとする。
図8を参照して、クロックサイクルTに同期して、データマージ部1にフリットF12が入力されるとともに、フリットFがバッファ5からI/Oコントローラ30に転送される。データマージ部1は入力されたフリットF12とマージデータR(フリットF10及びF11)とをマージして新たなマージデータR(フリットF10〜F12)を生成する。又、マージデータ発行制御部2に対しマージデータ発行要求信号200を発行する。この際、マージデータ発行制御部2は、マージデータRを構成するフリット数=3を発行要求フリット数205としてマージデータ発行要求信号200に含ませる。バッファ使用エントリ数算出部3は、フリットFに対する出力指示信号301と、先行マージデータR(フリットF〜F)に対する格納指示信号300に基づき使用エントリ数203=2を算出する。マージデータ発行制御部2はマージデータ発行許可信号200に応答して、バッファ使用エントリ数算出部3から使用エントリ数203=2を、バッファ出力制御部4から通信先空きエントリ数204=8を取得する。続いてマージデータ発行制御部2は、発行可能エントリ数202=1と使用可能エントリ数203=2とを比較する。又、通信先空きエントリ数204=8と発行要求フリット数205=3とを比較する。この場合、使用エントリ数203が発行可能エントリ数202より大きくなるため判定結果は「待ち」となり、マージデータ発行制御部2はマージデータ発行許可信号201の発行を待機する。
図9を参照して、次のクロックサイクルTに同期して、データマージ部1にフリットF13が入力されるとともに、フリットFがバッファ5からI/Oコントローラ30に転送される。データマージ部1は入力されたフリットF13と、マージデータR(フリットF10〜F12)とをマージして新たなマージデータR(フリットF10〜F13)を生成する。又、データマージ部1はこのマージデータRのフリット数=4を発行要求フリット数205としてマージ発行要求信号200に含めてマージデータ発行制御部2に発行する。このとき、バッファ使用エントリ数算出部3は、フリットFに対する出力指示信号301と、先行マージデータR(フリットF〜F)に対する格納指示信号300に基づき使用エントリ数203=1を算出する。マージデータ発行制御部2はマージデータ発行許可信号200に応答して、バッファ使用エントリ数算出部3から使用エントリ数203=1を、バッファ出力制御部4から通信先空きエントリ数204=7を取得する。続いてマージデータ発行制御部2は、マージデータ発行許可信号200に応答し、発行可能エントリ数202=1と使用エントリ数203=1とを比較する。又、通信先空きエントリ数204=7と発行要求フリット数205=4とを比較する。この場合、使用エントリ数203が発行可能エントリ数202と等しく、且つ、発行要求フリット数205が通信先エントリ数204より小さくなるため、判定結果は「転送可能」となり、マージデータ発行制御部2はマージデータ発行許可信号201をデータマージ部1に発行する。
ここで、マージデータ発行許可信号201は、フリットF13がデータマージ部1に入力されたクロックサイクルTの次のクロックサイクルTで発行される。マージデータ発行許可信号201を受信すると同時にデータマージ部1はマージデータR内のフリットF10をバッファ5に送出する。又、これと同じクロックサイクルTで、バッファ5はフリットFをI/Oコントローラ30に転送する。更に、次のクロックサイクルTで、フリットF11はバッファ5に送出され、フリットF10はI/Oコントローラ30に転送される。このように、先行マージデータR(フリットF〜F)と後続マージデータR(フリットF10〜F13)とが途切れなくI/Oコントローラ30に転送される。
以上のように、発行判定の結果が「待ち」の場合は、ステップS8及びステップS12における判定条件を共に満たすまでデータマージ部1へのマージデータ発行許可信号201の送出を抑止し、マージデータRの発行をデータマージ部1で待ち合わせる。又、マージデータ発行制御部2で発行判定の結果が「発行」の場合、又は、「待ち」から「発行」となり待ち合わせが解除された場合、データマージ部1は、マージデータ発行許可信号201の入力を契機にその時点までマージしたマージデータRをパケットデータとしてバッファ5経由で通信先の処理装置10に送出する。
このように、発行判定の際に「待ち」と判定された場合、データマージ部1からマージデータRが直ぐにデータ線102に送出されず、より多くの入力フリットRをマージする為、効率的なマージ処理が可能となる。又、リプライデータRの転送先のIOコントローラ30における入力バッファ31の使用エントリ数203に基づきマージデータRの転送を制御するため、データ線102のスループットを空けないようにマージデータRを転送することができる。
以上、本発明の実施の形態を詳述してきたが、具体的な構成は上記実施の形態に限られるものではなく、本発明の要旨を逸脱しない範囲の変更があっても本発明に含まれる。
図1は、本発明によるマルチプロセッサシステムの実施の形態における構成を示すブロック図である。 図2は、本発明によるパケット転送回路の実施の形態における構成の示すブロック図である。 図3は、発行可能エントリ数を1とした場合における、データマージ部から出力されるマージデータの出力タイミングを示すタイミングチャートである。 図4は、発行可能エントリ数を3とした場合における、データマージ部から出力されるマージデータの出力タイミングを示すタイミングチャートである。 図5は、本発明によるパケット転送回路の実施の形態におけるパケット転送動作の流れを示すフロー図である。 図6は、発行可能エントリ数が1に設定され、バッファに先行マージデータが格納されていない場合のマージデータ発行制御部における発行判定処理の一例を示す概念図である。 図7は、発行可能エントリ数が1に設定され、バッファに先行マージデータが格納されていない場合のマージデータ発行制御部における発行判定処理の一例を示す概念図である。 図8は、発行可能エントリ数が1に設定され、バッファに先行マージデータが格納されている場合のマージデータ発行制御部における発行判定処理の一例を示す概念図である。 図9は、発行可能エントリ数が1に設定され、バッファに先行マージデータが格納されている場合のマージデータ発行制御部における発行判定処理の一例を示す概念図である。
符号の説明
1:データマージ部
2:マージデータ発行制御部
3:バッファ使用エントリ数算出部
4:バッファ出力制御部
5:バッファ
6:発行可能エントリ数保持部
10、10:処理装置
20、20:パケット転送回路
30、30:I/Oコントローラ
31:入力バッファ
200:マージデータ発行要求信号
201:マージデータ発行許可信号
202:発行可能エントリ数
203:使用エントリ数
204:通信先空きエントリ数
205:発行要求フリット数
100、100、101、101、102、102、103:データ線
300:格納指示信号
301:出力指示信号
302:クレジット信号
〜T:クロックサイクル
〜F:フリット
R:リプライデータ
:入力フリット
:マージデータ
:先行マージデータ
:後続マージデータ

Claims (11)

  1. 第1の処理装置からクロックサイクルに応じて入力されるフリットを入力順に統合してマージデータを生成し、フリットの入力毎に、前記マージデータ内のフリット数をマージデータ発行要求信号とともに前記マージデータ発行制御部に送信するデータマージ部と、
    前記マージデータ発行要求信号に応答して、前記マージデータ内のフリット数と、第2の処理装置における入力バッファの空きエントリ数とを比較し、前記フリット数が前記空きエントリ数以下である場合、マージデータ発行許可信号を前記データマージ部に発行するマージデータ発行制御部とを具備し、
    前記データマージ部は、前記マージデータ発行許可信号に応答して前記マージデータを前記第2の処理装置に転送する
    データ転送回路。
  2. 請求項1記載のデータ転送回路において、
    前記データマージ部から転送されたマージデータを一時格納するバッファと、
    前記マージデータ発行許可信号が発行されてから、前記データマージ部から前記バッファに前記マージデータが送出されるまでの前記クロックサイクル+1によって設定されるエントリ数である発行可能エントリ数を保持する発行可能エントリ数保持部とを更に具備し、
    前記マージデータ発行制御部は前記バッファに格納しているマージデータが使用中のエントリ数と、前記発行可能エントリ数とを比較し、前記使用中のエントリ数が前記発行可能エントリ数以下である場合、マージデータの発行許可信号を前記データマージ部に発行し、
    前記データマージ部は、前記発行許可信号に応答して、マージデータを前記バッファを介して前記第2の処理装置へ転送する
    データ転送回路。
  3. 請求項に記載のデータ転送回路において、
    クロックサイクル毎に前記バッファに出力指示信号を発行するバッファ出力制御部を更に具備し、
    前記マージデータ発行制御部は前記バッファに対し、前記クロックサイクル毎に格納指示信号を発行し、
    前記バッファは前記格納信号に応答して前記データマージ部から送出されるマージデータのフリットを格納し、前記出力指示信号に応答して前記フリットを前記第2の処理装置に転送し、
    前記出力制御部は前記第2の処理装置からのクレジット信号に基づき前記入力バッファの空きエントリ数を算出し前記マージデータ発行制御部に出力する
    データ転送回路。
  4. 請求項に記載のデータ転送回路において、
    前記出力指示信号と前記格納指示信号とに基づいて前記バッファに格納しているマージデータが使用中のエントリ数を算出し、前記マージデータ発行制御部に出力するバッファ使用エントリ数算出部を更に具備する
    データ転送回路。
  5. 請求項に記載のデータ転送回路において、
    前記バッファ出力制御部は前記第2の処理装置における入力バッファの総エントリ数を保持し、
    前記クレジット信号に含まれる前記入力バッファの使用エントリ数と前記総エントリ数を用いて前記入力バッファの空きエントリ数を算出し、前記マージデータ発行制御部に出力する
    データ転送回路。
  6. 請求項1から5いずれか1項に記載のデータ転送回路において、
    前記データマージ部は、生成したマージデータを転送するまで、前記第1の処理装置から入力されるフリットを統合してマージデータを生成する
    データ転送回路。
  7. 請求項1からいずれか1項に記載のデータ転送回路において、
    前記フリットは、前記第2の処理装置からのリードリクエストに応答して前記第1の処理装置から出力されるリプライデータの一部である
    データ転送回路。
  8. 請求項1からいずれか1項に記載のデータ転送回路において、
    前記第2の処理装置は、I/Oコントローラである
    データ転送回路。
  9. 請求項1からいずれか1項に記載のデータ転送回路と、
    前記データ転送回路に接続される第1の処理装置と、
    前記データ転送回路を介して前記第1の処理装置に接続されるI/Oコントローラと、
    前記I/Oコントローラを介して前記第1の処理装置に対しリードリクエストを発行する第3の処理装置とを具備し、
    前記第1の処理装置は、前記リードリクエストに対応するリプライデータをフリットに分割し、前記フリットをクロックサイクルに同期して前記データ転送回路に出力し、
    前記データ転送回路は前記フリットを入力順に統合してマージデータを生成し、前記マージデータを前記I/Oコントローラを介して前記第3の処理装置に転送する
    マルチプロセッサシステム。
  10. 第1の処理装置からクロックサイクルに応じて入力されるフリットを順に統合してマージデータを生成するステップと、
    前記マージデータを生成する毎に、前記マージデータ内のフリット数を前記マージデータ発行要求信号とともに発行するステップと、
    前記マージデータ発行要求信号に応答して、前記マージデータ内のフリット数と、第2の処理装置における入力バッファの空きエントリ数とを比較するステップと、
    前記フリット数が前記空きエントリ数以下である場合、前記マージデータを前記第2の処理装置に転送するステップとを具備する
    データ転送方法。
  11. 請求項10に記載のデータ転送方法において、
    前記発行許可信号に応答して前記マージデータを第2の処理装置に転送するステップは、
    前記フリット数が前記空きエントリ数以下である場合、前記マージデータの発行許可信号を発行するステップと、
    前記発行許可信号に応答して前記マージデータをバッファに転送するステップと、
    前記バッファから前記第2の処理装置に前記マージデータを転送するステップとを備え、
    前記マージデータを生成する毎に、前記発行許可信号が発行されてから前記マージデータが送出されるまでの前記クロックサイクル+1によって設定されるエントリ数である発行可能エントリ数と、前記バッファに格納しているマージデータが使用中のエントリ数と
    を比較するステップと、
    前記使用中のエントリ数が前記発行可能エントリ数が以下である場合、マージデータの発行許可信号を発行するステップとを備える
    データ転送方法。
JP2006033829A 2006-02-10 2006-02-10 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法 Active JP4372110B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006033829A JP4372110B2 (ja) 2006-02-10 2006-02-10 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
US11/704,245 US7724775B2 (en) 2006-02-10 2007-02-09 Data transmission circuit and method for controlling the data transmission circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006033829A JP4372110B2 (ja) 2006-02-10 2006-02-10 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法

Publications (2)

Publication Number Publication Date
JP2007214981A JP2007214981A (ja) 2007-08-23
JP4372110B2 true JP4372110B2 (ja) 2009-11-25

Family

ID=38368381

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006033829A Active JP4372110B2 (ja) 2006-02-10 2006-02-10 データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法

Country Status (2)

Country Link
US (1) US7724775B2 (ja)
JP (1) JP4372110B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7480238B2 (en) * 2005-04-14 2009-01-20 International Business Machines Corporation Dynamic packet training
DE102012010537A1 (de) * 2012-05-29 2013-12-05 Robert Bosch Gmbh Programmiervorlage für verteilteAnwendungsprogramme
US9606245B1 (en) 2015-03-24 2017-03-28 The Research Foundation For The State University Of New York Autonomous gamma, X-ray, and particle detector

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5981947A (ja) 1982-11-01 1984-05-11 Oki Electric Ind Co Ltd パケツト伝送方式
JPS6481551A (en) 1987-09-24 1989-03-27 Fujitsu Ltd Packet transfer system
JPH04276948A (ja) 1991-03-04 1992-10-02 Nippon Telegr & Teleph Corp <Ntt> トランスポート通信方法
JPH06225103A (ja) 1993-01-27 1994-08-12 Ricoh Co Ltd データ通信方式
US6003089A (en) * 1997-03-31 1999-12-14 Siemens Information And Communication Networks, Inc. Method for constructing adaptive packet lengths in a congested network
JPH11234347A (ja) 1998-02-13 1999-08-27 Nec Corp データ通信におけるバッファ管理方法および方式
AU2001271609A1 (en) * 2000-06-30 2002-01-14 Kanad Ghose System and method for fast, reliable byte stream transport
US20030133463A1 (en) * 2001-12-31 2003-07-17 Globespanvirata Incorporated System and method for scheduling transmit messages using credit-based flow control
US7209489B1 (en) * 2002-01-23 2007-04-24 Advanced Micro Devices, Inc. Arrangement in a channel adapter for servicing work notifications based on link layer virtual lane processing
JP2004032283A (ja) 2002-06-25 2004-01-29 Nippon Hoso Kyokai <Nhk> 送信装置、受信装置、送信プログラム、受信プログラム、および送受信プログラム
US7769893B2 (en) * 2002-10-08 2010-08-03 Koninklijke Philips Electronics N.V. Integrated circuit and method for establishing transactions
US7000041B2 (en) * 2003-03-31 2006-02-14 Intel Corporation Method and an apparatus to efficiently handle read completions that satisfy a read request
KR100506253B1 (ko) * 2003-05-26 2005-08-10 재단법인서울대학교산학협력재단 데이터 통신 시스템에서 전송 지연을 최소화하기 위한장치 및 방법

Also Published As

Publication number Publication date
JP2007214981A (ja) 2007-08-23
US7724775B2 (en) 2010-05-25
US20070189296A1 (en) 2007-08-16

Similar Documents

Publication Publication Date Title
US8588228B1 (en) Nonvolatile memory controller with host controller interface for retrieving and dispatching nonvolatile memory commands in a distributed manner
JP5186382B2 (ja) メモリ・システム内で不確定な読み取りデータ待ち時間を可能にする方法及びシステム
US8799536B2 (en) Data processing apparatus, data processing method and computer-readable medium
EP1889419B1 (en) Integrated circuit with internal communication network
JP2012064021A (ja) 通信システム、マスター装置、及びスレーブ装置、並びに通信方法
US20170177509A1 (en) Host controller and program executed by host controller
CN112711550A (zh) Dma自动配置模块和片上系统soc
JP2007034392A (ja) 情報処理装置及びデータ処理方法
JP5932242B2 (ja) 情報処理装置、通信方法、及びプログラム
JP4372110B2 (ja) データ転送回路、それを利用したマルチプロセッサシステム、及びデータ転送方法
US7539204B2 (en) Data and context memory sharing
JP5414506B2 (ja) データ処理装置、データ処理方法、及びプログラム
JP6290761B2 (ja) データ転送制御システム、データ転送制御方法、及び、データ転送制御プログラム
JP5728043B2 (ja) ゲートウェイ装置
JP4104939B2 (ja) マルチプロセッサシステム
JP2007116350A (ja) 負荷分散装置
KR101073479B1 (ko) 분할 프로토콜 전송 방법 및 프로세싱 시스템
JP2005346164A (ja) データ処理装置およびデータ転送制御方法
JP5652866B2 (ja) バス調停回路及びバス調停方法
JP5093986B2 (ja) プロセッサ間通信方法及びプロセッサ間通信装置
WO2016041804A1 (en) Method, device and system for deciding on a distribution path of a task
JP5307525B2 (ja) データ処理装置及びその制御方法
JPH08314649A (ja) 画像処理装置及びその制御方法
JP2004318315A (ja) データ通信装置
CN117278474A (zh) 一种卸载拥塞控制的方法及装置

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20090304

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090803

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20090820

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20090901

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120911

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4372110

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130911

Year of fee payment: 4

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350