JP6819684B2 - バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法 - Google Patents

バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法 Download PDF

Info

Publication number
JP6819684B2
JP6819684B2 JP2018536936A JP2018536936A JP6819684B2 JP 6819684 B2 JP6819684 B2 JP 6819684B2 JP 2018536936 A JP2018536936 A JP 2018536936A JP 2018536936 A JP2018536936 A JP 2018536936A JP 6819684 B2 JP6819684 B2 JP 6819684B2
Authority
JP
Japan
Prior art keywords
exclusive
command
circuit
exclusive command
response
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
JP2018536936A
Other languages
English (en)
Other versions
JPWO2018042767A1 (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
Publication of JPWO2018042767A1 publication Critical patent/JPWO2018042767A1/ja
Application granted granted Critical
Publication of JP6819684B2 publication Critical patent/JP6819684B2/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/38Information transfer, e.g. on bus
    • G06F13/382Information transfer, e.g. on bus using universal interface adapter
    • G06F13/387Information transfer, e.g. on bus using universal interface adapter for adaptation of different data processing systems to different peripheral devices, e.g. protocol converters for incompatible systems, open system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • 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/1652Handling requests for interconnection or transfer for access to memory bus based on arbitration in a multiprocessor architecture
    • G06F13/1663Access to shared memory
    • 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
    • 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
    • G06F13/4031Coupling between buses using bus bridges with 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/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4204Bus transfer protocol, e.g. handshake; Synchronisation on a parallel bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/38Universal adapter
    • G06F2213/3852Converter between protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

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)
  • Bus Control (AREA)
  • Memory System (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法に関する。
近年、サーバ等を始めとする情報処理システムには、例えば、異なるバス仕様が適用された複数の半導体集積回路や回路基板が用いられている。これら異なるバス仕様が適用された半導体集積回路等において、例えば、第1バス仕様の情報を、第1バス仕様とは異なる第2バス仕様の情報に載せ替えるのが困難な場合も存在する。
具体的に、AXI(登録商標)(Advanced eXtensible Interface)仕様のSoC(System on a Chip)において、例えば、OS(Operating System)での共通リソースの確保やソフトウェア順序を保証するために、SoC内でメモリアクセスの排他制御を実装している。
すなわち、複数個のCPU(Central Processing Unit)を搭載したSoCを用いて1つのOSを実行する場合、或いは、異なるOSであっても共通リソースを確保する場合など、チップ(半導体集積回路等)を超えて排他制御を実装したいという要望がある。しかしながら、このようなチップを超えて排他制御を行いたい場合であっても、それら異なるバス仕様が適用されたチップ間で予め排他制御の伝搬機能が設けられていないこともある。
ここで、AXI(登録商標)は、例えば、AHB(登録商標)(Advanced High-performance Bus)およびAPB(登録商標)(Advanced Peripheral Bus)と共に、オンチップインターコネクト仕様の総称であるAMBA(登録商標)(Advanced Microcontroller Bus Architecture)に含まれる。また、AMBA以外の仕様としては、例えば、OCP(Open Core Protocol)やPIF(Processor InterFace)等が知られている。
ところで、従来、例えば、マルチプロセッサシステムにおける排他制御としては、様々な提案がなされている。
特開平06−110844号公報 特開平08−161228号公報
前述したように、異なるバス仕様が適用されたチップ間において、予め排他制御の機能が設けられていないことがある。例えば、広く普及しているPCIe(登録商標)(Peripheral Component Interconnect Express)仕様を適用した半導体集積回路等と、AXI仕様を適用したSoCの間では、排他制御の伝搬機構は、予め準備されていない。
このような、異なるバス仕様が適用された半導体集積回路や回路基板等の間における排他制御の伝搬機能が設けられていないのは、他の様々なバス仕様を適用した半導体集積回路や回路基板等の間においても同様である。
ここで、本発明は、PCIe仕様と、AXI仕様の間の排他制御の伝搬に限定されず、様々なバス仕様を適用した半導体集積回路や回路基板等の間の排他制御の伝搬に対しても適用可能なのはいうまでもない。すなわち、本発明は、例えば、PCIeの半導体集積回路等と、AXI,AHBおよびAPBといったAMBA或いはOCPやPIFの半導体集積回路等の間の排他制御の伝搬に対しても適用可能である。
一実施形態によれば、第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路が提供される。前記バス制御回路は、排他コマンド変換回路と、排他コマンド生成回路と、排他応答発行回路と、排他応答受信回路と、を有する。
前記排他コマンド変換回路は、前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力し、前記排他コマンド生成回路は、前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する。
前記排他応答発行回路は、前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行し、前記排他応答受信回路は、前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る。
開示のバス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法は、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができるという効果を奏する。
図1は、本実施形態に係る情報処理装置の一例を示すブロック図である。 図2は、図1に示す情報処理装置における半導体集積回路にそれぞれ設けられたバス制御回路の一例を示すブロック図である。 図3は、図1に示す情報処理装置におけるPCIeのパケットのTLPヘッダを使用して排他コマンドを送信する例を説明するための図である。 図4は、AXIの基本構成を説明するための図(その1)である。 図5は、AXIの基本構成を説明するための図(その2)である。 図6は、AXIにおける信号の例を説明するための図である。 図7は、AXIにおける排他アクセスの一例を説明するための図である。 図8は、AXIにおいて使用される応答を説明するための図である。 図9は、AXIにおける排他アクセスの動作を説明するための図である。 図10は、図1に示す情報処理装置におけるリードアクセス動作の一例を説明するための図である。 図11は、図10に示す情報処理装置における排他リードアクセス動作の一例を説明するための図である。 図12は、図1に示す情報処理装置におけるライトアクセス動作の一例を説明するための図である。 図13は、図12に示す情報処理装置における排他ライトアクセス動作の一例を説明するための図である。 図14は、図10および図11に示す情報処理装置における排他リードアクセス動作の他の例を説明するための図である。 図15は、本実施形態に係る情報処理装置の他の例を示すブロック図である。 図16は、図2に示すバス制御回路におけるリードチャネルの排他コマンド変換ブロックの一例を説明するための図である。 図17は、図2に示すバス制御回路におけるライトチャネルの排他コマンド変換ブロックの一例を説明するための図である。 図18は、図2に示すバス制御回路における排他応答受信ブロックの一例を説明するための図である。 図19は、図2に示すバス制御回路におけるリードチャネルの排他コマンド生成ブロックの一例を説明するための図である。 図20は、図2に示すバス制御回路におけるライトチャネルの排他コマンド生成ブロックの一例を説明するための図である。 図21は、図2に示すバス制御回路におけるライトチャネルの排他応答発行ブロックの一例を説明するための図である。 図22は、図1および図2を参照して説明した情報処理装置におけるSTビット[7:0]を含むヘッダ情報の生成/復元方法を説明するための図(その1)である。 図23は、図1および図2を参照して説明した情報処理装置におけるSTビット[7:0]を含むヘッダ情報の生成/復元方法を説明するための図(その2)である。
以下、本実施形態に係るバス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法の実施例を、添付図面を参照して詳述する。図1は、本実施形態に係る情報処理装置の一例を示すブロック図である。図1において、参照符号100はSoC(半導体集積回路)を示し、200はPCIe(登録商標)バスを示す。
図1では、一例として、AXI(登録商標)仕様の2つのSoC(SoC#0,SoC#1)100がPCIeバス(PCIe)200で繋がれているが、SoC100の数は、2つに限定されず、また、SoC100の仕様は、AXIに限定されない。さらに、複数のSoC100を繋ぐバスも、PCIe200に限定されるものではない。
なお、SoC100は、1つの半導体集積回路(チップ)として形成することもできるか、複数のチップとして形成することもできる。また、図1において、回路基板300は、SoC100(コントローラ)およびメモリ101により形成され、複数の回路基板300により情報処理装置(例えば、サーバ装置)を形成しているが、本実施形態は、様々な構成に対して幅広く適用することが可能である。
図1に示されるように、各回路基板300は、SoC100およびメモリ(例えば、DDR(Double-Data-Rate) Memory)101を含む。なお、回路基板300は、他の様々なチップ(半導体集積回路)を含んでもよい。SoC100は、バス制御回路(排他アクセス回路)1,CPU102,内部接続回路(Interconnect)103、メモリ接続回路(104,105)、外部接続回路(106,107)および様々なIP(IP(Intellectual Property)コア,IPマクロ)108を含む。
メモリ接続回路は、例えば、メモリ(DDR Memory)101との接続を制御するメモリ制御回路(DDR Controller)104、および、メモリ101のインタフェースIPマクロ(DDR PHY)105を含む。外部接続回路は、例えば、PCIe200を介して他のSoC100(回路基板300)との接続(リンク)を制御するリンク制御回路(PCIe Link)106、および、PCIe200のインタフェースIPマクロ(PCIeの物理層:PCIe PHY)107を含む。
内部接続回路103は、例えば、AXI仕様に基づいて、CPU102と、メモリ制御回路(DDR Controller)104,バス制御回路1およびIPマクロ108の間で信号(データおよびコマンド)の受け渡しを行う。なお、CPU102,メモリ制御回路104およびIPマクロ108等は、AXI仕様(内部バス仕様)の内部回路を形成する。ここで、バス制御回路1は、内部接続回路103によるAXI仕様の信号を受け取って変換し、外部接続回路(リンク制御回路106およびPCIeの物理層107)を介してPCIe(外部バス)200に出力する。また、バス制御回路1は、PCIe200から外部接続回路(106,107)を介して入力された信号を変換し、AXI仕様の内部接続回路103(CPU102,メモリ制御回路104およびIPマクロ108等)に出力する。
バス制御回路1は、排他コマンド変換ブロックA-1、排他応答発行ブロックA-2、排他コマンド生成ブロックB-1、および、排他応答受信ブロックB-2を含み、それぞれのSoC100に設けられている。
ここで、一方のSoC#0からPCIe200を介して他方のSoC#1に排他コマンドを出力するとき(SoC#0からSoC#1への排他アクセス発行時)、それぞれのSoC100におけるブロックA-1,A-2,B-1,B-2は次のように動作する。一方のSoC#0では、A-1およびB-2がオン(活性化)してA-2およびB-1がオフ(不活性化)し、他方のSoC#1では、A-1およびB-2がオフしてA-2およびB-1がオンする。
なお、排他アクセスとは、例えば、SoC#0とSoC#1があるリソース(メモリ等)を共有する場合に、SoC#0がその共有リソースの特定部分(メモリの特定アドレス等)にアクセスしている間は、SoC#1がその共有リソースの特定部分にアクセスできないようにすることで、その共有リソースの整合性を保持するようにした排他制御を含むアクセスのことである。また、排他コマンドとは、その排他アクセスを要求するコマンドのことであり、例えば、排他リードコマンドと排他ライトコマンドを含む。
一方、通常アクセスとは、例えば、上記排他制御を含まないアクセスである。また、通常コマンドとは、その通常アクセスを要求するコマンドのことであり、例えば、通常リードコマンドと通常ライトコマンドを含む。
図2は、図1に示す情報処理装置における半導体集積回路にそれぞれ設けられたバス制御回路の一例を示すブロック図である。図2に示されるように、各半導体集積回路(SoC#0,SoC#1)100において、バス制御回路(PCIe Exclusive Access Unit)1は、内部接続回路103から、PCIe200に接続された外部接続回路106,107に信号を変換する第1変換部(Interconnect to PCIe Bus Bridge)11を含む。さらに、バス制御回路1は、PCIe200に接続された外部接続回路106,107から、内部接続回路103に信号を変換する第2変換部(PCIe to Interconnect Bus Bridge)12を含む。
第1変換部11は、内部接続回路103からの排他コマンドを受け取って変換し、PCIe200に接続された外部接続回路106,107に出力するもので、コマンド変換ブロックA-1、排他応答発行ブロックA-2、および、セレクタ10を含む。
ここで、コマンド変換ブロックA-1は、例えば、内部接続回路103から、半導体集積回路100内部の排他制御に適合したフォーマットを有するAXI仕様の排他コマンドを受け取り、PCIe仕様に適合した別フォーマットを有するAXI仕様の排他コマンドに変換して外部接続回路106,107に出力する回路である。
また、排他応答発行ブロックA-2は、例えば、排他コマンド生成ブロックB-1から、内部接続回路103からのAXI仕様の排他コマンドに含まれる排他応答情報を受け取り、PCIe仕様に適合した排他応答情報を外部接続回路106,107に発行する回路である。なお、セレクタ10は、コマンド変換ブロックA-1または排他応答発行ブロックA-2の出力を選択して、PCIe200に出力する回路である。
第2変換部12は、PCIe200からの排他コマンドを受け取って変換し、内部接続回路103に出力するもので、排他コマンド生成ブロックB-1および排他応答受信ブロックB-2を含む。
ここで、排他コマンド生成ブロックB-1は、例えば、PCIe200に接続された外部接続回路106,107から、PCIe仕様に適合したフォーマットを有するAXI仕様の排他コマンドを受け取り、半導体集積回路100内部の排他制御に適合した別フォーマットを有するAXI仕様の排他コマンドを生成して内部接続回路103に出力する回路である。また、排他応答受信ブロックB-2は、外部接続回路106,107から、PCIe200に発行された排他コマンドに対する排他応答情報を受け取り、A-1に出力する回路である。
次に、図3〜図9を参照して、本実施形態において排他アクセスを変換する異なる2種類のバス仕様として、PCIe(登録商標)およびAXI(登録商標)を適用する場合の例を説明し、その後、図10〜図23を参照して、本実施形態を詳述する。
図3は、図1に示す情報処理装置におけるPCIeのパケットのTLPヘッダを使用して排他コマンドを送信する例を説明するための図であり、AXIのMisc信号を入力する場合を説明するためのものである。ここで、Misc信号は、例えば、AXIにおいてユーザが定義することが可能なユーザ信号であり、種々の(miscellaneous)情報を伝播するために使用可能な信号である。なお、図3は、PCIeのパケットのTLP(Transaction Layer Packet)ヘッダにおけるメモリ書き込み要求ヘッダ(Memory Write Request Header)、並びに、メモリ読み出しおよびアトミック操作要求ヘッダ(Memory Read and AtomicOp Request Headers)を示している。
図1を参照して説明したように、例えば、一方のSoC#0から他方のSoC#1への排他アクセス発行時には、SoC#0では、ブロックA-1およびB-2がオンし、SoC#1では、A-2およびB-1がオンする。ここで、PCIeのTLPヘッダは、図3に示されるような構成を有し、例えば、ユーザに開放されているTH(TLP Processing Hint present)ビット,ST[7:0]フィールドおよびPH(Processing Hint)ビットを使用して排他アクセスの変換を行う。なお、本明細書では、例えば、AXIにおける排他コマンドを組み込むPCIeのビットフィールドとして、TLPヘッダを使用した例を説明するが、これは、単なる例であり、PCIe仕様における様々なビットフィールドを使用することができる。
すなわち、SoC#0では、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットを、AXIのMisc信号のPCIeへの入力として扱うようになっている。SoC#0の外部接続回路106,107は、AXIのMisc信号のビット情報に基づいて、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットを生成する。Misc信号は例えば、後述するAXIのARUSER[x:0]とAWUSER[x:0]を含む。
また、SoC#1では、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットのAXIへの入力として、AXIのMisc信号を扱うようになっている。ここで、SoC#1の外部接続回路106,107は、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットのビット情報に基づいて、AXIのMisc信号を生成する。Misc信号は例えば、後述するAXIのARUSER[x:0]とAWUSER[x:0]を含む。
なお、Misc信号入力として扱うビットは、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットに限定されるものではなく、ユーザに開放されている他のビットを使用してもよい。さらに、排他アクセスの変換に使用するビットは、TLPヘッダにおけるものに限定されないのはもちろんである。
図4および図5は、AXIの基本構成を説明するための図である。図4(a)に示されるように、AXIは、読み出し用のリードアドレス(AR)チャネル"Read address channel"およびリードデータ(R)チャネル"Read data channel"を含む。さらに、AXIは、書き込み用のライトアドレス(AW)チャネル"Write address channel",ライトデータ(W)チャネル"Write data channel"およびライト応答(B)チャネル"Write response channel"を含む。すなわち、AXIは、5つのチャネルを含んでいる。
図4(b)は、AXIにおける読み出し動作を説明するためのものであり、図4(c)は、AXIにおける書き込み動作を説明するためのものである。なお、図4(b)および図4(c)において、例えば、"AXI Master"としては、図1のSoC#0におけるCPU102を想定し、"AXI Slave"としては、図1のSoC#1におけるメモリ(DDR Memory)101を想定する。
また、"AXI Master"と"AXI Slave"の間には、SoC#0における内部接続回路103,バス制御回路1および外部接続回路106,107、PCIe200、並びに、SoC#1における外部接続回路106,107および内部接続回路103等が介在する。
図4(b)に示されるように、"AXI Master"から"AXI Slave"(SoC#1におけるメモリ101)のデータを読み出す場合、図4(a)に示すARおよびRを使用する。また、図4(c)に示されるように、"AXI Master"から"AXI Slave"にデータを書き込む場合、図4(a)に示すAW,WおよびBを使用する。
図5に示されるように、トランザクションの動作として、各チャネルは、バリッド(VALID)/レディ(READY)/伝送する情報(Information)の信号を含み、VALID/READYのハンドシェークで情報を受け渡す。ここで、CLKは、クロックを示す。
まず、送信側は、情報とその情報が有効であることを示すVALID信号をアサートし(図5のT1)、受信側は、その有効な情報を受け取れることを示すためにREADYをアサートする。例えば、VALIDおよびREADYが共に高レベル『H』である時のクロックエッジでハンドシェーク成立する。なお、送信側は、図5のT2まで、InformationとVALIDを保持する。このようにして、情報の受け渡しが完了する。
図6は、AXIにおける信号の例を説明するための図である。本実施形態では、例えば、太枠で囲った信号ARLOCK[1:0],ARUSER[x:0],RRESP[1:0],AWLOCK[1:0],AWUSER[x:0]およびBRESP[1:0]を使用する。ここで、ARLOCK[1:0]は、アトミックアクセスを示し、通常/排他/ロックアクセスを指定する信号(AXI3(AXIのバージョン3)のみ)であり、ARUSER[x:0]は、ユーザ信号であり、ユーザが定義することが可能な信号であって、上述したMisc信号の1つである。また、RRESP[1:0]は、読み出し応答(リード応答)を示し、リード転送の結果ステータスを示す信号である。なお、[x:0]は任意のビット幅であることを表す。
さらに、AWLOCK[1:0]は、アトミックアクセスを示し、通常/排他/ロックアクセス(AXI3のみ)を指定する信号であり、AWUSER[x:0]は、ユーザ信号であり、ユーザが定義することが可能な信号であって、上述したMisc信号の1つである。また、BRESP[1:0]は、書き込み応答(ライト応答)を示し、ライト転送の結果ステータスを示す信号である。
図7は、AXIにおける排他アクセスの一例を説明するための図である。図7(a)に示されるように、2ビットの信号AxLOCK[1:0]の値『00』,『01』,『10』および『11』は、それぞれ『通常アクセス』,『排他アクセス』,『ロックアクセス』および『予約済み(Reserved)』を示す。なお、AxLOCK[1:0]は、ARLOCK[1:0]およびAWLOCK[1:0]の両方を示す。また、AxLOCK[1:0]の値『10』は、AXI4(AXIのバージョン4)では削除されている。
図7(b)は、マスタ0(Master 0:例えば、SoC#0のCPU102)によるスレーブ0(Slave 0:例えば、SoC#0のメモリ101)のアクセスと、マスタ1(Master 1:例えば、SoC#1のCPU102)によるスレーブ0のアクセスが競合する場合を示す。なお、スレーブ1(Slave 1)は、例えば、SoC#1のメモリ101が対応する。
図7(b)に示されるように、排他アクセスは、例えば、マスタ0およびマスタ1による特定のアドレス(SoC#0のメモリ101)へのアクセスが競合する場合に、例えば、セマフォ型の処理により実現することが可能である。ここで、排他アクセスの実現には、スレーブ0(SoC#0のメモリ101)に対して、排他アクセスモニタを設けることが求められる。ここで、図7(b)に示すSlave 0の排他アクセスモニタは、Slave 0をアクセスするアドレスを監視し、例えば、Master 0からSlave 0への排他アクセス中に、Master 1がSlave 0の別のアドレスにはアクセス可能とすることができる。
図8は、AXIにおいて使用される応答を説明するための図である。図8に示されるように、例えば、AXIで使用されるレスポンス(応答)は、2ビットのRRESP[1:0]およびBRESP[1:0]の値『00』,『01』,『10』および『11』に対して、"OKAY","EXOKAY","SLVERR"および"DECERR"の4種類ある。
ここで、"OKAY"は、通常アクセス成功もしくは排他アクセス失敗を示し、"EXOKAY"は、排他読み出し、または、排他書き込みのいずれかが成功したことを示し、そして、"SLVERR"は、スレーブエラーを示し、スレーブからマスタへのエラー通知である。また、"DECERR"は、デコードエラーを示し、アクセス先のアドレスにスレーブが存在しないことを示し、通常、インターコネクトが生成する。
すなわち、ライト(書き込み)の場合、バースト全体に対して、1つの応答を返し、また、リード(読み出し)の場合、バースト内のデータ転送ごとに応答を返すようになっている。ここで、データ転送ごとに異なる応答を返すことが可能であり、また、途中でエラーが発生しても、要求された回数の転送をすることが求められる。
図9は、AXIにおける排他アクセスの動作を説明するための図である。ここで、排他アクセスの動作において、基本は、セマフォアクセス(リード・モディファイ・ライト)である。
図9(a)に示されるように、マスタが排他リードを実施(ARLOCK[0:1]=『01』)すると、排他モニタは、アドレスとIDを保存し、スレーブは"EXOKAY"で、リードデータを返す。なお、排他アクセスに対応しないスレーブは、"OKAY"を返すことで、マスタに非対応であることを通達することができる。
図9(b)に示されるように、マスタがデータのモディファイ(modify)を実施すると、この間、排他モニタは、セマフォ領域が他のマスタによって書き換えられないかを監視する。なお、排他モニタは、他のマスタ(ID)からの書き込みや、他のアドレスへの排他リードが発生しない限り監視を続行する。
図9(c)に示されるように、マスタが更新後のデータを排他ライト(AWLOCK[0:1]=『01』)すると、排他モニタは、同じアドレスを監視中であれば、排他性が保証されるため、ライトを実施し、"EXOKAY"を返す。また、排他モニタは、そのアドレスを監視中でなければ、排他性が保証されないため、ライト動作は行わずに"OKAY"を返すことになる。
ところで、PCIeには、排他制御の機能が設けられていないため、例えば、AXIが適用された2つのSoC#0とSoC#1をPCIeにより接続したシステム(情報処理装置)では、適切な排他制御を行うことが難しい。
図10は、図1に示す情報処理装置におけるリードアクセス動作の一例を説明するための図である。図11は、図10に示す情報処理装置における排他リードアクセス動作の一例を説明するための図であり、排他リードアクセス動作におけるAXIコマンドの変換を説明するためのものである。
図10および図11において、SoC#0およびSoC#1の内部でコマンドや各種情報の受け渡しに使用されるバスはAXIであり、排他リードアクセスに対応している一方、SoC#0とSoC#1の間でコマンドや各種情報の受け渡しに使用されるバスはPCIeであり、排他リードアクセスに対応していない。なお、図11において、『xxxx』はリードデータを示し、『yy』は排他応答を示す。また、Misc信号としては、ARUSER[x:0]を使用(例えば、排他アクセス=『1』)する。
図10および図11に示されるように、まず、SoC#0のCPU102(CPU#0)から排他リードアクセス(排他リードコマンド)を発行し(処理S1)、排他コマンド変換ブロックA-1により排他リードコマンドを保持する(処理S2:AR ARLOCK=『01』)。次に、A-1により、AXIのMisc信号に排他リード情報をセットする(処理S3:AR ARUSER=『1』)。さらに、A-1から、例えば、SoC#0の外部接続回路(リンク制御回路106およびPCIe PHY107:PCIe#0)に対して、通常リードコマンド(Misc信号付き)を発行する(処理S4:AR ARLOCK=『00』,ARUSER=『1』)。
そして、PCIe#0(SoC#0の外部接続回路)からPCIe#1(SoC#1の外部接続回路)に、ヘッダ情報に排他制御情報を含むリードコマンドを発行し(処理S5)、PCIe#1から排他コマンド生成ブロックB-1に通常リードコマンド(Misc信号付き)を発行する(処理S6:AR ARLOCK=『00』,ARUSER=『1』)。また、B-1により通常リードコマンド(Misc信号付き)を保持し(処理S7)、Misc信号の排他リード情報から排他リードコマンドを生成する(処理S8)。
次に、B-1からSoC#1のメモリ101(DDR#1)に排他リードコマンドを発行し(処理S9:AR ARLOCK=『01』)、DDR#1が排他リード応答を発行し(処理S10)、そして、B-1により排他リード応答を保持する(処理S11:R RDATA=『xxxx』,RRESP=『yy』)。
さらに、B-1から、通常リードコマンドの応答としてリードデータ(Read Data)をPCIe#1に出力し(処理S12:R RDATA=『xxxx』,RRESP=『00』)、B-1から、保持された排他リード応答に基づいて、排他リード応答であることを示す識別情報(排他リード応答情報)を排他応答発行ブロックA-2に発行する(処理S13:R RRESP=『yy』)。また、A-2により、排他リード応答情報をライトデータ(Write Data)とする通常ライトコマンドをPCIe#1に発行し、PCIe#1 は、通常ライトコマンドを受け取り、A-2に通常ライトの成功を示す応答を発行する(処理S14:AW AWLOCK=『00』,W WDATA=『yy』,B BRESP=『00』)。
そして、PCIe#1からPCIe#0にリードデータ(Read Data)/ライトデータ(Write Data)を転送し(処理S15)、PCIe#0からA-1に通常リードコマンドに対するリードデータを転送する(処理S16:R RDATA=『xxxx』,RRESP=『00』)。また、PCIe#0から排他応答受信ブロックB-2に排他リード応答情報をライトデータとする通常ライトコマンドを発行し、B-2は通常ライトコマンドを受け取り、通常ライトの成功を示す応答をPCIe#0に発行する(処理S17:AW AWLOCK=『00』,W WDATA=『yy』,B BRESP=『00』)。さらに、B-2からA-1に排他リード応答情報を転送し(処理S18:W WDATA=『yy』)、A-1によりリードデータ/排他リード応答情報をマージし、排他リード応答をCPU#0に転送する(処理S19:R RDATA=『xxxx』,RRESP=『yy』)。
以上のようにして、例えば、排他リード機能が用意されていないPCIeを介して接続された、2つの排他リード機能を有するAXI仕様の半導体集積回路(SoC)間における排他リード処理を実現することが可能になる。すなわち、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができる。
図12は、図1に示す情報処理装置におけるライトアクセス動作の一例を説明するための図である。図13は、図12に示す情報処理装置における排他ライトアクセス動作の一例を説明するための図であり、排他ライトアクセス動作におけるAXIコマンドの変換を説明するためのものである。
図12および図13において、SoC#0およびSoC#1の内部でコマンドや各種情報の受け渡しに使用されるバスはAXIであり、排他ライトアクセスに対応している一方、SoC#0とSoC#1の間でコマンドや各種情報の受け渡しに使用されるバスはPCIeであり、排他ライトアクセスに対応していない。なお、図13において、『xx』はライトデータを示し、『yy』は排他応答を示す。また、Misc信号としては、AWUSER[x:0]を使用(例えば、排他アクセス=『1』)する。
図12および図13に示されるように、まず、CPU#0(SoC#0のCPU102)から排他ライトアクセス(排他ライトコマンド)を発行し(処理S21)、排他コマンド変換ブロックA-1により排他ライトコマンドを保持する(処理S22:AW AWLOCK=『01』,W WDATA=『xx』)。次に、A-1により、AXIのMisc信号に排他ライト情報をセットする(処理S23)。さらに、A-1から、例えば、PCIe#0(SoC#0の外部接続回路106,107)に対して、通常ライトコマンド(Misc信号付き)を発行する(処理S24:AW AWLOCK=『00』,AWUSER=『1』,W WDATA=『xx』)。
そして、PCIe#0からPCIe#1にヘッダ情報に排他制御情報を含むライトコマンドを発行し(処理S25)、PCIe#1から排他コマンド生成ブロックB-1に通常ライトコマンド(Misc信号付き)を発行し、B-1は通常ライトコマンド(Misc信号付き)を受け取り、PCIe#1に受け取り成功を示す応答を発行する(処理S26:AW AWLOCK=『00』,AWUSER=『1』,W WDATA=『xx』,B BRESP=『00』)。また、B-1により通常ライトコマンド(Misc信号付き)を保持し(処理S27)、Misc信号の排他ライト情報から排他ライトコマンドを生成する(処理S28)。
次に、B-1からDDR#1(SoC#1のメモリ101)に排他ライトコマンドを発行し(処理S29:AW AWLOCK=『01』,W WDATA=『xx』)、DDR#1が排他ライト応答を発行し(処理S30)、そして、B-1により排他ライト応答を保持する(処理S31:B BRESP『yy』)。
さらに、B-1から、保持された排他ライト応答に基づいて、排他ライト応答であることを示す識別情報(排他ライト応答情報)を排他応答発行ブロックA-2に発行し(処理S32:B BRESP『yy』)、A-2により、排他ライト応答情報をライトデータ(Write Data)とする通常ライトコマンドをPCIe#1に発行し、PCIe#1通常ライドコマンドを受け取り、A-2に通常ライトの成功を示す応答を発行する(処理S33: AW AWLOCK=『00』,W WDATA=『yy』,B BRESP=『00』)。
また、PCIe#1からPCIe#0にライトデータを転送し(処理S34)、PCIe#0から排他応答受信ブロックB-2に排他ライト応答情報をライトデータとする通常ライトコマンドを発行し、B-2は通常ライトコマンドを受け取り、PCIe#0に通常ライトの成功を示す応答を発行する(処理S35: AW AWLOCK=『00』,W WDATA=『yy』,B BRESP=『00』)。そして、B-2からA-1に排他ライト応答情報を転送し(処理S36)、A-1により排他ライト応答をCPU#0に転送する(処理S37:B BRESP=『yy』)。
以上のようにして、例えば、排他ライト機能が用意されていないPCIeを介して接続された、2つの排他ライト機能を有するAXI仕様の半導体集積回路(SoC)間における排他ライト処理を実現することが可能になる。すなわち、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができる。
図14は、図10および図11に示す情報処理装置における排他リードアクセス動作の他の例を説明するための図であり、AXIのMisc信号を使わずに排他リードアクセス動作を行う例を説明するためのものである。
図14と、前述した図11の比較から明らかなように、Misc信号を使わずに排他リードアクセス動作を行う本変形例では、図11に示す処理S1〜S19に加えて、さらなる処理S4'およびS6'が設けられている。
すなわち、排他コマンド変換ブロックA-1からPCIe#0に対して、通常リードを発行する処理S4(AR ARLOCK=『00』,ARUSER=『1』)と共に、処理S4'を行う。処理S4'では、A-1からPCIe#0に対して、例えば、AW AWLOCK=『00』,W WDATA=『1』とすることにより、排他リード情報をAXIの通常ライトコマンドとして発行する。そして、PCIe#0は、通常ライトコマンドを受け取り、A-1に受け取り成功を示す応答を発行する。
さらに、PCIe#1から排他コマンド生成ブロックB-1に通常リードを発行する処理S6(AR ARLOCK=『00』,ARUSER=『1』)と共に、処理S6'を行う。処理S6'では、PCIe#1からB-1に対して、例えば、AW AWLOCK=『00』,W WDATA=『1』とすることにより、排他リード情報をAXIの通常ライトコマンドとして発行し、B-1は、通常ライトコマンドを受け取り、PCI#1に受け取り成功を示す応答を発行する。
そして、B-1は、通常リードコマンド(処理S6)と排他リード情報の通常ライトコマンド(処理S6')から、AXIの排他リードコマンドを生成する。同様に、排他ライトアクセス動作もMisc信号を使用することなく実現することが可能である。このように、PCIeのMisc信号を使用せずに排他アクセス処理を実現することができる。
図15は、本実施形態に係る情報処理装置の他の例を示すブロック図であり、AXI仕様の3つのSoC(SoC#0,SoC#1,SoC#2)100がPCIe200で繋がれた情報処理装置の例を示すものである。すなわち、図15と、前述した図1の比較から明らかなように、図15に示す情報処理装置は、図1に示す情報処理装置に対して、SoC#2を追加したものに対応する。
ここで、SoC#2およびメモリ101による回路基板300は、例えば、マザーボードに相当し、このマザーボード(SoC#2)のソケットに対して、2つの回路基板300(SoC#0,SoC#1)を差し込んだものに相当する。このとき、SoC#0〜SoC#2には、それぞれのSoC(半導体集積回路)を識別するための番号(SoC番号)、或いは、SoC#0〜SoC#1には、SoC100が搭載された回路基板300を識別するためのポート番号(マザーボード(SoC#2)のソケットに相当する番号)が割り当てられる。
なお、図15は、例えば、SoC#0のCPU102が、SoC#1に接続されたメモリ101をアクセスする場合を想定したもので、SoC#0のバス制御回路1におけるブロックA-1およびB-2と、SoC#1のバス制御回路1におけるブロックA-2およびB-1が活性化(オン)されている。また、SoC#2には、2組の外部接続回路(106,107)およびバス制御回路1が設けられているが、SoC#0とSoC#1間のアクセス時には、それぞれのバス制御回路1におけるA-1,A-2,B-1,B-2は全て不活性化(オフ)されている。さらに、SoC100(回路基板300)の数は、2個または3個に限定されるものではなく、さらに多数のSoC(回路基板)が接続されてもよいのは、前述した通りである。
図16は、図2に示すバス制御回路(排他アクセス回路)におけるリードチャネルの排他コマンド変換ブロックの一例を説明するための図である。図16に示されるように、排他コマンド変換ブロックA-1は、図10および図11を参照して説明したリードアクセス動作時に、リードアドレス(AR)チャネルの変換処理を行うブロックA-11およびリードデータ(R)チャネルの変換処理を行うブロックA-12を含む。
ブロックA-11は、図10および図11における処理S1により、CPU#0(内部接続回路103)からS_A1_ARLOCKおよびS_A1_ARADDRを受け取り、D_A1_ARLOCK,D_A1_ARID[x]およびD_A1_ARUSER[0]に変換してPCIe#0に出力する(処理S4)。なお、以下に詳述するように、S_A1_ARLOCKおよびS_A1_ARADDRは、D_A1_ARLOCKおよびD_A1_ARADDRとして使用する。
すなわち、A-11は、S_A1_ARLOCK=『01』(排他アクセス)のとき、D_A1_ARLOCK=『00』(通常アクセス)、D_A1_ARID[x]=『1』(Rチャネルでの排他コマンド識別用に、xビットのARID[x-1:0]に付加)、および、D_A1_ARUSER[0]=『1』(排他コマンド情報)をPCIe#0に出力する。また、A-11は、S_A1_ARLOCK=『01』のとき、D_A1_ARADDRの値を、B2_ARADDR(コマンド識別用)として、排他応答受信ブロックB-2に転送する。
さらに、A-11は、S_A1_ARLOCK=『01』ではないとき、S_A1_ARLOCKおよびS_A1_ARADDRを受け取り、D_A1_ARLOCK=S_A1_ARLOCK、D_A1_ARID[x]=『0』、および、D_A1_ARUSER[0]=『0』に変換してPCIe#0に出力する。
ブロックA-12は、図10および図11における処理S16により、PCIe#0からS_A1_RID[x]およびS_A1_RRESPを受け取り、D_A1_RRESPに変換して内部接続回路103(CPU#0)に出力する(処理S19)。すなわち、A-12は、S_A1_RID[x]=『1』のとき、D_A1_RRESP=B2_RRESP(排他応答値)をCPU#0に出力する。また、A-12は、S_A1_RID[x]=『0』のとき、D_A1_RRESP=S_A1_RRESPをCPU#0に出力する。なお、B-2は、A-12に対して、B2_RRESPを出力する。
図17は、図2に示すバス制御回路におけるライトチャネルの排他コマンド変換ブロックの一例を説明するための図である。図17に示されるように、排他コマンド変換ブロックA-1は、図12および図13を参照して説明したライトアクセス動作時に、ライトアドレス(AW)チャネルの変換処理を行うブロックA-13,ライトデータ(W)チャネルの変換処理を行うブロックA-14およびライト応答(B)チャネルの変換処理を行うブロックA-15を含む。
ブロックA-13は、図12および図13における処理S21により、CPU#0からS_A1_AWLOCKおよびS_A1_AWADDRを受け取り、D_A1_AWLOCK,D_A1_AWID[x]およびD_A1_AWUSER[0]に変換してセレクタ10(PCIe#0)に出力する(処理S22〜S24)。ここで、以下に詳述するように、S_A1_AWLOCKおよびS_A1_AWADDRは、D_A1_AWLOCKおよびD_A1_AWADDRとして使用する。
すなわち、A-13は、S_A1_AWLOCK=『01』(排他アクセス)のとき、D_A1_AWLOCK=『00』(通常アクセス)、D_A1_AWID[x]=『1』(Bチャネルでの排他コマンド識別用に、xビットのAWID[x-1:0]に付加)、および、D_A1_AWUSER[0]=『1』(排他コマンド情報)をセレクタ10に出力する。また、A-13は、S_A1_AWLOCK=『01』のとき、D_A1_AWADDRの値を、B2_AWADDR(コマンド識別用)として、排他応答受信ブロックB-2に転送する。
さらに、A-13は、S_A1_AWLOCK=『01』ではないとき、S_A1_AWLOCKおよびS_A1_AWADDRを受け取り、D_A1_AWLOCK=S_A1_AWLOCK、D_A1_AWID[x]=『0』、および、D_A1_AWUSER[0]=『0』に変換してセレクタ10に出力する。ここで、排他アクセスか否かを示すS_A1_AWLOCKは、2ビットのデータ(『01』)とされているが、1ビットのデータ(『0』または『1』)であってもよい。
ブロックA-14は、図12および図13における処理S21により、CPU#0からS_A1_AWLOCKを受け取り、D_A1_WID[x]に変換してセレクタ10(PCIe#0)に出力する(処理S22〜S24)。すなわち、A-14は、S_A1_AWLOCK=『01』(排他アクセス)のとき、D_A1_WID[x]=『1』(AWチャネルと合わせるため)とし、S_A1_AWLOCK=『01』ではないとき、D_A1_WID[x]=『0』とする。なお、A-14の出力(D_A1_WID[x])は、セレクタ10に入力される。
ブロックA-15は、S_A1_BID[x]およびS_A1_BRESPを受け取り、D_A1_BRESPに変換して内部接続回路103(CPU#0)に出力する(処理S37)。すなわち、A-15は、S_A1_BID[x]=『1』のとき、D_A1_BRESP=B2_BRESP(排他応答値)をCPU#0に出力し、S_A1_BID[x]=『0』のとき、D_A1_BRESP=S_A1_BRESPをCPU#0に出力する。ここで、排他応答受信ブロックB-2は、A-15に対して、B2_BRESPを出力する。また、セレクタ10には、排他応答発行ブロックA-2の出力(AW,WおよびBチャネルの出力)も入力され、例えば、図21を参照して後に詳述する排他応答発行識別信号(SS)を受信したときは、A-2の出力を選択し、そうでないときは、A-1の出力を選択する。
図18は、図2に示すバス制御回路における排他応答受信ブロックの一例を説明するための図である。図18に示されるように、排他応答受信ブロックB-2は、図10〜図13を参照して説明したアクセス動作時に、排他コマンド変換ブロックA-1およびPCIe#0との間で信号の遣り取りおよび変換を行う3つのブロックB-21,B-22およびB-23を含む。
ブロックB-21は、排他コマンド変換ブロックA-1からB2_ARADDRおよびB2_AWADDRを受け取ると共に、PCIe#0のAWチャネルからS_B2_AWADDRを受け取り、排他応答受信識別信号(SR)を生成してB-22に出力する。すなわち、B-21では、S_B2_AWADDRがB2_ARADDRまたはB2_AWADDRと合致した場合、A-1から発行した排他コマンドに対する排他応答であると判定し、排他応答受信識別信号SRをB-22に出力する。
ブロックB-22は、PCIe#0からのWチャネルを介してS_B2_WDATAを受け取り、B-21からの排他応答受信識別信号SRに基づいて、S_B2_WDATAをB2_RRESPおよびB2_BRESPに変換してA-1に出力する。すなわち、排他応答受信識別信号SRにより、A-1から発行した排他コマンドに対する排他応答であることが分かったら、S_B2_WDATAに乗っている排他応答値をB2_RRESPまたはB2_BRESPとしてA-1に転送する。なお、ブロックB-23は、PCIe#0からのライト応答(B)チャネルの情報を受け取るブロックであるが、本実施形態と関係が薄いので、その説明は省略する。
図19は、図2に示すバス制御回路におけるリードチャネルの排他コマンド生成ブロックの一例を説明するための図である。図19に示されるように、排他コマンド生成ブロックB-1は、図10および図11を参照して説明したリードアクセス動作時に、ARチャネルの変換処理を行うブロックB-11およびRチャネルの変換処理を行うブロックB-12を含む。
ブロックB-11は、図10および図11における処理S6として、PCIe#1からS_B1_ARLOCK,S_B1_ARADDRおよびS_B1_ARUSERを受け取り、D_B1_ARLOCKおよびD_B1_ARID[y]に変換して内部接続回路103(DDR#1)に出力する(処理S7〜S10)。
すなわち、B-11は、S_B1_ARUSER[0]=『1』(排他コマンド)のとき、D_B1_ARLOCK=『01』(排他コマンド)、および、D_B1_ARID[y]=『1』(Rチャネルでの排他コマンド識別用に、yビットのARID[y-1:0]に付加)をDDR#1に出力する。また、B-11は、S_B1_ARUSER=『1』のとき、D_B1_ARADDRの値を、A2_ARADDR(コマンド識別用)として、排他応答発行ブロックA-2に転送する。さらに、B-11は、S_B1_ARUSER[0]=『0』のとき、D_B1_ARLOCK=S_B1_ARLOCK、および、D_B1_ARID[y]=『0』をDDR#1に出力する。
ブロックB-12は、図10および図11における処理S11として、S_B1_RRESPおよびS_B1_RID[y]を受け取り、D_B1_RRESPに変換してPCIe#1に出力する(処理S12)。すなわち、B-12は、S_B1_RID[y]=『1』のとき、D_B1_RRESP=『00』、および、A2_RRESP=S_B1_RRESP(排他応答値)をPCIe#1に出力する。さらに、B-12は、A-2に対して、A2_RRESPを出力する。
図20は、図2に示すバス制御回路におけるライトチャネルの排他コマンド生成ブロックの一例を説明するための図である。図20に示されるように、排他コマンド生成ブロックB-1は、図12および図13を参照して説明したライトアクセス動作時に、AWチャネルの変換処理を行うブロックB-13,Wチャネルの変換処理を行うブロックB-14およびBチャネルの変換処理を行うブロックB-15を含む。
ブロックB-13は、図12および図13における処理S26により、PCIe#1からS_B1_AWLOCK,S_B1_AWADDRおよびS_B1_AWUSER[0]を受け取り、D_B1_AWLOCKおよびD_B1_AWID[y]に変換して内部接続回路103(DDR#1)に出力する(処理S27〜S30)。
すなわち、B-13は、S_B1_AWUSER[0]=『1』(排他コマンド)のとき、D_B1_AWLOCK=『01』(排他コマンド)、D_B1_AWID[y]=『1』(Bチャネルでの排他コマンド識別用に、yビットのAWID[y-1:0]に付加)、および、D_B1_AWADDRの値を、A2_AWADDR(コマンド識別用)として、排他応答発行ブロックA-2に転送する。さらに、B-13は、S_B1_AWUSER[0]=『0』のとき、D_B1_AWLOCK=S_B1_AWLOCK、および、D_B1_AWID[y]=『0』をDDR#1に出力する。
ブロックB-15は、S_B1_BRESPおよびS_B1_BID[y]を受け取り、D_B1_BRESPに変換してPCIe#1に出力する。すなわち、B-15は、S_B1_BID[y]=『1』のとき、D_B1_BRESP=『00』、および、A2_BRESP=S_B1_BRESP(排他応答値)をPCIe#1に出力する。さらに、B-15は、A-2に対して、A2_BRESPを出力する。
また、B-15は、S_B1_BID[y]=『0』のとき、D_B1_BRESP=S_B1_BRESPをPCIe#1に出力する。なお、ブロックB-14は、PCIe#1からのWチャネルのデータをそのまま通過させてDDR#1に出力する。
図21は、図2に示すバス制御回路におけるライトチャネルの排他応答発行ブロックの一例を説明するための図である。図21に示されるように、排他応答発行ブロックA-2は、図12および図13を参照して説明したライトアクセス動作時に、AWチャネルの変換処理を行うブロックA-21,Wチャネルの変換処理を行うブロックA-22およびBチャネルの変換処理を行うブロックA-23を含む。
ブロックA-21は、図12および図13における処理S32により、排他コマンド生成ブロックB-1からB1_ARADDRおよびB1_AWADDRを受け取り、D_A2_AWADDRに変換してセレクタ10(PCIe#1)に出力する(処理S13)。すなわち、A-21は、後述するブロックA-22からの排他応答発行識別信号SSを受信すると、B1_ARADDRまたはB1_AWADDRの値をD_A2_AWADDRとして、排他応答用のAWコマンドをAWチャネル(セレクタ10)に発行する。
ブロックA-22は、B-1からB1_RRESPおよびB1_BRESPを受け取り、D_A2_WDATAに変換してセレクタ10(PCIe#1)に出力する。すなわち、A-22は、B1_RRESPまたはB1_BRESPを受信したら排他応答を発行するため、排他応答発行識別信号SSをAWチャネルおよびセレクタ10に転送する。また、B1_RRESPまたはB1_BRESPの値を排他応答値として、D_A2_WDATAに変換する。なお、ブロックA-23は、本実施形態と関係が薄いので、その説明は省略する。
ここで、図21および図17に示されるように、PCIe#1と排他コマンド変換ブロックA-1および排他応答発行ブロックA-2の間にはセレクタ10が設けられ、このセレクタ10により選択された信号が、PCIe#1とA-1またはA-2の間で転送される。すなわち、セレクタ10は、排他応答発行識別信号SSを受信したときは、A-2の経路を選択し、そうでないときは、A-1の経路を選択するようになっている。
図22および図23は、図1および図2を参照して説明した情報処理装置におけるSTビット[7:0]を含むヘッダ情報の生成/復元方法を説明するための図であり、図15を参照して示したSoC番号やポート番号の情報の取得を説明するためのものである。なお、図22および図23では、例えば、メモリ(DDR Memory 101),メモリ接続回路(104,105)およびIPマクロ(108)等は、関係が薄いので省略されている。
図22に示されるように、SoC100は、例えば、図1を参照して説明したSoCに対して、さらに、フラッシュ(Flash)メモリコントローラ111,電子ヒューズ(eFUSE)112および設定値レジスタ113を含む。なお、フラッシュメモリコントローラ111は、例えば、外部に設けられたフラッシュメモリ(または、eEPROM)114を制御する。
フラッシュメモリコントローラ111,電子ヒューズ(eFUSE)112および設定値レジスタ113を含む。なお、フラッシュメモリコントローラ111は、例えば、外部に設けられたフラッシュメモリや不揮発性メモリ(Electrically Erasable Programmable Read-Only Memory:Flash/eEPROM:外部メモリ)114を制御する。
外部メモリ(Flash/eEPROM)114または電子ヒューズ112には、予めSoC番号やポート番号が格納され、例えば、電源起動時に、CPU(または、コントローラ)102が、その外部メモリ114や電子ヒューズ112に格納された値を読み出して、設定値レジスタ113にコピーする。そして、設定値レジスタ113にコピーされた値は、バス制御回路(排他アクセス回路)1により読み出され、それぞれのSoCが識別された状態で、前述した排他アクセス処理が行われる。なお、設定値レジスタ113を経由せずに、CPU102が、外部メモリ114や電子ヒューズ112から読み出した値を、直接バス制御回路1に設定することもできる。
具体的に、図23に示されるように、図3を参照して説明したPCIeのTLPヘッダにおけるSTビット(ST[7:0])を使用することができる。すなわち、バス制御回路(PCIe Exclusive Access Unit)1は、例えば、SoC#0の設定値レジスタ113からSoC番号(SoC Number[5:0])およびポート番号(Port Number)を読み出す。さらに、内部接続回路(Interconnect)103を介してAxLOCK[1:0]およびAxADDR[31:0]を読み出し、例えば、前述した処理を行って、AxUSER[7:0],AxUSER[10:8]およびAxADDR[31:0]を、PCIe#に出力する。
ここで、SoC#0におけるデータは、例えば、SoC Number[5:0]+Port Number+AxLOCK[1:0] → AxUSER[7:0] → ST[7:0]といった変換(生成)を行い、また、AxLOCK[1:0] → AxUSER[10:8] → TH+PH[1:0]といった変換を行うことで、ヘッダ情報に変換する。なお、前述したように、例えば、AxLOCKは、AxLOCK[1:0]といった2ビットの情報ではなく、1ビットの情報でよいが、例えば、『01』が排他アクセスで『00』が通常アクセスというように使用することができる。また、AxUSER[10:8]は、3ビットの情報を転送できるが、例えば、1ビットを固定して、他の2ビットを使用すればよい。
このようにして、例えば、PCIeのTLPヘッダのST[7:0],THおよびPH[1:0]として組み入れられた情報は、例えば、SoC#1において復元される。すなわち、例えば、TH+PH[1:0] → AxUSER[10:8] → AxLOCK[1:0]とし、また、ST[7:0] → AxUSER[7:0] ] → 応答用送信元情報保持として、PCIeのTLPヘッダに組み込まれた情報を復元する。このようにして、SoC#1では、PCIe#1から、AxUSER[7:0],AxUSER[10:8]およびAxADDR[31:0]が、バス制御回路1に入力され、バス制御回路1から、内部接続回路103にAxLOCK[1:0]およびAxADDR[31:0]が出力される。
なお、SoC#1においても、設定値レジスタ113が設けられ、上述したのとは逆向き(SoC#1からSoC#0)の処理を行うことができるのはいうまでもない。また、上述したPCIeのTLPヘッダにおけるST[7:0],THおよびPH[1:0]の使用は単なる例であり、ヘッダの他のビットフィールド、或いは、各バス仕様における適切なビットフィールドの使用も可能なのはいうまでもない。
以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。
以上の実施例を含む実施形態に関し、さらに、以下の付記を開示する。
(付記1)
第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路であって、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力する排他コマンド変換回路と、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する排他コマンド生成回路と、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する排他応答発行回路と、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する、
ことを特徴とするバス制御回路。
(付記2)
前記第1排他コマンドは、前記第1バス仕様に基づいて予め用意されたコマンドであり、
前記第2排他コマンドは、排他アクセスを行うために、前記第2バス仕様における所定のビットフィールドに基づいて生成される、
ことを特徴とする付記1に記載のバス制御回路。
(付記3)
前記第2排他コマンドを生成するための、前記第2バス仕様における所定のビットフィールドは、前記第2バス仕様におけるパケットのヘッダ部分に含まれる、
ことを特徴とする付記2に記載のバス制御回路。
(付記4)
さらに、
前記排他応答発行回路から出力される排他応答発行識別信号に基づいて、前記第2バス仕様の第2バスに繋がる経路と、前記排他コマンド変換回路による経路または前記排他応答発行ブロックによる経路との接続を制御するセレクタを有する、
ことを特徴とする付記1乃至付記3のいずれか1項に記載のバス制御回路。
(付記5)
前記第1バス仕様の第1バスは、AXI(登録商標)仕様のバスである、
ことを特徴とする付記1乃至付記4のいずれか1項に記載のバス制御回路。
(付記6)
前記第2バス仕様の第2バスは、PCIe(登録商標)仕様のバスである、
ことを特徴とする付記1乃至付記5のいずれか1項に記載のバス制御回路。
(付記7)
前記第2排他コマンドは、前記PCIe(登録商標)仕様のバスのTLPヘッダにおける所定のビットフィールドに基づいて生成される、
ことを特徴とする付記6に記載のバス制御回路。
(付記8)
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
前記排他応答受信回路は、前記排他コマンド変換回路に、前記第2排他コマンドに対する排他応答情報に発行し、
前記排他コマンド変換回路は、前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
ことを特徴とする付記1乃至付記7のいずれか1項に記載のバス制御回路。
(付記9)
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
前記排他コマンド変換回路は、通常コマンドに対する応答を受け取り、前記通常アクセスコマンドに対する応答と前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
ことを特徴とする付記8に記載のバス制御回路。
(付記10)
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答を受け取り、前記第1排他コマンドに対する排他応答に基づいて、前記排他応答発行回路に、前記第1排他コマンドに対する排他応答情報を発行し、
前記排他応答発行回路は、前記第1排他コマンドに対する排他応答情報に基づいて、前記第2排他コマンドに対する排他応答情報を生成する、
ことを特徴とする付記1乃至付記9のいずれか1項に記載のバス制御回路。
(付記11)
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答に基づいて、前記第1排他コマンドに対する排他応答情報に加えて、通常コマンドに対する応答を生成する、
ことを特徴とする付記10に記載のバス制御回路。
(付記12)
第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路と、
前記第1バス仕様の内部回路と、
前記バス制御回路と前記内部回路の間で信号の受け渡しを行う内部接続回路と、
前記バス制御回路と前記第2バス仕様の外部バスの間で信号の受け渡しを行う外部接続回路と、を有し、
前記バス制御回路は、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力する排他コマンド変換回路と、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する排他コマンド生成回路と、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する排他応答発行回路と、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する、
ことを特徴とする半導体集積回路。
(付記13)
前記第1排他コマンドは、前記第1バス仕様に基づいて予め用意されたコマンドであり、
前記第2排他コマンドは、排他アクセスを行うために、前記第2バス仕様における所定のビットフィールドに基づいて生成される、
ことを特徴とする付記12に記載の半導体集積回路。
(付記14)
前記第1バス仕様の第1バスは、AXI(登録商標)仕様のバスである、
前記第2バス仕様の第2バスは、PCIe(登録商標)仕様のバスである、
ことを特徴とする付記12または付記13に記載の半導体集積回路。
(付記15)
前記第2排他コマンドは、前記PCIe(登録商標)仕様のバスのTLPヘッダにおける所定のビットフィールドに基づいて生成される、
ことを特徴とする付記14に記載の半導体集積回路。
(付記16)
前記第2排他コマンドを生成する、前記TLPヘッダにおける所定のビットフィールドは、前記半導体集積回路を識別する情報、および、排他アクセスか否かを示す情報を含む、
ことを特徴とする付記15に記載の半導体集積回路。
(付記17)
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
前記排他応答受信回路は、前記排他コマンド変換回路に、前記第2排他コマンドに対する排他応答情報に発行し、
前記排他コマンド変換回路は、前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
ことを特徴とする付記12乃至付記16のいずれか1項に記載の半導体集積回路。
(付記18)
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
前記排他コマンド変換回路は、通常コマンドに対する応答を受け取り、前記通常アクセスコマンドに対する応答と前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
ことを特徴とする付記17に記載の半導体集積回路。
(付記19)
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答を受け取り、前記第1排他コマンドに対する排他応答に基づいて、前記排他応答発行回路に、前記第1排他コマンドに対する排他応答情報を発行し、
前記排他応答発行回路は、前記第1排他コマンドに対する排他応答情報に基づいて、前記第2排他コマンドに対する排他応答情報を生成する、
ことを特徴とする付記12乃至付記18のいずれか1項に記載の半導体集積回路。
(付記20)
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答に基づいて、前記第1排他コマンドに対する排他応答情報に加えて、通常コマンドに対する応答を生成する、
ことを特徴とする付記19に記載の半導体集積回路。
(付記21)
付記12乃至付記20のいずれか1項に記載の半導体集積回路と、
少なくとも前記半導体集積回路に接続され、前記半導体集積回路と前記半導体集積回路とは別の回路によって共有されるメモリと、を有する、
ことを特徴とする回路基板。
(付記22)
付記21に記載の回路基板を複数有する情報処理装置であって、
それぞれの前記回路基板は、前記第2バス仕様の第2バスにより接続されている、
ことを特徴とする情報処理装置。
(付記23)
第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御方法であって、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力し、
前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取り、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成し、
前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する、
ことを特徴とするバス制御方法。
1 バス制御回路(排他アクセス回路: PCIe Exclusive Access Unit)
10 セレクタ
11 第1変換部(Interconnect to PCIe Bus Bridge)
12 第2変換部(PCIe to Interconnect Bus Bridge)
100 半導体集積回路(SoC)
101 メモリ(DDR Memory)
102 CPU(コントローラ)
103 内部接続回路(Interconnect)
104 メモリ制御回路(DDR Controller)
105 メモリのインタフェースIPマクロ(DDR PHY)
106 リンク制御回路(PCIe Link)
107 PCIeのインタフェースIPマクロ(PCIeの物理層:PCIe PHY)
108 IPマクロ(IP)
111 フラッシュ(Flash)メモリコントローラ
112 電子ヒューズ(eFUSE)
113 設定値レジスタ
114 外部メモリ(Flash/eEPROM)
200 PCIeバス(PCIe)
300 回路基板
A-1 排他コマンド変換ブロック
A-2 排他応答発行ブロック
B-1 排他コマンド生成ブロック
B-2 排他応答受信ブロック

Claims (12)

  1. 第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路であって、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力する排他コマンド変換回路と、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する排他コマンド生成回路と、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する排他応答発行回路と、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する、
    ことを特徴とするバス制御回路。
  2. 前記第1排他コマンドは、前記第1バス仕様に基づいて予め用意されたコマンドであり、
    前記第2排他コマンドは、排他アクセスを行うために、前記第2バス仕様における所定のビットフィールドに基づいて生成される、
    ことを特徴とする請求項1に記載のバス制御回路。
  3. さらに、
    前記排他応答発行回路から出力される排他応答発行識別信号に基づいて、前記第2バス仕様の第2バスに繋がる経路と、前記排他コマンド変換回路による経路または前記排他応答発行ブロックによる経路との接続を制御するセレクタを有する、
    ことを特徴とする請求項1または請求項2に記載のバス制御回路。
  4. 前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
    前記排他応答受信回路は、前記排他コマンド変換回路に、前記第2排他コマンドに対する排他応答情報に発行し、
    前記排他コマンド変換回路は、前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
    ことを特徴とする請求項1乃至請求項3のいずれか1項に記載のバス制御回路。
  5. 前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
    前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答を受け取り、前記第1排他コマンドに対する排他応答に基づいて、前記排他応答発行回路に、前記第1排他コマンドに対する排他応答情報を発行し、
    前記排他応答発行回路は、前記第1排他コマンドに対する排他応答情報に基づいて、前記第2排他コマンドに対する排他応答情報を生成する、
    ことを特徴とする請求項1乃至請求項4のいずれか1項に記載のバス制御回路。
  6. 第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路と、
    前記第1バス仕様の内部回路と、
    前記バス制御回路と前記内部回路の間で信号の受け渡しを行う内部接続回路と、
    前記バス制御回路と前記第2バス仕様の外部バスの間で信号の受け渡しを行う外部接続回路と、を有し、
    前記バス制御回路は、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力する排他コマンド変換回路と、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する排他コマンド生成回路と、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する排他応答発行回路と、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する、
    ことを特徴とする半導体集積回路。
  7. 前記第1排他コマンドは、前記第1バス仕様に基づいて予め用意されたコマンドであり、
    前記第2排他コマンドは、排他アクセスを行うために、前記第2バス仕様における所定のビットフィールドに基づいて生成される、
    ことを特徴とする請求項6に記載の半導体集積回路。
  8. 前記第1排他コマンドから前記第2排他コマンドへの変換のときに、
    前記排他応答受信回路は、前記排他コマンド変換回路に、前記第2排他コマンドに対する排他応答情報に発行し、
    前記排他コマンド変換回路は、前記第2排他コマンドに対する排他応答情報に基づいて、前記第1排他コマンドに対する排他応答を生成する、
    ことを特徴とする請求項6または請求項7に記載の半導体集積回路。
  9. 前記第2排他コマンドから前記第1排他コマンドへの変換のときに、
    前記排他コマンド生成回路は、前記第1排他コマンドに対する排他応答を受け取り、前記第1排他コマンドに対する排他応答に基づいて、前記排他応答発行回路に、前記第1排他コマンドに対する排他応答情報を発行し、
    前記排他応答発行回路は、前記第1排他コマンドに対する排他応答情報に基づいて、前記第2排他コマンドに対する排他応答情報を生成する、
    ことを特徴とする請求項6乃至請求項8のいずれか1項に記載の半導体集積回路。
  10. 請求項6乃至請求項9のいずれか1項に記載の半導体集積回路と、
    少なくとも前記半導体集積回路に接続され、前記半導体集積回路と前記半導体集積回路とは別の回路によって共有されるメモリと、を有する、
    ことを特徴とする回路基板。
  11. 請求項10に記載の回路基板を複数有する情報処理装置であって、
    それぞれの前記回路基板は、前記第2バス仕様の第2バスにより接続されている、
    ことを特徴とする情報処理装置。
  12. 第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御方法であって、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力し、
    前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取り、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成し、
    前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行する、
    ことを特徴とするバス制御方法。
JP2018536936A 2016-08-31 2017-05-09 バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法 Active JP6819684B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016169971 2016-08-31
JP2016169971 2016-08-31
PCT/JP2017/017601 WO2018042767A1 (ja) 2016-08-31 2017-05-09 バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法

Publications (2)

Publication Number Publication Date
JPWO2018042767A1 JPWO2018042767A1 (ja) 2019-06-24
JP6819684B2 true JP6819684B2 (ja) 2021-01-27

Family

ID=61300523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018536936A Active JP6819684B2 (ja) 2016-08-31 2017-05-09 バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法

Country Status (5)

Country Link
US (1) US10747699B2 (ja)
EP (1) EP3508984B1 (ja)
JP (1) JP6819684B2 (ja)
CN (1) CN109690511B (ja)
WO (1) WO2018042767A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10515047B1 (en) * 2018-05-17 2019-12-24 Xilnx, Inc. Pipelined data channel with ready/valid handshaking
IT202000009364A1 (it) * 2020-04-29 2021-10-29 St Microelectronics Srl Procedimento per accedere a una memoria e circuito corrispondente
US11762785B2 (en) * 2021-05-03 2023-09-19 Mellanox Technologies, Ltd. Peripheral component interconnect attributes shared using address bits
CN113031496B (zh) * 2021-05-27 2021-09-21 之江实验室 一种基于fpga的工业协议映射结构和方法
CN117539820B (zh) * 2024-01-10 2024-05-03 芯动微电子科技(武汉)有限公司 一种PCIe Switch与SoC的互联系统及方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2830116B2 (ja) * 1989-07-27 1998-12-02 日本電気株式会社 マルチプロセッサシステムにおけるロック制御機構
US5191649A (en) * 1990-12-21 1993-03-02 Intel Corporation Multiprocessor computer system with data bus and ordered and out-of-order split data transactions
US5522058A (en) 1992-08-11 1996-05-28 Kabushiki Kaisha Toshiba Distributed shared-memory multiprocessor system with reduced traffic on shared bus
JPH06110844A (ja) 1992-08-11 1994-04-22 Toshiba Corp 分散共有メモリ型マルチプロセッサシステム
JP2636760B2 (ja) 1994-12-07 1997-07-30 日本電気株式会社 マルチプロセッサシステム
US7861027B2 (en) * 2008-05-30 2010-12-28 Intel Corporation Providing a peripheral component interconnect (PCI)-compatible transaction level protocol for a system on a chip (SoC)
CN101447931B (zh) * 2008-12-26 2011-05-11 华为技术有限公司 一种排他操作的实现方法和装置
WO2012023149A2 (en) * 2010-08-19 2012-02-23 Ineda Systems Pvt. Ltd Multi-root input output virtualization aware switch
KR101733203B1 (ko) * 2010-10-13 2017-05-08 삼성전자주식회사 아이디 컨버터를 포함하는 버스 시스템 및 그것의 변환 방법
US8667192B2 (en) * 2011-02-28 2014-03-04 Xilinx, Inc. Integrated circuit with programmable circuitry and an embedded processor system
JP6053692B2 (ja) 2011-12-20 2016-12-27 キヤノン株式会社 データ転送装置、データ転送方法およびチップ間通信システム
JP6398309B2 (ja) 2013-11-27 2018-10-03 株式会社リコー 情報処理装置、および情報処理方法
US9959237B2 (en) * 2013-12-12 2018-05-01 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
WO2015089058A1 (en) * 2013-12-12 2015-06-18 Marvell World Trade Ltd. Method and apparatus for transferring information within and between system-on-chips via intra-chip and inter-chip hopping buses
JP6385761B2 (ja) * 2014-09-02 2018-09-05 株式会社メガチップス バスブリッジ及びバスブリッジ群
US11281618B2 (en) * 2014-10-31 2022-03-22 Xlnx, Inc. Methods and circuits for deadlock avoidance
CN105260331B (zh) * 2015-10-09 2018-08-28 天津国芯科技有限公司 一种双总线内存控制器
US10324865B2 (en) * 2016-09-06 2019-06-18 Apple Inc. Maintaining ordering requirements while converting protocols in a communications fabric

Also Published As

Publication number Publication date
EP3508984B1 (en) 2022-09-28
EP3508984A4 (en) 2020-02-26
JPWO2018042767A1 (ja) 2019-06-24
CN109690511A (zh) 2019-04-26
US10747699B2 (en) 2020-08-18
WO2018042767A1 (ja) 2018-03-08
EP3508984A1 (en) 2019-07-10
US20190188173A1 (en) 2019-06-20
CN109690511B (zh) 2023-05-02

Similar Documents

Publication Publication Date Title
JP6819684B2 (ja) バス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法
JP4785112B2 (ja) 複数のマスタを含むサブシステムをオープンコアプロトコルを基盤とするバスに連結するためのバスシステム
US7506089B2 (en) Bus system and method thereof
KR101691756B1 (ko) 코히어런스 프로토콜 테이블
JP4083987B2 (ja) 多重レベル接続識別を備えた通信システム
JP6141379B2 (ja) トランザクション属性を修正するためのメモリ領域オーダリング要求に関するコンプリータ知識の使用
US20050091432A1 (en) Flexible matrix fabric design framework for multiple requestors and targets in system-on-chip designs
US9952643B2 (en) Device power management state transition latency advertisement for faster boot time
US7761696B1 (en) Quiescing and de-quiescing point-to-point links
CN109634900B (zh) 一种基于axi协议的多层次低延迟互连结构
JP4198376B2 (ja) バスシステム及びバスシステムを含む情報処理システム
CN114265872B (zh) 一种用于总线的互联装置
Math et al. Data transactions on system-on-chip bus using AXI4 protocol
JP2007048280A (ja) バスモニタリングのための集積回路装置及びその方法
Gaikwad et al. Verification of AMBA AXI on-chip communication protocol
JP4249741B2 (ja) バスシステム及びバスシステムを含む情報処理システム
US11995007B1 (en) Multi-port, multi-protocol varied size RAM controller
WO2011030498A1 (ja) データ処理装置及びデータ処理方法
US20030065860A1 (en) Internal control bus in a multiple processor/multiple bus system
CN113821470A (zh) 总线设备、嵌入式系统和片上系统
Γκουργκούνια Development of verification methods
KR100874352B1 (ko) 반도체 메모리 데이터 전송 제어장치
US6901472B2 (en) Data-processing unit with a circuit arrangement for connecting a first communications bus with a second communications bus
REDDY et al. High Speed AMBA AXI4 Interface Protocol for System on Chip Data Transactions
KR20050067324A (ko) 마스터/슬레이브 디바이스간의 인터페이스 장치 및 그 방법

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190116

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200409

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20201214

R150 Certificate of patent or registration of utility model

Ref document number: 6819684

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150