JP5842174B2 - バス制御装置、中継装置およびバスシステム - Google Patents

バス制御装置、中継装置およびバスシステム Download PDF

Info

Publication number
JP5842174B2
JP5842174B2 JP2015505292A JP2015505292A JP5842174B2 JP 5842174 B2 JP5842174 B2 JP 5842174B2 JP 2015505292 A JP2015505292 A JP 2015505292A JP 2015505292 A JP2015505292 A JP 2015505292A JP 5842174 B2 JP5842174 B2 JP 5842174B2
Authority
JP
Japan
Prior art keywords
data
bus
node
order
unit
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
JP2015505292A
Other languages
English (en)
Other versions
JPWO2014141692A1 (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.)
Panasonic Intellectual Property Management Co Ltd
Original Assignee
Panasonic Intellectual Property Management Co 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 Panasonic Intellectual Property Management Co Ltd filed Critical Panasonic Intellectual Property Management Co Ltd
Priority to JP2015505292A priority Critical patent/JP5842174B2/ja
Application granted granted Critical
Publication of JP5842174B2 publication Critical patent/JP5842174B2/ja
Publication of JPWO2014141692A1 publication Critical patent/JPWO2014141692A1/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/9057Arrangements for supporting packet reassembly or resequencing
    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/85Protecting input, output or interconnection devices interconnection devices, e.g. bus-connected or in-line devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/10Flow control; Congestion control
    • H04L47/34Flow control; Congestion control ensuring sequence integrity, e.g. using sequence numbers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Packet switching elements characterised by the switching fabric construction
    • H04L49/102Packet switching elements characterised by the switching fabric construction using shared medium, e.g. bus or ring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bus Control (AREA)
  • Information Transfer Systems (AREA)
  • Small-Scale Networks (AREA)

Description

本願は、ネットワーク化された半導体バスを備える半導体集積回路において、バスマスタが複数のスレーブに送信した要求に対し、複数のスレーブからバスマスタへ送信される応答の順序を制御する技術に関する。
集積回路の開発において、目的の機能や性能を実現するために、既存のバスマスタを再利用し繋ぎ合わせることで効率的に開発を行う取り組みがある。このような開発では、バス幅やバスプロトコル、要求品質の異なる多種多様なバスマスタを容易に接続できることが求められる。
その一方で、多種多様なバスマスタを接続する場合、バスマスタ毎にアクセスするスレーブの数が異なったり、バスマスタのバス・インターフェイスの数や、受信バッファのサイズが異なるため、バスマスタ毎に要求される伝送性能を確保できるようにバス・インターフェイスを設計することが必要となる。
特許文献1は、バスマスタと複数のスレーブ間の伝送性能を改善する技術を開示する。特許文献1は、バスマスタのバス・インターフェイスを物理的に増やし、複数の物理的バスによって構成される論理バスを利用することで、メモリへのアクセスの伝送帯域を広げることを可能にする。
特許第3086261号明細書
集積回路を効率的に開発するために、開発工数をできるだけ低減することが求められている。
本願の、限定的ではない例示的なある実施形態は、開発工数をできるだけ低減しつつ、要求される性能を確保することが可能なバス制御装置を提供する。
上記課題を解決するために、本発明の一態様は、第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部とを備えている。
上述の一般的かつ特定の態様は、システム、方法およびコンピュータプログラムを用いて実装され、またはシステム、方法およびコンピュータプログラムの組み合わせを用いて実現され得る。
本発明の一態様にかかるバス制御装置によれば、複数のメモリからのデータを受信した際に、バスマスタ毎にバス・インターフェイスの作りこみが不要となり、バス制御装置の設定を変更するだけで複数のスレーブからの応答の受信が可能となるため、半導体集積回路の設計を簡略化できる。
また、複数のスレーブに対して、バスマスタ側のバス・インターフェイスを物理的に増やす必要がないため、バスマスタの実装面積と消費電力量を削減できる。
(A)はバスマスタ201のバス・インターフェイス201a、およびバスの構成を示す図であり、(B)はバスマスタ203のバス・インターフェイス203a、およびバスの構成を示す図である。 本願発明者らによって認識された従来技術の課題を解決するための構成の概要を説明する図である。 本開示にかかる半導体集積回路上に構築されたバスシステム100aの構成例を示す図である。 本開示にかかる半導体集積回路上に構築されたバスシステム100bの構成例を示す図である。 本開示のバス制御装置401aの基本的な構成を示す図である。 入替可否情報記憶部407に記憶される入替可否情報の一例を示す図である。 入替可否情報記憶部407に記憶される入替可否情報の他の例を示す図である。 順序記憶部408で記憶される順序情報の一例を示す図である。 IF情報記憶部411で記憶されるIF情報の一例を示す図である。 振分規則記憶部412に記憶される振分規則の例を示す図である。 バスマスタ402から複数のメモリ403に対してデータを送信する場合のバス制御装置401aの動作手順を示す図である。 バス制御装置401aが、複数のメモリ403からデータを受信した場合の動作手順の概要を示す図である。 接続制御部410の動作手順を示す図である。 バスマスタ301と複数のメモリ303とを接続する伝送路の少なくとも一部が共用される例を示す図である。 NICの機能を備えたバス制御装置401bの構成を示す図である。 (A)および(B)は振分規則記憶部412に記憶される振分規則の例を示す図である。 バスマスタ402からメモリ403へデータを送信する場合の、バス制御装置401bの動作手順を示す図である。 バス制御装置401bが、メモリ403から送信されたデータを受信した時の動作手順を示す図である。 振分部413の動作手順を示す図である。 メモリ403からバスマスタ402へ送信が完了したデータのデータIDをトランザクション毎に記録した順序情報の例を示す図である。 ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示す図である。 ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示す図である。 (A)および(B)は、中継装置1601の振分規則記憶部1102が記憶している振分規則の例を示す図である。 ローカルバスからシステムバスへのデータ送信時の中継装置1601の動作を示す図である。 中継装置1601が、複数のメモリ403から送信されたデータを受信した際の動作手順の概要を示す図である。 中継装置1601の振分部413がバッファ部にパケットを格納する際に行う動作手順を示す図である。 複数の要素においてメモリからの応答データの順序の入替えを行うことが可能なバスシステム100cの構成を示す図である。 メモリコントローラ2601と接続されるNIC1003の構成を示す図である。
上述したように、特許文献1では、要求性能に応じてバス・インターフェイスを増やすことで伝送帯域を広げることができる。しかしながら、特許文献1の技術によれば、バスマスタの要求性能に応じて、個別にバス・インターフェイスを作り込む必要があり、開発の工数が増加する。
また、あるバスマスタが、それぞれ異なるバス・インターフェイスを介して複数のメモリにアクセスする場合、バスマスタからメモリまでの距離やメモリ内での処理時間の違いによって、それぞれのメモリから返信されるデータの順序に入れ替わりが発生する。このため、バスマスタからメモリへ送信した順番で、メモリからの返信データを処理する必要がある場合には、受信したデータの順序をバスマスタが並び替える対策が必要となる。これでは、バスマスタに実装すべき機能が増加し、やはり開発工数が増加する。
ここで図1を参照しながら、本願発明者らが見出した課題をより具体的に説明する。
バスマスタと複数のスレーブ間の伝送性能を改善する方法として、特許文献1は、バスマスタのバス・インターフェイスを物理的に増やし、複数の物理的バスによって構成される論理バスを利用している。この構成によれば、メモリへのアクセスの伝送帯域を広げることが可能であるとされている。
図1(A)は、2個のメモリ202にアクセスするバスマスタ201のバス・インターフェイス201a、およびバスの構成を示している。また、図1(B)は、m個のメモリ204にアクセスするバスマスタ203のバス・インターフェイス203a、およびバスの構成を示している。バス・インターフェイスは、たとえばバスマスタがデータの授受を行うための入出力端子である。
図1(A)に示すように、各メモリとデータを送受信可能にするためには、特許文献1の技術では、バスマスタ毎にバス・インターフェイスを拡張することが必要である。また、メモリの数に応じて、バス・インターフェイスが増加する。これでは、拡張のために要する工数が増加する。
また、図1(B)に示すように、バスマスタから物理的に異なるバスを介して、複数のメモリにアクセスを行う場合、バスマスタからメモリまでの距離や、メモリでの処理時間の違いによって、メモリから送信されたデータの順番の入れ替わりが発生する。このため、バスマスタからメモリへ送信した順番で、メモリからの返信データを処理する必要がある場合には、バスマスタにおいて、メモリからのデータの順序を並び替える必要がある。その結果、データの順序を並び替える必要が生じ、拡張の工数が同様に増加する。
図2は、本願発明者らによって認識された従来技術の課題を解決するための構成の概要を説明する図である。
本開示では、バスマスタ301と複数のメモリ303との間に、ネットワーク・インタフェイス・コントローラ(NIC)とは別体の、またはNICと一体化されたバス制御装置302を設けた。バス制御装置302は、複数のメモリ303からバスマスタ301へ送信されるデータを、一旦、メモリ毎に分類して格納する。さらにバス制御装置302は、バスマスタ301の各バス・インターフェイス304に宛てて、バスマスタからメモリへデータ(要求)を送信した順序と同じ順序で、データを送信する。つまり、バス制御装置302を設けることで、メモリ303から送られてきたデータの順序を維持して、データを各バス・インターフェイス304に渡すことができる。バスマスタおよびバス・インターフェイス304を変更する必要はないため、バスマスタ301の拡張は不要である。
このため、バス制御装置302は、複数のメモリ303からの応答の順序がバスマスタ301からメモリ303へ送信したデータと同じ順序となるように、メモリ303からバスマスタ301へのデータを並び替える機能と、さらに、バスマスタ301のバス・インターフェイス304に合わせて、メモリ303からのデータを、どのバス・インターフェイス304を介してバスマスタ301へ送信するかを決定する機能とを備える。これらの機能を有するバス制御装置を用意し、システムバスに組み込むことにより、既存の種々のバスマスタを拡張する必要がなくなり、既存の資源を有効に活用した集積回路を得ることができる。
このように、バス制御装置302において、複数のメモリ303から送信されたデータを、バスマスタ301のバス・インターフェイス毎に並び替えることで、仕様変更などに伴う既存のバスマスタ301のバス・インターフェイスの拡張を不要とし、バス制御装置302の設定の変更だけで対応ができる。よって、開発を簡略化し、工数を削減できる。
本発明の一態様の概要は以下のとおりである。
本発明の一態様であるバス制御装置は、第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部とを備えている。
たとえば前記入替可否情報が全て否である場合には、入替可否情報を参照せず、全てのデータに対し前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する。
たとえば前記第1ノードは複数のバス・インターフェイスを備えており、前記接続制御部は、データごとに、前記データの送信先となるバス・インターフェイスを特定するインターフェイス情報を参照して、前記バッファ部から前記バス・インターフェイスへ前記データを送信する。
たとえば前記インターフェイス情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて、データごとに、前記データの送信先となるバス・インターフェイスを特定する。
たとえば前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている。
たとえば前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する。
たとえば前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する。
たとえば前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する。
たとえば前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである。
本発明の他の一実施形態にかかる中継装置は、第1ノード、および複数の第2ノードが、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータを中継する中継装置であって、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを備えている。
たとえば前記振分部は、予め定められた振分規則を参照して、前記第1ノードおよび前記第2ノードを区別して前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードに、および前記第1ノードごとに区別して格納する。
たとえば前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている。
たとえば前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する。
たとえば前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する。
たとえば前記振分部は、予め定められた振分規則を参照して、前記第2ノードを区別して振り分け先を決定する方法と、前記第2ノードおよび前記第1ノードの両方を区別して振り分け先を決定する方法とを選択可能である。
たとえば前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する。
たとえば前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである。
本発明のさらに他の一実施形態であるバスシステムは、集積回路上に構築されたパケット交換方式のバスを有するバスシステムであって、第1ノードと、複数の第2ノードと、第1中継装置および第2中継装置を含む複数の中継装置と、前記第1ノードおよび前記第1中継装置の間で送受信されるデータの伝送経路上に設けられた第1バス制御装置と、前記複数の第2ノードおよび前記第2中継装置の間で送受信されるデータの伝送経路上に設けられた第2バス制御装置とを備え、前記複数の中継装置、前記第1バス制御装置、および前記第2バス制御装置のうちの少なくとも1つの装置は、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを有している。
たとえば前記複数の中継装置は、ローカルバスおよびシステムバスを接続するバス間中継装置をさらに含み、前記ローカルバスは、前記第1制御装置、および前記第1中継装置を含み、前記システムバスは、前記第2中継装置を含み、前記少なくとも1つの装置に設けられた前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
たとえばバスシステムは、第3中継装置と、複数の第3ノードと、前記複数の第3ノードおよび前記第3中継装置の間で送受信されるデータの伝送経路上に設けられた第3バス制御装置とをさらに備え、前記少なくとも1つの装置において、前記中継制御部は、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかにもさらに送信し、前記順序記憶部は、各第3ノードへ送信された前記データの送信順序をさらに記憶し、前記振分部は、前記各第2ノードおよび前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定し、前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードおよび各第3ノードに区別して格納し、前記接続制御部は、前記各第2ノードおよび前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
たとえば前記第3バス制御装置は、バスから受信したデータを格納する中継バッファと、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかに送信する中継制御部と、各第3ノードへ送信された前記データの送信順序を記憶する順序記憶部と、前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、振り分けられた前記データを、前記データの送信元である前記各第3ノードに区別して格納するバッファ部と、前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部とを有しており、前記第3バス制御装置において、前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する。
以下では、本開示の各実施形態の説明に先立って、まず、本開示にかかる半導体集積回路を説明する。
図3は、本開示にかかる半導体集積回路上に構築されたバスシステム100aの構成例を示す。バスシステム100aには、複数のバスマスタと複数のメモリが接続されている。複数のバスマスタは、入出力のアクセスのビット幅や通信のプロトコルが異なっている。なお、図3においては、上述したバス・インターフェイスの記載は、簡略化のため省略されている。後述する図4でも同様である。
各バスマスタは、上述したバス制御装置およびネットワーク・インタフェイス・コントローラ(Network Interface Controller;以下「NIC」と記述する場合がある。)を介してシステムバス110に接続される。NICは、バスマスタが送信したデータを中継装置へ送信するために、データをパケットに変換するパケット化の処理、および中継装置から受信したパケットからデータを抽出するデパケット化の処理を行う回路である。なお、デパケット化の処理に当たっては、データをバスマスタへ送信するためのバスプロトコルの変換処理も行う。
図3におけるバス制御装置の構成例は、図5を参照しながら後述する。
また図4は、本開示にかかる半導体集積回路上に構築されたバスシステム100bの構成例を示す。この例では、バス制御装置はNIC内に組み込まれている。図4におけるバス制御装置の構成例は、図15を参照しながら後述する。
図3および図4において、システムバス110上を伝送されるデータは、システムバス110に設けられた1以上の中継装置によって中継される。中継装置は、パケット化されたデータを宛先のノードへと転送する回路である。これにより、各バスマスタは、バス制御装置、NICおよびネットワーク化されたシステムバス110を介して複数のメモリと接続され、データを送受信することが可能となる。
図3および図4とはさらに異なる構成例も考えられる。たとえば、ローカルバスとシステムバスとを接続する1または複数の中継装置のいずれかに、上述したバス制御装置が組み込まれてもよい。なお、ローカルバスとは、半導体集積回路上の一部の領域において物理的な距離が近いバスマスタとシステムバスを接続するバスであり、システムバスとは異なるバス幅や動作周波数で動作する。その構成例は、後に図22を参照しながら説明する。
図3および図4では中継装置をリング状に接続したシステムバス110の構成を示しているが、これは一例であり、半導体集積回路はリング状に接続された構成に限定されない。たとえば、中継装置を格子状に配置したメッシュ型や、中継装置を多段に接続した階層型などその他の構成を採用してもよい。また、図3および図4では、複数のバスマスタが複数の共有メモリに接続する例を示したが、バスマスタの接続先は共有メモリに限定されない。たとえば、バスマスタは、外部回路(図示せず)との入出力機器I/O(Input/Output)と接続されてもよい。
図3および図4において、ネットワーク化されたシステムバス110を含む半導体集積回路110aおよび110bを示した。このような、複数のバスマスタがネットワーク化したバスにより接続された構成は、ネットワーク・オン・チップ(Network on chip;NoC)と呼ばれる。なお、バスマスタとメモリが直接接続された半導体集積回路であってもよい。
図5は、本開示のバス制御装置401aの基本的な構成を示す。このバス制御装置401aは、図3に示されるバス制御装置に対応する。図5では、パケット交換方式において必要な機能(パケット化とデパケット化)の記載は簡略化のため省略している。なお、図4に記載の、半導体集積回路上に構築されたバスシステム100bでは、NICが、バス制御装置の構成に加え、パケット交換方式に必要なパケット化とデパケット化を実現する構成を備える。NICの構成については、後に図15を参照しながら説明する。図3のシステムバス110aはパケット交換方式でデータを授受する。しかしながら、パケット交換方式を用いず、回線交換方式でデータを授受する場合であっても、図5に示す構成を利用することができる。
バス制御装置401aは、データの送信/受信を行う第1ノードと、当該データの受信/送信を行う複数の第2ノードとを接続する装置である。第1ノードと第2ノードとして、バスマスタ、メモリ、入出力機器I/Oなどが利用される。図5では、バス制御装置401aは、バスマスタ402と接続され、さらにシステムバス110上に存在する複数のメモリとデータの授受を行う。
以下の実施形態の説明では、バスマスタ402を第1ノードとし、メモリ403を第2ノードとする。また、以下の説明において「データの送信」は、バスマスタ402からメモリ403に対し、1回のアドレス指定で送受信されるリードやライトのアクセスによって行われるとする。
バスマスタ402は、送信用バス・インターフェイス404および受信用バス・インターフェイス405を介してバス制御装置401aと接続されている。
バス制御装置401aは、送信制御部406、入替可否情報記憶部407、順序記憶部408、メモリ毎に用意されたバッファ部409、接続制御部410、IF情報記憶部411、振分規則記憶部412、振分部413を備えている。
送信用バス・インターフェイス404は、バスマスタ402からバス制御装置401aへデータやコマンドの送信を制御する回路である。受信用バス・インターフェイス405は、バス制御装置401aから、バスマスタ402へデータやコマンドの受信を制御する回路である。
送信制御部406は、バスマスタ402からのデータをメモリ403へ送信する回路である。
入替可否情報記憶部407は、入替可否情報を記憶する記憶装置(たとえばSRAM)である。入替可否情報とは、一連の処理に関連するデータの集まり(トランザクション)をバスマスタが送信した場合に、伝送路上でのデータの順序の入れ替りをバスマスタで許容可能かどうかを示す情報である。
なお、伝送路上でのデータの順序の入れ替りとは、バスマスタからメモリや入出力機器I/O(Input/Output)へ送信したコマンドの発行順序と、メモリや入出力機器I/Oからバスマスタへのデータの応答の順序が入れ替わることを意味する。
また、このような順序の入れ替わりは、バスマスタが複数のメモリや入出力機器I/Oに対してデータの送受信を行う場合に発生する。その具体例として、たとえば、遅延に対する要求が厳しい動画再生に関与するバスマスタでは、単一メモリとの送受信だけでは必要な伝送帯域が不足する場合、複数メモリに対して並列にアクセスを行うことで伝送帯域の不足を解消、低遅延伝送を実現することができる。
また、別の例として、CG(Computer Graphics)を描画するグラフィックス・エンジンでは、単一のメモリでは伝送帯域が不足する場合に、複数のメモリに処理を負荷分散させることで、性能を出すことができる。
また、同じバスマスタであっても、アプリケーションやユースケース(例えば動画再生やCGにおける解像度や画質など)の違いによって、単一メモリだけでは伝送帯域が不足し、複数のメモリとアクセスが必要となる。
このように、入替可否情報は、バスマスタの種別毎に設けられてもよいし、集積回路において実行されるアプリケーションやユースケースの種別毎に設けられてもよい。
順序記憶部408は、バスマスタ402からメモリ403へ送信したデータの順序の情報を記憶する記憶装置(たとえばSRAM)である。
バッファ部409は、各メモリ403から送信されたデータを、送信元であるメモリごとに区別して格納する記憶装置(たとえばSRAM)である。バッファ部409は、複数の部分バッファを含む。図5には、部分バッファである第1バッファ〜第nバッファが例示されている。なお、メモリ403を区別してデータを格納できる構成であれば、バッファ部409は、物理的に複数の部分バッファに分かれていてもよいし、論理的に分かれていてもよい。以下では、特に部分バッファを明示する必要がない限り、総括的に「バッファ部409」と呼ぶこととする。
IF情報記憶部411は、バスマスタ内で一連の処理に関連するデータの集まり(トランザクション)毎に、データをバスマスタ402へ送信する際に利用するバス・インターフェイスの情報を記憶するメモリである。
接続制御部410は、バス・インターフェイス毎に、データの送信先となるバッファ部409を決定する回路である。バッファ部409の決定に際し、接続制御部410は、バッファ部409に格納されたデータに対し、順序記憶部408で記録されるデータの順序情報、入替可否情報記憶部407に記憶される順序の入替を許容できるデータであるかの可否情報、IF情報記憶部に記録されるバスマスタ402へ送信する際に利用するバス・インターフェイス情報を参照する。
振分規則記憶部412は、メモリ403から送信されたパケットとバッファ部409の格納先との対応関係を定義した振分規則を記憶したメモリである。
振分部413は、振分規則記憶部412に記録された振分規則に基づいて、データをバッファ部409に格納する回路である。データをバッファ部409に格納する際、振分部413は、そのデータがどのメモリから送信されたかを識別し、対応するバッファに格納する。
なお、バスマスタ402は、バス制御装置401aに対して、データと一緒にアプリケーションやバスマスタの種別毎に関連して処理されるデータの集まりを識別するためのトランザクションIDもバス制御装置に通知する。
図6は、入替可否情報記憶部407に記憶される入替可否情報の一例を示す。入替可否情報では、アプリケーションやバスマスタの種別毎に一連の処理に関連するデータの集まり(トランザクション)を識別するためのトランザクションIDと、そのトランザクションに属するデータで順序の入れ替わりを許容できるかどうかの可否が記録される。
図6の例では、トランザクションIDが0番とN番で識別されるデータは、伝送路上での順序の入れ替りをバスマスタ402で許容できないデータである。よって、それぞれのトランザクションIDに対して、順序の入れ替わりが「否」と記録される。一方、トランザクションIDが1番と2番で識別されるデータは、伝送路上での順序の入れ替りをバスマスタ402で許容できるデータであり、トランザクションIDに対して、順序の入れ替わりが「可」と記録される。
なお、「否」、「可」という表現は一例に過ぎない。それぞれが識別可能であれば、たとえば0または1で表現されてもよい。順序の入れ替わりを認めるか、認めないかを表現可能な情報であればよい。
また、入替可否情報について、図6の例では、トランザクションIDに対して可否を記録する例を示したが、データの応答を返したスレーブ(メモリや入出力機器I/O)毎に、その利用形態に基づき入替の可否を定義しても良い。例えば図7では、バスマスタが常に単一で利用するメモリ1及びメモリmからの応答データに対しては入替が許容し、常に他のスレーブと同時に利用されるメモリ(メモリ1とメモリ3の組合せ、メモリ2とメモリ4の組合せ)からの応答データに対しては、データの入替が許容しないように入替可否情報を定義しても良い。
図8は、順序記憶部408で記憶される順序情報の一例を示す。
順序情報は、図8に示すように、バスマスタ402がメモリにデータを送信した順序でそのデータを識別するデータIDと、そのデータが属するトランザクションを識別するトランザクションIDとを含む。
なお、データIDは送信制御部406により、データを送信する際に付与される。またトランザクションIDは、バスマスタ402で管理し、データの送信と同時にバス制御装置401aへ通知される。
図8の例では、データが送信された順番にバスマスタ402から送信されたデータに付与したデータIDと、バスマスタから通知されたトランザクションIDとが、順序記憶部408に記憶される。
図9は、IF情報記憶部411で記憶されるIF情報の一例を示す。
IF情報は、トランザクションを特定するトランザクションIDと、トランザクション毎に、データをバスマスタ402へ送信する際に利用するバス・インターフェイスの識別番号とを含む。
図9の例では、アプリケーションやバスマスタの種別毎に一連の処理に関連するデータの集まりを識別するトランザクションIDとバス・インターフェイスのIDの対応関係が記録される。
図10は、振分規則記憶部412に記憶される振分規則の例を示す。振分規則は、データを送信したメモリを識別するメモリIDとバッファ部409の格納先との対応関係を定義している。メモリIDは、パケットのヘッダ情報部に記載されている値を参照することで取得できる。図11は、バスマスタ402から複数のメモリ403に対してデータを送信する場合のバス制御装置401aの動作手順を示す。
図11では、バスマスタ402から送信されたデータの順序を、情報記憶部408が管理する例を説明する。
ステップ701において、バス制御装置401aの送信制御部407は、バスマスタ402からデータの送信があるかどうかを判定する。データの送信がある場合にはステップ702に移る。データの送信がない場合にはステップ701を繰り返す。
ステップ702において、送信制御部406は、バスマスタ402から送信されたデータに対し、各データを識別するためのデータIDを付与する。
ステップ703において、送信制御部407は、データに付与したデータIDとバスマスタ402から通知されたトランザクションIDを、データを送信した順番に順序記憶部408に記録する。
ステップ704において、送信制御部407は、データを宛先のメモリ403へ送信する。
以上のステップを繰り返すことにより、バス制御装置401aは、バスマスタ402から送信されるデータに対し、データを識別するデータIDを付与し、データの送信順序をトランザクションIDと一緒に記憶することが可能である。
図12は、バス制御装置401aが、複数のメモリ403からデータを受信した場合の動作手順の概要を示す。
ステップ801において、振分部413は、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたデータを、メモリ403毎に区別してバッファ部409の部分バッファに格納する。
ステップ801を詳細に説明すると、以下の通りである。すなわち振分部413は、メモリ403から送信されたパケットに格納されていたデータとともに、そのヘッダ情報を受け取る。そして振分部413は、ヘッダ情報を参照し、パケットを送信したメモリIDを特定する。次に振分部413は、順序記憶部408の順序情報(図8)を参照し、パケットのヘッダ情報に記載されたデータIDから、トランザクションIDを特定する。
振分部413は、入替可否情報記憶部407の入替可否情報(図6または図7)を参照し、トランザクションIDから、パケットが伝送路上で順序の入れ替わりを許容できるかどうかの可否を特定する。振分部413は、振分規則記憶部412の振分規則(図10)を参照し、パケットを送信したメモリのIDと伝送路上での順序の入れ替わりの可否に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。これにより、振分部413は、メモリ403から送信されたパケットをバッファ部409bの部分バッファに格納することができる。
ステップ802において、接続制御部410は、バスマスタ402のバス・インターフェイス毎に、データ毎の順序入替の可否に応じて、データを送信するバッファ部409の部分バッファを順次決定する。具体的には、接続制御部410は、入替可否情報記憶部407の入替可否情報(図6または図7)を参照し、順序入替が許容出来ないデータに対して、バスマスタ402からメモリ403へ送信された順序と同じ順序で、バッファ部409の部分バッファに格納されているデータがバスマスタ402へ送信されるよう、部分バッファを順次決定する。また、順序入替が許容できるデータに対しては、部分バッファに格納された順序でデータを送信する。
接続制御部410の詳細動作については、図13を参照しながら後に説明する。
なお、バスマスタの種別や、アプリケーション、ユースケースの種別によって、予め全てのデータで入れ替わりを許容できないことが確定している場合がある。つまり、入替可否情報において、順序の入れ替りが全て否とされている場合がある。そのような場合には、ステップ801における振分部413による入替可否情報の参照、及びステップ803における接続制御部410による入替可否情報の参照を省略しても良い。
ステップ803において、接続制御部410は、バス・インターフェイス毎に決定されたバッファ部409からバスマスタ402へデータを送信する。
以上のステップを繰り返すことにより、複数のメモリ403からバスマスタ402へデータを送信する。
なお、図12の説明では、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたデータを、メモリ403毎に区別してバッファ部409の部分バッファに格納する方法を説明した。これ以外の方法として、予め応答データのヘッダ情報にバッファ部409の格納先の部分バッファを記載しておき、振分部413は、ヘッダ情報に記載された格納先に基づき、応答データをバッファ部409に格納しても良い。ヘッダ情報にバッファ部409の格納先の部分バッファを記載する方法として、たとえばバスマスタ402からメモリ403へデータを送信する際に、パケット化部1101により、振分規則記憶部412に記載されている格納先の情報を、ヘッダ情報に記載し、さらに、その格納先の情報を、メモリ403において、バスマスタ402への応答データのヘッダ情報に記載する、という方法が考えられる。
図13は、接続制御部410の動作手順を示す。メモリ403から送信された順序入替を許容できないデータを、バスマスタ402からメモリ403へ送信された順序と同じ順序でバスマスタ402へ送信するために、接続制御部410は、バス・インターフェイス毎に、バッファ部からバスマスタ402へ送信するデータを決定する。接続制御部410は、メモリ403毎に区別されたバッファ部409に対して、以下のステップ901からステップ907を実行する。
ステップ901において、接続制御部410は、バッファ部409にデータが格納されているかどうかを判定する。データが格納されている場合にはステップ902に移る。データが格納されていない場合には、他のメモリ403のバッファ部409の処理に移る。
ステップ902において、接続制御部410は、順序記憶部411を参照し、バッファ部に格納されたデータのデータIDからトランザクションIDを特定する。
ステップ903において、接続制御部410は、入替可否情報記憶部407を参照し、対応するトランザクションIDから、伝送路上で順序の入れ替わりを許容できるデータであるかどうかを特定する。
ステップ904において、接続制御部410は、伝送路上で順序のデータの入れ替わりを許容できるデータであるか否かを判定し、入れ替わりを許容できる場合には処理はステップ905に移る。伝送路上で順序の入れ替わりを許容できないデータである場合には処理はステップ906に移る。
ステップ905において、接続制御部410はIF情報記憶部411を参照し、データのトランザクションIDから、バスマスタ402へデータを送信するためのバス・インターフェイスを特定する。
ステップ906において、接続制御部410は、順序記憶部408を参照し、同じトランザクションIDを持つデータの中で、送信時刻が古く先にバスマスタ402へ送信すべきデータが存在するかどうかを確認する。このステップを実行する理由は、伝送路上でデータの入れ替わりが許容されないデータに対しては、バスマスタ402からメモリ403へのデータの送信の順序と同じ順序で、データをバスマスタ402へ送信することが必要だからである。
ステップ907において、バスマスタ402へ先に送信すべきデータがない場合には、処理はステップ905に移る。先にバスマスタ402へ送信すべき他の応答データが存在する場合には、処理はステップ908に移る。
ステップ908において、接続制御部410は、IF情報管理部411を参照し、バス・インターフェイス毎にデータを送信するバッファ部409の部分バッファを決定する。同じバス・インターフェイスを利用する部分バッファが複数存在する場合には、各部分バッファに格納されているデータIDを比較し、バスマスタ402から送信された順序(時刻)が最も古いデータを格納する部分バッファを選択する。
なお、バス・インターフェイス毎に部分バッファを選択する方法としては、データIDの比較による送信時刻以外の方法を用いてもよい。例えば、データに優先度や締切時刻などの付加情報が付与されている場合には、優先度の大きいデータを選択したり、締切時刻の近いデータを選択したりしてもよい。
ステップ909において、接続制御部410は、バッファ部409からバスマスタ402へ送信したデータのデータIDを、順序記憶部408から削除し、ステップ901に移る。
以上、ステップ901からステップ909の動作を繰り返すことにより、接続制御部910は、バスマスタ402からメモリ403へ送信された順序と同じ順序でデータをバスマスタ402へ送信するために、バス・インターフェイス毎に、部分バッファからバスマスタ402へ送信するデータを決定する。
図14は、バスマスタ301と複数のメモリ303とを接続する伝送路の少なくとも一部が共用される例を示す。図14には、経路1および2が示されている。経路1および2の一部は同じ中継装置および伝送路を利用している。図5のバス制御装置401aの構成では、バス制御装置401aと複数のメモリ403が直接接続される場合を例に説明を行ったが、図14に示すように伝送路がメモリ間で共用される構成であってもよい。
図14では、伝送路をネットワーク化したNoCを利用して、バスマスタ301と複数のメモリ303とが接続される構成が示されている。NoCでは、バスマスタが送受信するデータはNIC1001でパケットに変換され、中継装置1002を介してパケット交換方式により宛先のメモリ303まで送信される。
また、中継装置1002とメモリ303との間に設けられたNIC1003は、中継装置1002から受信したパケットをメモリ303へ送信する際、バスプロトコルの変換処理を行う。
以下、NICの機能を有するバス制御装置を説明する。当該バス制御装置は、バスマスタとシステムバスとの間に設けられることになる。
図15は、NICの機能を備えたバス制御装置401bの構成を示す。このバス制御装置401bは、図4に示されるバス制御装置に対応する。
図5に示されるバス制御装置401aの構成要素と同等の機能を有する構成要素には、同じ参照符号を付与してその説明を省略する。ただし、機能が同等であっても、理解の便宜上、その構成要素を説明することがある。
バッファ部409は、各メモリ403から送信されたデータを含むパケットを区別して格納する記憶装置(たとえばSRAM)である。バッファ部409は、複数の部分バッファを含む。図15には、部分バッファである第1バッファ〜第nバッファが例示されている。なお、各メモリからのパケットを区別して格納できる構成であれば、バッファ部409は、物理的に複数の部分バッファに分かれていてもよいし、論理的に分かれていてもよい。
パケット化部1101は、バスマスタ402から送信されるデータを、NoCへ送信するためにパケットに変換する回路である。なお、パケットは、データをNoC上で中継する際に必要となる情報であるヘッダ情報と、送信対象となるデータとを有する。ヘッダ情報には、パケットの送受信先となるバスマスタとメモリを識別するID(アドレス)、およびデータを識別するためのデータIDが付与される。
デパケット化部1102は、NoCを介してメモリ403から送信されたパケットをバスマスタ402へ送信するデータに変換する回路である。
図16(A)および(B)は振分規則記憶部412に記憶される振分規則の例を示す。なお振分規則記憶部412は、図16に示される例のほか、先に説明した図10に示す振分規則を記憶してもよい。
なお、パケットを格納するバッファ部409の割り当ては、例えばメモリ403からの答パケットのデータサイズに応じて、1つのメモリに対してバッファ部409の割り当てを多く割り当ててもよい。また、複数のメモリで1つのバッファ部409を共有するように割り当てを行ってもよい。
また、バスマスタで順序の入れ替わりを許容できるパケットは、順序の並び替えが不要であるため、順序の入れ替わりを許容できないパケットと区別してバッファ部に格納してもよい。
図16(A)の振分規則では、メモリ403からのパケットを、メモリIDと伝送路上での順序の入れ替わりをバスマスタで許容できるかどうかの可否をさらに加味し、バッファ部409の格納先を定義している。
図16(A)の振分規則を用いた場合、順序の入れ替わりを許容できるパケットを1つのバッファ部で扱うことができるため、バス制御装置401b内で必要なバッファ部409の数やサイズを削減し、実装面積と消費電力の削減することができる。
図16(B)は、パケットの伝送経路を区別してバッファ部にパケット振分規則記憶部412に記録される振分規則の例を示す。
NoCでは、図14に示すように、メモリ303からバスマスタ301への伝送路の経路を複数利用できるトポロジーを構築することができる。複数の経路を利用できる場合、異なる経路を介して並列にデータを送信することで、より広い伝送帯域を利用することができる。しかし、同じバスマスタ303から送信されたパケットであっても、異なる経路を経由してバスマスタ303に届く場合には、パケットの順序の入れ替わりが発生する場合がある。このため、伝送経路の違いによるパケットの順序の入れ替わりに対応するために、メモリIDの区別に加え、パケットが経由した経路を区別して、パケットをバッファ部に格納してもよい。
図16(B)の振分規則では、メモリ403からのパケットを、メモリIDとパケットの伝送経路をさらに加味し、バッファ部409の格納先を定義している。
なお、複数の経路を利用できるトポロジーでは、パケットがいずれの経路を利用するかを送信時にヘッダ情報に記載する必要がある。このため、バス制御装置401aは、パケットのヘッダ情報を参照することで、パケットが通った経路を特定できる。
図17は、バスマスタ402からメモリ403へデータを送信する場合の、バス制御装置401bの動作手順を示す。
図11に含まれる動作と同じ動作については、同じ符号を付与し説明を省略する。
ステップ1301において、バス制御装置401bは、パケット化部1101によりバスマスタ402から送信されたデータに対し、NoC上での中継処理に必要な情報を含むヘッダ情報を付与し、データのパケット化を行う。
ステップ1302において、バス制御装置401bは、パケット化部1101より、パケットをNoCへ送信する。
以上のステップを繰り返すことにより、バス制御装置401bは、バスマスタ402から送信されるデータに対し、データを識別するデータIDを付与したパケットを送信し、さらにデータの送信順序をトランザクションIDと一緒に記録する。
図18は、バス制御装置401bが、メモリ403から送信されたデータを受信した時の動作手順を示す。
図12に含まれる動作と同じ動作については、同じ符号を付与し、説明を省略する。
ステップ1401において、振分部413は、メモリ403から送信されたパケットをメモリ毎に区別してバッファ部409に格納する。振分部413の詳細な動作については、図19を用いて後に説明する。
ステップ1402において、デパケット化部1102は、受信したパケットに含まれるデータをバスマスタ402へ送信するために、受信したパケットに含まれるデータを、バスマスタ402との間で利用されるバスプロトコルに変換する。
以上、ステップ1401、802、1402、803を繰り返すことにより、メモリ403から送信されたパケットのデータがバスマスタ402へ送信される。
図19は、振分部413の動作手順を示す。
振分部413は、振分規則記憶部412に記憶される振分規則(図10、図16)に基づき、メモリ403から送信されたパケットを対応するバッファ部409の部分バッファに格納する。
ステップ1501において、振分部413は、メモリ403から送信されたパケットのヘッダ情報または順序記憶部408が記憶する順序情報を参照し、パケットを送信したメモリのID(メモリID)を特定する。パケットのヘッダ情報を利用する場合には、たとえば図10の振分規則を利用できる。順序情報は、トランザクションIDを特定するために利用される。トランザクションIDが特定されると、どのメモリとの間でデータが授受されているかを特定することが可能である。ステップ1502において、振分部413は、順序記憶部408を参照し、パケットのヘッダ情報に記載されたデータIDから、トランザクションIDを特定する。
ステップ1503において、振分部413は、入替可否情報記憶部407を参照し、トランザクションIDから、パケットが伝送路上で順序の入れ替わりを許容できるかどうかの可否を特定する。
ステップ1504において、振分部413は、振分規則記憶部412を参照し、パケットを送信したメモリのIDと伝送路上での順序の入れ替わりの可否に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。
ステップ1505において、振分部1105は、メモリ403から送信されたパケットをバッファ部409格納する。
以上、ステップ1501からステップ1505を実行することにより、バスマスタ402で順序の入れ替わりが許容されないパケットを、メモリ毎に区別してバッファ部409に格納できる。
なお、本実施形態では、バスマスタ402からメモリ403へ送信されたデータの順序を、順序記憶部408で記録し、順序記憶部408に記録された順序に基づいて、接続制御部410が、バスマスタ402へデータを送信するバッファを選択する例を説明した。しかしながら、データIDがトランザクション毎に連続する番号で管理される場合には、送信したデータのデータIDをバス制御装置401b内では管理せず、トランザクション毎にメモリ403からバスマスタ402へ送信が完了したデータIDの番号Xを管理し、この番号Xに基づき次にバスマスタ402へ送信するデータ(IDの番号X+1)を特定してもよい。
図20は、メモリ403からバスマスタ402へ送信が完了したデータのデータIDをトランザクション毎に記録した順序情報の例を示す。
図20の順序情報を利用する場合、接続制御部410は、順序管理情報408を参照し、トランザクションID毎に、送信が完了したデータIDの次の番号を付与されたデータIDのデータを選択することで、バスマスタ402へ送信するデータを選択する。
また、接続制御部410は、バスマスタ402へデータを送信すると、順序記憶部408で記録されるデータIDを、最後に送信したデータのIDに更新する。
また、トランザクションIDは、パケットのヘッダ情報に記載し、一緒に送信され、IF情報記憶部411、入替可否情報記憶部407、振分部413は、パケットに記載されたトランザクションIDから、それぞれ必要な情報を取得する。
これまでは、バス制御装置401a、および401bが、バスマスタ402と隣接して設けられる例を説明した。しかしながら、バス制御装置は、伝送路上で複数のメモリからのデータが中継される中継装置にその一部として設けられてもよい。
図21は、ローカルバスを介して接続された複数のバスマスタ301が、システムバスを介して接続された複数のメモリ303と通信を行う構成を示している。図14と同じ構成については、同じ番号を付与し説明を省略する。この例では、ローカルバスの伝送帯域は相対的に狭く、その伝送速度は相対的に低速である。一方、システムバスでは、伝送帯域は相対的に広く、伝送速度は相対的に高速である。
以下、ローカルバスとシステムバスとを接続する中継装置1601内に、バス制御装置401を構築する例を説明する。
図22は、本開示によるバス制御装置の機能を備えた中継装置1601の構成を示す。
中継装置1601は、図5に示されるバス制御装置401a、および/または図15に示されるバス制御装置401bの構成要素と同等の機能を有する構成要素を備えている。それらには、同じ参照符号を付与してその説明を省略する。
中継装置1601の接続制御部410は、ローカルバスとシステムバスの双方に関して接続を切り替えることが可能である。例えば、バスマスタと同じローカルネットワーク内にメモリが存在し、バスマスタが、システムバスを介して接続されるメモリと、同じローカルネットワーク内のメモリの双方にアクセスする場合、接続制御部410はバスの接続を切り替えることにより、システムバスを介して接続するメモリからの応答データに関しては、システムバスからローカルバスへ送信することが可能であり、また、ローカルバス内に存在するメモリから送信される応答データに関しては、ローカルバスからローカルバスへと直接送信することが可能である。
中継バッファ1701は、ローカルバスから送信されたパケットを格納する記憶装置(たとえばSRAM)である。
中継制御部1702は、バッファ部409に格納されるシステムバスから受信したパケット、及びバッファ部1702に格納されるローカルバスから受信したパケットに対し、それぞれの宛先へと向かう出力ポートを決定する回路である。
また、中継装置1601の接続制御部410は、バッファ部409とバッファ部1701のいずれかに格納され、出力ポートが同じ複数のパケットの集合毎に、パケットの送信順序を決定する。
システムバス用送信制御部1703は、システムバスのバス幅や動作周波数に合わせてパケットを送信する回路である。ローカルバス用送信制御部1704は、ローカルバスのバス幅や動作周波数に合わせてパケットを送信する回路である。
なお、バッファ部409、及びバッファ部1701は、中継装置がパケットの経路制御を行う際に、パケットを格納するバッファの一部を利用して実現されてもよい。また、システムバスからローカルバスに対してパケットを送信する場合、バスの速度差を吸収するためにメモリ403から送信されるパケットを全て格納できる容量の大きな速度差吸収バッファが利用される。このため、速度差吸収バッファの記憶領域の一部をバッファ部409として利用してもよい。
図23(A)および(B)は、中継装置1601の振分規則記憶部1102が記憶している振分規則の例を示している。
中継装置1601では、複数のバスマスタ402と複数のメモリ403の間でデータを送受信する。そのため、振分規則制御部1102が記憶する振分規則もまた、メモリIDに加え、バスマスタを識別するIDが加味されている。
図23(A)は、メモリとバスマスタとに基づく振分規則の一例を示す。すなわち図23(A)の振分規則では、パケットを送信したメモリIDとパケットの宛先となるバスマスタIDの組合せに対し、バッファ部409の格納先の対応関係を定義している。また、バスマスタが順序の入れ替わりを許容できるパケットに関しては順序の並び替えが不要であるため、順序の入れ替わりを許容できないパケットと区別してバッファ部409に格納してもよい。
図23(B)は、パケットの種別を加味した振分規則の一例を示す。図23(B)の振分規則では、応答パケットを送信したメモリIDと宛先となるバスマスタIDの組合せに加え、経路上でパケットの順序の入れ替わりを許容できるデータであるかどうかの可否を加味し、バッファ部409の格納先を定義している。
なお、振分規則として、図23(A)および(B)に示した振分規則以外にも、メモリID、バスマスタID、順序の入れ替わりを許容できるかどうかの可否情報のいずれかの少なくとも1つの条件に対し、バッファ部409の格納先を定義したものを用いてもよい。
図24は、ローカルバスからシステムバスへのデータ送信時の中継装置1601の動作を示す。例として、図21に示すバスマスタ301から複数のメモリ303に対してパケットを伝送する際の中継装置1601の動作を説明する。
図11、および/または図17に含まれる動作と同じ動作については同じ符号を付与し、説明を省略する。
ステップ1901において、中継装置1601の中継バッファ1701は、受信したパケットを格納する。
ステップ1902において、中継装置1601の中継制御部1702は、パケットのヘッダを参照して、当該ヘッダに記載された宛先のID(アドレス)に基づき、パケットの宛先となるメモリやバスマスタへ向かう出力ポートを決定する。
ステップ1903において、送信制御部1703は、パケットに記載されたデータIDおよびトランザクションIDを順番に順序記憶部408に記録する。
なお、トランザクションIDはバスマスタ402によって付与され、データIDはNIC1001によってパケットのヘッダ情報に付与される。トランザクションIDおよびデータIDは、それぞれNICでパケットのヘッダ情報に記載される。
ステップ1904において、システムバス用送信制御部1703は、システムバスのバス幅やバス動作速度に合わせてパケットを送信する。
以上のステップを繰り返すことにより、中継装置1601の順序記憶部408は、バスマスタ402から複数のメモリ403へ送信されたパケットの順にデータIDおよびトランザクションIDを蓄積する。
図25は、中継装置1601が、複数のメモリ403から送信されたデータを受信した際の動作手順の概要を示す。
ステップ2001において、振分部413は、メモリ403から送信されたパケットを振分規則記憶部412に記録されている振分規則413に基づいて、バッファ部409に格納する。なお、中継装置1601における振分部413の詳細な動作については図26を用いて後に説明する。
ステップ2002において、中継制御部1702は、応答パケットを宛先となるバスマスタへ届けるための送信先に接続される出力ポートを決定する。
ステップ2003において、パケットの送信先がローカルバスか、またはシステムバスかを判定する。送信先がローカルバスの場合はステップ2004に移る。送信先がシステムバスの場合はステップ2006に移る。
ステップ2004において、接続制御部410は、パケットの送信順序を決定する。具体的には、接続制御部410は、出力ポート毎にローカルバスにパケットを送信するバッファ部409を決定する。パケットを送信するバッファ部409の決定方法は、図13で説明した動作と同様である。
ステップ2005において、ローカルバス用送信制御部1704は、ローカルバスのバス幅やバス動作速度に合わせてパケットをローカルバスに送信する。処理は再びステップ2001に戻る。
ステップ2006において、システムバス用送信制御部1704は、システムバスのバス幅やバス動作速度に合わせてパケットを送信する。処理は再び、ステップ2001に戻る。
以上のステップを繰り返すことにより、出力ポート毎にバスマスタ402からメモリ403へ送信した順序で、メモリ403からのデータをバスマスタ402へ送信できる。
図26は、中継装置1601の振分部413がバッファ部にパケットを格納する際に行う動作手順を示す。この動作手順は、振分部413が、振分規則記憶部412に記憶される振分規則に基づき、メモリ403から送信されたパケットを対応するバッファ部409に格納する処理の詳細である。
ステップ2101において、振分部413は、メモリ403から送信されたパケットに記載されたヘッダ情報を参照し、パケットを送信したメモリIDとパケットの宛先となるバスマスタIDを特定する。
ステップ2102において、振分部413は、順序記憶部408を参照し、パケットのデータIDからトランザクションIDを特定する。
ステップ2103において、振分部413は、入替可否情報記憶部407を参照し、トランザクションIDから、伝送路上で順序の入れ替わりを許容できるパケットであるかどうかの可否を特定する。
ステップ2104において、振分部413は、振分規則記憶部412を参照し、特定したメモリのIDとバスマスタID、伝送路上での順序の入れ替わりの有無に基づいて、パケットの格納先となるバッファ部409の部分バッファを特定する。
ステップ2105において、振分部1105は、メモリ403から送信されたパケットをバッファ部409に格納する。
以上のステップを実行することにより、パケットのデータを送信したメモリIDとパケットの送信先であるバスマスタIDと、伝送路上での順序の入れ替わりを許容できるパケットかどうかの可否情報に基づき、複数のメモリ403から送信されたパケットを区別してバッファ部409に格納することができる。
なお、入替可否情報記憶部407、IF情報記憶部411、振分部413のそれぞれで記憶される情報については、予め複数の情報を記憶しておき、バスマスタ402の起動時や、アプリケーションやユースケースの変更時において、バスマスタからの制御信号によっていずれの情報を利用するかを選択してもよい。
また、バスマスタから直接、入替可否情報記憶部407、IF情報記憶部411、振分部413のそれぞれで記憶される情報の内容を変更してもよい。
例えば、中継装置1601の振分部413は、図16(A)に示したメモリIDだけに基づく振分規則と、図23(A)に示すメモリIDとバスマスタIDの両方に基づく振分規則を記憶しておき、ローカルバス内で、1個のバスマスタがデータを送信している場合には、図16(A)に示した振分規則を利用し、ユースケースの変更により複数のバスマスタがデータを送信している場合には図23(A)の振分規則を利用してもよい。これにより、ユースケースに合わせてバッファ部409の利用効率を改善できる。
なお、図22の中継装置1601の実施形態の説明では、システムバスからローカスバスへ送信されるパケットに対して、接続制御部410が、ローカルバスへの出力ポートの接続を選択するとした。しかしながらこれは一例である。ローカルバスからシステムバスへ送信されるパケットに対して、接続制御部410が、システムバスへの出力ポートの接続を選択してもよい。また、システムバスとローカルバスの両方からローカルバスへ送信されるパケットに対し、接続制御部410が、ローカルバスへの出力ポートの接続を選択してもよい。また、ローカルバスとシステムバスの両方からシステムバスへ送信されるパケットに対し、接続制御部410が、システムバスへの出力ポートの接続を選択してもよい。
また、図14および図21の構成では、メモリからの応答データの順序の入替えを経路上の一箇所で行う場合について説明したが、半導体集積回路上のバスの複数の要素が順序の入替えを分散して(独立して)行っても良い。また、図14および図21では、説明を簡略化するために、スレーブと接続するNIC1003にメモリ303が1個ずつ接続される構成を用いて説明を行ったが、1個には限られない。
図27は、複数の要素においてメモリからの応答データの順序の入替えを行うことが可能なバスシステム100cの構成を示す。なお、図14および図21と同じ構成については、同じ番号を付与し説明を省略する。
さらに図27のバスシステム100cは、スレーブと接続するNIC1003に対し、複数のメモリ303が接続される構成を示している。図27のNIC1003は、メモリコントローラ2601を介して、複数のメモリ303とデータの送受信を行う。メモリコントローラ2601は、メモリ303の対しデータの読み書きなどの制御を行う回路である。なお、図14および図21ではメモリコントローラ2601は省略されている。
図27において、往路のシステムバス上で応答データの順序に入替りが発生しない場合を考える。このとき、NIC1003内のバス制御装置、またはNIC1003に接続された中継装置2602は、共通のメモリコントローラ2601により制御される複数のメモリ303の応答データの順序を、先行して並び替えることができる。「先行して」とは、図27におけるローカルバスでの並び替えに先行して、という意味である。つまり、本実施形態においては、NIC1003内のバス制御装置、または、NIC1003およびシステムバスに接続された中継装置2602のいずれかが、共通のメモリコントローラ2601により制御される複数のメモリからの応答データを並び替えてシステムバスに流す。異なるメモリコントローラにより制御される複数のメモリからの応答データがシステムバスからローカルバスに到達したときには、バスマスタに接続するNIC1001、ローカルバスの中継装置1002、及びシステムバスとローカルバスを接続する中継装置1601のいずれかで、応答データの順序を並び替えればよい。
このように、複数のメモリ303からの応答データの並べ替え処理を、伝送路上の複数の要素において分散して行うことで、それぞれのNICや中継装置で行う応答データの並替処理の負荷を低減し、また、データの順番の記憶に必要な記憶容量を減らすことができる。
なお、全てのNICや中継装置等に応答データの並べ替えに関する構成を設けてもよい。または、応答データの並べ替え処理を行うNICや中継装置等にのみ当該構成を設け、応答データの並べ替え処理を行わないNICや中継装置等には、当該構成を設けなくてもよい。全てのNICや中継装置等に当該構成を設ける場合には、並べ替えを行うNICや中継装置等を動的に変化させることが可能である。なお、全てのNICや中継装置等に当該構成を設けた場合であっても、設計時または実装時等において決定された特定のNICや中継装置等にのみ並べ替えを行わせてもよい。
上述の例では、バス制御装置がNIC1003またはNIC1001内に設けられていることを前提としている。しかしながらこれは一例である。図3に示すように、バス制御装置とNICとは別体であってもよい。
さらに、メモリコントローラ2601に上述したバス制御装置を組み込むことにより、自身が制御する複数のメモリ303からの応答データをメモリコントローラ2601が並べ替える機能を設けてもよい。その場合には、メモリコントローラ2601とメモリコントローラ2701のような異なるメモリコントローラにより制御されるメモリ群(メモリ1およびm1の組と、メモリ3およびm2の組)からの応答データの並び替えは、ローカルバス上のNIC1001、中継装置1002、または中継装置1601のいずれかが行えばよい。ただしその並び替えの前提として、メモリ1およびm1の組へ送信される要求のデータ、およびメモリ3およびm2の組へ送信される要求のデータの順序が、NIC1001、中継装置1002、または中継装置1601のいずれかにおいて保持されている必要がある。
なお本実施形態では、図27におけるメモリコントローラ2701、NIC1103、および中継装置2702の構成および動作は、それぞれメモリコントローラ2601、NIC1003、および中継装置2602と同じであるとする。
図28は、メモリコントローラ2601と接続されるNIC1003の構成を示す。図15と同じ構成については、同じ番号を付与し説明を省略する。また、NIC1003と中継装置1601との間にはシステムバスが存在するが、図面上、明示的な記載は省略している。
NIC1003は、中継装置1602とメモリコントローラ2601との間に設けられてそれらを接続する。NIC1003とNIC401b(図15)との相違点は、パケット化部1101とデパケット化部1102の位置が入れ替わっている点である。
NIC1003のデパケット化部1102は、中継装置1601から受信した要求のパケットに含まれるデータを、メモリコントローラ2601との間で利用される通信プロトコルに変換して、メモリコントローラ2601に送信する。また、NIC1003のパケット化部1101は、メモリコントローラ2601から受信した応答データをパケットに変換し、中継装置2602へと送信する。なお、応答データの順序の入れ替えの処理については、図15のバスNIC401bと同様である。
本開示は、オンチップバス、汎用プロセッサやDSP上のローカルバスにおける、バスとメモリとの間に設けられるインターフェイス装置等に利用可能である。
100a〜100c バスシステム
301 バスマスタ
302 バス制御装置
303 メモリ
304 バス・インターフェイス
401a、401b バス制御装置
402 バスマスタ
403 メモリ
404 送信用バス・インターフェイス
405 受信用バス・インターフェイス
406 送信制御部
407 入替可否情報記憶部
408 順序記憶部
409 メモリ毎に用意されたバッファ部
410 接続制御部
411 IF情報記憶部
412 振分規則記憶部
413 振分部
1101 パケット化部
1102 デパケット化部
1601 中継装置
1701 中継バッファ
1702 中継制御部
1703 システムバス用送信制御部
1704 ローカルバス用送信制御部

Claims (21)

  1. 第1ノード、複数の第2ノード、および複数の中継装置が、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータの伝送経路上に設けられるバス制御装置であって、
    第1ノードから各第2ノードへ送信されたデータの送信順序を記憶する順序記憶部と、
    前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
    振り分けられた前記データを、前記データの送信元である前記第2ノードごとに区別して格納するバッファ部と、
    前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する接続制御部と
    を備えた、バス制御装置。
  2. 前記入替可否情報が全て否である場合には、入替可否情報を参照せず、全てのデータに対し前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信する、請求項1に記載のバス制御装置。
  3. 前記第1ノードは複数のバス・インターフェイスを備えており、
    前記接続制御部は、データごとに、前記データの送信先となるバス・インターフェイスを特定するインターフェイス情報を参照して、前記バッファ部から前記バス・インターフェイスへ前記データを送信する、請求項1に記載のバス制御装置。
  4. 前記インターフェイス情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて、データごとに、前記データの送信先となるバス・インターフェイスを特定する、請求項3に記載のバス制御装置。
  5. 前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている、請求項1に記載のバス制御装置。
  6. 前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する、請求項1に記載のバス制御装置。
  7. 前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する、請求項1に記載のバス制御装置。
  8. 前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する、請求項1、6および7のいずれかに記載のバス制御装置。
  9. 前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである、請求項1から8のいずれかに記載のバス制御装置。
  10. 第1ノード、および複数の第2ノードが、集積回路上に構築されたパケット交換方式のバスによって接続されたバスシステムにおいて、前記第1ノードと前記複数の第2ノードの各々との間で送受信されるデータを中継する中継装置であって、
    バスから受信したデータを格納する中継バッファと、
    前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、
    各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
    前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
    振り分けられた前記データを、前記データの送信元である前記各第2ノードごとに区別して格納するバッファ部と、
    前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
    前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
    を備えた、中継装置。
  11. 前記振分部は、予め定められた振分規則を参照して、前記第1ノードおよび前記第2ノードを区別して前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードごとに、および前記第1ノードごとに区別して格納する、請求項10に記載の中継装置。
  12. 前記入替可否情報は、前記集積回路において実行されるアプリケーション、および前記第2ノードの種別の少なくとも一方に応じて決定されている、請求項10に記載の中継装置。
  13. 前記振分部は、予め定められた振分規則を参照して、データの順序の入れ替わりの許容の可否をさらに区別して、前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの順序の入れ替わりの許容の可否をさらに区別して格納する、請求項10に記載の中継装置。
  14. 前記振分部は、予め定められた振分規則を参照して、データの伝送経路をさらに区別して、前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの伝送経路をさらに区別して格納する、請求項10に記載の中継装置。
  15. 前記振分部は、予め定められた振分規則を参照して、前記第2ノードを区別して振り分け先を決定する方法と、前記第2ノードおよび前記第1ノードの両方を区別して振り分け先を決定する方法とを選択可能である、請求項10に記載の中継装置。
  16. 前記振分部は、前記データのサイズに応じて前記バッファ部へのデータの分類方法を変更する、請求項10または11に記載の中継装置。
  17. 前記第1ノード、および前記第2ノードは、バスマスタ、メモリ、入出力機器のいずれかである、請求項10から16のいずれかに記載の中継装置。
  18. 集積回路上に構築されたパケット交換方式のバスを有するバスシステムであって、
    第1ノードと、
    複数の第2ノードと、
    第1中継装置および第2中継装置を含む複数の中継装置と、
    前記第1ノードおよび前記第1中継装置の間で送受信されるデータの伝送経路上に設けられた第1バス制御装置と、
    前記複数の第2ノードおよび前記第2中継装置の間で送受信されるデータの伝送経路上に設けられた第2バス制御装置と
    を備え、
    前記複数の中継装置、前記第1バス制御装置、および前記第2バス制御装置のうちの少なくとも1つの装置は、
    バスから受信したデータを格納する中継バッファと、
    前記中継バッファに格納されていた前記データを前記複数の第2ノードのいずれかに送信する中継制御部と、
    各第2ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
    前記各第2ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
    振り分けられた前記データを、前記データの送信元である前記各第2ノードに区別して格納するバッファ部と、
    前記各第2ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
    前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
    を有している、バスシステム。
  19. 前記複数の中継装置は、ローカルバスおよびシステムバスを接続するバス間中継装置をさらに含み、
    前記ローカルバスは、前記第1制御装置、および前記第1中継装置を含み、
    前記システムバスは、前記第2中継装置を含み、
    前記少なくとも1つの装置に設けられた前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項18に記載のバスシステム。
  20. 第3中継装置と、
    複数の第3ノードと、
    前記複数の第3ノードおよび前記第3中継装置の間で送受信されるデータの伝送経路上に設けられた第3バス制御装置と
    をさらに備え、
    前記少なくとも1つの装置において、
    前記中継制御部は、前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかにもさらに送信し、
    前記順序記憶部は、各第3ノードへ送信された前記データの送信順序をさらに記憶し、
    前記振分部は、前記各第2ノードおよび前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定し、
    前記バッファ部は、振り分けられた前記データを、前記データの送信元である前記各第2ノードおよび各第3ノードごとに区別して格納し、
    前記接続制御部は、前記各第2ノードおよび前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項19に記載のバスシステム。
  21. 前記第3バス制御装置は、
    バスから受信したデータを格納する中継バッファと、
    前記中継バッファに格納されていた前記データを前記複数の第3ノードのいずれかに送信する中継制御部と、
    各第3ノードへ送信された前記データの送信順序を記憶する順序記憶部と、
    前記各第3ノードから前記第1ノード宛てに伝送されたデータを受信し、予め定められた振分規則を参照して、前記データの振り分け先を決定する振分部と、
    振り分けられた前記データを、前記データの送信元である前記各第3ノードごとに区別して格納するバッファ部と、
    前記各第3ノードから第1ノードへ伝送される際のデータの伝送順序の入れ替わりの可否を示す入替可否情報を参照して、順序の入れ替わりが許容されないデータに関しては、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する接続制御部と、
    前記接続制御部の制御にしたがって、前記データを前記バスに出力する送信制御部と
    を有しており、
    前記第3バス制御装置において、前記接続制御部は、前記順序記憶部に記憶された前記送信順序と同じ順序で、前記バッファ部から前記第1ノードへ前記データを送信するよう制御する、請求項20に記載のバスシステム。


JP2015505292A 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム Active JP5842174B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015505292A JP5842174B2 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2013050945 2013-03-13
JP2013050945 2013-03-13
PCT/JP2014/001367 WO2014141692A1 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム
JP2015505292A JP5842174B2 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム

Publications (2)

Publication Number Publication Date
JP5842174B2 true JP5842174B2 (ja) 2016-01-13
JPWO2014141692A1 JPWO2014141692A1 (ja) 2017-02-16

Family

ID=51536371

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015505292A Active JP5842174B2 (ja) 2013-03-13 2014-03-11 バス制御装置、中継装置およびバスシステム

Country Status (3)

Country Link
US (2) US9942174B2 (ja)
JP (1) JP5842174B2 (ja)
WO (1) WO2014141692A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101827936B1 (ko) * 2013-08-29 2018-02-09 세이코 엡슨 가부시키가이샤 송신 시스템, 송신 장치 및, 데이터 송신 방법
US10270701B2 (en) 2014-12-05 2019-04-23 Nec Corporation Management node, terminal, communication system, communication method, and program storage medium
US10140222B1 (en) * 2017-07-06 2018-11-27 Micron Technology, Inc. Interface components
JP6916529B2 (ja) * 2018-06-29 2021-08-11 サイレックス・テクノロジー株式会社 デバイスサーバ及びデバイスサーバの制御方法
GB2586029B (en) * 2019-07-29 2022-07-27 Siemens Ind Software Inc Emulating broadcast in a network on chip

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0760979A1 (en) 1995-03-27 1997-03-12 International Business Machines Corporation Bus structure for a multiprocessor system
JP2785005B2 (ja) 1995-10-25 1998-08-13 株式会社超高速ネットワーク・コンピュータ技術研究所 Fc/atm網相互変換装置における多重/分離方式
KR100259082B1 (ko) * 1997-04-02 2000-06-15 김영환 네트워크 트래픽 우선순위 결정방법
JP4705489B2 (ja) * 2006-03-07 2011-06-22 富士通株式会社 デバイスドライバプログラムを記録したコンピュータ読取可能なポータブル記録媒体、記憶装置アクセス方法および記憶装置アクセスシステム
JP5100672B2 (ja) 2009-01-28 2012-12-19 株式会社エヌ・ティ・ティ・ドコモ ルータ装置
CN102449965B (zh) 2010-03-05 2015-01-14 松下电器产业株式会社 中继器
US9432298B1 (en) * 2011-12-09 2016-08-30 P4tents1, LLC System, method, and computer program product for improving memory systems
US8880819B2 (en) * 2011-12-13 2014-11-04 Micron Technology, Inc. Memory apparatuses, computer systems and methods for ordering memory responses

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10228417A (ja) * 1996-11-15 1998-08-25 Hyundai Electron America Inc データ処理システムにおけるメモリリクエスト再順序付け法
JP2012073851A (ja) * 2010-09-29 2012-04-12 Sony Corp バスシステムおよびそのデッドロック回避回路

Also Published As

Publication number Publication date
JPWO2014141692A1 (ja) 2017-02-16
US20150180805A1 (en) 2015-06-25
US9942174B2 (en) 2018-04-10
WO2014141692A1 (ja) 2014-09-18
US10305825B2 (en) 2019-05-28
US20180198739A1 (en) 2018-07-12

Similar Documents

Publication Publication Date Title
US10305825B2 (en) Bus control device, relay device, and bus system
CN111104775B (zh) 一种片上网络拓扑结构及其实现方法
US11003604B2 (en) Procedures for improving efficiency of an interconnect fabric on a system on chip
US9426099B2 (en) Router, method for controlling router, and program
JP4880802B1 (ja) 中継装置
JP4808513B2 (ja) システムオンチップの大域的非同期通信アーキテクチャ
JP5603481B2 (ja) 中継装置
JP5838365B2 (ja) バスシステムおよび中継器
JP4756158B2 (ja) 通信リソース割り当て電子デバイスおよび方法
JP5853211B2 (ja) バスインタフェース装置、中継装置、およびそれらを備えたバスシステム
JP5552196B2 (ja) 中継装置、中継装置の制御方法、およびコンピュータプログラム
CN101449253B (zh) 多处理器网关
US20150180784A1 (en) Bus system and computer program
US20100057953A1 (en) Data processing system
US10547514B2 (en) Automatic crossbar generation and router connections for network-on-chip (NOC) topology generation
US20180183672A1 (en) System and method for grouping of network on chip (noc) elements
CN112506824A (zh) 一种芯片和数据交互方法
JP6558011B2 (ja) 管理装置、スイッチ装置、優先度管理方法、およびコンピュータ・プログラム
US9678905B2 (en) Bus controller, bus control system and network interface

Legal Events

Date Code Title Description
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: 20150616

R151 Written notification of patent or utility model registration

Ref document number: 5842174

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151