図面 (/)

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

出願人 株式会社ソシオネクスト
発明者 大谷敬之上方輝彦川崎貴之仁茂田永一
出願日 2017年5月9日 (2年4ヶ月経過) 出願番号 2018-536936
公開日 2019年6月24日 (3ヶ月経過) 公開番号 WO2018-042767
状態 未査定
技術分野 バス制御 メモリシステム 情報転送方式
主要キーワード 電子ヒューズ 外部接続回路 設定値レジスタ アクセスモニタ リンク制御回路 リード情報 信号付き メモリ書き込み要求
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2019年6月24日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (20)

課題・解決手段

第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、第1バス仕様の第2排他コマンドを相互に変換して、第1および第2バス仕様間の排他コマンドの伝搬を行うバス制御回路であって、第1排他コマンドから第2排他コマンドへの変換のときに、第1排他コマンドを受け取り、第2排他コマンドに変換して出力する排他コマンド変換回路と、第2排他コマンドから第1排他コマンドへの変換のときに、第2排他コマンドを受け取って第1排他コマンドを生成する排他コマンド生成回路と、第2排他コマンドから第1排他コマンドへの変換のときに、第2排他コマンドに対する排他応答情報発行する排他応答発行回路と、第1排他コマンドから第2排他コマンドへの変換のときに、第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する。

概要

背景

近年、サーバ等を始めとする情報処理システムには、例えば、異なるバス仕様が適用された複数の半導体集積回路回路基板が用いられている。これら異なるバス仕様が適用された半導体集積回路等において、例えば、第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)等が知られている。

ところで、従来、例えば、マルチプロセッサシステムにおける排他制御としては、様々な提案がなされている。

概要

第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、第1バス仕様の第2排他コマンドを相互に変換して、第1および第2バス仕様間の排他コマンドの伝搬を行うバス制御回路であって、第1排他コマンドから第2排他コマンドへの変換のときに、第1排他コマンドを受け取り、第2排他コマンドに変換して出力する排他コマンド変換回路と、第2排他コマンドから第1排他コマンドへの変換のときに、第2排他コマンドを受け取って第1排他コマンドを生成する排他コマンド生成回路と、第2排他コマンドから第1排他コマンドへの変換のときに、第2排他コマンドに対する排他応答情報発行する排他応答発行回路と、第1排他コマンドから第2排他コマンドへの変換のときに、第2排他コマンドに対する排他応答情報を受け取る排他応答受信回路と、を有する。

目的

効果

実績

技術文献被引用数
0件
牽制数
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(登録商標)仕様のバスのTLヘッダにおける所定のビットフィールドに基づいて生成される、ことを特徴とする請求項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排他コマンドに対する排他応答情報を発行する、ことを特徴とするバス制御方法。

技術分野

背景技術

0002

近年、サーバ等を始めとする情報処理システムには、例えば、異なるバス仕様が適用された複数の半導体集積回路や回路基板が用いられている。これら異なるバス仕様が適用された半導体集積回路等において、例えば、第1バス仕様の情報を、第1バス仕様とは異なる第2バス仕様の情報に載せ替えるのが困難な場合も存在する。

0003

具体的に、AXI(登録商標)(Advanced eXtensible Interface)仕様のSoC(System on a Chip)において、例えば、OS(Operating System)での共通リソースの確保やソフトウェア順序保証するために、SoC内でメモリアクセス排他制御実装している。

0004

すなわち、複数個のCPU(Central Processing Unit)を搭載したSoCを用いて1つのOSを実行する場合、或いは、異なるOSであっても共通リソースを確保する場合など、チップ(半導体集積回路等)を超えて排他制御を実装したいという要望がある。しかしながら、このようなチップを超えて排他制御を行いたい場合であっても、それら異なるバス仕様が適用されたチップ間で予め排他制御の伝搬機能が設けられていないこともある。

0005

ここで、AXI(登録商標)は、例えば、AHB(登録商標)(Advanced High-performance Bus)およびAPB(登録商標)(Advanced Peripheral Bus)と共に、オンチップインターコネクト仕様の総称であるAMBA(登録商標)(Advanced Microcontroller Bus Architecture)に含まれる。また、AMBA以外の仕様としては、例えば、OCP(Open Core Protocol)やPIF(Processor InterFace)等が知られている。

0006

ところで、従来、例えば、マルチプロセッサシステムにおける排他制御としては、様々な提案がなされている。

先行技術

0007

特開平06−110844号公報
特開平08−161228号公報

発明が解決しようとする課題

0008

前述したように、異なるバス仕様が適用されたチップ間において、予め排他制御の機能が設けられていないことがある。例えば、広く普及しているPCIe(登録商標)(Peripheral Component Interconnect Express)仕様を適用した半導体集積回路等と、AXI仕様を適用したSoCの間では、排他制御の伝搬機構は、予め準備されていない。

0009

このような、異なるバス仕様が適用された半導体集積回路や回路基板等の間における排他制御の伝搬機能が設けられていないのは、他の様々なバス仕様を適用した半導体集積回路や回路基板等の間においても同様である。

0010

ここで、本発明は、PCIe仕様と、AXI仕様の間の排他制御の伝搬に限定されず、様々なバス仕様を適用した半導体集積回路や回路基板等の間の排他制御の伝搬に対しても適用可能なのはいうまでもない。すなわち、本発明は、例えば、PCIeの半導体集積回路等と、AXI,AHBおよびAPBといったAMBA或いはOCPやPIFの半導体集積回路等の間の排他制御の伝搬に対しても適用可能である。

課題を解決するための手段

0011

一実施形態によれば、第1フォーマットを有する、排他アクセスに対応した第1バス仕様の第1排他コマンドと、前記第1バス仕様とは異なり、排他アクセスに対応しない第2バス仕様に適合した第2フォーマットを有する、前記第1バス仕様の第2排他コマンドを相互に変換して、前記第1バス仕様および前記第2バス仕様の間における排他コマンドの伝搬を行うバス制御回路が提供される。前記バス制御回路は、排他コマンド変換回路と、排他コマンド生成回路と、排他応答発行回路と、排他応答受信回路と、を有する。

0012

前記排他コマンド変換回路は、前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第1排他コマンドを受け取り、前記第2排他コマンドに変換して出力し、前記排他コマンド生成回路は、前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドを受け取って前記第1排他コマンドを生成する。

0013

前記排他応答発行回路は、前記第2排他コマンドから前記第1排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を発行し、前記排他応答受信回路は、前記第1排他コマンドから前記第2排他コマンドへの変換のときに、前記第2排他コマンドに対する排他応答情報を受け取る。

発明の効果

0014

開示のバス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法は、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができるという効果を奏する。

図面の簡単な説明

0015

図1は、本実施形態に係る情報処理装置の一例を示すブロック図である。
図2は、図1に示す情報処理装置における半導体集積回路にそれぞれ設けられたバス制御回路の一例を示すブロック図である。
図3は、図1に示す情報処理装置におけるPCIeのパケットTLヘッダを使用して排他コマンドを送信する例を説明するための図である。
図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)である。

実施例

0016

以下、本実施形態に係るバス制御回路、半導体集積回路、回路基板、情報処理装置およびバス制御方法の実施例を、添付図面を参照して詳述する。図1は、本実施形態に係る情報処理装置の一例を示すブロック図である。図1において、参照符号100はSoC(半導体集積回路)を示し、200はPCIe(登録商標)バスを示す。

0017

図1では、一例として、AXI(登録商標)仕様の2つのSoC(SoC#0,SoC#1)100がPCIeバス(PCIe)200で繋がれているが、SoC100の数は、2つに限定されず、また、SoC100の仕様は、AXIに限定されない。さらに、複数のSoC100を繋ぐバスも、PCIe200に限定されるものではない。

0018

なお、SoC100は、1つの半導体集積回路(チップ)として形成することもできるか、複数のチップとして形成することもできる。また、図1において、回路基板300は、SoC100(コントローラ)およびメモリ101により形成され、複数の回路基板300により情報処理装置(例えば、サーバ装置)を形成しているが、本実施形態は、様々な構成に対して幅広く適用することが可能である。

0019

図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を含む。

0020

メモリ接続回路は、例えば、メモリ(DDR Memory)101との接続を制御するメモリ制御回路(DDR Controller)104、および、メモリ101のインタフェースIPマクロ(DDR PHY)105を含む。外部接続回路は、例えば、PCIe200を介して他のSoC100(回路基板300)との接続(リンク)を制御するリンク制御回路(PCIe Link)106、および、PCIe200のインタフェースIPマクロ(PCIeの物理層:PCIe PHY)107を含む。

0021

内部接続回路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等)に出力する。

0022

バス制御回路1は、排他コマンド変換ブロックA-1、排他応答発行ブロックA-2、排他コマンド生成ブロックB-1、および、排他応答受信ブロックB-2を含み、それぞれのSoC100に設けられている。

0023

ここで、一方の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がオンする。

0024

なお、排他アクセスとは、例えば、SoC#0とSoC#1があるリソース(メモリ等)を共有する場合に、SoC#0がその共有リソース特定部分(メモリの特定アドレス等)にアクセスしている間は、SoC#1がその共有リソースの特定部分にアクセスできないようにすることで、その共有リソースの整合性を保持するようにした排他制御を含むアクセスのことである。また、排他コマンドとは、その排他アクセスを要求するコマンドのことであり、例えば、排他リードコマンドと排他ライトコマンドを含む。

0025

一方、通常アクセスとは、例えば、上記排他制御を含まないアクセスである。また、通常コマンドとは、その通常アクセスを要求するコマンドのことであり、例えば、通常リードコマンドと通常ライトコマンドを含む。

0026

図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を含む。

0027

第1変換部11は、内部接続回路103からの排他コマンドを受け取って変換し、PCIe200に接続された外部接続回路106,107に出力するもので、コマンド変換ブロックA-1、排他応答発行ブロックA-2、および、セレクタ10を含む。

0028

ここで、コマンド変換ブロックA-1は、例えば、内部接続回路103から、半導体集積回路100内部の排他制御に適合したフォーマットを有するAXI仕様の排他コマンドを受け取り、PCIe仕様に適合した別フォーマットを有するAXI仕様の排他コマンドに変換して外部接続回路106,107に出力する回路である。

0029

また、排他応答発行ブロックA-2は、例えば、排他コマンド生成ブロックB-1から、内部接続回路103からのAXI仕様の排他コマンドに含まれる排他応答情報を受け取り、PCIe仕様に適合した排他応答情報を外部接続回路106,107に発行する回路である。なお、セレクタ10は、コマンド変換ブロックA-1または排他応答発行ブロックA-2の出力を選択して、PCIe200に出力する回路である。

0030

第2変換部12は、PCIe200からの排他コマンドを受け取って変換し、内部接続回路103に出力するもので、排他コマンド生成ブロックB-1および排他応答受信ブロックB-2を含む。

0031

ここで、排他コマンド生成ブロックB-1は、例えば、PCIe200に接続された外部接続回路106,107から、PCIe仕様に適合したフォーマットを有するAXI仕様の排他コマンドを受け取り、半導体集積回路100内部の排他制御に適合した別フォーマットを有するAXI仕様の排他コマンドを生成して内部接続回路103に出力する回路である。また、排他応答受信ブロックB-2は、外部接続回路106,107から、PCIe200に発行された排他コマンドに対する排他応答情報を受け取り、A-1に出力する回路である。

0032

次に、図3図9を参照して、本実施形態において排他アクセスを変換する異なる2種類のバス仕様として、PCIe(登録商標)およびAXI(登録商標)を適用する場合の例を説明し、その後、図10図23を参照して、本実施形態を詳述する。

0033

図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)を示している。

0034

図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仕様における様々なビットフィールドを使用することができる。

0035

すなわち、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]を含む。

0036

また、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]を含む。

0037

なお、Misc信号入力として扱うビットは、PCIeのTLPヘッダにおけるTHビット,ST[7:0]フィールドおよびPHビットに限定されるものではなく、ユーザに開放されている他のビットを使用してもよい。さらに、排他アクセスの変換に使用するビットは、TLPヘッダにおけるものに限定されないのはもちろんである。

0038

図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つのチャネルを含んでいる。

0039

図4(b)は、AXIにおける読み出し動作を説明するためのものであり、図4(c)は、AXIにおける書き込み動作を説明するためのものである。なお、図4(b)および図4(c)において、例えば、"AXI Master"としては、図1のSoC#0におけるCPU102を想定し、"AXI Slave"としては、図1のSoC#1におけるメモリ(DDR Memory)101を想定する。

0040

また、"AXI Master"と"AXI Slave"の間には、SoC#0における内部接続回路103,バス制御回路1および外部接続回路106,107、PCIe200、並びに、SoC#1における外部接続回路106,107および内部接続回路103等が介在する。

0041

図4(b)に示されるように、"AXI Master"から"AXI Slave"(SoC#1におけるメモリ101)のデータを読み出す場合、図4(a)に示すARおよびRを使用する。また、図4(c)に示されるように、"AXI Master"から"AXI Slave"にデータを書き込む場合、図4(a)に示すAW,WおよびBを使用する。

0042

図5に示されるように、トランザクションの動作として、各チャネルは、バリッド(VALID)/レディ(READY)/伝送する情報(Information)の信号を含み、VALID/READYのハンドシェークで情報を受け渡す。ここで、CLKは、クロックを示す。

0043

まず、送信側は、情報とその情報が有効であることを示すVALID信号アサートし(図5のT1)、受信側は、その有効な情報を受け取れることを示すためにREADYをアサートする。例えば、VALIDおよびREADYが共に高レベル『H』である時のクロックエッジでハンドシェーク成立する。なお、送信側は、図5のT2まで、InformationとVALIDを保持する。このようにして、情報の受け渡しが完了する。

0044

図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]は任意のビット幅であることを表す。

0045

さらに、AWLOCK[1:0]は、アトミックアクセスを示し、通常/排他/ロックアクセス(AXI3のみ)を指定する信号であり、AWUSER[x:0]は、ユーザ信号であり、ユーザが定義することが可能な信号であって、上述したMisc信号の1つである。また、BRESP[1:0]は、書き込み応答(ライト応答)を示し、ライト転送の結果ステータスを示す信号である。

0046

図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)では削除されている。

0047

図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が対応する。

0048

図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の別のアドレスにはアクセス可能とすることができる。

0049

図8は、AXIにおいて使用される応答を説明するための図である。図8に示されるように、例えば、AXIで使用されるレスポンス(応答)は、2ビットのRRESP[1:0]およびBRESP[1:0]の値『00』,『01』,『10』および『11』に対して、"OKAY","EXOKAY","SLVERR"および"DECERR"の4種類ある。

0050

ここで、"OKAY"は、通常アクセス成功もしくは排他アクセス失敗を示し、"EXOKAY"は、排他読み出し、または、排他書き込みのいずれかが成功したことを示し、そして、"SLVERR"は、スレーブエラーを示し、スレーブからマスタへのエラー通知である。また、"DECERR"は、デコードエラーを示し、アクセス先のアドレスにスレーブが存在しないことを示し、通常、インターネットコネクトが生成する。

0051

すなわち、ライト(書き込み)の場合、バースト全体に対して、1つの応答を返し、また、リード(読み出し)の場合、バースト内のデータ転送ごとに応答を返すようになっている。ここで、データ転送ごとに異なる応答を返すことが可能であり、また、途中でエラーが発生しても、要求された回数転送をすることが求められる。

0052

図9は、AXIにおける排他アクセスの動作を説明するための図である。ここで、排他アクセスの動作において、基本は、セマフォアクセス(リード・モディファイ・ライト)である。

0053

図9(a)に示されるように、マスタが排他リードを実施(ARLOCK[0:1]=『01』)すると、排他モニタは、アドレスとIDを保存し、スレーブは"EXOKAY"で、リードデータを返す。なお、排他アクセスに対応しないスレーブは、"OKAY"を返すことで、マスタに非対応であることを通達することができる。

0054

図9(b)に示されるように、マスタがデータのモディファイ(modify)を実施すると、この間、排他モニタは、セマフォ領域が他のマスタによって書き換えられないかを監視する。なお、排他モニタは、他のマスタ(ID)からの書き込みや、他のアドレスへの排他リードが発生しない限り監視を続行する。

0055

図9(c)に示されるように、マスタが更新後のデータを排他ライト(AWLOCK[0:1]=『01』)すると、排他モニタは、同じアドレスを監視中であれば、排他性が保証されるため、ライトを実施し、"EXOKAY"を返す。また、排他モニタは、そのアドレスを監視中でなければ、排他性が保証されないため、ライト動作は行わずに"OKAY"を返すことになる。

0056

ところで、PCIeには、排他制御の機能が設けられていないため、例えば、AXIが適用された2つのSoC#0とSoC#1をPCIeにより接続したシステム(情報処理装置)では、適切な排他制御を行うことが難しい。

0057

図10は、図1に示す情報処理装置におけるリードアクセス動作の一例を説明するための図である。図11は、図10に示す情報処理装置における排他リードアクセス動作の一例を説明するための図であり、排他リードアクセス動作におけるAXIコマンドの変換を説明するためのものである。

0058

図10および図11において、SoC#0およびSoC#1の内部でコマンドや各種情報の受け渡しに使用されるバスはAXIであり、排他リードアクセスに対応している一方、SoC#0とSoC#1の間でコマンドや各種情報の受け渡しに使用されるバスはPCIeであり、排他リードアクセスに対応していない。なお、図11において、『xxxx』はリードデータを示し、『yy』は排他応答を示す。また、Misc信号としては、ARUSER[x:0]を使用(例えば、排他アクセス=『1』)する。

0059

図10および図11に示されるように、まず、SoC#0のCPU102(CPU#0)から排他リードアクセス(排他リードコマンド)を発行し(処理S1)、排他コマンド変換ブロックA-1により排他リードコマンドを保持する(処理S2:ARARLOCK=『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』)。

0060

そして、PCIe#0(SoC#0の外部接続回路)からPCIe#1(SoC#1の外部接続回路)に、ヘッダ情報に排他制御情報を含むリードコマンドを発行し(処理S5)、PCIe#1から排他コマンド生成ブロックB-1に通常リードコマンド(Misc信号付き)を発行する(処理S6:ARARLOCK=『00』,ARUSER=『1』)。また、B-1により通常リードコマンド(Misc信号付き)を保持し(処理S7)、Misc信号の排他リード情報から排他リードコマンドを生成する(処理S8)。

0061

次に、B-1からSoC#1のメモリ101(DDR#1)に排他リードコマンドを発行し(処理S9:ARARLOCK=『01』)、DDR#1が排他リード応答を発行し(処理S10)、そして、B-1により排他リード応答を保持する(処理S11:R RDATA=『xxxx』,RRESP=『yy』)。

0062

さらに、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』)。

0063

そして、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』)。

0064

以上のようにして、例えば、排他リード機能が用意されていないPCIeを介して接続された、2つの排他リード機能を有するAXI仕様の半導体集積回路(SoC)間における排他リード処理を実現することが可能になる。すなわち、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができる。

0065

図12は、図1に示す情報処理装置におけるライトアクセス動作の一例を説明するための図である。図13は、図12に示す情報処理装置における排他ライトアクセス動作の一例を説明するための図であり、排他ライトアクセス動作におけるAXIコマンドの変換を説明するためのものである。

0066

図12および図13において、SoC#0およびSoC#1の内部でコマンドや各種情報の受け渡しに使用されるバスはAXIであり、排他ライトアクセスに対応している一方、SoC#0とSoC#1の間でコマンドや各種情報の受け渡しに使用されるバスはPCIeであり、排他ライトアクセスに対応していない。なお、図13において、『xx』はライトデータを示し、『yy』は排他応答を示す。また、Misc信号としては、AWUSER[x:0]を使用(例えば、排他アクセス=『1』)する。

0067

図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』)。

0068

そして、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)。

0069

次に、B-1からDDR#1(SoC#1のメモリ101)に排他ライトコマンドを発行し(処理S29:AW AWLOCK=『01』,W WDATA=『xx』)、DDR#1が排他ライト応答を発行し(処理S30)、そして、B-1により排他ライト応答を保持する(処理S31:B BRESP『yy』)。

0070

さらに、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』)。

0071

また、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』)。

0072

以上のようにして、例えば、排他ライト機能が用意されていないPCIeを介して接続された、2つの排他ライト機能を有するAXI仕様の半導体集積回路(SoC)間における排他ライト処理を実現することが可能になる。すなわち、異なる仕様のバス間においても排他アクセスの伝搬を可能とすることができる。

0073

図14は、図10および図11に示す情報処理装置における排他リードアクセス動作の他の例を説明するための図であり、AXIのMisc信号を使わずに排他リードアクセス動作を行う例を説明するためのものである。

0074

図14と、前述した図11の比較から明らかなように、Misc信号を使わずに排他リードアクセス動作を行う本変形例では、図11に示す処理S1〜S19に加えて、さらなる処理S4'およびS6'が設けられている。

0075

すなわち、排他コマンド変換ブロックA-1からPCIe#0に対して、通常リードを発行する処理S4(ARARLOCK=『00』,ARUSER=『1』)と共に、処理S4'を行う。処理S4'では、A-1からPCIe#0に対して、例えば、AW AWLOCK=『00』,W WDATA=『1』とすることにより、排他リード情報をAXIの通常ライトコマンドとして発行する。そして、PCIe#0は、通常ライトコマンドを受け取り、A-1に受け取り成功を示す応答を発行する。

0076

さらに、PCIe#1から排他コマンド生成ブロックB-1に通常リードを発行する処理S6(ARARLOCK=『00』,ARUSER=『1』)と共に、処理S6'を行う。処理S6'では、PCIe#1からB-1に対して、例えば、AW AWLOCK=『00』,W WDATA=『1』とすることにより、排他リード情報をAXIの通常ライトコマンドとして発行し、B-1は、通常ライトコマンドを受け取り、PCI#1に受け取り成功を示す応答を発行する。

0077

そして、B-1は、通常リードコマンド(処理S6)と排他リード情報の通常ライトコマンド(処理S6')から、AXIの排他リードコマンドを生成する。同様に、排他ライトアクセス動作もMisc信号を使用することなく実現することが可能である。このように、PCIeのMisc信号を使用せずに排他アクセス処理を実現することができる。

0078

図15は、本実施形態に係る情報処理装置の他の例を示すブロック図であり、AXI仕様の3つのSoC(SoC#0,SoC#1,SoC#2)100がPCIe200で繋がれた情報処理装置の例を示すものである。すなわち、図15と、前述した図1の比較から明らかなように、図15に示す情報処理装置は、図1に示す情報処理装置に対して、SoC#2を追加したものに対応する。

0079

ここで、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)のソケットに相当する番号)が割り当てられる。

0080

なお、図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(回路基板)が接続されてもよいのは、前述した通りである。

0081

図16は、図2に示すバス制御回路(排他アクセス回路)におけるリードチャネルの排他コマンド変換ブロックの一例を説明するための図である。図16に示されるように、排他コマンド変換ブロックA-1は、図10および図11を参照して説明したリードアクセス動作時に、リードアドレス(AR)チャネルの変換処理を行うブロックA-11およびリードデータ(R)チャネルの変換処理を行うブロックA-12を含む。

0082

ブロック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として使用する。

0083

すなわち、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に転送する。

0084

さらに、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に出力する。

0085

ブロック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を出力する。

0086

図17は、図2に示すバス制御回路におけるライトチャネルの排他コマンド変換ブロックの一例を説明するための図である。図17に示されるように、排他コマンド変換ブロックA-1は、図12および図13を参照して説明したライトアクセス動作時に、ライトアドレス(AW)チャネルの変換処理を行うブロックA-13,ライトデータ(W)チャネルの変換処理を行うブロックA-14およびライト応答(B)チャネルの変換処理を行うブロックA-15を含む。

0087

ブロック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として使用する。

0088

すなわち、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に転送する。

0089

さらに、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』)であってもよい。

0090

ブロック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に入力される。

0091

ブロック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の出力を選択する。

0092

図18は、図2に示すバス制御回路における排他応答受信ブロックの一例を説明するための図である。図18に示されるように、排他応答受信ブロックB-2は、図10図13を参照して説明したアクセス動作時に、排他コマンド変換ブロックA-1およびPCIe#0との間で信号の遣り取りおよび変換を行う3つのブロックB-21,B-22およびB-23を含む。

0093

ブロック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に出力する。

0094

ブロック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)チャネルの情報を受け取るブロックであるが、本実施形態と関係が薄いので、その説明は省略する。

0095

図19は、図2に示すバス制御回路におけるリードチャネルの排他コマンド生成ブロックの一例を説明するための図である。図19に示されるように、排他コマンド生成ブロックB-1は、図10および図11を参照して説明したリードアクセス動作時に、ARチャネルの変換処理を行うブロックB-11およびRチャネルの変換処理を行うブロックB-12を含む。

0096

ブロック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)。

0097

すなわち、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に出力する。

0098

ブロック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を出力する。

0099

図20は、図2に示すバス制御回路におけるライトチャネルの排他コマンド生成ブロックの一例を説明するための図である。図20に示されるように、排他コマンド生成ブロックB-1は、図12および図13を参照して説明したライトアクセス動作時に、AWチャネルの変換処理を行うブロックB-13,Wチャネルの変換処理を行うブロックB-14およびBチャネルの変換処理を行うブロックB-15を含む。

0100

ブロック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)。

0101

すなわち、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に出力する。

0102

ブロック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を出力する。

0103

また、B-15は、S_B1_BID[y]=『0』のとき、D_B1_BRESP=S_B1_BRESPをPCIe#1に出力する。なお、ブロックB-14は、PCIe#1からのWチャネルのデータをそのまま通過させてDDR#1に出力する。

0104

図21は、図2に示すバス制御回路におけるライトチャネルの排他応答発行ブロックの一例を説明するための図である。図21に示されるように、排他応答発行ブロックA-2は、図12および図13を参照して説明したライトアクセス動作時に、AWチャネルの変換処理を行うブロックA-21,Wチャネルの変換処理を行うブロックA-22およびBチャネルの変換処理を行うブロックA-23を含む。

0105

ブロック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)に発行する。

0106

ブロック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は、本実施形態と関係が薄いので、その説明は省略する。

0107

ここで、図21および図17に示されるように、PCIe#1と排他コマンド変換ブロックA-1および排他応答発行ブロックA-2の間にはセレクタ10が設けられ、このセレクタ10により選択された信号が、PCIe#1とA-1またはA-2の間で転送される。すなわち、セレクタ10は、排他応答発行識別信号SSを受信したときは、A-2の経路を選択し、そうでないときは、A-1の経路を選択するようになっている。

0108

図22および図23は、図1および図2を参照して説明した情報処理装置におけるSTビット[7:0]を含むヘッダ情報の生成/復元方法を説明するための図であり、図15を参照して示したSoC番号やポート番号の情報の取得を説明するためのものである。なお、図22および図23では、例えば、メモリ(DDR Memory 101),メモリ接続回路(104,105)およびIPマクロ(108)等は、関係が薄いので省略されている。

0109

図22に示されるように、SoC100は、例えば、図1を参照して説明したSoCに対して、さらに、フラッシュ(Flash)メモリコントローラ111,電子ヒューズ(eFUSE)112および設定値レジスタ113を含む。なお、フラッシュメモリコントローラ111は、例えば、外部に設けられたフラッシュメモリ(または、eEPROM)114を制御する。

0110

フラッシュメモリコントローラ111,電子ヒューズ(eFUSE)112および設定値レジスタ113を含む。なお、フラッシュメモリコントローラ111は、例えば、外部に設けられたフラッシュメモリや不揮発性メモリ(Electrically Erasable Programmable Read-Only Memory:Flash/eEPROM:外部メモリ)114を制御する。

0111

外部メモリ(Flash/eEPROM)114または電子ヒューズ112には、予めSoC番号やポート番号が格納され、例えば、電源起動時に、CPU(または、コントローラ)102が、その外部メモリ114や電子ヒューズ112に格納された値を読み出して、設定値レジスタ113にコピーする。そして、設定値レジスタ113にコピーされた値は、バス制御回路(排他アクセス回路)1により読み出され、それぞれのSoCが識別された状態で、前述した排他アクセス処理が行われる。なお、設定値レジスタ113を経由せずに、CPU102が、外部メモリ114や電子ヒューズ112から読み出した値を、直接バス制御回路1に設定することもできる。

0112

具体的に、図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#に出力する。

0113

ここで、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ビットを使用すればよい。

0114

このようにして、例えば、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]が出力される。

0115

なお、SoC#1においても、設定値レジスタ113が設けられ、上述したのとは逆向き(SoC#1からSoC#0)の処理を行うことができるのはいうまでもない。また、上述したPCIeのTLPヘッダにおけるST[7:0],THおよびPH[1:0]の使用は単なる例であり、ヘッダの他のビットフィールド、或いは、各バス仕様における適切なビットフィールドの使用も可能なのはいうまでもない。

0116

以上、実施形態を説明したが、ここに記載したすべての例や条件は、発明および技術に適用する発明の概念の理解を助ける目的で記載されたものであり、特に記載された例や条件は発明の範囲を制限することを意図するものではない。また、明細書のそのような記載は、発明の利点および欠点を示すものでもない。発明の実施形態を詳細に記載したが、各種の変更、置き換え、変形が発明の精神および範囲を逸脱することなく行えることが理解されるべきである。

0117

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)
200PCIeバス(PCIe)
300回路基板
A-1 排他コマンド変換ブロック
A-2 排他応答発行ブロック
B-1 排他コマンド生成ブロック
B-2 排他応答受信ブロック

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ