(57)【特許請求の範囲】
【請求項１】
ＬＳＩ設計支援装置を用いたＬＳＩシステムの設計方法であって，
前記ＬＳＩシステムは，高速シリアルバス及び前記高速シリアルバスを実現するための機能ブロックを有し，接続対象システムと接続されるものであり，
前記ＬＳＩ設計支援装置を前記接続対象システムに接続する工程と，送受信バッファの段数及び送受信バッファの容量を決定する工程とを含み，
前記送受信バッファの段数及び送受信バッファの容量を決定する工程は，
前記ＬＳＩ設計支援装置が，前記ＬＳＩ設計支援装置の送受信バッファの段数及び送受信バッファの容量を変化させるとともに，前記接続対象システムへ送信される送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する前記接続対象システムの応答時間を監視することで，前記ＬＳＩ設計支援装置と前記接続対象システムとのリンク通信速度を計測し，前記機能ブロックとして最適な送受信バッファの段数，及び送受信バッファの容量を決定する工程である，
ＬＳＩシステムの設計方法。
【請求項２】
前記高速シリアルバスが，ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩエクスプレス）規格の高速シリアルバスである請求項１に記載のＬＳＩシステムの設計方法。
【請求項３】
ＬＳＩ設計支援装置を用いたＬＳＩシステムの設計方法であって，
前記ＬＳＩシステムは，高速シリアルバス，及び前記高速シリアルバスを実現するための機能ブロックを有し，接続対象システムと接続されるものであり，
前記ＬＳＩ設計支援装置を前記接続対象システムに接続する工程と，最適なレーン数及び送受信バッファ構成を決定する工程を含み，
前記最適なレーン数及び送受信バッファ構成を決定する工程は，
現状リンクが形成されているレーン数を最大として，前記最大レーン数以下のレーン数であって要求転送帯域を満たすレーン数となるように，
前記ＬＳＩ設計支援装置の各リンクで設定された通信パケットヘッダー部のオーバヘッドを用いて各レーンの実行転送レートを求め，この実行転送レートとレーン辺りの実行転送レートと比較することで，必要レーン数を割り出し，
前記ＬＳＩ設計支援装置におけるレーン数を変動させるとともに，前記ＬＳＩ設計支援装置における送受信バッファのヘッダー及びペイロードサイズを変化させ，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する応答時間を監視し，最適なレーン数及び送受信バッファ構成を決定する，
ＬＳＩシステムの設計方法。
【請求項４】
請求項１〜３のいずれかに記載のＬＳＩシステムの設計方法を用いて，
前記ＬＳＩ設計支援装置内に，ＬＳＩシステムに構築される機能ブロックと同様の機能ブロックとして最適なレーン数，送受信バッファの段数，及び送受信バッファの容量を有する機能ブロックを構築する，
ＰＣＩ  Ｅｘｐｒｅｓｓ用仮想機能ブロックの製造方法。
【請求項５】
前記ＬＳＩ設計支援装置は，前記ＬＳＩシステムに用いられるアプリケーション機能ブロックを具備し，
請求項４に記載の仮想機能ブロックの製造方法により構築された機能ブロックと，前記アプリケーション機能ブロックとを接続する工程を含む，
仮想ＬＳＩシステムの製造方法。  
【請求項６】
請求項５に記載の製造方法により構築された仮想ＬＳＩシステムを含む，ＬＳＩ設計支援装置を用いる，
前記ＬＳＩシステムの性能評価方法。
【請求項７】
請求項６に記載の性能評価方法により得られたＬＳＩシステムの設計用パラメータを出力する工程と，
前記出力されたＬＳＩシステムの設計用パラメータを用いて実際のＬＳＩシステムを製造する工程とを含む，
ＬＳＩシステムの製造方法。
【請求項８】
請求項５に記載の製造方法により仮想ＬＳＩシステムを構築する際に，前記接続対象システムの受信バッファ構成に関する情報を入手するとともに，前記接続対象システム応答速度を測定し，
前記ＬＳＩ設計支援装置のレーン数及び送受信バッファの構成を，得られた受信バッファ構成及び応答速度にあわせて変化させることで，
前記ＬＳＩ設計支援装置内に，実際に製造されたＬＳＩシステムと接続することができる，仮想的な接続対象システムを構築する，
仮想的な接続対象システムの製造方法。
【請求項９】
請求項８に記載の仮想的な接続対象システムの製造方法により製造された仮想的な接続対象システムと，請求項７に記載のＬＳＩシステムの製造方法により製造されたＬＳＩシステムとを接続する工程と，
前記仮想的な接続対象システムのレーン数，送受信バッファの段数，送受信バッファの容量，転送負荷の容量のうちいずれか1つ以上を変化させて，ＬＳＩシステムの性能を評価する，
ＬＳＩシステムの性能評価方法。
【請求項１０】
高速シリアルバス，及び前記高速シリアルバスを実現するための機能ブロックを有するＬＳＩシステムを設計するための設計支援装置であって，
前記ＬＳＩシステムが接続される接続対象システムの高速シリアルバスと接続するための高速シリアルバスと，
前記接続対象システムから前記高速シリアルバスの最大レーン数，前記機能ブロックの送受信バッファ情報，最大読み取りサイズ，及び最大ペイロードサイズを含む情報を読み取るための手段と，
前記接続対象システムと接続される高速シリアルバスのレーン数を変化させる手段と，
送受信バッファの段数及び送受信バッファの容量を変化させる手段と，
送信パケット又は受信パケットの種類ごとの数とそれらパケットに対するＬＳＩシステムの応答時間を監視する手段と，
前記監視した応答時間に基づいて，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する接続対象システムの通信速度を解析する手段と，
前記解析結果に基づいて，機能ブロックとして最適な送受信バッファの段数，及び送受信バッファの容量を決定する手段と，
を含む，ＬＳＩシステムの設計支援装置。
【請求項１１】
前記高速シリアルバスが，ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩエクスプレス）規格の高速シリアルバスである請求項１０に記載のＬＳＩシステムの設計支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，ＬＳＩシステムの設計方法及びＬＳＩシステムの設計支援装置などに関する。より詳しく説明すると，本発明は，実際のＬＳＩを製造する前にＰＣＩ  Ｅｘｐｒｅｓｓなどの高速シリアルバスを実現する最適な機能ブロックを設計でき，そのような最適な機能ブロックを評価でき，さらには仮想的な機能ブロックを構築できるＬＳＩシステムの設計方法，及びＬＳＩシステムの設計支援装置などに関する。
【背景技術】
【０００２】
高速シリアルインターフェィスとして，ＰＣＩバス方式の後継規格に当るＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）というインターフェイスが提案されている（例えば，非特許文献１参照）。ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩｅ）を有するシステムは，必ず上流コンポーネントと下流コンポーネントの一対一接続のリンクを形成する。リンクは，送受信の差動信号の固まりであるレーンからなる。このレーンは，必要帯域に合わせてリンクを束ねた，１，２，４，８，１２，１６又は３２レーンから構成される。ＰＣＩｅ転送方式において，メモリ書込み要求等の「ポスト転送」及びメモリ読取り転送等は，命令と応答の分割転送方式が採用されている。そして，分割転送方式は，読取り命令等の「ノンポスト転送」及び読取り応答等の「コンプリション転送」の３つに大別され，それぞれ通信相手側のバッファの空き情報を監視しながらリンク間通信を行うクレジット型のフロー制御によって管理されている。
【０００３】
ＰＣＩｅの転送レートは，レーン当たり単方向２．５Ｇｂｐｓ又は５Ｇｂｐｓである。ＰＣＩｅの転送レートは，８Ｂ／１０Ｂによる損失が起こる。また，リンク間で定義される最大読取り要求サイズ及び最大ペイロードサイズに基づき通信パケット（ＴＬＰ）を分割転送するため，パケットヘッダー部のオーバヘッドが生じる。更にＴＬＰを補助するデータリンクレイヤーのパケット群として，ＴＬＰが転送先まで正常または異常状態で届いたことを伝達するＡＣＫ／ＮＡＫ  ＤＬＬＰ，及び通信相手先の受信バッファの空き情報を伝達するＵｐｄａｔｅ−ＦＣ  ＤＬＬＰが転送種別毎に応答される。さらに，リンク間のクロック位相差を保つために定期的に挿入されるＳＫＰオーダセット等の下位レイヤーのパケットが割込む自体も生ずる。よって，ＰＣＩｅの実行転送レートは，様々な要因により減少する。
【０００４】
一方，従来のＬＳＩ設計では，高速シリアルインターフェィスを実現するための機能ブロックを製造した後に，その性能を評価していた。このため，必ずしも最適な実行転送レートを有する機能ブロックを実現できないか，必要以上に多くのレーンやバッファを用いるように設計されていた。ＰＣＩｅでは，接続を行う相手方の装置と１対１で接続されリンクを形成する。よって，接続を行う相手方の受信バッファや応答時間などの情報を把握しなければ，転送帯域を考慮したＰＣＩｅ機能ブロックを開発できない。
【非特許文献１】“ＰＣＩ  Ｅｘｐｒｅｓｓ規格の概要” Ｉｎｔｅｒｆａｃｅ誌，Ｊｕｌｙ’ ２００３  里見尚志
【発明の開示】
【発明が解決しようとする課題】
【０００５】
本発明は，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計する方法，及びそのような機能ブロックを有するＬＳＩシステムを設計する方法を提供することを目的とする。
【０００６】
本発明は，製造する前の高速シリアルバスを実現するための機能ブロックと同等のスペックを有する仮想的な機能ブロックを製造する方法を提供することを目的とする。
【０００７】
本発明は，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計するための設計支援装置，及びそのような機能ブロックを有するＬＳＩシステムの設計支援装置を提供することを目的とする。
【０００８】
本発明は，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計する方法，及びそのような機能ブロックを有するＬＳＩシステムを設計する方法に基づいて製造された，機能ブロックやＬＳＩを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明のＬＳＩ設計支援装置を用いて，ＬＳＩシステムを製造できる。そして，そのようなＬＳＩシステムを製造する前に，接続コンポーネントと本発明のＬＳＩ設計支援装置とを接続する。その上で，ＬＳＩ設計支援装置内のレーンやバッファ構成を変化させつつ，様々な情報転送状況を作り出すことで，最適なリンク構成を決定する。このリンク構成には，レーン数，送受信バッファの構成（段数及び容量など）が含まれる。このようにして，ＰＣＩｅ機能ブロックなどの高速シリアルインターフェィスを達成する機能ブロックの構成を決定できる。
【００１０】
ＬＳＩ設計システム内にＰＣＩｅ機能ブロックを構築した後に，ＬＳＩ設計システム内のアプリケーション機能ブロックとＰＣＩｅ機能ブロックとを接続する。これらの機能ブロックは，ＬＳＩ設計システム内にあり，実際のＬＳＩシステムにはないが，将来実際のＬＳＩシステム内で再現されるモデルである。よって，このようにして，ＬＳＩ設計システム内に仮想的なＬＳＩシステムが構築されることとなる。ＬＳＩ設計システムは，高い転送負荷状況を作り出す機能ブロックを有しており，また，レーン数やバッファ構成なども制御できるようにされている。そこで，ＬＳＩ設計システム内において，自由にエラー状況を発生させ，様々な異常事態を発生させることができる。本発明のＬＳＩ設計システムによれば，そのような様々な状況における仮想的なＬＳＩシステムの転送能力などを評価できる。また，評価過程において得られる各種パラメータを用いれば，実際の製品に用いられるソフトウェアなどを開発することもできることとなる。
【００１１】
これらの工程を経て，ＬＳＩシステムを設計するために必要な各種情報（パラメータ等）に関する情報が，ＬＳＩ設計支援装置内に蓄積される。よって，ＬＳＩシステムを設計するための情報を，出力装置から出力し，その情報を用いて，ＬＳＩシステムを構築することで，最適なＰＣＬｅ機能ブロックを有するＬＳＩシステムを製造できる。
【００１２】
一方，上記の工程を遂行する際に，ＬＳＩ設計支援装置内には，接続対象システムの各種情報（レーン数，受信バッファの容量など）が蓄積される。また，ＬＳＩ設計支援装置は，レーン数，送受信バッファの段数，容量などを変化させることできる。よって，ＬＳＩ設計支援装置は，ＬＳＩ設計支援装置内に仮想的な接続対象システムを構築できる。このようにして構築された仮想的な接続システムは，実際に製造されたＬＳＩシステムと接続させることができる。通常の接続対象システムは，通信速度などを変化させることは難しい。しかしながら，ＬＳＩ設計支援装置は，通信速度などの各種スペックを変化させることができる。よって，接続対象システムに各種異常が起こった状況をも作り出すことができる。よって，ＬＳＩ設計支援装置を用いることで，接続対象システムに異常が生じた際における，製造されたＬＳＩシステムの耐久性などの特性を評価することができる。
【００１３】
すなわち，本発明は，高速シリアルバス，及び前記高速シリアルバスを実現するための機能ブロックを有するＬＳＩシステムの設計方法であって，ＬＳＩ設計支援装置を，前記ＬＳＩシステムと接続される接続対象システムに接続する工程と，前記ＬＳＩ設計支援装置が，前記ＬＳＩ設計支援装置の送受信バッファの段数及び送受信バッファの容量を変化させるとともに，前記接続対象システムへ送信される送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する前記接続対象システムの応答時間を監視することで，前記ＬＳＩ設計支援装置と前記接続対象システムとのリンク通信速度を計測し，前記機能ブロックとして最適な送受信バッファの段数，及び送受信バッファの容量を決定する工程と，を含む，ＬＳＩシステムの設計方法に関する。
【００１４】
本発明の好ましい態様は，前記送受信バッファの段数，及び送受信バッファの容量を決定する工程の代わりに，現状リンクが形成されているレーン数を最大として，前記最大レーン数以下のレーン数であって要求転送帯域を満たすレーン数となるように，前記ＬＳＩ設計支援装置の各リンクで設定された通信パケットヘッダー部のオーバヘッドを用いて各レーンの実行転送レートを求め，この実行転送レートとレーン辺りの実行転送レートと比較することで，必要レーン数を割り出し，前記ＬＳＩ設計支援装置におけるレーン数を変動させるとともに，前記ＬＳＩ設計支援装置における送受信バッファのヘッダ及びペイロードサイズを変化させ，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する応答時間を監視し，最適なレーン数及び送受信バッファ構成を決定する工程を含む，上記のＬＳＩシステムの設計方法に関する。
【００１５】
本発明の好ましい態様は，前記高速シリアルバスが，ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩエクスプレス）規格の高速シリアルバスである上記に記載のＬＳＩシステムの設計方法に関する。
【００１６】
本発明の好ましい態様は，上記いずれかに記載のＬＳＩシステムの設計方法を用いて，前記ＬＳＩ設計支援装置内に，ＬＳＩシステムに構築される機能ブロックと同様の機能ブロックとして最適なレーン数，送受信バッファの段数，及び送受信バッファの容量を有する機能ブロックを構築する，ＰＣＩ  Ｅｘｐｒｅｓｓ用仮想機能ブロックの製造方法に関する。
【００１７】
本発明の好ましい態様は，前記ＬＳＩ設計支援装置は，前記ＬＳＩシステムに用いられるアプリケーション機能ブロックを具備し，上記いずれかに記載の仮想機能ブロックの製造方法により構築された機能ブロックと，前記アプリケーション機能ブロックとを接続する工程を含む，仮想ＬＳＩシステムの製造方法に関する。
【００１８】
本発明の好ましい態様は，上記いずれかに記載の製造方法により構築された仮想ＬＳＩシステムを含む，ＬＳＩ設計支援装置を用いる，前記ＬＳＩシステムの性能評価方法に関する。
【００１９】
本発明の好ましい態様は，上記に記載の性能評価方法により得られたＬＳＩシステムの設計用パラメータを出力する工程と，前記出力されたＬＳＩシステムの設計用パラメータを用いて実際のＬＳＩシステムを製造する工程とを含む，ＬＳＩシステムの製造方法に関する。なお，ＬＳＩシステムの設計用パラメータには，たとえば，レーン数，転送速度，送受信バッファの構成などの情報が適宜含まれればよい。また，ＬＳＩシステムは，仮想ＬＳＩシステムを構築する際に用いられた情報に基づいて製造されても良い。
【００２０】
本発明の好ましい態様は，上記いずれかに記載の製造方法により仮想ＬＳＩシステムを構築する際に，前記接続対象システムの受信バッファ構成に関する情報を入手するとともに，前記接続対象システム応答速度を測定し，前記ＬＳＩ設計支援装置のレーン数及び送受信バッファの構成を，得られた受信バッファ構成及び応答速度にあわせて変化させることで，前記ＬＳＩ設計支援装置内に，実際に製造されたＬＳＩシステムと接続することができる，仮想的な接続対象システムを構築する，仮想的な接続対象システムの製造方法に関する。
【００２１】
本発明の好ましい態様は，上記いずれかに記載の仮想的な接続対象システムの製造方法により製造された仮想的な接続対象システムと，上記いずれかに記載のＬＳＩシステムの製造方法により製造されたＬＳＩシステムとを接続する工程と，前記仮想的な接続対象システムのレーン数，送受信バッファの段数，送受信バッファの容量，転送負荷の容量のうちいずれか1つ以上を変化させて，ＬＳＩシステムの性能を評価する，ＬＳＩシステムの性能評価方法に関する。
【００２２】
本発明の好ましい態様は，高速シリアルバス，及び前記高速シリアルバスを実現するための機能ブロックを有するＬＳＩシステムを設計するための設計支援装置であって，前記ＬＳＩシステムが接続される接続対象システムの高速シリアルバスと接続するための高速シリアルバスと，前記接続対象システムから前記高速シリアルバスの最大レーン数，前記機能ブロックの送受信バッファ情報，最大読み取りサイズ，及び最大ペイロードサイズを含む情報を読み取るための手段と，前記接続対象システムと接続される高速シリアルバスのレーン数を変化させる手段と，送受信バッファの段数及び送受信バッファの容量を変化させる手段と，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対するＬＳＩシステムの応答時間を監視する手段と，前記監視した応答時間に基づいて，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する接続対象システムの通信速度を解析する手段と，前記解析結果に基づいて，機能ブロックとして最適な送受信バッファの段数，及び送受信バッファの容量を決定する手段と，を含む，ＬＳＩシステムの設計支援装置に関する。
【００２３】
本発明の好ましい態様は，前記高速シリアルバスが，ＰＣＩ  Ｅｘｐｒｅｓｓ（ＰＣＩエクスプレス）規格の高速シリアルバスである上記いずれかに記載のＬＳＩシステムの設計支援装置に関する。  
【発明の効果】
【００２４】
本発明によれば，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計する方法，及びそのような機能ブロックを有するＬＳＩシステムを設計する方法を提供できる。
【００２５】
本発明によれば，製造する前の高速シリアルバスを実現するための機能ブロックと同等のスペックを有する仮想的な機能ブロックを製造する方法を提供できる。
【００２６】
本発明によれば，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計するための設計支援装置，及びそのような機能ブロックを有するＬＳＩシステムの設計支援装置を提供できる。
【００２７】
本発明によれば，最適なレーン数やバッファ構成を有する高速シリアルバスを実現するための機能ブロックを設計する方法，及びそのような機能ブロックを有するＬＳＩを設計する方法に基づいて製造された，機能ブロックやＬＳＩシステムを提供できる。
【発明を実施するための最良の形態】
【００２８】
ＬＳＩ設計支援装置の構成
図１は，ＬＳＩ設計支援装置の構成，及びＬＳＩ設計支援装置と接続対象システムの接続例を示すための概念図である。図１に示されるように，ＬＳＩ設計支援装置は，外部ＰＣなどの外部制御装置と接続するためのインターフェイス，各種演算処理を行うためのプロセッサ，転送帯域速度を計測するためのタイマ，高負荷転送を実現するＤＭＡコントローラ，バッファなどのメモリと接続されメモリを制御するためのメモリコントローラ，アプリケーション機能ブロックと接続するためのアプリケーション機能バスコントローラ，及びＰＣＩｅ機能ブロックとを具備し，各要素はバスなどにより情報の授受を行うことができるように接続されている。そして，ＬＳＩシステムとのリンク情報を制御する機構，転送要因を解析するための機構，ＬＳＩシステムの要求帯域構成を分析し，ＬＳＩ設計支援装置内に適切な機能ブロックを構築するための指令を出力する機構を有する。
【００２９】
高速シリアルバスを有するＬＳＩシステムは，たとえばＰＣＩｅ規格に準拠したスロットを有する。一方，ＬＳＩ設計支援装置は，そのスロットにはまる端子を有する。そこで，ＬＳＩ設計支援装置の端子をＬＳＩシステムのＰＣＩｅスロットなどに差し込むことで，ＬＳＩシステムの高速シリアルバスとＬＳＩ設計支援装置とを接続できる。
【００３０】
ＬＳＩ設計支援装置は制御用コンピュータからの指令を受け，ＤＭＡコントローラを起動し高負荷転送の状態を作り出す。ＬＳＩシステムを実動作させながらＬＳＩ設計支援装置内に備えた情報を抽出及び加工しＰＣＩｅ機能ブロック構成を動的に変更しながら要求する転送性能を実現するための構成を決定する。
【００３１】
具体的には，ＬＳＩ設計支援装置が，接続対象システムから，ＬＳＩシステムの高速シリアルバスの最大レーン数，機能ブロックの送受信バッファ情報，最大読み取りサイズ，及び最大ペイロードサイズを含む情報を読み取る。また，接続対象システムの受信バッファ構成に関する情報を読み取る。
【００３２】
ＬＳＩ設計支援装置が，機能ブロックとして最適なレーン数を決定する。最大読み取りサイズ及び前記最大ペイロードサイズを用いて，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する接続対象システムの応答時間を監視することで，ＬＳＩ設計支援装置と前記接続対象システムとのリンク通信速度を計測し，機能ブロックとして最適なレーン数を決定する。すなわち，様々な条件で応答時間を観測し，その結果を比較する。そして，応答時間に最も優れている条件を最適な条件とする。このレーン数は，最大レーン数以下のレーン数であって要求転送帯域を満たすレーン数となるよう設計する。好ましい態様では，前記ＬＳＩ設計支援装置と前記接続対象システムの各リンクで設定された通信パケットヘッダー部のオーバヘッドを用いて各レーンの実行転送レートを求め，この実行転送レートとレーン辺りの実行転送レートと比較する。このようにすることで，必要レーン数を割り出し，前記ＬＳＩ設計支援装置におけるレーン数を変動させ送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する接続対象システムの応答時間を監視し，最適なレーン数を決定する。このように，ＬＳＩ設計支援装置は，動的にレーン数を制御できるものが好ましい。レーン数は，複数のレーンのそれぞれを使用するか使用しないかを変化させることで，制御できる。
【００３３】
ＬＳＩ設計支援装置が，送受信バッファの段数及び送受信バッファの容量を変化させるとともに，送信パケット又は受信パケットの種類ごとの数とそれらパケットに対する接続対象システムの応答時間を監視する。これにより，前記ＬＳＩ設計支援装置と前記接続対象システムとのリンク通信速度を計測し，機能ブロックとして最適な送受信バッファの段数，及び送受信バッファの容量を決定する。送受信バッファの段数は，複数ある送受信バッファのうちあるものを使用するか使用しないか変化させることで制御できる。すなわち，様々な条件で応答時間を観測し，その結果を比較する。そして，応答時間に最も優れている条件を最適な条件とする。また，送受信バッファの容量は，使用する記憶装置の領域を変化させることで制御できる。具体的には，ＤＭＡコントローラを用いて高負荷転送状態を作り出し，ＰＣＩｅ機能ブロック内の転送種別送受信バッファのヘッダ段数及びペイロード容量の構成を変動させながら，接続対象コンポーネント間のリンク通信速度を計測し，要求転送帯域を満たしうる必要最低限の送受信バッファ構成を決定すればよい。すなわち，送受信バッファのヘッダ及びペイロードを可変とする手段を具備することで，最適なバッファ構成を把握することができる。このようにＬＳＩ設計支援装置内の構成を変動させながら通信速度などを実測することにより，要求転送帯域を満たす最小限の構成（レーン構成及びバッファ構成）を達成できる。
【００３４】
具体的な測定内容としては，以下のものがあげられる。まず，測定サンプル時間を設定する。そして，ＬＳＩ設計支援装置内に搭載されたＤＭＡ機能を用いて，指定された転送に対する高負荷状態作り出す。そして，ＬＳＩ設計支援装置内に備えたイベントカウント機能，及びタイマ機能を用いて，制御用ＰＣなどでサンプルした計測データ（レジスタ値）を読み出して計算すればよい。測定データ内容は，ＬＳＩ設計支援装置内に実装される。測定データ内容として，測定サンプル時間（たとえばｍＳ単位），測定サンプル時間内の対象ＴＬＰ転送パケット数，及び測定サンプル時間内のＴＬＰパケット占有時間があげられる。これらの測定データ内容を用いることで，一定時間当りの転送バイト数を以下のようにして算出することができる。一定時間当りの実データペイロード＝ＴＬＰ占有時間−ＴＬＰヘッダ＝（（占有時間×時間当たりの転送能力）−（ＴＬＰ数×１２[Ｂｙｔｅ]））である。
【００３５】
すなわち，本発明のＬＳＩ設計支援装置によれば，接続対象システム（既存デバイス）と開発対象ＬＳＩシステムとのリンク間構成について，要求する転送帯域を実現するために必要なリンク構成を自動解析し，開発対象ＬＳＩシステムに搭載される最適なＰＣＩｅ機能ブロック構成を導き出すことができる。このような最適スペック（レーン数，送受信バッファの段数及び送受信バッファの容量）を有するＰＣＩｅ機能ブロックをＬＳＩ設計支援装置内に実現する。これにより，仮想的な機能ブロックを構築できることとなる。最適スペック（レーン数，送受信バッファの段数及び送受信バッファの容量）を有する仮想的なＰＣＩｅ機能ブロックに関する情報を用いれば，実際のＬＳＩを構築する前に，製造後のＬＳＩの性能を評価することができる。
【００３６】
次に，アプリケーション接続バスコントローラを制御して，仮想的な機能ブロックと，アプリケーション機能ブロックと連結動作させる。これにより，仮想ＬＳＩとして性能評価並びに解析を行うことができる。このように設計した機能ブロックと，アプリケーション機能ブロックとを接続し，接続した結果得られる動作情報を分析することで，最適なインターフェイス手順を案内することができ，さらに最適なインターフェイス手順を解析することができる。
【００３７】
一方，インターフェィスを介して，最適スペック（レーン数，送受信バッファの段数及び送受信バッファの容量）を有するＰＣＩｅ機能ブロックに関する情報を出力することで，現実のＬＳＩシステムを構築するための情報を得ることができる。そして，そのような設計情報を用いれば，容易にＰＣＩｅ規格に準拠した最適な機能ブロックを有するＬＳＩシステムを得ることができることとなる。なお，ＰＣなどに出力された最適スペック（レーン数，送受信バッファの段数及び送受信バッファの容量）を有するＰＣＩｅ機能ブロックに関する情報を用いれば，実際のＬＳＩシステムを構築する前に，製造後のＬＳＩシステムの性能を評価することができる。なお，ＬＳＩシステムの性能を評価し，その結果得られた情報を元に，ＬＳＩシステムの設計情報を更新し，その更新された情報に基づいてＬＳＩシステムを製造しても良い。
【００３８】
本発明の機能ブロックの決定方法は，たとえば，接続対象システムと前記ＬＳＩ設計支援装置とを接続することでリンクを形成する工程と，前記ＬＳＩ設計支援装置のレーン構成及びバッファ構成を変化させつつ，前記接続対象システムへと転送されるパケットの種類及び量を変化させて，リンク間通信速度を測定する工程と，前記工程得られた測定情報から最適な前記機能ブロックのバッファ構成を決定する工程を有するものがあげられる。次に本発明のＬＳＩ支援装置の利用方法の例について説明する。
【００３９】
ＬＳＩ設計支援装置を接続対象システム（これは，将来ＬＳＩシステムと接続されるシステムである）に接続する。ＬＳＩ設計支援装置は，ＰＣＩｅシステムにおけるリンク間転送装置として機能する。その上で，通信速度などを実測しつつＬＳＩ設計支援装置内のレーン構成，バッファ構成を適宜変化させることで，最適なリンク構成（レーン数，バッファ構成）を決定できる。
【００４０】
また，ＬＳＩ設計支援装置は，レーン数やバッファ構成を変化させられるため，将来ＬＳＩシステムに構築されるＰＣＩｅ機能ブロックを再現できる。ＬＳＩ設計支援装置は，このようにしてＬＳＩ設計支援装置内に再現したＰＣＩｅ機能ブロックと接続できるアプリケーション機能ブロックを有するので，ＬＳＩ設計支援装置内に再現したＰＣＩｅ機能ブロックとアプリケーション機能ブロックとを動作させ，動作を観測することで，最適なインターフェィス手順を解析できる。このようにすることで，ＬＳＩシステムを実際に製造する前の段階で，ＰＣＩｅ機能ブロック又はＰＣＩｅ機能ブロックを含むＬＳＩシステムの性能を評価できる。
【００４１】
さらに，ＬＳＩ設計支援装置は，上記のようにして得られたＰＣＩｅ機能ブロックに関する情報を出力部から出力することで，実際のＰＣＩｅ機能ブロックを製造することができる。
【００４２】
また，ＬＳＩ設計支援装置は，レーン数やバッファ構成を分析する際に，接続対象システムの受信バッファや応答時間などの情報を把握し，記憶する。このため，ＬＳＩ設計支援装置は，レーン数やバッファ構成を調整することで，接続対象システムの受信バッファや応答時間などを再現し，接続対象システムの擬似モデルとして機能しうる。ＬＳＩ設計支援装置は，さらにＤＭＡコントローラなどの高負荷転送を実現する構成などを有しているので，接続対象システムの擬似モデルから転送量などを変化したモデルを作り出し，様々な状況におけるＬＳＩシステムと接続対象システムのリンク評価を行うことができることとなる。ＬＳＩ設計支援装置は，自由に転送状態や異常状態を作り出すことができるので，ＬＳＩの設計や機能評価に有益である。
【００４３】
すなわち，本発明のＬＳＩ設計支援装置は，ＰＣＩｅリンクを最適化する際には，接続対象システムをＲＯＯＴとして用いることができ，一方，実際のＬＳＩシステムを構築した後は，そのＬＳＩシステムと接続されるＲＯＯＴとして用いることができる。
【００４４】
ＰＣＩ  Ｅｘｐｒｅｓｓ規格の概要
本実施の形態は高速シリアルバスの一つであるＰＣＩ  Ｅｘｐｒｅｓｓ（登録商標）を利用するものである。そこで，ＰＣＩ  Ｅｘｐｒｅｓｓ規格の概要について説明する。ここで，高速シリアルバスとは，１本の伝送路を用いてシリアル（直列）伝送により高速（１００Ｍｂｐｓ程度以上）にデータをやり取りすることができるインターフェイスを意味する。
【００４５】
ポート（Ｐｏｒｔ）／レーン（Ｌａｎｅ）／リンク（Ｌｉｎｋ）
ポートは，物理的には同一半導体内にあり，リンクを形成するトランスミッタ／レシーバの集合である。ポートは，論理的にはコンポーネント間を１対１で接続（ポイント・ツー・ポイント）するインターフェイスである。転送レートは，例えば片方向２．５Ｇｂｐｓ又は５Ｇｂｐｓとされている（将来的には，１０Ｇｂｐｓが想定されている）。レーンは，例えば０．８Ｖの差動信号ペアのセットで，送信側の信号ペア（２本），受信側の信号ペア（２本）からなる。リンクは，２つのポートとその間を結ぶレーンの集まりであり，コンポーネント間のデュアルシンプレックス通信バスである。「ｘＮリンク」はＮ本のレーンから構成され，現在の規格では，Ｎ＝１，２，４，８，１６，３２が定義されている。デバイス間を結ぶこのレーン幅Ｎを変化させることにより，スケーラブルなバンド幅を構築できる。
【００４６】
ルートコンプレックス（Ｒｏｏｔ  Ｃｏｍｐｌｅｘ）
ルートコンプレックスは，Ｉ／Ｏ構造の最上位に位置し，ＣＰＵやメモリサブシステムをＩ／Ｏに接続するための要素である。ルートコンプレックスは，「メモリハブ」と記述されることもある。ルートコンプレックスは，１つ以上のＰＣＩ  Ｅｘｐｒｅｓｓポート（ルートポート）を持ち，各々のポートは独立したＩ／Ｏ階層ドメインを形成する。
【００４７】
エンドポイント（Ｅｎｄ  Ｐｏｉｎｔ）
エンドポイントは，タイプ００ｈのコンフィグレーション空間ヘッダを持つデバイスで，レガシーエンドポイントとＰＣＩ  Ｅｘｐｒｅｓｓエンドポイントとに分けられる。
【００４８】
スイッチ（Ｓｗｉｔｃｈ）
スイッチは，２つ以上のポートを結合し，ポート間でのパケットルーティングを行うための要素である
【００４９】
ＰＣＩ  Ｅｘｐｒｅｓｓ−ＰＣＩブリッジ
ＰＣＩ  Ｅｘｐｒｅｓｓ−ＰＣＩブリッジは，ＰＣＩ  ＥｘｐｒｅｓｓからＰＣＩ／ＰＣＩ−Ｘへの接続を提供する。これにより，既存のＰＣＩ／ＰＣＩ−XデバイスをＰＣＩ 
Ｅｘｐｒｅｓｓシステム上で使用することができる。
【００５０】
階層アーキテクチャ
ＰＣＩｅｘｐｒｅｓｓでは，独立した階層構造とされ，各層に分けて仕様が定義されている。ＰＣＩｅｘｐｒｅｓｓの階層アーキテクチャは最上位のソフトウェア，最下位の機（メカニカル）部間に，トランザクション層，データリンク層，及び物理層を持つ構造とされている。
【００５１】
トランザクション層
トランザクション層は，階層アーキテクチャの最上位に位置し，トランザクションレイヤパケット（ＴＬＰ）の組み立て，分解機能を持つ。トランザクションレイヤパケット（ＴＬＰ）は，リード／ライト，各種イベントといったトランザクションの伝達に用いられる。また，トランザクション層は，トランザクションレイヤパケット（ＴＬＰ）のためのクレジットを用いたフロー制御を行う。
【００５２】
データリンク層
データリンク層の主な役割は，エラー検出／訂正（再送）によりトランザクションレイヤパケット（ＴＬＰ）のデータ完全性を保証することと，リンク管理である。データリンク層間では，リンク管理やフロー制御のためのパケットのやり取りを行う。このパケットは，トランザクションレイヤパケット（ＴＬＰ）と区別するために，データリンクレイヤパケット（ＤＬＬＰ）と呼ばれる。
【００５３】
物理層
物理層は，ドライバ，入力バッファ，パラレル−シリアル／シリアル−パラレル変換器，ＰＬＬ，インピーダンス整合回路といったインターフェイス動作に必要な回路を含んでいる。また，論理的な機能としてインターフェイスの初期化・保守の機能を持つ。物理層は，データリンク層／トランザクション層を実際のリンクで使用される信号技術から独立させる役目も持っている。
【００５４】
なお，ＰＣＩ  Ｅｘｐｒｅｓｓのハードウェア構成上，エンベデッド・クロックという技術を採用しており，クロック信号はなく，クロックのタイミングはデータ信号中に埋め込まれており，受信側でデータ信号のクロスポイントを基にクロックを抽出する方式とされている。
【００５５】
コンフィグレーション空間
ＰＣＩ  Ｅｘｐｒｅｓｓは，４０９６バイトのコンフィグレーション空間を持つ。ＰＣＩ  Ｅｘｐｒｅｓｓでは，コンフィグレーション空間へのアクセスは，フラットなメモリ空間へのアクセス（コンフィグレーションリード／ライト）で行われ，バス／デバイス／機能／レジスタ番号はメモリアドレスにマップされている。
【００５６】
コンフィグレーション空間の先頭２５６バイトは，ＰＣＩコンフィグレーション空間として，ＢＩＯＳや従来のＯＳからＩ／Ｏポートを使用した方法でもアクセスできる。従来のアクセスをＰＣＩ  Ｅｘｐｒｅｓｓでのアクセスに変換する機能は，ホストブリッジ上に実装される。００ｈから３ＦｈまではＰＣＩ２．３互換のコンフィグレーションヘッダとなっている。これにより，ＰＣＩ  Ｅｘｐｒｅｓｓで拡張された機能以外であれば，従来のＯＳやソフトウェアをそのまま使用することができる。ＰＣＩ  Ｅｘｐｒｅｓｓにおけるソフトウェア層は，既存のＰＣＩと互換性を保ったロード・ストア・アーキテクチャ（プロセッサが直接Ｉ／Ｏレジスタをアクセスする方式）を継承している。しかし，ＰＣＩ  Ｅｘｐｒｅｓｓで拡張された機能（例えば，同期転送やＲＡＳ（Ｒｅｌｉａｂｉｌｉｔｙ,Ａｖａｉｌａｂｉｌｉｔｙ ａｎｄ  Ｓｅｒｖｉｃｅａｂｉｌｉｔｙ）などの機能）を使用するには，４ＫバイトのＰＣＩ  Ｅｘｐｒｅｓｓ拡張空間にアクセスできるようにする必要がある。
【００５７】
なお，ＰＣＩ  Ｅｘｐｒｅｓｓとしては様々なフォームファクタ（形状）が考えられるが，具体化している例としては，アドインカード，プラグインカード（Ｅｘｐｒｅｓｓ  ＣＡＲＤ），Ｍｉｎｉ
ＰＣＩ  Ｅｘｐｒｅｓｓなどがある。
【００５８】
アドレス空間とトランザクションタイプ
ＰＣＩ  Ｅｘｐｒｅｓｓでは，従来のＰＣＩでサポートされていたメモリ空間（メモリ空間とのデータ転送用），Ｉ／Ｏ空間（Ｉ／Ｏ空間とのデータ転送用），コンフィグレーション空間（デバイスのコンフィグレーションとセットアップ用）に加えて，メッセージ空間が追加され，４つのアドレス空間が定義されている。そして，各々の空間に対してトランザクションタイプが定義されている（メモリ空間，Ｉ／Ｏ空間，コンフィグレーション空間は，リード／ライト，及びメッセージ空間）。
【００５９】
トランザクションレイヤパケット（ＴＬＰ）
ＰＣＩ  Ｅｘｐｒｅｓｓは，パケット単位で通信を行う。トランザクションレイヤパケット（ＴＬＰ）のフォーマットにおいて，たとえば，ヘッダのヘッダ長は３ＤＷ（ＤＷはダブルワードの略；合計１２バイト）又は４ＤＷ（１６バイト）で，トランザクションレイヤパケット（ＴＬＰ）のフォーマット（ヘッダ長とペイロードの有無），トランザクションタイプ，トラフィッククラス（ＴＣ），アトリビュートやペイロード長などの情報が含まれる。パケット内の最大ペイロード長は１０２４ＤＷ（４０９６バイト）である。
【００６０】
ＥＣＲＣは，エンドツーエンドのデータ完全性を保証するためのもので，トランザクションレイヤパケット（ＴＬＰ）部分の３２ビットＣＲＣである。これは，スイッチ内部などでトランザクションレイヤパケット（ＴＬＰ）にエラーが発生した場合，ＬＣＲＣ（リンクＣＲＣ）ではエラーを検出できないためである（エラーとなったＴＬＰでＬＣＲＣが再計算されるため）。
【００６１】
トラフィッククラス（ＴＣ）と仮想チャネル（ＶＣ）
上位のソフトウェアは，トラフィッククラス（ＴＣ）を使用することによりトラフィックの差別化（優先度をつける）を行うことができる。例えば，映像データをネットワークのデータよりも優先して転送する，といったことが可能となる。トラフィッククラス（ＴＣ）はＴＣ０からＴＣ７まで８つある。
【００６２】
仮想チャネル（ＶＣ：Ｖｉｒｔｕａｌ  Ｃｈａｎｎｅｌ）は，各々独立した仮想通信バス（同一のリンクを共用する複数の独立したデータ・フロー・バッファを使用するメカニズム）で，各々がリソース（バッファやキュー）を持ち，独立したフロー制御を行う。これにより，１つの仮想チャネルのバッファが満杯の状態（ｆｕｌｌ）になっても，他の仮想チャネルの転送を行うことができる。つまり，物理的には１つのリンクを仮想的な複数のチャネルに分けることで，有効に使用することができる。例えば，スイッチを経由してルートのリンクが複数のデバイスに分かれる場合，各デバイスのトラフィックの優先度を制御することができる。ＶＣ０は必須で，コストパフォーマンスのトレードオフに応じてその他の仮想チャネル（ＶＣ１〜ＶＣ７）が実装される。
【００６３】
トランザクション層内では，トラフィッククラス（ＴＣ）が仮想チャネル（ＶＣ）にマッピングされる。１つの仮想チャネル（ＶＣ）に対して１つ又は複数のトラフィッククラス（ＴＣ）をマッピングできる（仮想チャネル（ＶＣ）の数が少ない場合）。単純な例では，各トラフィッククラス（ＴＣ）から各仮想チャネル（ＶＣ）に１対１，全てのトラフィッククラス（ＴＣ）を仮想チャネルＶＣ０にマッピングする，といったことが考えられる。ＴＣ０−ＶＣ０のマッピングは，必須／固定で，それ以外のマッピングは上位のソフトウェアから制御される。ソフトウェアはトラフィッククラス（ＴＣ）を利用することで，トランザクションの優先度を制御できる。
【００６４】
フロー制御
受信バッファのオーバーフローを避け，伝送順序を確立するためにフロー制御（ＦＣ：Ｆｌｏｗ  Ｃｏｎｔｒｏｌ）が行われる。フロー制御は，リンク間のポイントツーポイントで行われ，エンドツーエンドではない。従って，フロー制御により最終的な相手（コンプリータ）にパケットが届いたことを確認することはできない。
【００６５】
ＰＣＩ Ｅｘｐｒｅｓｓのフロー制御は，クレジット・ベースで行われる（データ転送を始める前に，受け取り側のバッファの空き状況を確認し，オーバーフロー，アンダフローが発生しないメカニズム）。受信側はリンク初期化時にバッファ容量（クレジット値）を送信側に通知し，送信側はクレジット値と送信するパケットの長さとを比較し，一定の残りがある場合のみパケットを送信する。
【００６６】
フロー制御の情報交換はデータリンク層のデータリンクレイヤパケット（ＤＬＬＰ）を使用して行われる。フロー制御はトランザクションレイヤパケット（ＴＬＰ）のみに適用され，データリンクレイヤパケット（ＤＬＬＰ）には適用されない（ＤＬＬＰは常時送受信可能）。
【００６７】
トランザクションレイヤパケット（ＴＬＰ）の扱い
トランザクション層から受け取ったトランザクションレイヤパケット（ＴＬＰ）に対しては，先頭に２バイトのシーケンス番号，末尾に４バイトのリンクＣＲＣ（ＬＣＲＣ）を付加して，物理層に渡す。トランザクションレイヤパケット（ＴＬＰ）は，リトライバッファに保管され，相手から受信確認（ＡＣＫ）が届くまで再送される。トランザクションレイヤパケット（ＴＬＰ）の送信に失敗が続いた場合は，リンク異常であると判断して物理層に対してリンクの再トレーニングを要求する。リンクのトレーニングが失敗した場合，データリンク層の状態はインアクティブに遷移する。
【００６８】
物理層から受け取ったトランザクションレイヤパケット（ＴＬＰ）は，シーケンス番号とリンクＣＲＣ（ＬＣＲＣ）が検査され，正常であればトランザクション層に渡され，エラーがあった場合は再送を要求する。
【００６９】
データリンクレイヤパケット（ＤＬＬＰ）
データリンク層が生成するパケットは，データリンクレイヤパケット（ＤＬＬＰ）と呼ばれ，データリンク層間でやり取りされる。データリンクレイヤパケット（ＤＬＬＰ）の長さは６バイトで，種類を示すＤＬＬＰタイプ（１バイト），ＤＬＬＰの種類で固有の情報（３バイト），ＣＲＣ（２バイト）から構成される。
【００７０】
物理層−論理サブブロック
物理層の論理サブブロックでの主な役割は，データリンク層から受け取ったパケットを電気サブブロックで送信できる形式に変換することである。また，物理層を制御／管理する機能も有する。
【００７１】
データ符号化とパラレル−シリアル変換
ＰＣＩ  Ｅｘｐｒｅｓｓは，連続した"０"や"１"が続かないように（長い期間，クロスポイントが存在しない状態が続かないようにするため），データ符号化に８Ｂ／１０Ｂ変換を用いる。変換されたデータは，シリアル変換され，ＬＳＢからレーン上に送信される。レーンが複数ある場合は，符号化の前にデータがバイト単位で各レーンに割り振られる。この場合，一見パラレル・バスのようにみえるが，レーン毎に独立した転送を行うので，パラレル・バスで問題となるスキューが大幅に緩和される。
【産業上の利用可能性】
【００７２】
本発明は，ＬＳＩなどの半導体製造業の分野において好適に利用されうる。
【図面の簡単な説明】
【００７３】
【図１】図１は，ＬＳＩ設計支援装置の構成，及びＬＳＩ設計支援装置と接続対象システムの接続例を示すための概念図である。
【図１】
0004920638.tif 000002