JP6823259B2 - バス制御回路、情報処理装置及びバス制御回路の制御方法 - Google Patents

バス制御回路、情報処理装置及びバス制御回路の制御方法 Download PDF

Info

Publication number
JP6823259B2
JP6823259B2 JP2017016741A JP2017016741A JP6823259B2 JP 6823259 B2 JP6823259 B2 JP 6823259B2 JP 2017016741 A JP2017016741 A JP 2017016741A JP 2017016741 A JP2017016741 A JP 2017016741A JP 6823259 B2 JP6823259 B2 JP 6823259B2
Authority
JP
Japan
Prior art keywords
arbitration
signal
participation
circuit
outputs
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
JP2017016741A
Other languages
English (en)
Other versions
JP2018124817A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2017016741A priority Critical patent/JP6823259B2/ja
Priority to US15/880,044 priority patent/US10496564B2/en
Publication of JP2018124817A publication Critical patent/JP2018124817A/ja
Application granted granted Critical
Publication of JP6823259B2 publication Critical patent/JP6823259B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1605Handling requests for interconnection or transfer for access to memory bus based on arbitration
    • G06F13/1642Handling requests for interconnection or transfer for access to memory bus based on arbitration with request queuing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、バス制御回路、情報処理装置及びバス制御回路の制御方法に関する。
複数の入力回線から到着するパケットを一つの出力回線に出力する出力調停手段を備えたパケット出力調停装置が知られている(特許文献1参照)。出力調停手段は、縦続に多段接続された複数のパケットスケジュール回路を備える。その一つのパケットスケジュール回路は、複数の入力回線または前段のパケットスケジュール回路の複数方路からそれぞれ読み出された複数のパケットをそれぞれ蓄積する複数のバッファを備える。この複数のバッファは、二以上のバッファを含む複数のグループに分類される。この複数のバッファは、それぞれ、初期値がゼロのカウンタと、計算手段と、選択手段と、加算手段と、読み出し手段と、リセット手段とを有する。計算手段は、バッファの先頭パケット長とカウンタ値との差を複数のバッファの個々についてそれぞれ計算する。選択手段は、計算手段の計算結果が最小値となるバッファを選択する。加算手段は、この最小値を上記の計算結果が最小値となるバッファ以外のバッファのカウンタ値にそれぞれ加算する。読み出し手段は、上記の計算結果が最小値となるバッファから当該バッファに格納された先頭パケットを出力回線または後段のパケットスケジュール回路に読み出す。リセット手段は、先頭パケットが読み出されたバッファのカウンタ値をゼロにリセットする。
特開2002−252628号公報
従来のバス制御回路は、それぞれキューが接続された複数の入力回線のうちの1個の入力回線に接続されたキューにのみパケットが存在する場合に最適化されておらず、このような場合には出力回線から出力されるパケットの速度が遅くなる。
1つの側面では、本発明の目的は、複数のキューのうちの1個のキューにのみデータが格納されている場合に、当該キューに格納されているデータを高速に読み出すことができるバス制御回路、情報処理装置及びバス制御回路の制御方法を提供することである。
バス制御回路は、各々がデータを格納するための複数のエントリと、第1のリードポインタと、前記第1のリードポインタが示すエントリと同じエントリを示すように設定されるチェックポインタとを有するとともに、先入れ先出しでデータをそれぞれ格納する複数のキューと、前記複数のキューからの調停参加信号を個々に受け付け、各々が、受け付けた前記複数の調停参加信号の調停をそれぞれ行い、前記複数の調停参加信号のうち1個の調停参加信号をそれぞれ出力する複数の第1の調停回路と、前記複数の第1の調停回路がそれぞれ出力する調停参加信号を先入れ先出しでそれぞれ格納する複数のバッファと、前記複数のバッファがそれぞれ出力する調停参加信号の調停を行い、前記複数のキューのうちの1個のキューに対応する調停結果信号を出力する第2の調停回路とを有する。
1つの側面では、複数のキューのうちの第1のキューにのみデータが格納されている場合に、第1のキューに格納されているデータを高速に読み出すことができる。
図1は、本実施形態による情報処理装置の構成例を示す図である。 図2は、図1のバス制御回路の構成例を示す図である。 図3(A)は本実施形態による第1のキューの構成例を示す図であり、図3(B)は本実施形態によるバッファの構成例を示す図である。 図4(A)及び(B)は、本実施形態によるバス制御回路の動作を説明するための図である。 図5(A)及び(B)は、本実施形態によるバス制御回路の動作を説明するための図である。 図6は、本実施形態によるバス制御回路の動作を示すタイムチャートである。 図7(A)は比較例による第1のキューの構成例を示す図であり、図7(B)は比較例によるバッファの構成例を示す図である。 図8(A)及び(B)は、比較例によるバス制御回路の動作を説明するための図である。 図9(A)及び(B)は、比較例によるバス制御回路の動作を説明するための図である。 図10は、比較例によるバス制御回路の動作を示すタイムチャートである。
図1は、本実施形態による情報処理装置100の構成例を示す図である。情報処理装置100は、例えば大規模集積回路(LSI)であり、複数の演算処理装置101と、バス105とを有する。複数の演算処理装置101は、バス105を介して接続され、相互にパケットデータを入出力することができる。複数の演算処理装置101の各々は、プロセッサ102と、キャッシュ103と、バス制御回路104とを有する。プロセッサ102は、キャッシュ103に記憶されているパケットデータを読み出し、バス制御回路104を介して、その読み出したパケットデータをバス105に出力する。また、複数の演算処理装置101は、キャッシュ103のキャッシュコヒーレンシを担保するため、バス105を介して、相互にパケットデータを転送する。
図2は、図1のバス制御回路104の構成例を示す図である。バス制御回路104は、複数のキュー201〜20nと、複数の第1の調停回路211,212と、複数のバッファ217,218と、第2の調停回路213とを有する。
プロセッサ102は、第1の仮想チャネルVC1〜第nの仮想チャネルVCnのパケットデータをそれぞれn個のキュー201〜20nに格納する。n個のキュー201〜20nの各々は、先入れ先出し(FIFO:ファーストインファーストアウト)でパケットデータを格納する。例えば、第1のキュー201は、第1の仮想チャネルVC1のパケットデータを格納する。第2のキュー202は、第2の仮想チャネルVC2のパケットデータを格納する。第nのキュー20nは、第nの仮想チャネルVCnのパケットデータを格納する。複数のキュー201〜20nは、それぞれ、パケットデータを格納している場合には、自己の仮想チャネル番号を含む調停参加信号A1〜Anを出力する。
複数の第1の調停回路211及び212は、複数のキュー201〜20nからの調停参加信号A1〜Anを分割して受け付ける。複数の第1の調停回路211及び212の各々は、その受け付けた複数の調停参加信号の調停を行い、その受け付けた複数の調停参加信号のうちの1個の調停参加信号を出力する。
例えば、第1の調停回路211は、調停参加信号A1〜Am(m=n/2)の調停を行い、その受け付けた複数の調停参加信号A1〜Amのうちの1個の調停参加信号B1をバッファ217に出力する。具体的には、第1の調停回路211は、LRU(Least Recently Used)フラグ214を用いて、LRU方式の調停を行う。LRUフラグ214は、調停参加信号A1〜Amのうちの最も古い調停参加信号を表すためのフラグである。第1の調停回路211は、LRUフラグ214を用いて、複数の調停参加信号A1〜Amのうちの最も古い調停参加信号B1をバッファ217に出力する。
第1の調停回路212は、調停参加信号Am+1〜Anの調停を行い、その受け付けた複数の調停参加信号Am+1〜Anのうちの1個の調停参加信号B2をバッファ218に出力する。具体的には、第1の調停回路212は、LRUフラグ215を用いて、LRU方式の調停を行う。LRUフラグ215は、調停参加信号Am+1〜Anのうちの最も古い調停参加信号を表すためのフラグである。第1の調停回路212は、LRUフラグ215を用いて、複数の調停参加信号Am+1〜Anのうちの最も古い調停参加信号B2をバッファ218に出力する。なお、第1の調停回路211及び212は、2個に限定されず、3個以上でもよい。
複数のバッファ217及び218は、複数の第1の調停回路211及び212が出力する調停参加信号B1及びB2をそれぞれ先入れ先出しで格納する。バッファ217は、第1の調停回路211が出力する調停参加信号B1を先入れ先出しで格納し、その格納した調停参加信号を調停参加信号C1として第2の調停回路213に出力する。バッファ218は、第1の調停回路212が出力する調停参加信号B2を先入れ先出しで格納し、その格納した調停参加信号を調停参加信号C2として第2の調停回路213に出力する。なお、バッファ217及び218は、第1の調停回路211及び212と同様に、2個に限定されず、3個以上でもよい。
第2の調停回路213は、複数のバッファ217及び218が出力する調停参加信号C1及びC2の調停を行うことにより、複数のキュー201〜20nのうちの1個のキューを示す調停結果信号D1を出力する。例えば、第2の調停回路213は、LRUフラグ216を用いて、LRU方式の調停を行う。LRUフラグ216は、調停参加信号A1〜Anのうちの最も古い調停参加信号を表すためのフラグである。第2の調停回路213は、LRUフラグ216を用いて、複数の調停参加信号C1及びC2のうちの最も古い調停参加信号に含まれる仮想チャネル番号のキューを示す調停結果信号D1を出力する。複数のキュー201〜20nのうちで、調停結果信号D1が示すキューは、バス105の使用権を獲得し、格納しているパケットデータをバス105に読み出す。
また、第2の調停回路213が調停結果信号D1を出力した場合には、再び、複数のキュー201〜20nは、それぞれ、パケットデータを格納している場合には、自己の仮想チャネル番号を含む調停参加信号A1〜Anを出力し、上記の処理を繰り返す。
仮に、n個の仮想チャネルVC1〜VCnに対応し、n本のバス105を設けた場合には、バス105の数が多くなり、実装及び配線が困難になる。本実施形態では、調停回路211〜213を設けることにより、物理的に1本の共通のバス105で、複数の仮想チャネルVC1〜VCnのパケットデータを転送することができる利点がある。また、バス制御回路104は、調停回路211〜213がLRU方式で調停を行うことにより、複数の仮想チャネルVC1〜VCnに対して偏りなしで均等にパケットデータを転送することができる。
図3(A)は、本実施形態による第1のキュー201の構成例を示す図である。他のキュー202〜20nも第1のキュー201と同様の構成を有する。第1のキュー201は、パケットデータを格納するための複数のエントリ301〜304と、制御回路305と、第1のライトポインタWP1と、第1のリードポインタRP1と、チェックポインタCPとを有する。初期時、制御回路305は、同じエントリ301を示すように第1のライトポインタWP1及び第1のリードポインタRP1を設定し、第1のリードポインタRP1が示すエントリ301と同じエントリを示すようにチェックポインタCPを設定する。すなわち、第1のライトポインタWP1、第1のリードポインタRP1及びチェックポインタCPは、同じエントリ301を示す。
第1のキュー201がプロセッサ102からパケットデータDATA1を入力すると、制御回路305は、第1のライトポインタWP1が示すエントリ301にパケットデータDATA1を格納する。そして、制御回路305は、第1のライトポインタWP1が次のエントリ302を示すように、第1のライトポインタWP1を更新する。
次に、第1のキュー201がプロセッサ102からパケットデータDATA2を入力すると、制御回路305は、第2のライトポインタWP1が示すエントリ302にパケットデータDATA2を格納する。そして、制御回路305は、第1のライトポインタWP1が次のエントリ303を示すように、第1のライトポインタWP1を更新する。
次に、第1のキュー201がプロセッサ102からパケットデータDATA3を入力すると、制御回路305は、第2のライトポインタWP1が示すエントリ303にパケットデータDATA3を格納する。そして、制御回路305は、第1のライトポインタWP1が次のエントリ304を示すように、第1のライトポインタWP1を更新する。
図3(B)は、本実施形態によるバッファ217の構成例を示す図である。他のバッファ218もバッファ217と同様の構成を有する。バッファ217は、調停参加信号B1を格納するための複数のエントリ311,312と、制御回路313と、第2のライトポインタWP2と、第2のリードポインタRP2とを有し、先入れ先出しで調停参加信号B1を格納する。初期時、制御回路313は、第2のライトポインタWP2及び第2のリードポインタRP2が同じエントリ311を示すように、第2のライトポインタWP2及び第2のリードポインタRP2を設定する。すなわち、制御回路313は、第2のライトポインタWP2が示すエントリ311と同じエントリを示すように第2のリードポインタRP2を設定する。
次に、図4(A)〜図6を参照しながら、本実施形態によるバス制御回路104の制御方法を説明する。図4(A)、(B)及び図5(A)、(B)は、本実施形態によるバス制御回路104の動作を説明するための図である。図6は、本実施形態によるバス制御回路104の動作を示すタイムチャートである。
図4(A)に示すように、第1のキュー201は、3個のパケットデータDATA1〜DATA3を格納し、他のキュー202〜20nは、パケットデータを格納していない場合を説明する。このように、1個のキュー201にのみパケットデータが格納されている場合にも、第1のキュー201は、パケットデータDATA1〜DATA3を高速に読み出すことができる例を以下に説明する。
サイクルt1では、制御回路305は、チェックポインタCPが示すエントリ301にパケットデータが格納されているか否かを判断する。具体的には、制御回路305は、チェックポインタCPが示すエントリと第1のライトポインタWP1が示すエントリとが異なる場合には、チェックポインタCPが示すエントリにパケットデータが格納されていると判断する。これに対し、制御回路305は、チェックポインタCPが示すエントリと第1のライトポインタWP1が示すエントリとが同じ場合には、チェックポインタCPが示すエントリにパケットデータが格納されていないと判断する。
図4(A)に示すように、制御回路305は、チェックポインタCPが示すエントリ301と第1のライトポインタWP1が示すエントリ304とが異なるので、チェックポインタCPが示すエントリ301にパケットデータDATA1が格納されていると判断する。その場合、制御回路305は、第1の仮想チャネルVC1のチャネル番号を含む第1の調停参加信号dt1を第1の調停回路211に出力する。なお、キュー202〜20nは、パケットデータを格納していないため、調停参加信号A2〜Anを出力しない。
第1の調停回路211は、第1の調停参加信号dt1を入力し、他の調停参加信号A2〜Anを入力しないので、第1の調停参加信号dt1をバッファ217に出力する。
制御回路313は、第2のライトポインタWP2が示すエントリ311に、第1の調停回路211が出力する第1の調停参加信号dt1を格納し、図4(B)に示すように、第2のライトポインタWP2が次のエントリ312を示すように第2のライトポインタWP2を更新する。また、制御回路305は、図4(A)に示すように、第1の調停回路211が第1の調停参加信号dt1を出力した場合には、図4(B)に示すように、チェックポインタCPが次のエントリ302を示すようにチェックポインタCPを更新する。
サイクルt2では、制御回路305は、チェックポインタCPが示すエントリ302にパケットデータが格納されているか否かを判断する。制御回路305は、チェックポインタCPが示すエントリ302と第1のライトポインタWP1が示すエントリ304とが異なるので、チェックポインタCPが示すエントリ302にパケットデータDATA2が格納されていると判断する。その場合、制御回路305は、第1の仮想チャネルVC1のチャネル番号を含む第2の調停参加信号dt2を第1の調停回路211に出力する。なお、キュー202〜20nは、パケットデータを格納していないため、調停参加信号A2〜Anを出力しない。
第1の調停回路211は、第2の調停参加信号dt2を入力し、他の調停参加信号A2〜Anを入力しないので、第2の調停参加信号dt2をバッファ217に出力する。
制御回路313は、第2のリードポインタRP2が示すエントリ311に調停参加信号が格納されているか否かを判断する。具体的には、制御回路313は、第2のリードポインタRP2が示すエントリと第2のライトポインタWP2が示すエントリとが異なる場合には、第2のリードポインタRP2が示すエントリに調停参加信号が格納されていると判断する。これに対し、制御回路313は、第2のリードポインタRP2が示すエントリと第2のライトポインタWP2が示すエントリとが同じ場合には、第2のリードポインタRP2が示すエントリに調停参加信号が格納されていないと判断する。
図4(B)に示すように、制御回路313は、第2のリードポインタRP2が示すエントリ311と第2のライトポインタWP2が示すエントリ312とが異なるので、第2のリードポインタRP2が示すエントリ311に第1の調停参加信号dt1が格納されていると判断する。その場合、制御回路313は、第2のリードポインタRP2が示すエントリ311に格納されている第1の調停参加信号dt1を読み出し、その読み出した第1の調停参加信号dt1を第2の調停回路213に出力する。なお、バッファ218は、調停参加信号を格納していないため、調停参加信号C2を出力しない。
第2の調停回路213は、第1の調停参加信号dt1を入力し、他の調停参加信号C2を入力しないので、第1の調停参加信号dt1に対応する第1のキュー201(第1の仮想チャネルVC1)を示す調停結果信号を出力する。
第2の調停回路213は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ216を更新する。同様に、第1の調停回路211は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ214を更新する。
制御回路313は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した場合には、図5(A)に示すように、第2のリードポインタRP2が次のエントリ312を示すように第2のリードポインタRP2を更新する。
第1のキュー201の制御回路305は、図4(B)に示すように、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した場合には、バス105の使用権を獲得し、第1のリードポインタRP1が示すエントリ301のパケットデータDATA1をバス105に読み出す。そして、制御回路305は、図5(A)に示すように、第1のリードポインタRP1が次のエントリ302を示すように第1のリードポインタRP1を更新する。
制御回路313は、図4(B)及び図5(A)に示すように、第1の調停回路211が出力する第2の調停参加信号dt2を、第2のライトポインタWP2が示すエントリ312に格納し、第2のライトポインタWP2が次のエントリ311を示すように第2のライトポインタWP2を更新する。また、制御回路305は、図4(B)に示すように、第1の調停回路211が第2の調停参加信号dt2を出力した場合には、図5(A)に示すように、チェックポインタCPが次のエントリ303を示すようにチェックポインタCPを更新する。
サイクルt3では、図5(A)に示すように、制御回路305は、チェックポインタCPが示すエントリ303にパケットデータが格納されているか否かを判断する。制御回路305は、チェックポインタCPが示すエントリ303と第1のライトポインタWP1が示すエントリ304とが異なるので、チェックポインタCPが示すエントリ303にパケットデータDATA3が格納されていると判断する。その場合、制御回路305は、第1の仮想チャネルVC1のチャネル番号を含む第3の調停参加信号dt3を第1の調停回路211に出力する。なお、キュー202〜20nは、パケットデータを格納していないため、調停参加信号A2〜Anを出力しない。
第1の調停回路211は、第3の調停参加信号dt3を入力し、他の調停参加信号A2〜Anを入力しないので、第3の調停参加信号dt3をバッファ217に出力する。
制御回路313は、第2のリードポインタRP2が示すエントリ312に調停参加信号が格納されているか否かを判断する。制御回路313は、第2のリードポインタRP2が示すエントリ312と第2のライトポインタWP2が示すエントリ311とが異なるので、第2のリードポインタRP2が示すエントリ312に第2の調停参加信号dt2が格納されていると判断する。その場合、制御回路313は、第2のリードポインタRP2が示すエントリ312に格納されている第2の調停参加信号dt2を読み出し、その読み出した第2の調停参加信号dt2を第2の調停回路213に出力する。なお、バッファ218は、調停参加信号を格納していないため、調停参加信号C2を出力しない。
第2の調停回路213は、第2の調停参加信号dt2を入力し、他の調停参加信号C2を入力しないので、第2の調停参加信号dt2に対応する第1のキュー201(第1の仮想チャネルVC1)を示す調停結果信号を出力する。
第2の調停回路213は、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ216を更新する。同様に、第1の調停回路211は、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ214を更新する。
制御回路313は、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力した場合には、図5(B)に示すように、第2のリードポインタRP2が次のエントリ311を示すように第2のリードポインタRP2を更新する。
第1のキュー201の制御回路305は、図5(A)に示すように、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力した場合には、バス105の使用権を獲得し、第1のリードポインタRP1が示すエントリ302のパケットデータDATA2をバス105に読み出す。そして、制御回路305は、図5(B)に示すように、第1のリードポインタRP1が次のエントリ303を示すように第1のリードポインタRP1を更新する。
制御回路313は、図5(A)及び(B)に示すように、第1の調停回路211が出力する第3の調停参加信号dt3を、第2のライトポインタWP2が示すエントリ311に格納し、第2のライトポインタWP2が次のエントリ312を示すように第2のライトポインタWP2を更新する。また、制御回路305は、図5(A)に示すように、第1の調停回路211が第3の調停参加信号dt3を出力した場合には、図5(B)に示すように、チェックポインタCPが次のエントリ304を示すようにチェックポインタCPを更新する。
サイクルt4では、図5(B)に示すように、制御回路305は、チェックポインタCPが示すエントリ304にパケットデータが格納されているか否かを判断する。制御回路305は、チェックポインタCPが示すエントリ304と第1のライトポインタWP1が示すエントリ304とが同じであるので、チェックポインタCPが示すエントリ304にパケットデータが格納されていないと判断する。その場合、制御回路305は、調停参加信号を出力しない。
制御回路313は、第2のリードポインタRP2が示すエントリ311に調停参加信号が格納されているか否かを判断する。制御回路313は、第2のリードポインタRP2が示すエントリ311と第2のライトポインタWP2が示すエントリ312とが異なるので、第2のリードポインタRP2が示すエントリ311に第3の調停参加信号dt3が格納されていると判断する。その場合、制御回路313は、第2のリードポインタRP2が示すエントリ311に格納されている第3の調停参加信号dt3を読み出し、その読み出した第3の調停参加信号dt3を第2の調停回路213に出力する。なお、バッファ218は、調停参加信号を格納していないため、調停参加信号C2を出力しない。
第2の調停回路213は、第3の調停参加信号dt3を入力し、他の調停参加信号C2を入力しないので、第3の調停参加信号dt3に対応する第1のキュー201(第1の仮想チャネルVC1)を示す調停結果信号を出力する。
第2の調停回路213は、第2の調停回路213が第3の調停参加信号dt3に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ216を更新する。同様に、第1の調停回路211は、第2の調停回路213が第3の調停参加信号dt3に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のキュー201の調停参加信号が最新を示すように、LRUフラグ214を更新する。
制御回路313は、第2の調停回路213が第3の調停参加信号dt3に対応する第1のキュー201を示す調停結果信号を出力した場合には、第2のリードポインタRP2が次のエントリ312を示すように第2のリードポインタRP2を更新する。
第1のキュー201の制御回路305は、図5(B)に示すように、第2の調停回路213が第3の調停参加信号dt3に対応する第1のキュー201を示す調停結果信号を出力した場合には、バス105の使用権を獲得し、第1のリードポインタRP1が示すエントリ303のパケットデータDATA3をバス105に読み出す。そして、制御回路305は、第1のリードポインタRP1が次のエントリ304を示すように第1のリードポインタRP1を更新する。
図6に示すように、サイクルt2では、第2の調停回路213は、第1の調停参加信号dt1に対応する調停結果信号を出力し、制御回路305は、その調停結果信号を入力し、エントリ301のパケットデータDATA1をバス105に読み出す。サイクルt3では、第2の調停回路213は、第2の調停参加信号dt2に対応する調停結果信号を出力し、制御回路305は、その調停結果信号を入力し、エントリ302のパケットデータDATA2をバス105に読み出す。サイクルt4では、第2の調停回路213は、第3の調停参加信号dt3に対応する調停結果信号を出力し、制御回路305は、その調停結果信号を入力し、エントリ303のパケットデータDATA3をバス105に読み出す。
制御回路305は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力する前に、第2の調停参加信号dt2を出力する。同様に、制御回路305は、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力する前に、第3の調停参加信号dt3を出力する。
上記のように、制御回路305は、3個のパケットデータDATA1〜DATA3を3サイクルt2〜t4でバス105に読み出す。すなわち、制御回路305は、1サイクル毎にパケットデータをバス105に読み出すことができる。バス制御回路104は、チェックポインタCPを設けることにより、パケットデータDATA1〜DATA3を連続してバス105に読み出すことができる。以下、バス制御回路104がチェックポインタCPを設けることの効果を、図7(A)〜図10の比較例のバス制御回路104と比較しながら、説明する。
図7(A)は、比較例による第1のキュー201の構成例を示す図である。図7(A)の第1のキュー201は、図3(A)の第1のキュー201に対して、チェックポインタCPが削除されている。
図7(B)は、比較例によるバッファ217の構成例を示す図である。図7(B)のバッファ217は、図3(B)のバッファ217に対して、エントリ312と第2のライトポインタWP2と第2のリードポインタRP2が削除されている。
次に、図8(A)〜図10を参照しながら、比較例によるバス制御回路104の制御方法を説明する。図8(A)、(B)及び図9(A)、(B)は、比較例によるバス制御回路104の動作を説明するための図である。図10は、比較例によるバス制御回路104の動作を示すタイムチャートである。
図8(A)に示すように、サイクルt1では、制御回路305は、第1のリードポインタRP1が示すエントリ301にパケットデータDATA1が格納されているので、第1の調停参加信号dt1を第1の調停回路211に出力する。第1の調停回路211は、第1の調停参加信号dt1を入力し、他の調停参加信号A2〜Anを入力しないので、第1の調停参加信号dt1をバッファ217に出力する。制御回路313は、図8(A)及び(B)に示すように、第1の調停回路211が出力する第1の調停参加信号dt1をエントリ311に格納する。
サイクルt2では、図8(B)に示すように、制御回路313は、エントリ311に格納されている第1の調停参加信号dt1を読み出し、その読み出した第1の調停参加信号dt1を第2の調停回路213に出力する。
第2の調停回路213は、第1の調停参加信号dt1を入力し、他の調停参加信号C2を入力しないので、第1の調停参加信号dt1に対応する第1のキュー201(第1の仮想チャネルVC1)を示す調停結果信号を出力する。
第1のキュー201の制御回路305は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のリードポインタRP1が示すエントリ301のパケットデータDATA1をバス105に読み出す。そして、制御回路305は、図9(A)に示すように、第1のリードポインタRP1が次のエントリ302を示すように第1のリードポインタRP1を更新する。
サイクルt3では、制御回路305は、第1のリードポインタRP1が示すエントリ302にパケットデータDATA2が格納されているので、第2の調停参加信号dt2を第1の調停回路211に出力する。第1の調停回路211は、第2の調停参加信号dt2を入力し、他の調停参加信号A2〜Anを入力しないので、第2の調停参加信号dt2をバッファ217に出力する。制御回路313は、図9(A)及び(B)に示すように、第1の調停回路211が出力する第2の調停参加信号dt2をエントリ311に格納する。
サイクルt4では、図9(B)に示すように、制御回路313は、エントリ311に格納されている第2の調停参加信号dt2を読み出し、その読み出した第2の調停参加信号dt2を第2の調停回路213に出力する。
第2の調停回路213は、第2の調停参加信号dt2を入力し、他の調停参加信号C2を入力しないので、第2の調停参加信号dt2に対応する第1のキュー201(第1の仮想チャネルVC1)を示す調停結果信号を出力する。
第1のキュー201の制御回路305は、第2の調停回路213が第2の調停参加信号dt2に対応する第1のキュー201を示す調停結果信号を出力した場合には、第1のリードポインタRP1が示すエントリ302のパケットデータDATA2をバス105に読み出す。
図10に示すように、サイクルt2では、第2の調停回路213は、第1の調停参加信号dt1に対応する調停結果信号を出力し、制御回路305は、その調停結果信号を入力し、エントリ301のパケットデータDATA1をバス105に読み出す。サイクルt4では、第2の調停回路213は、第2の調停参加信号dt2に対応する調停結果信号を出力し、制御回路305は、その調停結果信号を入力し、エントリ302のパケットデータDATA2をバス105に読み出す。制御回路305は、第2の調停回路213が第1の調停参加信号dt1に対応する第1のキュー201を示す調停結果信号を出力した後に、第2の調停参加信号dt2を出力する。上記のように、比較例による制御回路305は、2サイクル毎に、パケットデータをバス105に読み出す。
これに対し、図7に示すように、本実施形態による制御回路305は、1サイクル毎にパケットデータをバス105に読み出すことができる。図7の制御回路305は、図10の制御回路305に対して、2倍の速度でパケットデータをバス105に読み出すことができ、スループットが2倍になる。本実施形態のバス制御回路104は、複数のキュー201〜20nのうちの第1のキュー201にのみデータが格納されている場合に、第1のキュー201に格納されているパケットデータを高速に読み出すことができる。
なお、上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
100 情報処理装置
101 演算処理装置
102 プロセッサ
103 キャッシュ
104 バス制御回路
105 バス
201〜20n キュー
211,212 第1の調停回路
213 第2の調停回路
214〜216 LRUフラグ
217,218 バッファ
301〜304 エントリ
305 制御回路
311,312 エントリ
313 制御回路
CP チェックポインタ
WP1 第1のライトポインタ
RP1 第1のリードポインタ
WP2 第2のライトポインタ
RP2 第2のリードポインタ

Claims (12)

  1. 各々がデータを格納するための複数のエントリと、第1のリードポインタと、前記第1のリードポインタが示すエントリと同じエントリを示すように設定されるチェックポインタとを有するとともに、先入れ先出しでデータをそれぞれ格納する複数のキューと、
    前記複数のキューからの調停参加信号を個々に受け付け、各々が、受け付けた前記複数の調停参加信号の調停をそれぞれ行い、前記複数の調停参加信号のうち1個の調停参加信号をそれぞれ出力する複数の第1の調停回路と、
    前記複数の第1の調停回路がそれぞれ出力する調停参加信号を先入れ先出しでそれぞれ格納する複数のバッファと、
    前記複数のバッファがそれぞれ出力する調停参加信号の調停を行い、前記複数のキューのうちの1個のキューに対応する調停結果信号を出力する第2の調停回路とを有するバス制御回路。
  2. 前記複数のキューのうちの第1のキューは、前記チェックポインタが示すエントリにデータが格納されている場合には、第1の調停参加信号を前記第1の調停回路に出力し、
    前記第1の調停回路は、前記第1の調停参加信号を入力し、前記第1の調停参加信号を前記バッファに出力し、
    前記バッファは、前記第1の調停回路が出力する前記第1の調停参加信号を格納し、前記格納した前記第1の調停参加信号を前記第2の調停回路に出力し、
    前記第1のキューは、前記第1の調停回路が前記第1の調停参加信号を出力した場合には、前記チェックポインタを更新し、前記更新したチェックポインタが示すエントリにデータが格納されている場合には、第2の調停参加信号を前記第1の調停回路に出力し、
    前記第2の調停回路は、前記第1の調停参加信号を入力し、前記第1の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力し、
    前記第1の調停回路は、前記第2の調停参加信号を入力し、前記第2の調停参加信号を前記バッファに出力し、
    前記バッファは、前記第1の調停回路が出力する前記第2の調停参加信号を格納し、前記格納した前記第2の調停参加信号を前記第2の調停回路に出力し、
    前記第1のキューは、前記第2の調停回路が前記第1の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力した場合には、前記第1のリードポインタが示すエントリのデータをバスに読み出し、前記第1のリードポインタを更新し、前記第1の調停回路が前記第2の調停参加信号を出力した場合には、前記チェックポインタを更新し、前記更新したチェックポインタが示すエントリにデータが格納されている場合には、第3の調停参加信号を前記第1の調停回路に出力する請求項1に記載のバス制御回路。
  3. 前記複数のキューの各々は、第1のライトポインタを有し、
    前記第1のキューは、前記チェックポインタが示すエントリと前記第1のライトポインタが示すエントリとが異なる場合には、前記チェックポインタが示すエントリにデータが格納されていると判断し、前記チェックポインタが示すエントリと前記第1のライトポインタが示すエントリとが同じ場合には、前記チェックポインタが示すエントリにデータが格納されていないと判断する請求項に記載のバス制御回路。
  4. 前記複数のキューの各々は、データを入力した場合には、前記入力したデータを前記第1のライトポインタが示すエントリに格納し、前記第1のライトポインタを更新する請求項3に記載のバス制御回路。
  5. 前記バッファは、複数のエントリと、第2のライトポインタと、第2のリードポインタとを有し、前記第2のライトポインタが示すエントリと同じエントリを示すように前記第2のリードポインタを設定し、前記第1の調停参加信号を前記第2のライトポインタが示すエントリに格納し、前記第2のライトポインタを更新し、前記第2のリードポインタが示すエントリに格納されている前記第1の調停参加信号を前記第2の調停回路に出力し、前記第2の調停回路が前記第1の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力した場合には、前記第2のリードポインタを更新する請求項乃至4のいずれか1項に記載のバス制御回路。
  6. 前記第1のキューは、前記第2の調停回路が前記第1の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力する前に、前記第2の調停参加信号を出力する請求項乃至5のいずれか1項に記載のバス制御回路。
  7. 前記第2の調停回路は、前記第2の調停参加信号を入力し、前記第2の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力し、
    前記第1の調停回路は、前記第3の調停参加信号を入力し、前記第3の調停参加信号を前記バッファに出力し、
    前記バッファは、前記第1の調停回路が出力する前記第3の調停参加信号を格納し、前記格納した前記第3の調停参加信号を前記第2の調停回路に出力し、
    前記第1のキューは、前記第2の調停回路が前記第2の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力した場合には、前記第1のリードポインタが示すエントリのデータを前記バスに読み出し、前記第1のリードポインタを更新する請求項乃至6のいずれか1項に記載のバス制御回路。
  8. 前記第2の調停回路は、前記第3の調停参加信号を入力し、前記第3の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力し、
    前記第1のキューは、前記第2の調停回路が前記第3の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力した場合には、前記第1のリードポインタが示すエントリのデータを前記バスに読み出し、前記第1のリードポインタを更新する請求項7に記載のバス制御回路。
  9. 前記第1の調停回路は、前記第1の調停参加信号を入力し、他の調停参加信号を入力しない場合には、前記第1の調停参加信号を前記バッファに出力し、
    前記第2の調停回路は、前記第1の調停参加信号を入力し、他の調停参加信号を入力しない場合には、前記第1の調停参加信号に対応する前記第1のキューを示す調停結果信号を出力する請求項乃至8のいずれか1項に記載のバス制御回路。
  10. 前記第1の調停回路及び前記第2の調停回路は、LRU(Least Recently Used)方式の調停を行う請求項1乃至9のいずれか1項に記載のバス制御回路。
  11. バスと、
    前記バスを介して接続される複数の演算処理装置とを有し、
    前記複数の演算処理装置の各々は、バス制御回路を有し、
    前記バス制御回路は、
    各々がデータを格納するための複数のエントリと、第1のリードポインタと、前記第1のリードポインタが示すエントリと同じエントリを示すように設定されるチェックポインタとを有するとともに、先入れ先出しでデータをそれぞれ格納する複数のキューと、
    前記複数のキューからの調停参加信号を個々に受け付け、各々が、受け付けた前記複数の調停参加信号の調停を行い、前記複数の調停参加信号のうち1個の調停参加信号をそれぞれ出力する複数の第1の調停回路と、
    前記複数の第1の調停回路がそれぞれ出力する調停参加信号を先入れ先出しでそれぞれ格納する複数のバッファと、
    前記複数のバッファがそれぞれ出力する調停参加信号の調停を行い、前記複数のキューのうちの1個のキューに対応する調停結果信号を出力する第2の調停回路とを有する情報処理装置。
  12. バス制御回路の制御方法において、
    各々がデータを格納するための複数のエントリと、第1のリードポインタと、前記第1のリードポインタが示すエントリと同じエントリを示すように設定されるチェックポインタとを有する、前記バス制御回路が有する複数のキューが、先入れ先出しでデータをそれぞれ格納し、
    前記バス制御回路が有する複数の第1の調停回路が、前記複数のキューからの調停参加信号を個々に受け付け、各々が、受け付けた前記複数の調停参加信号の調停をそれぞれ行い、前記複数の調停参加信号のうち1個の調停参加信号をそれぞれ出力し、
    前記バス制御回路が有する複数のバッファが、前記複数の第1の調停回路がそれぞれ出力する調停参加信号を先入れ先出しでそれぞれ格納し、
    前記バス制御回路が有する第2の調停回路が、前記複数のバッファがそれぞれ出力する調停参加信号の調停を行い、前記複数のキューのうちの1個のキューに対応する調停結果信号を出力するバス制御回路の制御方法。
JP2017016741A 2017-02-01 2017-02-01 バス制御回路、情報処理装置及びバス制御回路の制御方法 Active JP6823259B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2017016741A JP6823259B2 (ja) 2017-02-01 2017-02-01 バス制御回路、情報処理装置及びバス制御回路の制御方法
US15/880,044 US10496564B2 (en) 2017-02-01 2018-01-25 Bus control circuit, information processing apparatus, and control method for bus control circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017016741A JP6823259B2 (ja) 2017-02-01 2017-02-01 バス制御回路、情報処理装置及びバス制御回路の制御方法

Publications (2)

Publication Number Publication Date
JP2018124817A JP2018124817A (ja) 2018-08-09
JP6823259B2 true JP6823259B2 (ja) 2021-02-03

Family

ID=62979877

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017016741A Active JP6823259B2 (ja) 2017-02-01 2017-02-01 バス制御回路、情報処理装置及びバス制御回路の制御方法

Country Status (2)

Country Link
US (1) US10496564B2 (ja)
JP (1) JP6823259B2 (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5901295A (en) * 1995-04-28 1999-05-04 Apple Computer, Inc. Address and data bus arbiter for pipelined transactions on a split bus
US7046661B2 (en) * 2000-11-20 2006-05-16 Polytechnic University Scheduling the dispatch of cells in non-empty virtual output queues of multistage switches using a pipelined hierarchical arbitration scheme
JP2002252628A (ja) 2001-02-23 2002-09-06 Nippon Telegr & Teleph Corp <Ntt> パケット出力調停装置
US20020181453A1 (en) * 2001-06-01 2002-12-05 Norman Richard S. Cell-based switch fabric with distributed arbitration
US6671275B1 (en) * 2002-08-02 2003-12-30 Foundry Networks, Inc. Cross-point switch with deadlock prevention
US6990541B2 (en) * 2002-11-22 2006-01-24 Sun Microsystems, Inc. Arbitration unit for prioritizing requests based on multiple request groups
US7623524B2 (en) * 2003-12-22 2009-11-24 Intel Corporation Scheduling system utilizing pointer perturbation mechanism to improve efficiency
US7278008B1 (en) * 2004-01-30 2007-10-02 Nvidia Corporation Virtual address translation system with caching of variable-range translation clusters
US7302510B2 (en) * 2005-09-29 2007-11-27 International Business Machines Corporation Fair hierarchical arbiter
US20070133585A1 (en) * 2005-12-08 2007-06-14 International Business Machines Corporation Method and device for scheduling interconnections in an interconnecting fabric
US20070174529A1 (en) * 2005-12-29 2007-07-26 Intel Corporation Queue manager having a multi-level arbitrator
US20090037635A1 (en) * 2006-03-17 2009-02-05 Shanghai Magima Digital Information Co., Ltd. Bus arbitration device
US20100191911A1 (en) * 2008-12-23 2010-07-29 Marco Heddes System-On-A-Chip Having an Array of Programmable Processing Elements Linked By an On-Chip Network with Distributed On-Chip Shared Memory and External Shared Memory
US7965705B2 (en) * 2009-03-19 2011-06-21 Oracle America, Inc. Fast and fair arbitration on a data link
US8018958B1 (en) * 2009-06-23 2011-09-13 Juniper Networks, Inc. System and method for fair shared de-queue and drop arbitration in a buffer
JP5915079B2 (ja) * 2011-10-27 2016-05-11 富士通株式会社 書込制御プログラム、書込制御方法、書込制御装置およびシステム
US9436634B2 (en) * 2013-03-14 2016-09-06 Seagate Technology Llc Enhanced queue management
US9280503B2 (en) * 2013-04-12 2016-03-08 Apple Inc. Round robin arbiter handling slow transaction sources and preventing block

Also Published As

Publication number Publication date
JP2018124817A (ja) 2018-08-09
US10496564B2 (en) 2019-12-03
US20180217950A1 (en) 2018-08-02

Similar Documents

Publication Publication Date Title
JP6449702B2 (ja) 半導体装置
US10101996B2 (en) Arithmetic processing apparatus, information processing apparatus, and method of controlling information processing apparatus
KR100321784B1 (ko) 중재 지연 내성의 분산형 입력 버퍼 스위치 시스템 및그를 이용한 입력 데이터 처리 방법
US7979607B2 (en) Cascadable high-performance instant-fall-through synchronous first-in-first-out (FIFO) buffer
JP5650441B2 (ja) 演算装置、キャッシュ装置、その制御方法及びコンピュータプログラム
JP6729587B2 (ja) 先入れ先出し制御回路、記憶装置、および、先入れ先出し制御回路の制御方法
JP6823259B2 (ja) バス制御回路、情報処理装置及びバス制御回路の制御方法
JP2012093798A (ja) 転送装置、転送方法および転送プログラム
US9407578B2 (en) System and method of arbitrating access to interconnect
GB2521035A (en) A synchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry
US10877761B1 (en) Write reordering in a multiprocessor system
JP2013132006A5 (ja)
JP6295700B2 (ja) 調停回路及び調停回路の処理方法
TWI571743B (zh) 高速資料介面主機端控制器
US11443783B2 (en) Semiconductor device
JP5691555B2 (ja) 相互結合網制御システム、相互結合網制御方法
US11609871B1 (en) Integrated circuit device with crossbar to route traffic
JP5428653B2 (ja) メモリアクセス処理装置及び方法
JP6127872B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP6350098B2 (ja) 演算処理装置,情報処理装置,及び情報処理装置の制御方法
JP5630396B2 (ja) Dma制御装置
JP5788093B2 (ja) I/oデバイス、プログラマブルロジックコントローラ及び演算方法
JP4266967B2 (ja) 優先読出し機能付きfifoの管理システム
JP2012253598A (ja) 半導体装置およびそれを用いた通信装置
JP2004341785A (ja) バス安定化回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191008

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200918

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200929

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201120

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: 20201208

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201221

R150 Certificate of patent or registration of utility model

Ref document number: 6823259

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150