JP6295700B2 - 調停回路及び調停回路の処理方法 - Google Patents

調停回路及び調停回路の処理方法 Download PDF

Info

Publication number
JP6295700B2
JP6295700B2 JP2014024456A JP2014024456A JP6295700B2 JP 6295700 B2 JP6295700 B2 JP 6295700B2 JP 2014024456 A JP2014024456 A JP 2014024456A JP 2014024456 A JP2014024456 A JP 2014024456A JP 6295700 B2 JP6295700 B2 JP 6295700B2
Authority
JP
Japan
Prior art keywords
circuit
transaction
buffer
output
slave
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
JP2014024456A
Other languages
English (en)
Other versions
JP2015153012A (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.)
Socionext Inc
Original Assignee
Socionext Inc
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 Socionext Inc filed Critical Socionext Inc
Priority to JP2014024456A priority Critical patent/JP6295700B2/ja
Priority to US14/605,678 priority patent/US9703730B2/en
Publication of JP2015153012A publication Critical patent/JP2015153012A/ja
Application granted granted Critical
Publication of JP6295700B2 publication Critical patent/JP6295700B2/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
    • 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/161Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
    • G06F13/1626Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement by reordering requests
    • 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
    • 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/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4022Coupling between buses using switching circuits, e.g. switching matrix, connection or expansion network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Bus Control (AREA)

Description

本発明は、調停回路及び調停回路の処理方法に関する。
マルチバス調停回路が知られている(例えば、特許文献1参照)。転送先バス衝突判定部は、複数のリクエストの転送先バスが衝突しないときはデータ転送実行部に対してすべてのリクエストのデータ転送を並行して実行させ、衝突するときは処理を転送先バス判定部に預ける。転送先バス判定部におけるリクエスト優先順位判定部は、複数のリクエストについてのリクエスト優先順位パラメータの優先順位を比較し、低順位のリクエストをしたバス調停回路にキャンセルを返すためにキャンセル処理部へ指示を与えるとともに、高順位のリクエストのデータ転送を実行させるためにデータ転送実行部へ実行の指示を与える。
また、動的優先順位スキームに従って動作するエージェント用のトランザクション・キューが知られている(例えば、特許文献2参照)。トランザクション・キューは、デフォルトの優先順位スキームに従って動作し、かつ輻輳イベントが検出されたときには、第2の優先順位スキームを使用する。
また、バスマスタにより生成される、IDが付与されたトランザクションをキューイングバッファに登録し、キューイングバッファに登録された順序に従い、トランザクションを処理するメモリアクセス制御回路が知られている(例えば、特許文献3参照)。トランザクション検知手段は、IDを認識し、レイテンシィによりバフォーマンスに影響を与えるバスマスタからのトランザクションがキューイングバッファに登録されたことを検知する。処理順序変更手段は、トランザクションが検出手段により影響を与えるトランザクションが検出されたときに、当該トランザクションを先行してキューイングされているトランザクションに優先して処理する。
また、各種の電子データを記憶するメモリが接続された第1のバスとメモリにアクセスする複数の制御手段が接続された第2のバスとを接続すると共に、制御手段各々からメモリへのアクセスを制御するバス間接続装置が知られている(例えば、特許文献4参照)。キューイング手段は、制御手段各々から送信されるメモリへのアクセス要求をキューイングバッファに蓄積して順次処理する。バイパス処理手段は、制御手段各々から送信されるメモリへのアクセス要求のうちリアルタイム性が要求される既定の処理に対応する既定のアクセス要求を、キューイングバッファをバイパスさせてキューイング手段で処理される他のアクセス要求に優先して処理する。
特開2000−267992号公報 特表2003−521029号公報 特開2006−185198号公報 特開2012−27577号公報
特許文献1では、複数のリクエストの転送先バスが衝突するときは、低順位のリクエストをしたバス調停回路にキャンセルを返すためにキャンセル処理部へ指示を与えるとともに、高順位のリクエストのデータ転送を実行させるためにデータ転送実行部へ実行の指示を与える。しかし、衝突しないときはデータ転送実行部に対してすべてのリクエストのデータ転送を並行して実行させるため、高順位のリクエストは、先に発行された低順位のリクエストの処理が終了するまで待たされ、すぐに実行されない場合がある。
本発明の目的は、高優先順位のトランザクションを、先に発行された低優先順位のトランザクションより優先して実行させることができる調停回路及び調停回路の処理方法を提供することである。
調停回路は、複数のマスタ回路から出力されたトランザクションをファーストインファーストアウト方式の第1のバッファに格納し、前記第1のバッファに格納された格納済トランザクションをスレーブ回路に出力するインターフェース回路と、前記複数のマスタ回路から出力されたトランザクションを監視した結果に基づいて、前記インターフェース回路を制御する制御回路と、を有し、前記インターフェース回路は、前記制御回路の制御に応じて、前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記低順位トランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第2のバッファに対して出力し、前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力する。
インターフェース回路の処理により、高優先順位のトランザクションを、先に発行された低優先順位のトランザクションより優先して実行させることができる。
図1は、第1の実施形態による処理システムの構成例を示す図である。 図2は、図1の処理システムの処理方法の例を示す図である。 図3は、図1の処理システムの処理方法の例を示す図である。 図4は、図1の処理システムの処理方法の例を示す図である。 図5は、図1の処理システムの処理方法の例を示す図である。 図6は、図1の処理システムの処理方法の例を示す図である。 図7は、図1の処理システムにおいて、監視部、制御部及び第1のバッファがない場合の動作を説明するための図である。 図8は、第2の実施形態による処理システムの構成例を示す図である。 図9は、図8の処理システムにおいて、監視部、制御回路及び第2のバッファを削除した処理システムを示す図である。
(第1の実施形態)
図1は、第1の実施形態による処理システムの構成例を示す図である。処理システムは、複数のバスマスタ回路101a〜101cと、調停回路(バスマトリクス回路)102と、バススレーブ回路103とを有する。調停回路102は、複数のスレーブインターフェース(SIF)回路111a〜111cと、第1のスイッチ回路112と、マスタインターフェース回路113と、監視部114と、制御回路115とを有する。マスタインターフェース回路113は、第1のバッファ116を有する。バススレーブ回路103は、第2のバッファ121を有する。
バスマスタ回路101a〜101cは、それぞれ、調停回路102を介して、バススレーブ回路103に、トランザクションを出力可能である。トランザクションは、バススレーブ回路103の処理を実行させるための要求(命令)である。バススレーブ回路103は、処理回路である。例えば、バススレーブ回路103がメモリ回路である場合、トランザクションは、読み出し(リード)要求又は書き込み(ライト)要求等である。
スレーブインターフェース回路111aは、第1のバスマスタ回路101aが出力したトランザクションを入力し、その入力したトランザクションを第1のスイッチ回路112に伝達する。スレーブインターフェース回路111bは、第2のバスマスタ回路101bが出力したトランザクションを入力し、その入力したトランザクションを第1のスイッチ回路112に伝達する。スレーブインターフェース回路111cは、第3のバスマスタ回路101cが出力したトランザクションを入力し、その入力したトランザクションを第1のスイッチ回路112に伝達する。
第1のスイッチ回路112は、複数のスレーブインターフェース回路111a〜111c及びマスタインターフェース回路113間に接続され、スレーブインターフェース回路111a〜111cから入力したトランザクションを調停してマスタインターフェース回路113に出力する。例えば、第1のスイッチ回路112は、スレーブインターフェース回路111a〜111cから複数のトランザクションを同時に入力した場合には、トランザクションの優先順位が高い方から順番に、トランザクションをシリアルにマスタインターフェース回路113に出力する。また、第1のスイッチ回路112は、スレーブインターフェース回路111a〜111cのいずれかから1個のトランザクションを入力した場合には、その入力したトランザクションをマスタインターフェース回路113に出力する。
トランザクションの優先順位は、例えば、そのトランザクションを出力するバスマスタ回路の優先順位である。第1のバスマスタ回路101a及び第2のバスマスタ回路101bが出力するトランザクションは、低優先順位のトランザクション(低順位トランザクション)である。第3のバスマスタ回路101cが出力するトランザクションは、高優先順位のトランザクション(高順位トランザクション)である。第3のバスマスタ回路101cが出力する高優先順位のトランザクションは、第1のバスマスタ回路101a及び第2のバスマスタ回路101bが出力する低優先順位のトランザクションより優先順位が高い。なお、優先順位が2段階の場合を例に説明するが、優先順位は3段階以上でもよい。例えば、第1のスイッチ回路112は、スレーブインターフェース回路111a及び111cから同時にトランザクションを入力した場合には、先に、スレーブインターフェース回路111cから入力したトランザクションをマスタインターフェース回路113に出力し、その後に、スレーブインターフェース回路111aから入力したトランザクションをマスタインターフェース回路113に出力する。
マスタインターフェース回路113は、第1のスイッチ回路112から出力されたトランザクションをファーストインファーストアウト(FIFO)方式の第1のバッファ116に格納し、第1のバッファ116に格納された格納済トランザクションをバススレーブ回路103に出力する。第1のバッファ116は、トランザクションをファーストインファーストアウトでバッファリングする。
監視部114は、複数のバスマスタ回路101a〜101cのいずれかから出力されたトランザクションが第1のバッファ116内のトランザクションのうちのいずれかより優先順位が高い条件を満たすか否かを検出し、条件を満たす場合には制御回路115を起動させる。すると、制御回路115は、マスタインターフェース回路113を制御する。なお、トランザクションは、発行元のバスマスタ回路101a〜101cの識別子(ID)を含むので、監視部114は、トランザクションを基に優先順位を認識することができる。
マスタインターフェース回路113は、制御回路115の制御により、複数のバスマスタ回路101a〜101cのいずれかから出力されたトランザクションより優先順位が低い第1のバッファ116内のトランザクションのキャンセル要求をバススレーブ回路103内の第2のバッファ121に対して出力する。
バススレーブ回路103は、トランザクションのキャンセル要求を入力すると、そのキャンセル要求のトランザクションが未処理である場合にはキャンセル要求のトランザクションを第2のバッファ121から削除し、トランザクションのキャンセル成功を示す信号をマスタインターフェース回路113に出力する。マスタインターフェース回路113は、キャンセル成功を示す信号を入力した場合には、上記の複数のバスマスタ回路101a〜101cのいずれかから出力された優先順位が高いトランザクションをバススレーブ回路103に出力し、その後、上記のキャンセルが成功したトランザクションをバススレーブ回路103に再び出力する。
また、バススレーブ回路103は、トランザクションのキャンセル要求を入力すると、キャンセル要求のトランザクションが処理中である場合にはキャンセル要求のトランザクションの処理が終了した後に、トランザクションの処理終了を示す信号をマスタインターフェース回路113に出力する。マスタインターフェース回路113は、トランザクションの処理終了を示す信号をバススレーブ回路103から入力すると、その処理が終了したトランザクションを第1のバッファ116から削除する。
図2〜図6は、図1の処理システムの処理方法の例を示す図である。まず、図2に示すように、第1のバスマスタ回路101aが低優先順位のトランザクションA11を発行する。すると、スレーブインターフェース回路111aは、トランザクションA11を第1のスイッチ回路112に伝達する。すると、第1のスイッチ回路112は、トランザクションA11をマスタインターフェース回路113に出力する。すると、マスタインターフェース回路113は、第1のバッファ116にトランザクションA11をバッファリングし、そのトランザクションA11をバススレーブ回路103に出力する。すると、バススレーブ回路103は、第2のバッファ121にトランザクションA11をバッファリングする。第2のバッファ121は、マスタインターフェース回路113から入力したトランザクションをファーストインファーストアウト(FIFO)方式でバッファリングする。
次に、第1のバスマスタ回路101aが低優先順位のトランザクションA21を発行する。すると、スレーブインターフェース回路111aは、トランザクションA21を第1のスイッチ回路112に伝達する。すると、第1のスイッチ回路112は、トランザクションA21をマスタインターフェース回路113に出力する。すると、マスタインターフェース回路113は、第1のバッファ116にトランザクションA21をバッファリングし、そのトランザクションA21をバススレーブ回路103に出力する。すると、バススレーブ回路103は、第2のバッファ121にトランザクションA21をバッファリングする。
次に、第2のバスマスタ回路101bが低優先順位のトランザクションB31を発行する。すると、スレーブインターフェース回路111bは、トランザクションB31を第1のスイッチ回路112に伝達する。すると、第1のスイッチ回路112は、トランザクションB31をマスタインターフェース回路113に出力する。すると、マスタインターフェース回路113は、第1のバッファ116にトランザクションB31をバッファリングし、そのトランザクションB31をバススレーブ回路103に出力する。すると、バススレーブ回路103は、第2のバッファ121にトランザクションB31をバッファリングする。
ここで、第2のバッファ121を設ける利点を説明する。第2のバッファ121がない場合、まず、マスタインターフェース回路113は、トランザクションA11のみをスレーブ回路103に出力する。バススレーブ回路103は、リード要求のトランザクションA11を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路113に出力する。その後、マスタインターフェース回路113は、次のトランザクションA21をスレーブ回路103に出力する。バススレーブ回路103は、リード要求のトランザクションA21を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路113に出力する。その後、マスタインターフェース回路113は、次のトランザクションB31をスレーブ回路103に出力する。バススレーブ回路103は、リード要求のトランザクションB31を入力すると、それに対応する読み出しを行い、読み出したデータと共に処理完了信号をマスタインターフェース回路113に出力する。
これに対し、第2のバッファ121を設ける場合には、マスタインターフェース回路113は、バススレーブ回路10のトランザクションの処理完了を待たずに、次のトランザクションをバススレーブ回路103に出力することができるので、バス104の使用効率を向上させることができる利点がある。
なお、図2の状態では、バススレーブ回路103は、トランザクションA11,A21,B31の処理を未だ完了していないものとして説明する。
次に、第3のバスマスタ回路101cが高優先順位のトランザクションC41を発行する。すると、監視部114は、第3のバスマスタ回路101cから入力したトランザクションC41が第1のバッファ116内のトランザクションA11,A21,B31より優先順位が高い条件を満たすことを検出し、制御回路115を起動させる。すると、制御回路115は、マスタインターフェース回路113を制御する。
次に、図3に示すように、マスタインターフェース回路113は、制御回路115の制御により、第3のバスマスタ回路101cから出力されたトランザクションC41より優先順位が低い第1のバッファ116内のトランザクションA11,A21,B31のキャンセル要求をバススレーブ回路103に対して出力する。
次に、上記のキャンセル要求の例を説明する。バス104は、調停回路102及びバススレーブ回路103間に接続される。バス104の仕様は、限定されないが、AXI仕様の例を説明する。その場合、リードアドレスチャンネル内にARCANCEL信号を追加し、ライトアドレスチャンネル内にAWCANCEL信号を追加する。発行済みのリード要求のトランザクションA11,A21,B31をキャンセル要求する場合には、それぞれ、トランザクションA11,A21,B31に対応するリードアドレスチャンネル内のARCANCEL信号を「1」にする。また、発行済みのライト要求のトランザクションA11,A21,B31をキャンセル要求する場合には、それぞれ、トランザクションA11,A21,B31に対応するライトアドレスチャンネル内のAWCANCEL信号を「1」にする。なお、リード要求のトランザクションを発行する場合には、リードアドレスチャンネル内のARCANCEL信号を「0」にする。また、ライト要求のトランザクションを発行する場合には、ライトアドレスチャンネル内のAWCANCEL信号を「0」にする。
次に、図4に示すように、バススレーブ回路103は、トランザクションA11,A21,B31のキャンセル要求を入力し、トランザクションA11が処理中であるのでトランザクションA11のキャンセルを行わず、トランザクションA21及びB31が未処理であるのでトランザクションA21及びB31を第2のバッファ121から削除(キャンセル)する。なお、トランザクションA21及びB31を第2のバッファ121から削除せずに、その上に上書きしてもよい。次に、バススレーブ回路103は、トランザクションA21及びB31のキャンセル成功を示す信号をマスタインターフェース回路113に出力する。また、バススレーブ回路103は、処理中のトランザクションA11の処理が終了した後に、トランザクションA11を第2のバッファ121から削除し、トランザクションA11の処理終了(完了)を示す信号をマスタインターフェース回路113に出力する。なお、トランザクションA11を第2のバッファ121から削除せずに、その上に上書きしてもよい。
次に、上記のキャンセル成功を示す信号及び処理完了を示す信号の例を説明する。バス104がAXI仕様の場合、リードデータチャンネル内のRRESP信号を2ビットから3ビットに拡張し、ライトレスポンスチャンネル内のBRESP信号を2ビットから3ビットに拡張する。リード要求のトランザクションA21及びB31のキャンセルが成功した場合には、リードデータチャンネル内のRRESP信号を「100」にすることにより、キャンセル成功を示す信号をマスタインターフェース回路113に伝えることができる。また、ライト要求のトランザクションA21及びB31のキャンセルが成功した場合には、ライトレスポンスチャンネル内のBRESP信号を「100」にすることにより、キャンセル成功を示す信号をマスタインターフェース回路113に伝えることができる。
なお、RRESP信号及びBRESP信号は、「000」がリード要求又はライト要求の成功(OKAY)を示し、「001」が排他リード要求又は排他ライト要求の成功(EXOKAY)を示し、「010」がバススレーブ回路103のエラー(SLVERR)を示し、「011」がアクセス不可のアドレスを使用した場合のデコードエラー(DECERR)を示す。
マスタインターフェース回路113は、トランザクションA11の処理終了を示す信号をバススレーブ回路103から入力すると、その処理が終了したトランザクションA11を第1のバッファ116から削除し、第1のスイッチ回路112及びスレーブインターフェース回路111aを介して、トランザクションA11の処理終了を示す信号を第1のバスマスタ回路101aに出力する。なお、トランザクションA11がリード要求の場合には、バススレーブ回路103は、トランザクションA11に対応するアドレスのデータをメモリから読み出し、読み出したデータを処理終了信号と共に、マスタインターフェース回路113、第1のスイッチ回路112及びスレーブインターフェース回路111aを介して、第1のバスマスタ回路101aに出力する。
図5に示すように、スレーブインターフェース回路111cは、第1のバスマスタ回路101cから高優先順位のトランザクションC41を入力し、第1のスイッチ回路112を介して、マスタインターフェース回路113にトランザクションC41を出力する。マスタインターフェース回路113は、トランザクションA21及びB31のキャンセル成功を示す信号をバススレーブ回路103から入力した場合には、第1のバッファ116に対して、第3のバスマスタ回路101cから出力された優先順位が高いトランザクションC41をトランザクションA21及びB31の前にバッファリングし、トランザクションC41をバススレーブ回路103に出力する。すると、バススレーブ回路103は、入力したトランザクションC41を第2のバッファ121にバッファリングする。
次に、図6に示すように、マスタインターフェース回路113は、上記のキャンセルが成功したトランザクションA21及びB31をバススレーブ回路103に順次、再発行する。すると、バススレーブ回路103は、入力したトランザクションA21及びB31を第2のバッファ121に順次、バッファリングする。そして、バススレーブ回路103は、まず、高優先順位のトランザクションC41の処理を行い、次に、低優先順位のトランザクションA21の処理を行い、次に、低優先順位のトランザクションB31の処理を行う。これにより、高優先順位のトランザクションC41を、先に発行された低優先順位のトランザクションA21及びB31より優先して実行させることができる。
図7は、図1の処理システムにおいて、監視部114、制御部115及び第1のバッファ116がない場合の動作を説明するための図である。まず、第1のバスマスタ回路101aは、低優先順位のトランザクションA11を発行する。すると、トランザクションA11は、スレーブインターフェース回路111a、第1のスイッチ回路112及びマスタインターフェース回路113を介して、バススレーブ回路103内の第2のバッファ121にバッファリングされる。
次に、第1のバスマスタ回路101aは、低優先順位のトランザクションA21を発行する。すると、トランザクションA21は、スレーブインターフェース回路111a、第1のスイッチ回路112及びマスタインターフェース回路113を介して、バススレーブ回路103内の第2のバッファ121にバッファリングされる。
次に、第2のバスマスタ回路101bは、低優先順位のトランザクションB31を発行する。すると、トランザクションB31は、スレーブインターフェース回路111b、第1のスイッチ回路112及びマスタインターフェース回路113を介して、バススレーブ回路103内の第2のバッファ121にバッファリングされる。
次に、第3のバスマスタ回路101cは、高優先順位のトランザクションC41を発行する。すると、トランザクションC41は、スレーブインターフェース回路111c、第1のスイッチ回路112及びマスタインターフェース回路113を介して、バススレーブ回路103内の第2のバッファ121にバッファリングされる。
バススレーブ回路103は、低優先順位のトランザクションA11,A21,B31の処理が終了した後に、高優先順位のトランザクションC41の処理を実行する。高優先順位のトランザクションC41の処理は、低優先順位のトランザクションA11,A21,B31の処理が終了するまで待たされる。この場合、高優先順位のトランザクションC41がすぐに実行されず、優先順位が無意味になってしまう。
これに対し、図1〜図6の処理システムでは、高優先順位のトランザクションC41の前に発行されたトランザクションA21及びB31をキャンセルすることができるので、高優先順位のトランザクションC41を、先に発行された低優先順位のトランザクションA21及びB31より優先して実行させることができる。また、低優先順位のトランザクションA21及びB31をキャンセルすることにより、高優先順位のトランザクションC41を即座に実行することができる。
ここで、バススレーブ回路103が、4個のトランザクションをバッファリング可能な第2のバッファ121を有するDDR(Double-Data-Rate)メモリ回路である例を説明する。例えば、バススレーブ回路103は、1個のトランザクションに対して、データサイズが128ビットであり、バースト長が4であるデータのインクリメント転送を150サイクルで行うことができる。図7の処理システムでは、高優先順位のトランザクションは、最大で、第2のバッファ121内の4個の低優先順位のトランザクションの処理のための150×4=600サイクルを待ってから、処理が開始される。
これに対し、図1〜図6の処理システムでは、1個のトランザクションのキャンセル動作に要するサイクル数が例えば15サイクルとすると、第2のバッファ121内の4個の低優先順位のトランザクションのキャンセル動作のための15×4=60サイクルを待ってから、高優先順位のトランザクションの処理を開始することができる。図1〜図6の処理システムは、図7の処理システムに比べて、高優先順位のトランザクションを即座に実行することができる。
なお、マスタインターフェース回路113内の第1のバッファ116とバススレーブ回路103内の第2のバッファ121は常に同期していてもよい。また、バススレーブ回路103内の第2のバッファ121は、処理中のトランザクションを保持していてもよいし、未処理のトランザクションのみを保持するようにしてもよい。
(第2の実施形態)
図8は、第2の実施形態による処理システムの構成例を示す図である。本実施形態(図8)は、第1の実施形態(図1)に対して、スレーブ回路103が異なる。以下、本実施形態が第1の実施形態と異なる点を説明する。バススレーブ回路103は、バスブリッジ回路801と、複数のスレーブ103a,103bとを有する。バスブリッジ回路801は、スレーブインターフェース回路802と、第2のスイッチ回路804と、マスタインターフェース回路805a,805bとを有し、複数のスレーブ103a,103b及びマスタインターフェース回路113の間に接続される。スレーブインターフェース回路802は、第2のバッファ803を有する。第2のバッファ803は、図1の第2のバッファ121に対応する。第1の実施形態と同様に、マスタインターフェース回路113は、第2のバッファ803に対して、高優先順位のトランザクションの前に発行された低優先順位のトランザクションのキャンセル要求を出力することができる。
スレーブインターフェース回路802は、第1の実施形態のバススレーブ回路103と同様に、第2のバッファ803の制御及びマスタインターフェース回路113に対する入出力処理を行う。第2のバッファ803は、ファーストインファーストアウト方式で第2のスイッチ回路804に、バッファリングしているトランザクションを出力する。第2のスイッチ回路804は、スレーブインターフェース回路802及び複数のマスタインターフェース回路805a,805b間に接続され、スレーブインターフェース回路802から入力したトランザクションに対して、高速バススレーブ(第1のバススレーブ)103aのトランザクションをマスタインターフェース回路805aに出力し、低速バススレーブ(第2のバススレーブ)103bのトランザクションをマスタインターフェース回路805bに出力する。
バススレーブ103a及び103bがメモリ回路の場合、トランザクションは、リードアドレスを含むリード要求又はライトアドレスを含むライト要求である。高速バススレーブ103aのアドレス範囲と低速バススレーブ103bのアドレス範囲は異なる。したがって、第2のスイッチ回路804は、トランザクション内のリードアドレス又はライトアドレスを基に、そのトランザクションが高速バススレーブ103aのトランザクション及び低速バススレーブ103bのトランザクションのいずれであるのかを判断することができる。
マスタインターフェース回路805aは、第2のスイッチ回路804から入力したトランザクションを高速バススレーブ103aに伝達する。マスタインターフェース回路805bは、第2のスイッチ回路804から入力したトランザクションを低速バススレーブ103bに伝達する。高速バススレーブ103aは、例えば高速メモリ回路であり、入力したトランザクションの処理を行う。低速バススレーブ103bは、例えば低速メモリ回路であり、入力したトランザクションの処理を行う。第2のバッファ803をスレーブインターフェース回路802内に設けることにより、高速バススレーブ103a及び低速バススレーブ103b内にバッファを設ける必要がない。
次に、第2のバッファ803を設ける利点を説明する。例えば、まず、第3のバスマスタ回路101cが高優先順位のトランザクションA1を発行する。トランザクションA1は、第1の実施形態と同様に、調停回路102を介して、第2のバッファ803にバッファリングされる。次に、第1のバスマスタ回路101aが低優先順位のトランザクションB2を発行する。トランザクションB2は、第1の実施形態と同様に、調停回路102を介して、第2のバッファ803にバッファリングされる。低優先順位のトランザクションB2は、先に発行された高優先順位のトランザクションA1より優先順位が低いので、マスタインターフェース回路113は、第2のバッファ803に対して、キャンセル要求を出力しない。まず、第2のスイッチ回路804は、トランザクションA1を、マスタインターフェース回路805bを介して低速バススレーブ103bに出力する。次に、第2のスイッチ回路804は、トランザクションB2を、マスタインターフェース回路805aを介して高速バススレーブ103aに出力する。低速バススレーブ103bは、入力したトランザクションA1の処理を行う。高速バススレーブ103aは、入力したトランザクションB2の処理を行う。高速バススレーブ103aの処理は高速であり、低速バススレーブ103bの処理は低速である。そのため、まず、高速バススレーブ103aの処理が終了し、高速バススレーブ103aはトランザクションB2の終了信号(レスポンス)DB2を出力する。終了信号DB2は、バスブリッジ回路801及び調停回路102を介して、第1のバスマスタ回路101aに出力される。次に、低速バススレーブ103bの処理が終了し、低速バススレーブ103bはトランザクションA1の終了信号(レスポンス)DA1を出力する。終了信号DA1は、バスブリッジ回路801及び調停回路102を介して、第3のバスマスタ回路101cに出力される。
以上のように、マスタインターフェース回路113は、まず、トランザクションA1を出力し、次に、トランザクションB2を出力し、次に、トランザクションB2の終了信号DB2を入力し、次に、トランザクションA1の終了信号DA1を入力する。これにより、マスタインターフェース回路113は、トランザクションA1の終了信号DA1を待たずに、次のトランザクションB2を発行することができる。
図9は、図8の処理システムにおいて、監視部114、制御回路115及び第2のバッファ803を削除した処理システムを示す図である。図9の処理システムは、図8の処理システムに対して、第2のバッファ803を有するスレーブインターフェース回路802の代わりに、バッファを有しないスレーブインターフェース回路903を設けている。また、バッファ901は、第1のスイッチ回路112及びマスタインターフェース回路902間に接続される。マスタインターフェース回路902は、図8の第1のバッファ116を有しない。
次に、図9の処理システムの動作例を説明する。例えば、まず、第3のバスマスタ回路101cが高優先順位のトランザクションA1を発行する。トランザクションA1は、スレーブインターフェース回路111c及び第1のスイッチ回路112を介して、バッファ901にバッファリングされる。次に、第1のバスマスタ回路101aが低優先順位のトランザクションB2を発行する。トランザクションB2は、スレーブインターフェース回路111a及び第1のスイッチ回路112を介して、バッファ901にバッファリングされる。マスタインターフェース回路902は、バッファ901内のトランザクションA1を、バスブリッジ回路801を介して、低速バススレーブ103bに出力する。低速バススレーブ103bは、入力したトランザクションA1の処理を行う。低速バススレーブ103bの処理速度は低速であるため、低速バススレーブ103bの処理時間は長い。低速バススレーブ103bは、トランザクションA1の処理が終了すると、トランザクションA1の終了信号DA1を出力する。終了信号DA1は、バスブリッジ回路801及び調停回路102を介して、第3のバスマスタ回路101cに出力される。マスタインターフェース回路902は、終了信号DA1を入力すると、バッファ901内の次のトランザクションB2をバスブリッジ回路801を介して、高速バススレーブ103aに出力する。高速バススレーブ103aは、入力したトランザクションB2の処理を行う。高速バススレーブ103aの処理速度は高速であるため、高速バススレーブ103aの処理時間は短い。高速バススレーブ103aは、トランザクションB2の処理が終了すると、トランザクションB2の終了信号DB2を出力する。終了信号DB2は、バスブリッジ回路801及び調停回路102を介して、第1のバスマスタ回路101aに出力される。
以上のように、マスタインターフェース回路902は、まず、トランザクションA1を出力し、次に、トランザクションA1の終了信号DA1を入力し、次に、トランザクションB2を出力し、次に、トランザクションB2の終了信号DB2を入力する。この場合、低速バススレーブ103bのトランザクションA1の処理終了を待ってから、高速バススレーブ103aはトランザクションB2の処理を開始する。そのため、トランザクションB2の処理の開始及び終了が遅くなってしまう。
これに対し、図8の処理システムでは、上記のように、マスタインターフェース回路113は、まず、トランザクションA1を出力し、次に、トランザクションB2を出力し、次に、トランザクションB2の終了信号DB2を入力し、次に、トランザクションA1の終了信号DA1を入力する。これにより、高速バススレーブ103aは、低速バススレーブ103bのトランザクションA1の終了信号DA1を待たずに、トランザクションB2の処理を開始することができる。これにより、トランザクションB2の処理の開始及び終了を早くし、処理システムのパフォーマンスを向上させることができる。
なお、トランザクションの優先順位は、そのトランザクションを出力するバスマスタ回路101a〜101cの優先順位である例を説明したが、これに限定されない。トランザクションの優先順位は、そのトランザクションの出力先であるバススレーブ103a,103bの優先順位でもよい。例えば、高速バススレーブ103aが出力先であるトランザクションの優先順位を高優先順位にし、低速バススレーブ103bが出力先であるトランザクションの優先順位を低優先順位にすることができる。また、3個以上のバススレーブを第2のスイッチ回路804に接続する場合には、3個以上のバススレーブに3段階以上の優先順位を付与することができる。その場合、マスタインターフェース回路113は、上記と同様に、トランザクション内のリードアドレス又はライトアドレスを基に、トランザクションの優先順位を判断することができる。また、トランザクションの優先順位の情報は、バスマスタ回路101a〜101c及びバススレーブ103a,103bの優先順位とは関係なく、トランザクション内に付与してもよい。
上記実施形態は、何れも本発明を実施するにあたっての具体化の例を示したものに過ぎず、これらによって本発明の技術的範囲が限定的に解釈されてはならないものである。すなわち、本発明はその技術思想、又はその主要な特徴から逸脱することなく、様々な形で実施することができる。
101a 第1のバスマスタ回路
101b 第2のバスマスタ回路
101c 第3のバスマスタ回路
102 調停回路
103 バススレーブ回路
104 バス
111a〜111c スレーブインターフェース回路
112 第1のスイッチ回路
113 マスタインターフェース回路
114 監視部
115 制御回路
116 第1のバッファ
121 第2のバッファ

Claims (10)

  1. 複数のマスタ回路から出力されたトランザクションをファーストインファーストアウト方式の第1のバッファに格納し、前記第1のバッファに格納された格納済トランザクションをスレーブ回路に出力するインターフェース回路と、
    前記複数のマスタ回路から出力されたトランザクションを監視した結果に基づいて、前記インターフェース回路を制御する制御回路と、
    を有し、
    前記インターフェース回路は、前記制御回路の制御に応じて、前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記低順位トランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第2のバッファに対して出力し、前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力する
    ことを特徴とする調停回路。
  2. 前記スレーブ回路は、前記キャンセル要求が入力されると、前記低順位トランザクションが未処理である場合には前記低順位トランザクションを前記第2のバッファから削除し、前記キャンセル要求の成功を示す信号を前記インターフェース回路に出力することを特徴とする請求項1記載の調停回路。
  3. 前記スレーブ回路は、前記キャンセル要求が入力されると、前記低順位トランザクションが処理中である場合には前記低順位トランザクションの処理が終了した後に、前記低順位トランザクションの処理終了を示す信号を前記インターフェース回路に出力し、
    前記インターフェース回路は、前記低順位トランザクションの処理終了を示す信号が前記スレーブ回路から入力されると、前記処理が終了したトランザクションを前記第1のバッファから削除することを特徴とする請求項1又は2記載の調停回路。
  4. さらに、前記複数のマスタ回路及び前記第1のバッファ間に接続される第1のスイッチ回路を有することを特徴とする請求項1〜3のいずれか1項に記載の調停回路。
  5. 前記スレーブ回路は、
    複数のスレーブと、
    前記複数のスレーブ及び前記インターフェース回路の間に接続されるブリッジ回路とを有することを特徴とする請求項1〜4のいずれか1項に記載の調停回路。
  6. 前記ブリッジ回路は、前記第2のバッファを有することを特徴とする請求項5記載の調停回路。
  7. 前記ブリッジ回路は、前記複数のスレーブ及び前記第2のバッファ間に接続される第2のスイッチ回路を有することを特徴とする請求項6記載の調停回路。
  8. 前記トランザクションの優先順位は、前記トランザクションを出力する前記複数のマスタ回路の優先順位であることを特徴とする請求項1〜7のいずれか1項に記載の調停回路。
  9. 前記トランザクションの優先順位は、前記トランザクションの出力先である前記複数のスレーブの優先順位であることを特徴とする請求項5〜7のいずれか1項に記載の調停回路。
  10. 複数のマスタ回路から出力されたトランザクションをインターフェース回路内のファーストインファーストアウト方式の第1のバッファに格納し、
    前記複数のマスタ回路のいずれかから、前記第1のバッファに格納された格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力されていない場合には、前記第1のバッファに格納された格納済トランザクションをスレーブ回路に出力し、
    前記複数のマスタ回路のいずれかから、前記格納済トランザクションのうちのいずれかより優先順位が高い高順位トランザクションが出力された場合には、前記高順位トランザクションより優先順位が低い前記格納済トランザクションの内の低順位トランザクションのキャンセル要求を前記低順位トランザクションが格納された前記スレーブ回路内のファーストインファーストアウト方式の第2のバッファに対して出力し、
    前記キャンセル要求が成功した場合には、前記高順位トランザクションを前記スレーブ回路に出力し、
    前記高順位トランザクションを前記スレーブ回路に出力した後、前記キャンセル要求が成功した前記低順位トランザクションを前記スレーブ回路に出力することを特徴とする調停回路の処理方法。
JP2014024456A 2014-02-12 2014-02-12 調停回路及び調停回路の処理方法 Active JP6295700B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2014024456A JP6295700B2 (ja) 2014-02-12 2014-02-12 調停回路及び調停回路の処理方法
US14/605,678 US9703730B2 (en) 2014-02-12 2015-01-26 Arbitration circuit and processing method of arbitration circuit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2014024456A JP6295700B2 (ja) 2014-02-12 2014-02-12 調停回路及び調停回路の処理方法

Publications (2)

Publication Number Publication Date
JP2015153012A JP2015153012A (ja) 2015-08-24
JP6295700B2 true JP6295700B2 (ja) 2018-03-20

Family

ID=53775044

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014024456A Active JP6295700B2 (ja) 2014-02-12 2014-02-12 調停回路及び調停回路の処理方法

Country Status (2)

Country Link
US (1) US9703730B2 (ja)
JP (1) JP6295700B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10042692B1 (en) * 2015-09-29 2018-08-07 Xilinx, Inc. Circuit arrangement with transaction timeout detection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5996036A (en) * 1997-01-07 1999-11-30 Apple Computers, Inc. Bus transaction reordering in a computer system having unordered slaves
JP3990833B2 (ja) * 1998-12-11 2007-10-17 キヤノン株式会社 通信制御方法及び装置
JP2000267992A (ja) 1999-03-15 2000-09-29 Matsushita Electric Ind Co Ltd マルチバス制御装置
US6442631B1 (en) * 1999-05-07 2002-08-27 Compaq Information Technologies Group, L.P. Allocating system resources based upon priority
US6678271B1 (en) * 1999-07-12 2004-01-13 Nortel Networks Limited High performance system and method having a local bus and a global bus
US6654837B1 (en) 1999-12-28 2003-11-25 Intel Corporation Dynamic priority external transaction system
US6832308B1 (en) * 2000-02-15 2004-12-14 Intel Corporation Apparatus and method for instruction fetch unit
US7209476B1 (en) * 2001-10-12 2007-04-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus for input/output port mirroring for networking system bring-up and debug
US7631132B1 (en) * 2004-12-27 2009-12-08 Unisys Corporation Method and apparatus for prioritized transaction queuing
JP4327081B2 (ja) 2004-12-28 2009-09-09 京セラミタ株式会社 メモリアクセス制御回路
US7302510B2 (en) * 2005-09-29 2007-11-27 International Business Machines Corporation Fair hierarchical arbiter
KR100700156B1 (ko) * 2006-02-22 2007-03-28 삼성전자주식회사 다이나믹 메모리의 리프레쉬 컨트롤러, 이를 포함하는반도체 시스템 및 다이나믹 메모리의 리프레쉬 제어 방법.
JP4979289B2 (ja) * 2006-07-21 2012-07-18 日立オートモティブシステムズ株式会社 画像処理装置
JP2012027577A (ja) 2010-07-21 2012-02-09 Kyocera Mita Corp バス間接続装置,画像処理装置

Also Published As

Publication number Publication date
US9703730B2 (en) 2017-07-11
JP2015153012A (ja) 2015-08-24
US20150227475A1 (en) 2015-08-13

Similar Documents

Publication Publication Date Title
JP4778199B2 (ja) データ転送装置及びデータ転送方法
US6108743A (en) Technique for performing DMA including arbitration between a chained low priority DMA and high priority DMA occurring between two links in the chained low priority
JP2011150397A (ja) バス調停装置
JP2010282405A (ja) データ処理システム
US9984014B2 (en) Semiconductor device
CN115309321A (zh) 用于融合命令的原子处理的方法和存储器设备
JP5057360B2 (ja) 半導体装置、データ処理装置、及び記憶装置へのアクセス方法
US7213095B2 (en) Bus transaction management within data processing systems
JP2011232917A (ja) 半導体集積回路、及びリクエスト制御方法
JP4642531B2 (ja) データ要求のアービトレーション
JP6295700B2 (ja) 調停回路及び調停回路の処理方法
US20070101032A1 (en) Bus arbitration circuit and bus arbitration method
US20080147906A1 (en) DMA Transferring System, DMA Controller, and DMA Transferring Method
JPH0793274A (ja) データ転送方式及びデータ転送装置
JP5239769B2 (ja) リクエスト順序制御システム、リクエスト順序制御方法およびリクエスト順序制御プログラム
JP4151362B2 (ja) バス調停方式、データ転送装置、及びバス調停方法
US20160292093A1 (en) Bus system including bridge circuit for connecting interlock bus and split bus
JP4327081B2 (ja) メモリアクセス制御回路
JP2006285872A (ja) マルチcpuシステム
JP2009003633A (ja) 情報処理装置
JP2000132503A (ja) データ転送装置
US20100153610A1 (en) Bus arbiter and bus system
JP4314230B2 (ja) 高速シフトタイプバッファ用システム及び方法
JP5428653B2 (ja) メモリアクセス処理装置及び方法
JP2006053613A (ja) データ転送制御装置及びデータ転送制御方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20150612

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171031

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171114

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180109

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180205

R150 Certificate of patent or registration of utility model

Ref document number: 6295700

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150