[go: up one dir, main page]

JP6992295B2 - 電子装置 - Google Patents

電子装置 Download PDF

Info

Publication number
JP6992295B2
JP6992295B2 JP2017135525A JP2017135525A JP6992295B2 JP 6992295 B2 JP6992295 B2 JP 6992295B2 JP 2017135525 A JP2017135525 A JP 2017135525A JP 2017135525 A JP2017135525 A JP 2017135525A JP 6992295 B2 JP6992295 B2 JP 6992295B2
Authority
JP
Japan
Prior art keywords
bus
reset
bus bridge
memory
master circuit
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
JP2017135525A
Other languages
English (en)
Other versions
JP2019020766A (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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2017135525A priority Critical patent/JP6992295B2/ja
Priority to CN201810305269.9A priority patent/CN109240955B/zh
Priority to US16/020,091 priority patent/US10983927B2/en
Publication of JP2019020766A publication Critical patent/JP2019020766A/ja
Application granted granted Critical
Publication of JP6992295B2 publication Critical patent/JP6992295B2/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/1668Details of memory controller
    • 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/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • 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/4027Coupling between buses using bus bridges
    • 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/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/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/78Architectures of general purpose stored program computers comprising a single central processing unit
    • G06F15/7807System on chip, i.e. computer system on a single chip; System in package, i.e. computer system on one or more chips in a single package

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Debugging And Monitoring (AREA)
  • Bus Control (AREA)

Description

本発明は、電子装置に関する。
電子装置では、演算手段であるプロセッサやメモリ等の種々の電子部品がバスを介して接続されている。バス・システムにおいて、負荷の増大や障害の発生等に起因して転送中のデータを消失する場合がある。この場合、バス・システムをリセットして復旧させることが行われる。
ところで、バスの使用効率の向上を図る手段として、スプリット・トランザクション(Split Transaction)がある。これは、あるデバイスのデータ転送処理を開始した際に、その応答待ちの時間、処理を保留にして、他のデバイスのデータ転送処理を行うことを許容する方式である。一つのデバイスがバスを長時間占有しないようにすることで、バスの使用効率を向上させ得る。
特許文献1に記載された従来技術は、スプリット・トランザクションのプロトコルを用いるインタフェースを介してデータ転送を行うデータ通信装置において、DMAC(Direct Memory Access Controller)の設定情報から先行してメモリアクセス要求を発行し、対象DMACの正常及び異常終了により先行リードアクセスしていたデータを無効化することにより、転送レートにおける高い保証値を達成するものである。
特開2011-53895号公報
バス・システムにおいて、転送中のデータを消失した場合、データ消失の影響を受けるのがバス・システムの一部である場合にも、バス・システム全体をリセットして復旧させるとすると、システム全体でストールが発生してしまうため、動作効率の低下を招く。
特に、スプリット・トランザクションに対応したバス(以下、スプリット・バスと呼ぶ)では、一つのデータ転送処理の完了を待たずに他のデータ転送処理を実行するため、データの転送順を保障しない複雑な制御が行われる。このため、バス・システムに不具合が発生した場合に、対応すべき箇所を特定して部分的なリセット制御を行うことが困難であった。
本発明は、バス・システムに不具合が発生した場合に、対応すべき箇所を特定し、システム全体が正常に動作しなくなる危険性を低減することを目的とする。
請求項1に係る発明は、
メモリと、
前記メモリに対してデータの読み書きを行う複数のマスタ回路と、
バッファを有して複数の命令およびデータを保持し、調停しながら伝送する伝送路と、
前記伝送路において前記バッファが溢れたことを検知する検知手段と、
前記伝送路および複数の前記マスタ回路に対するリセット制御を行うリセット制御手段と、を備え
前記リセット制御手段は、前記検知手段により前記バッファの溢れが検知された箇所からマスタ回路側に位置する伝送路部分およびマスタ回路をリセットし、他の伝送路部分および他のマスタ回路をリセットしないことを特徴とする、電子装置である。
請求項2に係る発明は、請求項1に記載の電子装置において、
前記検知手段は、前記伝送路における特定箇所において、マスタ回路側からメモリ側へ向かうデータの数とメモリ側からマスタ回路側へ向かうデータの数とが整合しない場合に、バッファの溢れが発生したと判断することを特徴とする。
請求項3に係る発明は、請求項2に記載の電子装置において、
前記検知手段は、少なくとも前記伝送路上に設けられるバス・ブリッジにおいて、バスごとに、マスタ回路側からメモリ側へ向かうデータの数およびメモリ側からマスタ回路側へ向かうデータの数を数え、整合性を判断することを特徴とする。
請求項4に係る発明は、請求項1に記載の電子装置において、
前記リセット制御手段は、リセットしない前記他の伝送路部分および前記他のマスタ回路の動作を停止させた後、リセット対象の前記伝送路部分およびマスタ回路をリセットすることを特徴とする。
請求項5に係る発明は、
メモリと、
命令およびデータを伝送するバスと、
複数の前記バスを接続するバス・ブリッジと、
前記バスおよび前記バス・ブリッジを介して前記メモリに接続されるマスタ回路と、
前記バスおよび前記バス・ブリッジのいずれかにおいて命令が消失した場合に、当該命令が消失した場所よりもマスタ回路側に位置するバス、バス・ブリッジおよびマスタ回路に対するリセット制御を行うリセット制御回路と、
を備えることを特徴とする、電子装置である。
請求項6に係る発明は、請求項5に記載の電子装置において、
前記バスおよび前記バス・ブリッジを含む伝送路は、複数の命令およびデータをバッファし、調停しながら伝送するバスを含むことを特徴とする。
請求項7に係る発明は、請求項6に記載の電子装置において、
前記バスおよび前記バス・ブリッジを含む伝送路は、複数の前記マスタ回路側からのバスを統合して、前記メモリ側の単一のバスと接続するバス・ブリッジを含むことを特徴とする。
請求項8に係る発明は、請求項5に記載の電子装置において、
前記リセット制御回路は、リセット対象外のバス、バス・ブリッジおよびマスタ回路の動作を停止させた後、リセット対象のバス、バス・ブリッジおよびマスタ回路をリセットすることを特徴とする。
請求項9に係る発明は、請求項8に記載の電子装置において、
前記マスタ回路の設定を行う設定手段をさらに備え、
前記リセット制御回路は、リセット対象のバス、バス・ブリッジおよびマスタ回路に対してリセット制御を行った後、動作を停止させたリセット対象外のマスタ回路およびリセット制御を行ったマスタ回路を前記設定手段に再設定させて動作を再開させることを特徴とする。
請求項1の発明によれば、バッファ溢れの影響を受ける部分を具体的に特定せず、バス・システム全体に対してリセット制御を行う構成と比較して、リセット制御に伴うバス・システム全体の動作効率の低下を低減させることができる。
請求項2の発明によれば、転送されるデータを監視して消失したか否かを調べる構成と比較して、簡単な構成で容易に実装することができる。
請求項3の発明によれば、複数のバスがバス・ブリッジで統合される複雑な構成のバス・システムであっても、バッファ溢れが発生した個所を具体的に特定することができる。
請求項4の発明によれば、リセットしない伝送路部分およびマスタ回路の動作を停止させない構成と比較して、リセット制御中に新たなデータ転送を行って不測の影響が生じてしまうことを回避することができる。
請求項5の発明によれば、バス・システム全体に対してリセット制御を行う構成と比較して、リセット制御に伴うバス・システム全体の動作効率の低下を低減させることができる。
請求項6の発明によれば、命令およびデータをバッファし、調停しながら伝送する複雑な制御が行われるバスに対しても、命令の消失による影響を受ける部分を特定してリセット制御を行うことができるため、バス・システム全体の動作効率の低下を低減することができる。
請求項7の発明によれば、マスタ回路側からメモリ側へ向けてバスが集約されることにより命令の消失が発生しやすいバス・システムにおいても、命令の消失による影響を受ける部分を特定してリセット制御を行うことができるため、バス・システム全体の動作効率の低下を低減することができる。
請求項8の発明によれば、リセット対象外のバス、バス・ブリッジおよびマスタ回路の動作を停止させない構成と比較して、リセット制御中に新たなデータ転送を行って不測の影響が生じてしまうことを回避することができる。
請求項9の発明によれば、マスタ回路を再設定せずに動作を再開させる構成と比較して、複数のマスタ回路を正常に調停し、データ転送を行うことができる。
本実施形態が適用されるバス・システムの構成例を示す図である。 バス・システムにおけるバッファ・オーバーフローの検知方法を説明する図である。 図2に示すバス・システムにおいて、要求(REQ)および応答(ACK)の伝達の様子を示す図表であり、図3(A)は、DMACからバス・ブリッジを介してメモリへ要求(REC)を伝送する際の通常の動作例を示す図であり、図3(B)は、異常発生時の動作例を示す図である。 バス制御部によるリセット制御の動作におけるリセット実行の事前動作を示すシーケンス図である。 バス制御部によるリセット制御の動作におけるリセット実行以降の動作を示すシーケンス図である。 他の実施形態によるバス・システムの構成例を示す図である。
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
<本実施形態による電子装置の構成例>
SoC(System on a Chip)等のチップ上に構成される集積回路で用いられるオンチップ・バス(On-chip Bus)におけるスプリット・バスとしては、AXI(Advanced eXtensible Interface)バスやOCP(Open Core Protocol)バス等がある。本実施形態では、AXIバスを用いた例について説明するが、本発明は他のスプリット・バスに対しても適用可能である。
図1は、本実施形態が適用されるバス・システムの構成例を示す図である。図1に示す本実施形態のバス・システム100は、複数のDMA(Direct Memory Access)マスタ10から複数段のバス20およびバス・ブリッジ30を経てメモリ40にアクセスする構成となっている。メモリ40としては、RAM(例えば、DDR-SDRAM(Double-Data-Rate Synchronous Dynamic Random Access Memory)等)およびRAMコントローラ(例えば、DDR-SDRAM MEMORY CONTROLLER+PHY)等)が用いられる。また、図1において、バス20には、BVCI(Basic Virtual Component Interface)バス21と、AXIバス22とが含まれている。そして、バス・ブリッジ30には、BVCIバス21とAXIバス22とを中継するバス・ブリッジ31と、AXIバス22どうしを中継するバス・ブリッジ32とが含まれる。また、各DMAマスタ10およびバス・ブリッジ30には、データ転送の状態を監視する監視装置50が設けられている。各監視装置50は、バス・システム100の動作を制御するバス制御部60に接続されている。なお、図1において、DMAマスタ10およびバス・ブリッジ31、32には、添え字(a、b等)が記されているが、個々の構成要素を区別しない場合は、上記のように添え字を付さずに記載する。なお、特に図示していないが、図1に示すバス・システム100におけるDMAマスタ10の設定(DMAの停止や再開)を行うCPU(Central Processing Unit)が存在する。
DMAマスタ10は、メモリ40に対してDMAによるデータの読み書きを行うマスタ回路である。図1に示す例では、DMAマスタ10は、各種の動作(データ処理や制御)を行うモジュール11と、DMAによるメモリ40へのアクセスを行うためのDMAC12と、監視装置50とを備える。DMAマスタ10に設けられた監視装置50は、DMAマスタ10におけるデータ転送(DMA転送)を監視し、DMAマスタ10が発行(送信)した要求(REQ)および受信した応答(ACK)を数える。なお、図1では、一部のDMAマスタ10が省略されており、2つのDMAマスタ10aおよびDMAマスタ10bが記載されている。
バス20は、DMAマスタ10とメモリ40との間におけるデータ(命令および読み書き対象のデータ)の伝送に用いられる。バス・ブリッジ30は、バス20どうしを接続する。上述したように図1に示す例では、バス20として、BVCIバス21とAXIバス22とが用いられている。そして、例えばDMAマスタ10aは、BVCIバス21、バス・ブリッジ31a、AXIバス22、バス・ブリッジ32a、AXIバス22、バス・ブリッジ32cおよびAXIバス22を介してメモリ40に接続されている。
バス・ブリッジ30は、異なるバスどうしを接続したり、接続したバスにおけるデータ転送の調停を行ったりする。図1に示す例では、BVCIバス21とAXIバス22とを接続するバス・ブリッジ31と、AXIバス22どうしを接続するバス・ブリッジ32とを含む。各バス・ブリッジ31、32は、監視装置50を備える。バス・ブリッジ31、32に設けられた監視装置50は、バス・ブリッジ31、32におけるデータ転送を監視し、送受信された要求(REQ)および応答(ACK)を数える。なお、図1では、バス・ブリッジ32bに対するDMAマスタ10側の構成の記載を省略している。
ここで、本実施形態のバス・システム100におけるバス20およびバス・ブリッジ30の接続構成は、図1に示す例に限定されない。例えば、図1に示す例において、DMAマスタ10a、10bからメモリ40に至る伝送路は、いずれも4本のバス20と3つのバス・ブリッジ30とで構成されるが、これとは異なる数のバス20およびバス・ブリッジ30を介在させた構成としても良い。また、DMAマスタ10に接続されているバス20は、BVCIバス21となっているが、このバス20がAXIバス22である構成としても良い。一般に、複数のDMAマスタ10によるDMAのバス・システム100では、アクセス先のメモリ40に近いほど伝送路が統合されて集約されるため、伝送効率の良いバス20が用いられる。反対に、DMAマスタ10に近い位置では、メモリ40に近い位置ほど伝送効率の良いバス20を用いなくても良い。図1に示す例では、そのような場合の一例として、DMAマスタ10に接続されたバス20のみが、AXIバス22よりも伝送効率の悪いBVCIバス21が用いられた構成となっている。
監視装置50は、上述したように、DMAマスタ10およびバス・ブリッジ30に設けられ、バス・システム100におけるデータ転送を監視する。図1において、各バス・ブリッジ30に1つずつの監視装置50が示されているが、監視装置50によるデータ転送の監視は、バス20ごとに行われる。例えば、図1に示すバス・ブリッジ32aの監視装置50は、DMAマスタ10側のバス・ブリッジ31a、31bおよびメモリ40側のバス・ブリッジ32cと接続するための3本のAXIバス22の各々について、データ転送を監視する。また、特に図示しないが、多くの場合、バス・システム100には、バス・システム100の全体におけるデータ転送を調停するバス・アービタが設けられる。この場合、バス・アービタに対しても監視装置50が設けられ、バス・アービタにおいて調停されるデータ転送が監視装置50により監視される。
バス制御部60は、監視装置50からデータ転送の監視情報(転送されたデータ(要求および応答)の計数値)を取得し、取得した計数値に基づいて、バス・システム100のいずれかの場所で要求や応答に係るデータが消失したか否かを判断する。また、バス制御部60は、データの消失を検知した場合に、この事象に関わるDMAマスタ10やバス・ブリッジ30のリセット制御を行うリセット制御手段(回路)の一例である。
バス・システム100では、複数のDMAマスタ10から発行される要求等のデータを調停しながらメモリ40へ伝送するため、バッファを設けてバス・システム100内で一時的にデータを保持することが行われる。しかし、用意されたバッファの容量を超えるデータが伝送されると、バッファ・オーバーフロー(データ溢れ)を起こし、データを消失することが起こり得る。AXIバス22のようなスプリット・バスでは、ある要求に対する応答を待たずに次の要求を伝送したり、読み出し要求と書き込み要求とを同時に伝送したりするために複雑な調停を行っている。そのため、スプリット・トランザクションでないバスよりもバッファ・オーバーフローが発生する危険度が高い。そこで、本実施形態では、監視装置50により取得した監視情報に基づき、バス制御部60が、バッファ・オーバーフローの発生を検知すると共に、バッファ・オーバーフローが発生した場所を特定して、バス・システム100を復旧させるためのリセット制御を行う。したがって、監視装置50およびバス制御部60は、伝送路であるバス・システム100においてバッファが溢れたことを検知する検知手段として機能する。
<バッファ・オーバーフローの検知>
バス制御部60によるバッファ・オーバーフローの検知は、次のようにして行われる。バス制御部60は、各DMAマスタ10および各バス・ブリッジ30の監視装置50の監視情報に基づき、バス20ごとに、そのバス20を介して伝送された要求と応答の数を比較する。また、バス制御部60は、そのバス20を介して伝送されたデータの送信側および受信側のデータ数を比較する。また、バス制御部60は、各バス・ブリッジ30において受信データと送信データの数を比較する。そして、バス制御部60は、これらの比較結果に基づき、バス・システム100におけるバッファ・オーバーフローが発生した場所を特定する。すなわち、バス制御部60は、DMAマスタ10側からメモリ40側へ向かうデータの数と、メモリ40側からDMAマスタ10側へ向かうデータの数が整合しない場合に、バッファ・オーバーフローが発生したと判断する。
具体例を挙げてさらに説明する。一例として、バス・ブリッジ31aとバス・ブリッジ32aとの間のAXIバス22に着目する。このAXIバス22は、DMAマスタ10aから発行された命令をメモリ40へ伝送する伝送路の一部である。この例において、バス制御部60は、バス・ブリッジ31aが送信した要求の数と受信した応答の数との差分を求める。そして、要求の数よりも応答の数の方が少なければ、バス制御部60は、バス・ブリッジ31aよりもメモリ40側でバッファ・オーバーフローが発生し、要求または応答が消失したと判断する。
また、バス制御部60は、バス・ブリッジ32aが受信した要求の数と送信した応答の数との差分を求める。そして、要求の数よりも応答の数の方が少なければ、バス制御部60は、バス・ブリッジ32aよりもメモリ40側でバッファ・オーバーフローが発生し、要求または応答が消失したと判断する。
また、バス制御部60は、バス・ブリッジ31aが送信した要求の数とバス・ブリッジ32aが受信した要求の数との差分、および、バス・ブリッジ32aが送信した応答の数とバス・ブリッジ31aが受信した応答の数との差分を求める。そして、バス・ブリッジ31aが送信した要求の数よりもバス・ブリッジ32aが受信した要求の数の方が少なければ、バス制御部60は、バス・ブリッジ31aとバス・ブリッジ32aとの間のAXIバス22を伝送中に要求が消失したと判断する。同様に、バス・ブリッジ32aが送信した応答の数よりもバス・ブリッジ31aが受信した応答の数の方が少なければ、バス制御部60は、バス・ブリッジ31aとバス・ブリッジ32aとの間のAXIバス22を伝送中に応答が消失したと判断する。
また、バス制御部60は、各バス・ブリッジ30においてDMAマスタ10側から受信した要求の数とメモリ40側へ送信した要求の数との差分を求める。同様に、メモリ40側から受信した応答の数とDMAマスタ10側へ送信した応答の数との差分を求める。そして、受信した要求の数よりも送信した要求の数の方が少なければ、バス制御部60は、そのバス・ブリッジ30内でバッファ・オーバーフローが発生し、要求が消失したと判断する。また、受信した応答の数よりも送信した応答の数の方が少なければ、バス制御部60は、そのバス・ブリッジ30内でバッファ・オーバーフローが発生し、応答が消失したと判断する。
簡単なモデルを用いて、バッファ・オーバーフローの検知について、さらに説明する。図2は、バス・システム100におけるバッファ・オーバーフローの検知方法を説明する図である。図2に示す例では、バス・システム100を、DMAC12(DMAマスタ10)、バス・ブリッジ30a、バス・ブリッジ30b、メモリ40およびバス20で構成された簡単なモデルとしている。
図3は、図2に示すバス・システム100において、要求(REQ)および応答(ACK)の伝達の様子を示す図表である。図3(A)は、DMAC12からバス・ブリッジ30aおよび30bを介してメモリ40へ要求(REC)を伝送する際の通常の動作例を示す図であり、図3(B)は、異常発生時の動作例を示す図である。図3において、DMAC12から数えて1段目のバス・ブリッジ30aをBB-aと、2段目のバス・ブリッジ30bをBB-bと、適宜略記している。図3に示す例では、DMAC12、バス・ブリッジ30aおよびバス・ブリッジ30bの各構成要素において監視装置50により監視される、要求(REQ)および応答(ACK)の信号状態の変化が示されている。図3において、各信号状態は、初期状態を値「0」とし、信号に関する動作(信号の発生または受け取り(図では「受取」と記載))が起こった時点(太枠の位置)から値「1」に変化する。
図3(A)を参照して通常の動作例について説明する。まず、DMAC12が、要求(REQ)を発行し、バス20を介してバス・ブリッジ30aへ送られる。図3(A)では、DMAC12の信号「REQ」において、項目「DMAC REQ発生」から値「1」となっている。発生した要求(REQ)は、バス20を伝送してバス・ブリッジ30aのマスタ側端子(DMAマスタ10側の端子)に受信される。図3(A)では、バス・ブリッジ30a(BB-a)のマスタ側の信号「REQ」において、項目「BB-aマスタ側 REQ受取」から値「1」となっている。バス・ブリッジ30aは、信号を受け取ると、信号の送信元であるDMAC12に応答(ACK)を返送する。図3(A)では、バス・ブリッジ30aのマスタ側の信号「ACK」において、項目「BB-aマスタ側 ACK発生」から値「1」となっている。また、DMAC12の信号「ACK」において、項目「DMAC ACK受取」から値「1」となっている。
次に、バス・ブリッジ30aは、受信した要求(REQ)を、メモリ40側の端子からバス20を介してバス・ブリッジ30bへ送る。図3(A)では、バス・ブリッジ30a(BB-a)のメモリ側の信号「REQ」において、項目「BB-aメモリ側 REQ発生」から値「1」となっている。バス・ブリッジ30aから送られた要求(REQ)は、バス20を伝送してバス・ブリッジ30bのマスタ側端子に受信される。図3(A)では、バス・ブリッジ30b(BB-b)のマスタ側の信号「REQ」において、項目「BB-bマスタ側 REQ受取」から値「1」となっている。バス・ブリッジ30bは、信号を受け取ると、信号の送信元であるバス・ブリッジ30aに応答(ACK)を返送する。図3(A)では、バス・ブリッジ30bのマスタ側の信号「ACK」において、項目「BB-bマスタ側 ACK発生」から値「1」となっている。また、バス・ブリッジ30aのメモリ側の信号「ACK」において、項目「BB-aメモリ側 ACK受取」から値「1」となっている。
次に、バス・ブリッジ30bは、受信した要求(REQ)を、メモリ40側の端子からバス20を介してメモリ40へ送る。図3(A)では、バス・ブリッジ30b(BB-b)のメモリ側の信号「REQ」において、項目「BB-bメモリ側 REQ発生」から値「1」となっている。要求(REQ)がメモリ40に到達すると、メモリ40からバス・ブリッジ30bへ応答(ACK)が返送される。図3(A)では、バス・ブリッジ30b(BB-b)のメモリ側の信号「ACK」において、項目「BB-bメモリ側 ACK受取」で値「1」となっている。以上によって、DMAC12から発行された要求(REQ)がメモリ40に到達したことがわかる。
次に、図3(B)を参照して異常発生時の動作例について説明する。図3(B)に示す動作では、図3(A)に示した動作例と同様にDMAC12から要求(REQ)が発行されてメモリ40へ向けて伝送されるが、バス・ブリッジ30bにおいてバッファ・オーバーフローが発生した場合について説明する。DMAC12で発行された要求(REQ)がバス・ブリッジ30bに到達するまでの動作は図3(A)を参照して上述した動作と同様であるので、説明を省略する。
図3(B)において、バス・ブリッジ30bは、要求(REQ)を受け取ると、信号の送信元であるバス・ブリッジ30aに応答(ACK)を返送する。図3(B)では、バス・ブリッジ30bのマスタ側の信号「ACK」において、項目「BB-bマスタ側 ACK発生」から値「1」となっている。また、バス・ブリッジ30aのメモリ側の信号「ACK」において、項目「BB-aメモリ側 ACK受取」から値「1」となっている。ここで、バス・ブリッジ30bにおいてバッファ・オーバーフローが発生したものとする。そのため、バス・ブリッジ30bからメモリ40への要求(REQ)の送信は行われない。図3(B)では、バス・ブリッジ30b(BB-b)のメモリ側の信号「REQ」が、項目「BB-bメモリ側 REQ発生」(図中破線の太枠)においても値「0」のままとなっている。要求(REQ)がメモリ40へ送信されないため、メモリ40からバス・ブリッジ30bへの応答(ACK)も返送されない。したがって、図3(B)では、バス・ブリッジ30b(BB-b)のメモリ側の信号「ACK」が、項目「BB-bメモリ側 ACK受取」においても値「0」のままとなっている。
以上のようにして、バス・ブリッジ30b(BB-b)のメモリ側の端子以降の伝送路で信号状態が変化しないことから、信号「REQ」は、バス・ブリッジ30bの内部バッファで発生したバッファ・オーバーフローにより消失したことがわかる。なお、バス・システム100においては、各信号を調停しながら伝送するため、信号が伝送路における前段の監視位置で検知されてから後段の監視位置で検知されるまでに若干の時間差がある。そこで、例えば、信号状態の変化が検知された監視位置の後段の監視位置に関して、調停に要する時間を経過した後に信号状態が変化していない場合に、バッファ・オーバーフローが発生したと判断する。
AXIバス22では、上述したように、要求(REQ)および応答(ACK)が別個の伝送路(チャネル)を介して転送される。また、AXIバス22では、読み出し要求および書き込み要求に対して、読み出し命令(アドレス)と読み出しデータ、書き込み命令(アドレス)と書き込みデータが、各々、別個の伝送路(チャネル)を介して転送される。そのため、これら各々の転送において、バッファ・オーバーフローが発生する可能性がある。図1に示すように、バス・システム100全体では、DMAマスタ10側からメモリ40へ向かうに伴って伝送路が集約されていく。そのため、DMAマスタ10側からメモリ40へ向かう転送の流れにおいてバッファ・オーバーフローが発生しやすい。具体的には、読み出し命令、書き込み命令、書き込みデータ等である。特に、データの読み出しにおいては、DMAマスタ10から連続的に大量の要求が発行される場合があるため、他の転送と比較して、バッファ・オーバーフローが発生しやすい。データの書き込みにおいては、書き込み対象のデータの準備が全て整わないと書き込み要求を発行できないため、連続的に要求が発行されることは少ない(一つの要求が発行されてから、次の要求が発行されるまでに間隔が空くことが多い)。したがって、データの読み出しよりもバッファ・オーバーフローは発生しにくい。しかしながら、本実施形態の監視装置50およびバス制御部60によれば、これらの転送の種類に関わらず、バッファ・オーバーフローの発生を検知し、発生場所を特定することができる。
<リセット制御>
次に、バス制御部60によるリセット制御について説明する。バス制御部60は、上記のようにして特定したバッファ・オーバーフローの発生個所に基づいて、バス・システム100を構成する伝送路のうち、このバッファ・オーバーフローの影響を受ける部分を特定する。そして、バス制御部60は、特定した伝送路部分に対して、動作を復旧させるためのリセット制御を行う。
再び図1を参照する。図1に示す構成例において、バス・ブリッジ32aでバッファ・オーバーフローが発生したものとする。この場合、バッファ・オーバーフローによる影響を受ける可能性があるのは、バッファ・オーバーフローが発生したバス・ブリッジ32aからDMAマスタ10側にある伝送路部分である。すなわち、この伝送路部分を用いるDMAマスタ10(図1に示す例ではDMAマスタ10aおよび10b)は、発行した要求または受け取るべき応答を喪失する可能性がある。したがって、図1に示す構成でバス・ブリッジ32aにバッファ・オーバーフローが発生した場合、その影響を受ける伝送路部分は、図1において破線で示した領域Aの部分となる。そして、この領域Aに含まれるDMAC12(DMAマスタ10)およびバス・ブリッジ30に対してリセット制御が行われる。
図4および図5は、バス制御部60によるリセット制御の動作を示すシーケンス図である。図4は、リセット実行の事前動作を示す図であり、図5は、リセット実行以降の動作を示す図である。図4および図5において、CPU70は、各種のデータ処理や制御を行うと共に、バス・システム100におけるDMAマスタ10に対する設定(DMA転送の停止や再開)を行う設定手段として機能する。非対象DMAC12は、リセット制御の対象外の(図1に示す例では領域Aの外に位置する)DMAC12である。対象DMAC12は、リセット制御の対象の(図1に示す例では領域A内に位置する)DMAC12である。対象バス・ブリッジ30は、リセット制御の対象の(図1に示す例では領域A内に位置する)バス・ブリッジ30である。
図4に示すように、バス制御部60は、監視装置50から取得した監視情報に基づき、バッファ・オーバーフローが発生したことを検知すると(S101)、リセット制御を行う範囲を特定する(S102)。そして、バス制御部60は、CPU70に対して割り込み処理を行って、バッファ・オーバーフローが発生したことを通知する(S103)。上述したように、リセット制御を行う範囲は、発生したバッファ・オーバーフローの影響を受ける範囲であり、そのバッファ・オーバーフローが発生した場所からDMAC12(DMAマスタ10)側の伝送路部分である。バッファ・オーバーフローの発生をCPU70に通知するのは、後の動作で、リセット制御後のDMAC12やリセット制御の対象外のDMAC12の動作制御を行うためである。
次に、バス制御部60は、非対象DMAC12に対してDMA転送の停止を指示する(S104)。これは、リセット制御中に、リセット制御の対象外のDMAC12からDMAによるデータ転送が行われてしまうことを回避するためである。バス制御部60からの指示を受け付けた非対象DMAC12においてDMA転送が停止されると、各非対象DMAC12からバス制御部60へ、DMA転送を停止したことを通知する。
また、バス制御部60は、対象バス・ブリッジ30に対し、新規要求の発行および受信をマスクするように指示する(S105)。ここで、発行をマスクするとは、新規の要求を後段のバス・ブリッジ30に送信しないこと、受信をマスクするとは、新規の要求を受信しても応答を返送しないことである。バス制御部60からの指示を受け付けた対象バス・ブリッジ30において新規要求の発行および受信のマスクが完了すると、各対象バス・ブリッジ30からバス制御部60へ、マスクが完了したことを通知する。
バス制御部60は、非対象DMAC12および対象バス・ブリッジ30から通知を受け取ると、次に、対象DMAC12および対象バス・ブリッジ30をリセットさせ、続いてリセットを解除させる(図5、S106)。そして、バス制御部60は、対象バス・ブリッジ30に対し、動作再開を指示し(S107)、さらに、新規要求の発行および受信のマスクを解除するように指示する(S108)。バス制御部60からの指示を受け付けた対象バス・ブリッジ30において新規要求の発行および受信のマスクが解除されると、各対象バス・ブリッジ30からバス制御部60へ、マスクを解除したことを通知する。
また、バス制御部60は、CPU70に対して割り込み処理を行って、リセット制御が終了したことを通知すると共に、DMAC12(対象DMAC12および非対象DMAC12)によるDMA転送の再開を依頼する(S109)。そして、バス制御部60は、再開されるDMA転送に備えてバッファ・オーバーフローの検知のための操作(監視装置50から取得する監視情報の解析)を再開する(S110)。CPU70は、バス制御部60からの依頼を受け付けて各DMAC12によるDMA転送を再開させる。
<他の実施形態>
図1に示した構成例では、各DMAマスタ10および各バス・ブリッジ30に設けた監視装置50がデータ転送の状態を示す監視情報を取得し、バス制御部60が監視情報を解析してバッファ・オーバーフローの発生を検知し、発生個所を特定した。これに対し、各DMAマスタ10および各バス・ブリッジ30に、バッファ・オーバーフローの発生を検知する検知装置を設ける構成としても良い。
図6は、上記のような他の実施形態によるバス・システムの構成例を示す図である。図6に示す構成例において、DMAマスタ10、バス20、バス・ブリッジ30およびメモリ40およびその接続関係は、図1に示した構成例と同様とする。図6に示す実施形態では、各バス・ブリッジ30に検知装置80が設けられている。検知装置80は、自身が設けられたバス・ブリッジ30のバッファの状態またはデータ転送の状態を監視し、バッファ・オーバーフローが発生した場合にこれを検知する。
また、図6に示す構成例において、各検知装置80は、リセット制御部90に接続されている。検知装置80は、バッファ・オーバーフローの発生を検知すると、リセット制御部90に通知する。リセット制御部90は、検知装置80からの通知を受け取ると、発生したバッファ・オーバーフローの影響を受ける範囲を特定し、特定した範囲内のDMAマスタ10およびバス・ブリッジ30に対するリセット制御を行う。具体的には、バッファ・オーバーフローの検知の通知を送信した検知装置80が設けられたバス・ブリッジ30からDMAC12(DMAマスタ10)側の伝送路部分のDMAマスタ10およびバス・ブリッジ30が、リセット制御の対象となる。
以上、本発明の実施形態について説明したが、本発明の技術的範囲は上記実施の形態には限定されない。本発明の技術思想の範囲から逸脱しない様々な変更や構成の代替は、本発明に含まれる。
10…DMAマスタ、11…モジュール、12…DMAC(Direct Memory Access Controller)、20…バス、21…BVCI(Basic Virtual Component Interface)バス、22…AXI(Advanced eXtensible Interface)バス、30、31、32…バス・ブリッジ、40…メモリ、50…監視装置、60…バス制御部、70…CPU(Central Processing Unit)、80…検知装置、90…リセット制御部、100…バス・システム

Claims (9)

  1. メモリと、
    前記メモリに対してデータの読み書きを行う複数のマスタ回路と、
    バッファを有して複数の命令およびデータを保持し、調停しながら伝送する伝送路と、
    前記伝送路において前記バッファが溢れたことを検知する検知手段と、
    前記伝送路および複数の前記マスタ回路に対するリセット制御を行うリセット制御手段と、を備え
    前記リセット制御手段は、前記検知手段により前記バッファの溢れが検知された箇所からマスタ回路側に位置する伝送路部分およびマスタ回路をリセットし、他の伝送路部分および他のマスタ回路をリセットしないことを特徴とする、電子装置。
  2. 前記検知手段は、前記伝送路における特定箇所において、マスタ回路側からメモリ側へ向かうデータの数とメモリ側からマスタ回路側へ向かうデータの数とが整合しない場合に、バッファの溢れが発生したと判断することを特徴とする、請求項1に記載の電子装置。
  3. 前記検知手段は、少なくとも前記伝送路上に設けられるバス・ブリッジにおいて、バスごとに、マスタ回路側からメモリ側へ向かうデータの数およびメモリ側からマスタ回路側へ向かうデータの数を数え、整合性を判断することを特徴とする、請求項2に記載の電子装置。
  4. 前記リセット制御手段は、リセットしない前記他の伝送路部分および前記他のマスタ回路の動作を停止させた後、リセット対象の前記伝送路部分およびマスタ回路をリセットすることを特徴とする、請求項1に記載の電子装置。
  5. メモリと、
    命令およびデータを伝送するバスと、
    複数の前記バスを接続するバス・ブリッジと、
    前記バスおよび前記バス・ブリッジを介して前記メモリに接続されるマスタ回路と、
    前記バスおよび前記バス・ブリッジのいずれかにおいて命令が消失した場合に、当該命令が消失した場所よりもマスタ回路側に位置するバス、バス・ブリッジおよびマスタ回路に対するリセット制御を行うリセット制御回路と、
    を備えることを特徴とする、電子装置。
  6. 前記バスおよび前記バス・ブリッジを含む伝送路は、複数の命令およびデータをバッファし、調停しながら伝送するバスを含むことを特徴とする、請求項5に記載の電子装置。
  7. 前記バスおよび前記バス・ブリッジを含む伝送路は、複数の前記マスタ回路側のバスを統合して、前記メモリ側の単一のバスと接続するバス・ブリッジを含むことを特徴とする、請求項6に記載の電子装置。
  8. 前記リセット制御回路は、リセット対象外のバス、バス・ブリッジおよびマスタ回路の動作を停止させた後、リセット対象のバス、バス・ブリッジおよびマスタ回路をリセットすることを特徴とする、請求項5に記載の電子装置。
  9. 前記マスタ回路の設定を行う設定手段をさらに備え、
    前記リセット制御回路は、リセット対象のバス、バス・ブリッジおよびマスタ回路に対してリセット制御を行った後、動作を停止させたリセット対象外のマスタ回路およびリセット制御を行ったマスタ回路を前記設定手段に再設定させて動作を再開させることを特徴とする、請求項8に記載の電子装置。
JP2017135525A 2017-07-11 2017-07-11 電子装置 Active JP6992295B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2017135525A JP6992295B2 (ja) 2017-07-11 2017-07-11 電子装置
CN201810305269.9A CN109240955B (zh) 2017-07-11 2018-04-08 电子装置
US16/020,091 US10983927B2 (en) 2017-07-11 2018-06-27 Electronic device for recovering from buffer overrun in a bus system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2017135525A JP6992295B2 (ja) 2017-07-11 2017-07-11 電子装置

Publications (2)

Publication Number Publication Date
JP2019020766A JP2019020766A (ja) 2019-02-07
JP6992295B2 true JP6992295B2 (ja) 2022-01-13

Family

ID=64998937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017135525A Active JP6992295B2 (ja) 2017-07-11 2017-07-11 電子装置

Country Status (3)

Country Link
US (1) US10983927B2 (ja)
JP (1) JP6992295B2 (ja)
CN (1) CN109240955B (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316608A (ja) 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
US20120198117A1 (en) 2011-01-31 2012-08-02 Srinjoy Das System and Method for Improving Throughput of Data Transfers Using a Shared Non-Deterministic Bus
JP2015095780A (ja) 2013-11-12 2015-05-18 富士通株式会社 通信装置及びパケット制御方法
JP2016062166A (ja) 2014-09-16 2016-04-25 富士通株式会社 制御装置および制御方法
JP2016206891A (ja) 2015-04-21 2016-12-08 株式会社ソシオネクスト アクセス遮断回路、半導体集積回路およびアクセス遮断方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2787980B2 (ja) * 1996-03-06 1998-08-20 ユナイテッド マイクロエレクトロニクス コーポレーション 誤り訂正仮想受信バッファ装置
US6438639B1 (en) * 1996-08-27 2002-08-20 International Business Machines Corporation Computer system bus network providing concurrent communication and connection transition of peripheral devices
JP3681587B2 (ja) * 1999-10-07 2005-08-10 三菱電機株式会社 セル分解装置、セル分解方法およびその方法をコンピュータに実行させるプログラムを記録したコンピュータ読み取り可能な記録媒体
US6829669B2 (en) * 2000-09-08 2004-12-07 Texas Instruments Incorporated Bus bridge interface system
GB0214669D0 (en) * 2002-06-26 2002-08-07 Ibm Method for maintaining data access during failure of a controller
US6990538B2 (en) * 2002-06-26 2006-01-24 Agilent Technologies, Inc. System comprising a state machine controlling transition between deskew enable mode and deskew disable mode of a system FIFO memory
WO2005096162A1 (ja) * 2004-03-18 2005-10-13 Matsushita Electric Industrial Co., Ltd. アービトレーション方法及び装置
JP2006113689A (ja) * 2004-10-12 2006-04-27 Fujitsu Ltd バスブリッジ装置およびデータ転送方法
CN100472496C (zh) * 2005-03-17 2009-03-25 富士通株式会社 数据传输装置
JP4908770B2 (ja) 2005-04-26 2012-04-04 キヤノン株式会社 情報処理装置及びその制御方法
US7457892B2 (en) * 2006-06-05 2008-11-25 Freescale Semiconductor, Inc. Data communication flow control device and methods thereof
JP2011053895A (ja) 2009-09-01 2011-03-17 Ricoh Co Ltd データ通信装置
US9106535B2 (en) * 2010-01-22 2015-08-11 Samsung Electronics Co., Ltd. Method and apparatus for adaptively managing buffer in communication system including a plurality of network nodes
US9251108B2 (en) * 2012-11-05 2016-02-02 International Business Machines Corporation Managing access to shared buffer resources
JP5981004B2 (ja) 2015-09-02 2016-08-31 ルネサスエレクトロニクス株式会社 半導体装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005316608A (ja) 2004-04-27 2005-11-10 Sony Corp バス調停装置およびバス調停方法
US20120198117A1 (en) 2011-01-31 2012-08-02 Srinjoy Das System and Method for Improving Throughput of Data Transfers Using a Shared Non-Deterministic Bus
JP2015095780A (ja) 2013-11-12 2015-05-18 富士通株式会社 通信装置及びパケット制御方法
JP2016062166A (ja) 2014-09-16 2016-04-25 富士通株式会社 制御装置および制御方法
JP2016206891A (ja) 2015-04-21 2016-12-08 株式会社ソシオネクスト アクセス遮断回路、半導体集積回路およびアクセス遮断方法

Also Published As

Publication number Publication date
US10983927B2 (en) 2021-04-20
JP2019020766A (ja) 2019-02-07
US20190018807A1 (en) 2019-01-17
CN109240955A (zh) 2019-01-18
CN109240955B (zh) 2024-02-20

Similar Documents

Publication Publication Date Title
US8656228B2 (en) Memory error isolation and recovery in a multiprocessor computer system
US8700835B2 (en) Computer system and abnormality detection circuit
US5682551A (en) System for checking the acceptance of I/O request to an interface using software visible instruction which provides a status signal and performs operations in response thereto
JP3807250B2 (ja) クラスタシステム、コンピュータ及びプログラム
US10691527B2 (en) System interconnect and system on chip having the same
JP6129976B2 (ja) 高効率アトミック演算を使用した方法および装置
US6629178B1 (en) System and method for controlling bus access for bus agents having varying priorities
US20090177807A1 (en) Reset method for application specific integrated circuits (asic)
JP6241323B2 (ja) スイッチ装置、情報処理装置、情報処理装置の制御方法および情報処理装置の制御プログラム
JP2002269029A (ja) 高信頼性情報処理装置及びそれに用いる情報処理方法並びにそのプログラム
JP6992295B2 (ja) 電子装置
JP2015014962A (ja) 演算装置、演算方法、及びプログラム
TWI750386B (zh) 匯流排系統
JP2007058716A (ja) データ転送バスシステム
US8327044B2 (en) Transaction ID filtering for buffered programmed input/output (PIO) write acknowledgements
JP2009217435A (ja) 制御方法、情報処理装置及びストレージシステム
JP2006172218A (ja) コンピュータシステム及びシステム監視プログラム
JP2000207354A (ja) バスア―ビタ及びバス間制御装置
JP2922342B2 (ja) 割込み制御装置
JP2017107441A (ja) 情報処理装置、並びに、その制御装置および制御方法
JP6475056B2 (ja) インタフェース障害検出装置、インタフェース障害検出システム、インタフェース障害検出方法、及びインタフェース障害検出プログラム
JPS6134654A (ja) バスマスタ制御装置
JP2010003268A (ja) スレーブ装置
JP2002269033A (ja) リトライ制御機能を有するアービタを用いたバスシステムおよびシステムlsi
JP2008299654A (ja) 情報処理装置及びアクセス制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200619

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210413

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210526

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211122

R150 Certificate of patent or registration of utility model

Ref document number: 6992295

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150