(57)【要約】【課題】アウトスタンディング・ベースの可変フロー制御を可能にする。【解決手段】イニシエータ(１０５)を有する第1の半導体集積回路及びターゲット（１１２）を有する第２の半導体集積回路を備え、イニシエータがリクエストパケットをターゲットに送信し、ターゲットがレスポンスパケットをイニシエータに送信して、スプリットトランザクションインタフェースを行う。イニシエータは送信したリクエストパケットの数と受信したレスポンスパケットの数の差分値であるアウトスタンディング数を計数するアウトスタンディング計数回路を備え、前記アウトスタンディング数計数回路の計数値が、ターゲットが対応可能なアウトスタンディング数以下となるようにリクエストパケット送信数を制御する。リクエストパケットの発行からレスポンスパケット受け取りまでの最大レイテンシを抑制するように、アウトスタンディング数を適切な数に動的に変更可能になる。【選択図】図１
2009059122.tif 000002
【特許請求の範囲】
【請求項１】
イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行うデータ処理システムであって、
前記イニシエータは送信したリクエストパケットの数と受信したレスポンスパケットの数の差分値であるアウトスタンディング数を計数するアウトスタンディング計数回路を備え、前記アウトスタンディング数計数回路の計数値が、ターゲットが対応可能なアウトスタンディング数以下となるようにリクエストパケット送信数を制御する、データ処理システム。
【請求項２】
前記ターゲットは、対応可能なアウトスタンディング数を保持するアウトスタンディングレジスタを備え、
前記イニシエータは、前記アウトスタンディングレジスタの値を読み出し、前記読み出した値が前記アウトスタンディング計数回路の計数値以下となるようにリクエストパケット送信数を制御する、請求項１記載のデータ処理装置。
【請求項３】
前記ターゲットは、対応可能なアウトスタンディング数を保持するアウトスタンディングレジスタを備え、
前記イニシエータは、前記アウトスタンディングレジスタにアウトスタンディング数を設定し、前記設定した値が前記アウトスタンディング計数回路の計数値以下となるようにリクエストパケット送信数を制御する、請求項１記載のデータ処理システム。
【請求項４】
前記イニシエータは、リクエストパケットと同じ転送経路を用いて割り込みパケットを前記ターゲットに送信し、
前記ターゲットは、受信した割り込みパケットに基づいて割り込み信号を生成する、請求項１記載のデータ処理システム。
【請求項５】
前記ターゲットは、レスポンスパケットと同じパケット転送経路を用いて割り込みパケットを前記イニシエータに送信し、
前記イニシエータは受信した割り込みパケットに基づいて割り込み信号を生成する、請求項１記載のデータ処理システム。
【請求項６】
前記ターゲットは、前記アウトスタンディングレジスタに保持された最大アウトスタンディング数に対応する数のパケットのデータを保持することが可能な複数のバッファを有し、前記アウトスタンディングレジスタに保持されたアウトスタンディング数に対応する数のパケットのデータを保持する必要のないバッファへの電力供給を遮断する、請求２又は３記載のデータ処理システム。
【請求項７】
前記ターゲットは、前記アウトスタンディングレジスタに保持された最大アウトスタンディング数に対応する数のパケットのデータを保持することが可能な複数のバッファを有し、前記アウトスタンディングレジスタに保持されたアウトスタンディング数に対応する数のパケットのデータを保持する必要のないバッファへのクロック供給を遮断する、請求２又は３記載のデータ処理システム。
【請求項８】
前記イニシエータはターゲットに、リクエストパケットを復号するための第１の暗号鍵とレスポンスパケットを暗号化するための第２の暗号鍵を供給し、
前記ターゲットは、受信したリクエストパケットを前記第１の暗号鍵を用いて復号し、送信するレスポンスパケットを前記第２の暗号鍵を用いて暗号化する、請求項１記載のデータ処理システム。
【請求項９】
イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行うデータ処理システムであって、
前記イニシエータは、送信したリードアクセスのリクエストパケットの数と受信したリードアクセスのレスポンスパケットの数の差分値であるリードアウトスタンディング数を計数するリードアウトスタンディング計数回路を備え、前記リードアウトスタンディング数計数回路の計数値が、ターゲットが対応可能なリードアウトスタンディング数以下となるように、リードアクセスのリクエストパケット送信数を制御する、データ処理システム。
【請求項１０】
イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行うデータ処理システムであって、
前記イニシエータは、送信したライトアクセスのリクエストパケットの数と受信したライトアクセスのレスポンスパケットの数の差分値であるライトアウトスタンディング数を計数するライトアウトスタンディング計数回路を備え、前記ライトアウトスタンディング数計数回路の計数値が、ターゲットが対応可能なライトアウトスタンディング数以下となるように、ライトアクセスのリクエストパケット送信数を制御する、データ処理システム。
【請求項１１】
イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行うデータ処理システムであって、
前記イニシエータは、リクエストパケットの転送タイミングを示すリクエストストローブ信号とリクエストパケットをターゲットに送信し、
前記ターゲットは、レスポンスパケットの転送タイミングを示すレスポンスストローブ信号とレスポンスパケットをイニシエータに送信する、データ処理システム。
【請求項１２】
イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行うデータ処理システムであって、
前記ターゲットは、リクエストパケットの受信に用いる信号線の本数を保持するリクエストレーン数レジスタとレスポンスパケットの送信に用いる信号線の本数を保持するレスポンスレーン数レジスタを備え、
前記イニシエータは、前記リクエストレーン数レジスタにリクエストパケットの送信に用いる信号線の本数を示す値を、前記レスポンスレーン数レジスタにレスポンスリクエストパケットの受信に用いる信号線の本数を示す値をそれぞれ設定する、データ処理システム。
【請求項１３】
前記イニシエータは、リクエストパケットのビット数を計数するリクエスト計数回路とレスポンスパケットのビット数を計数するレスポンス計数回路を備え、前記リクエスト計数回路の計数結果と前記レスポンス計数回路の計数結果に基づいてリクエストパケットの受信に用いる信号線の本数とレスポンスパケットの受信に用いる信号線の本数を設定する、請求項１２記載のデータ処理システム。
【請求項１４】
スプリットトランザクションインタフェースにより通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備え、前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続されたデータ処理システムであて、
前記第１半導体集積回路は、前記第２半導体集積回路のイニシエータを停止させた後に前記信号線の本数を変更する、データ処理システム。
【請求項１５】
スプリットトランザクションインタフェースにより暗号化情報の通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備え、前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続されたデータ処理システムであて、
前記第１半導体集積回路は、前記第２半導体集積回路のイニシエータを停止させた後に暗号化に使用される暗号鍵を変更する、データ処理システム。
【請求項１６】
スプリットトランザクションインタフェースにより通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備え、前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続されたデータ処理システムであて、
前記第１半導体集積回路は、前記第１半導体集積回路が備えるターゲットのアウトスタンディング数上限値に基づいて前記第２半導体集積回路のイニシエータのアウトスタンディング上限数を設定する、データ処理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数個の半導体集積回路をスプリットトランザクションインタフェースで接続したデータ処理システムにおけるスプリットトランザクションインタフェース制御に関する。
【背景技術】
【０００２】
システム・オン。チップ（ＳｏＣ）に対する要求性能や要求機能は年々上がっており、この傾向は今後も継続する見込みである。これに伴い、ＳｏＣに集積される回路量が増加し、増加する回路を搭載するためにさらに微細化技術が高度化するが、これらは相乗効果によって、マスクコストなど、ＳｏＣの開発費を急騰させる。したがって、ＳｏＣベンダが収益を上げるために必要な量産数量、つまり採算ラインが、近年急上昇しつつあり、この傾向は継続する見込みである。現在でもＳｏＣを全面的に先端プロセスを用いて開発していては採算ラインに達しない案件があるが、今後はこのような案件の比率がより高まると予想される。
【０００３】
そこで今後は、先端プロセス製品の採算性確保と、個別顧客対応を同時に実現するために、複数品種に共通する機能を先端プロセスでＡＳＳＰとして開発し、顧客対応部分をＡＳＩＣとして安価なプロセスで開発する、ＡＳＳＰ・ＡＳＩＣ分離アーキテクチャが広まる見込みである。ＡＳＳＰ（Application Specific Standard Product）とは特定の分野を対象に機能を特化させた汎用ＬＳＩを意味する。ＡＳＩＣ(Application Specific Integrated Circuit)とはある特定の用途のために設計、製造される専用ＬＳＡＩを意味し、カスタムチップなどとも呼ばれる。
【０００４】
ＡＳＳＰ・ＡＳＩＣ分離アーキテクチャでは、チップ間転送の重要度が高い。特に、メインＣＰＵを搭載するＡＳＳＰから周辺機能を搭載するＡＳＩＣへのアクセス性能が重要である。従来、チップ間インタフェースとしては、ＰＣＩ（Peripheral Components Interconnect）等の数十メガヘルツ程度で動作するパラレルバスが多く用いられていたが、パラレルバスには、端子数が多いためにチップコストが上がりやすく、必要な配線が多いためにチップを搭載する基板のコストが上がりやすい課題がある。
【０００５】
そこで、数百メガヘルツ以上に動作周波数を高めて端子数を削減したシリアルインタフェースが、チップ間インタフェースとして必要となる。このような周波数で動作するチップ間インタフェースでは、数十メガヘルツで動作するパラレルインタフェースが採用している、ハンドシェイク信号によるフロー制御の実装は困難である。
【０００６】
特許文献１には、バスの高速周波数での動作を可能にするために、発行側ＬＳＩは、受信側ＬＳＩが何個のコマンドを同時に処理できるか、或いは何個のデータを同時に受信できるかを示す値が初期化時にロードされるカウンタを有し、コマンドまたはデータを発行する時に、カウンタをデクリメントし、レディ信号を受信したときにカウンタをインクリメントし、カウンタが０になればコマンドまたはデータの発行を抑止するというインタフェースプロトコルを開示する。これによれば、発行側ＬＳＩは、受信側ＬＳＩからのビジー信号を確認することなく、受信側ＬＳＩに対してコマンドやデータの発行をすることができる。コマンドまたはデータの発行側ＬＳＩが、受信側ＬＳＩのコマンドバッファまたはデータバッファの状態を管理できるので、バスが高速で動作するようになっても、ハンドシェークによらずに、効率よくコマンドまたはデータを発行することができる。
【０００７】
特許文献２に記載の技術において、送信手段１１は、応答手段２１からの応答確認をとらずに情報フレームを連続送信し、計数手段１２からの最大アウトスタンディング数と送信された情報フレームの数との一致結果に基づき次に送信する情報フレームのポールビットを「１」にして送信する。送信手段１１は、応答手段からのファイナルビットが「１」のレスポンスフレームを受信し、再び情報フレームをそのポールビットを「０」にしてデータ受信装置の応答確認をとらずに連続送信する。これにより、応答未確認での情報フレームの連続送信ができ、かつ応答確認がすぐに返信されデータ効率を向上できる、とある。
【０００８】
【特許文献１】特開２００１−２０２３２７号公報
【特許文献２】特開平０５−３３６１９４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００９】
上記特許文献に記載の技術によれば、ハンドシェイク信号線に依らずにフロー制御を実現することができるため、イニシエータ回路とターゲット回路の間の信号の動作を高速化することができる。これにより、シリアルインタフェースには、従来のハンドシェイク信号によるフロー制御に代えて、アウトスタンディング・ベースのフロー制御が有用であることが理解される。本発明者は更に進んで、リクエストを発行してからレスポンスを受取るまでのレイテンシの抑制と低消費電力に寄与することができるアウトスタンディング・ベースのフロー制御について検討した。更に本発明者は、それに関連してフロー制御の可変性、可変フロー制御に起因して割込み処理が遅延する可能性の回避、インタフェース信号の秘匿性の向上などについて検討し、本発明を完成した。
【００１０】
本発明の目的は、レイテンシの抑制と低消費電力に寄与することができるアウトスタンディング・ベースのフロー制御を実現することにある。
【００１１】
本発明の別の目的は、アウトスタンディング・ベースの可変フロー制御を可能にするデータ処理システムを実現することにある。
【００１２】
本発明の更に別の目的は、チップ間での割り込み情報の通信に関し、可変フロー制御に起因して割込み処理が遅延す可能性を回避することにある。
【００１３】
本発明の前記並びにその他の目的と新規な特徴は本明細書の記述及び添付図面から明らかになるであろう。
【課題を解決するための手段】
【００１４】
本願において開示される発明のうち代表的なものの概要を簡単に説明すれば下記の通りである。
【００１５】
〔１〕データ処理システムは、イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行う。このデータ処理システムにおいて、前記イニシエータは送信したリクエストパケットの数と受信したレスポンスパケットの数の差分値であるアウトスタンディング数を計数するアウトスタンディング計数回路を備え、前記アウトスタンディング数計数回路の計数値が、ターゲットが対応可能なアウトスタンディング数以下となるようにリクエストパケット送信数を制御する。この制御により、リクエストパケットを発行してからレスポンスパケットを受け取るまでの最大レイテンシを抑制するように、アウトスタンディング数を適切な数に動的に変更することが可能になる。
【００１６】
〔２〕項１において前記ターゲットが、対応可能なアウトスタンディング数を保持するアウトスタンディングレジスタを備えるとき、前記イニシエータは、前記アウトスタンディングレジスタの値を読み出し、前記読み出した値が前記アウトスタンディング計数回路の計数値以下となるようにリクエストパケット送信数を制御する。これにより、前記アウトスタンディングレジスタに設定された値にしたがって前記リクエストパケット送信数を制御することができる。
【００１７】
〔３〕項１において前記ターゲットが、対応可能なアウトスタンディング数を保持するアウトスタンディングレジスタを備えるとき、前記イニシエータは、前記アウトスタンディングレジスタにアウトスタンディング数を設定し、前記設定した値が前記アウトスタンディング計数回路の計数値以下となるようにリクエストパケット送信数を制御する。これにより、イニシエータは、前記アウトスタンディングレジスタに所要の値を設定して前記リクエストパケット送信数を制御することができる。
【００１８】
〔４〕項１において前記イニシエータは、リクエストパケットと同じ転送経路を用いて割り込みパケットを前記ターゲットに送信し、前記ターゲットは、受信した割り込みパケットに基づいて割り込み信号を生成する。これにより、イニシエータ側からターゲット側に発行した割り込み要求に対する割り込み応答性のレイテンシについても可変に制御することが可能になる。
【００１９】
〔５〕項１において前記ターゲットは、レスポンスパケットと同じパケット転送経路を用いて割り込みパケットを前記イニシエータに送信し、前記イニシエータは受信した割り込みパケットに基づいて割り込み信号を生成する。これにより、ターゲット側からイニシエータ側に発行した割り込み要求に対する割り込み応答性のレイテンシについても可変に制御することが可能になる。
【００２０】
〔６〕項２又は３において前記ターゲットは、前記アウトスタンディングレジスタに保持された最大アウトスタンディング数に対応する数のパケットのデータを保持することが可能な複数のバッファを有し、前記アウトスタンディングレジスタに保持されたアウトスタンディング数に対応する数のパケットのデータを保持する必要のないバッファへの電力供給を遮断する。これにより、リクエストパケットに応答するターゲットの低消費電力に寄与することができる。
【００２１】
〔７〕項２又は３において、前記ターゲットは、前記アウトスタンディングレジスタに保持された最大アウトスタンディング数に対応する数のパケットのデータを保持することが可能な複数のバッファを有し、前記アウトスタンディングレジスタに保持されたアウトスタンディング数に対応する数のパケットのデータを保持する必要のないバッファへのクロック供給を遮断する。これにより、リクエストパケットに応答するターゲットの低消費電力に寄与することができる。
【００２２】
〔８〕項１において、前記イニシエータはターゲットに、リクエストパケットを復号するための第１の暗号鍵とレスポンスパケットを暗号化するための第２の暗号鍵を供給し、前記ターゲットは、受信したリクエストパケットを前記第１の暗号鍵を用いて復号し、送信するレスポンスパケットを前記第２の暗号鍵を用いて暗号化する。これによりイニシエータとターゲットと野間のインタフェース信号の秘匿性を向上させることができる。
【００２３】
〔９〕データ処理システムは、イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行う。前記イニシエータは、送信したリードアクセスのリクエストパケットの数と受信したリードアクセスのレスポンスパケットの数の差分値であるリードアウトスタンディング数を計数するリードアウトスタンディング計数回路を備え、前記リードアウトスタンディング数計数回路の計数値が、ターゲットが対応可能なリードアウトスタンディング数以下となるように、リードアクセスのリクエストパケット送信数を制御する。この制御により、リードアクセスのリクエストパケットを発行してからレスポンスパケットを受け取るまでの最大レイテンシを抑制するように、アウトスタンディング数を適切な数に動的に変更することが可能になる。
【００２４】
〔１０〕データ処理システムは、イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行う。前記イニシエータは、送信したライトアクセスのリクエストパケットの数と受信したライトアクセスのレスポンスパケットの数の差分値であるライトアウトスタンディング数を計数するライトアウトスタンディング計数回路を備え、前記ライトアウトスタンディング数計数回路の計数値が、ターゲットが対応可能なライトアウトスタンディング数以下となるように、ライトアクセスのリクエストパケット送信数を制御する。この制御により、ライトアクセスのリクエストパケットを発行してからレスポンスパケットを受け取るまでの最大レイテンシを抑制するように、アウトスタンディング数を適切な数に動的に変更することが可能になる。
【００２５】
〔１１〕データ処理システムは、イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行う。前記イニシエータは、リクエストパケットの転送タイミングを示すリクエストストローブ信号とリクエストパケットをターゲットに送信する。前記ターゲットは、レスポンスパケットの転送タイミングを示すレスポンスストローブ信号とレスポンスパケットをイニシエータに送信する。これにより、ストローブ信号を用いてフロー制御のタイミングを可変制御することができる。
【００２６】
〔１２〕データ処理システムは、イニシエータを有する第1の半導体集積回路と、ターゲットを有する第２の半導体集積回路と、前記イニシエータと前記ターゲットとを接続するインタフェース信号線とを有し、前記イニシエータがリクエストパケットを前記ターゲットに送信し、前記ターゲットがレスポンスパケットを前記イニシエータに送信することにより、パケットベースのスプリットトランザクションインタフェースを行う。前記ターゲットは、リクエストパケットの受信に用いる信号線の本数を保持するリクエストレーン数レジスタとレスポンスパケットの送信に用いる信号線の本数を保持するレスポンスレーン数レジスタを備える。前記イニシエータは、前記リクエストレーン数レジスタにリクエストパケットの送信に用いる信号線の本数を示す値を、前記レスポンスレーン数レジスタにレスポンスリクエストパケットの受信に用いる信号線の本数を示す値をそれぞれ設定する。これにより、レーン数レジスタの設定値にしたがってフロー制御に用いる信号線本数を可変制御することができる。
【００２７】
〔１３〕項１２において、前記イニシエータは、リクエストパケットのビット数を計数するリクエスト計数回路とレスポンスパケットのビット数を計数するレスポンス計数回路を備え、前記リクエスト計数回路の計数結果と前記レスポンス計数回路の計数結果に基づいてリクエストパケットの受信に用いる信号線の本数とレスポンスパケットの受信に用いる信号線の本数を設定する。
【００２８】
〔１４〕データ処理システムは、スプリットトランザクションインタフェースにより通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備える。前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続される。前記第１半導体集積回路は、前記第２半導体集積回路のイニシエータを停止させた後に前記信号線の本数を変更する。これにより、第１半導体集積回路のターゲットがリクエストパケットを正常に受信できなくなる事態を抑制して、信号線本数を可変にできる。
【００２９】
〔１５〕データ処理システムは、スプリットトランザクションインタフェースにより暗号化情報の通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備える。前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続される。前記第１半導体集積回路は、前記第２半導体集積回路のイニシエータを停止させた後に暗号化に使用される暗号鍵を変更する。これにより、第１半導体集積回路のターゲットがリクエストパケットを正常に復号できなくなる事態を抑制して、暗号鍵を可変にできる。
【００３０】
〔１６〕データ処理システムは、スプリットトランザクションインタフェースにより通信を行うイニシエータとターゲットを夫々が有する第１半導体集積回路及び第２半導体集積回路を備える。前記第１半導体集積回路と前記第２半導体集積回路が通信用の信号線で接続される。前記第１半導体集積回路は、前記第１半導体集積回路が備えるターゲットのアウトスタンディング数上限値に基づいて前記第２半導体集積回路のイニシエータのアウトスタンディング上限数を設定する。これにより、第１半導体集積回路のターゲットが第２半導体集積回路のイニシエータからのリクエストパケットに正常に応答できなくなる事態を抑制して、アウトスタンディング数を可変にできる。
【発明の効果】
【００３１】
本願において開示される発明のうち代表的なものによって得られる効果を簡単に説明すれば下記のとおりである。
【００３２】
レイテンシの抑制と低消費電力に寄与することができるアウトスタンディング・ベースのフロー制御を実現することができる。
【００３３】
アウトスタンディング・ベースの可変フロー制御を可能にするデータ処理システムを実現することができる。
【００３４】
チップ間での割り込み情報の通信に関し、可変フロー制御に起因して割込み処理が遅延す可能性を回避することができる。
【発明を実施するための最良の形態】
【００３５】
《第１の実施の形態》
図１には本発明の一例にかかる集積回路Ａおよび集積回路Ｂが示される。同図に示される集積回路Ａ１０１および集積回路Ｂ１０９は、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）やバイポーラトランジスタなどを形成する半導体集積回路技術によって、単結晶シリコンのような半導体基板に形成される。本実施の形態では、本発明による集積回路Ａ１０１と集積回路Ｂ１０９の間のリードアクセス、ライトアクセスおよび集積回路Ｂ１０９から集積回路Ａ１０１への割り込み通知について説明する。
【００３６】
まず、信号線群ＡＢ１０７と信号線群ＢＡ１０８について図面を参照して説明する。
【００３７】
図２は、信号線群ＡＢ１０７と信号線群ＢＡ１０８を示す図である。３ステートバッファ２０１および２０２は、信号伝送方向を切り替えるための３ステートバッファである。プルアップ抵抗２０３は、信号線群ＡＢ１０７あるいは信号線群ＢＡ１０８に含まれる情報信号線群が集積回路Ａ１０１にも集積回路Ｂ１０９にも駆動されていないときに、該情報信号線群の電位をＨＩＧＨレベルに固定するためのプルアップ抵抗である。
【００３８】
信号線群ＡＢ１０７は、集積回路Ａ１０１から集積回路Ｂ１０９に情報を伝送する信号線群であり、信号線群ＢＡ１０８は、集積回路Ｂ１０９から集積回路Ａ１０１に情報を伝送する信号線群である。信号線群ＡＢ１０７および信号線群ＢＡ１０８は、ＳｉＰ（Ｓｙｓｔｅｍ  ｉｎ  Ｐａｃｋａｇｅ）内のボンディングワイヤやバンプやインタポーザ、基板上の配線等によって形成される。
【００３９】
信号線群ＡＢ１０７は、１本のストローブ信号１２０１と２本の情報信号群ＡＢ１２０２と２本の情報信号群１２０５を含む。信号線群ＡＢ１０７は、集積回路Ａ１０１のイニシエータＡ１０５に含まれる暗号化送信部Ａ１１０４によって駆動される。以下、本実施の形態では、情報信号群ＡＢ１２０２および情報信号群１２０５をリクエストレーンといい、情報信号群ＡＢ１２０２および情報信号群１２０５の信号線のうち、シリアルパケットの伝送に使用される信号線の本数をリクエストレーン数という。
【００４０】
信号線群ＢＡ１０８は、１本のストローブ信号１２０３と２本の情報信号群ＡＢ１２０４と２本の情報信号群ＢＡ１２０５を含む。信号線群ＢＡ１０８は、集積回路Ｂ１０９のターゲットＢ１１２に含まれる暗号化送信部Ｂ１３０２によって駆動される。以下、本実施の形態では、情報信号群ＢＡ１２０４および情報信号群ＢＡ１２０５をレスポンスレーンといい、情報信号群ＢＡ１２０４および情報信号群ＢＡ１２０５のうち、伝送に使用される信号線の本数をレスポンスレーン数という。
【００４１】
ただし、情報信号群ＡＢ１２０５は、転送方向を切り替えられるように３ステートバッファ２０１および２０２によって駆動される。該情報信号群ＢＡ１２０５は、伝送方向が集積回路ＢＡ１０９から集積回路ＡＢ１０１の方向であるときにはリクエストレーンに属して信号線群ＡＢ１０７に含まれ、伝送方向が集積回路ＡＢ１０１から集積回路ＢＡ１０９の方向であるときにはレスポンスレーンに属して信号線群ＢＡ１０８に含まれる。
【００４２】
つづいて、集積回路Ａ１０１に含まれるモジュールについて、再び図１を参照して説明する。
【００４３】
集積回路Ａ１０１は、ＣＰＵＡ１０２と、メモリＡ１０３と、ＩＮＴＣＡ１０４と、イニシエータＡ１０５と、ルータＡ１０６の各モジュールを備えて構成される。また、集積回路Ａ１０１には、信号線群ＡＢ１０７と信号線群ＢＡ１０８が接続される。ＣＰＵＡ１０２は、ルータＡ１０６を介してメモリＡ１０３にアクセスし、該メモリに保持されているプログラムを実行することによって、集積回路Ａ１０１および集積回路Ｂ１０９の制御を行うプロセッサである。
【００４４】
ここで、本発明によるアクセスに用いられるスプリットトランザクションインタフェースプロトコル（スプリットプロトコル）を説明する。
【００４５】
集積回路Ａ１０１内のアクセスは、アクセスを要求するモジュールがアクセス要求を送信し、アクセス要求を受信したモジュールが、アクセスを要求したモジュールに対してアクセス応答を送信することによって完結するスプリットプロトコルにて行われる。
【００４６】
本明細書においては、アクセスを要求するモジュールをイニシエータといい、アクセスに応答する回路若しくはモジュールをターゲットという。一つの回路でイニシエータとターゲットの機能を持つ場合もある。また、本明細書においては、アクセス要求の数とアクセス応答の数の差分をアウトスタンディング数という。アウトスタンディング数が１であれば、イニシエータが送信したアクセス要求に対してターゲットがアクセス応答を返信するまで、イニシエータは別のアクセス要求を送信しない。アウトスタンディングが２以上であれば、イニシエータは、送信したアクセス要求に対するアクセス応答を受信する前に別のアクセス要求を送信することができ、ターゲットは受信したアクセス要求に対してアクセス応答を返信する前に、別のアクセス要求を受信することができる。
【００４７】
アウトスタンディング数の上限値が大きければ、単位時間内に多くのアクセス要求やアクセス応答を処理できるため、転送スループットを高め易い。しかしながら、大きなアウトスタンディング数は、多くのアクセスを同時に処理するために多くの回路が必要であることを意味し、回路コストが増大することを意味する。
【００４８】
つづいて、集積回路Ａ１０１内におけるアクセスを、図面を参照して説明する。
【００４９】
図３は、集積回路Ａ１０１内部において、ライトアクセスとリードアクセスをそれぞれ１回行う場合を示すタイミングチャートである。図３の時刻Ｔ１からＴ５までがライトアクセスである。ライトアクセスでは、イニシエータがアクセス要求の内容であるアドレス“Ａ１”、コマンド“Ｃ１”、ライトデータ“Ｄ１”、リクエストＩＤ“Ｒ１”を出力し、アクセス要求が送信されていることを示すリクエストバリッド信号をハイ（ＨＩＧＨ）レベルに遷移させる（時刻Ｔ１）。リクエストＩＤは、ターゲットがアクセス応答をイニシエータに送信するときに、該アクセス応答を中継するルータＡ１０６が送信先のイニシエータを特定できるように、イニシエータがアクセス要求に含める識別情報である。
【００５０】
ルータＡ１０６は、アドレスによって送信先のターゲットを特定し、該特定されたターゲットにイニシエータが送信したアドレス、コマンド、ライトデータ、リクエストＩＤを再送信する。このとき、該ターゲットに対してリクエストバリッド信号をアサートしてアクセス要求が送信されていることを通知する。
【００５１】
以下、本明細書では、前記リクエストバリッド信号などの１ビットの制御信号を出力するモジュールが、前記制御信号を有意な状態であることを示す値に遷移させることを「アサートする」と表現し、有意ではない状態であることを示す値に遷移させることを「ディアサートする」と表現する。また、１ビットの制御信号が有意な状態であることを示す値であることを「アサート状態」と表現し、１ビットの制御信号が有意な状態でないことを示す値であることを「ディアサート状態」と表現する。さらに、本明細書では、アドレス、コマンド、ライトデータ、リクエストＩＤなど、アクセス要求内容を示す情報をリクエストパケットといい、ステータス、リードデータ、レスポンスバリッドなど、アクセス応答内容を示す情報をレスポンスパケットという。
【００５２】
さらに、集積回路Ａ１０１を転送されるリクエストパケット、レスポンスパケットを、後述の集積回路Ａ１０１と集積回路Ｂ１０９の間で転送されるリクエストパケット、レスポンスパケットと区別するために、それぞれパラレルリクエストパケット、パラレルレスポンスパケットという。
【００５３】
一方、集積回路Ａ１０１と集積回路Ｂ１０９の間を転送されるリクエストパケット、レスポンスパケットは、それぞれシリアルリクエストパケット、シリアルレスポンスパケットという。
【００５４】
集積回路Ａ１０１内部のアクセスの説明に戻る。
【００５５】
ターゲットは、時刻Ｔ１においてリクエストバリッドがアサートされていることを検出し、アドレス、コマンド、ライトデータ、リクエストＩＤを取り込む。そして、アドレス“Ａ１”にライトデータ“Ｄ１”を書き込む。ライトアクセスの場合、アクセス応答はアクセスが正常に行われたか否かを示す１ビットの情報である。そして、ターゲットはライトアクセスが完了した時刻Ｔ５においては、アクセス応答が送信されていることを示すレスポンスバリッド信号をアサートし、同時にステータス“Ｓ１”とリクエストＩＤ“Ｒ１”を出力する。なお、このアクセスはライトアクセスであるので、リードデータを示す信号は無効である。
【００５６】
ルータＡ１０６は、リクエストＩＤによってアクセス応答の送信先のイニシエータを特定し、該特定されたイニシエータにターゲットが送信したステータス、リクエストＩＤ、リードデータを再送信する。このとき、該イニシエータに対してレスポンスバリッド信号をアサートしてアクセス応答が送信されていることを通知する。
【００５７】
次に、リードアクセスについて説明する。図３のＴ９からＴ１５までがリードアクセスである。リードアクセスでは、イニシエータがアクセス要求の内容であるアドレス“Ａ２”、コマンド“Ｃ２”、リクエストＩＤ“Ｒ２”を出力し、アクセス要求が送信されていることを示すリクエストバリッド信号をハイレベルに遷移させる（時刻Ｔ９）。
【００５８】
ターゲットは、時刻Ｔ９においてリクエストバリッドがアサートされていることを検出し、アドレス、コマンド、リクエストＩＤを取り込む。そして、アドレス“Ａ２”からリードデータ“Ｄ２”を読み出す。リードアクセスの場合、アクセス応答はリードデータと前記ステータス情報である。そして、ターゲットはリードアクセスが完了した時刻Ｔ１５においては、アクセス応答が送信されていることを示すレスポンスバリッド信号をアサートし、同時にステータス“Ｓ１”とリクエストＩＤ“Ｒ２”を出力する。
【００５９】
ルータＡ１０６は、リクエストＩＤによってアクセス応答の送信先のイニシエータを特定し、該特定されたイニシエータにターゲットが送信したステータス、リクエストＩＤ、リードデータを再送信する。このとき、該イニシエータに対してレスポンスバリッド信号をアサートしてアクセス応答が送信されていることを通知する。
【００６０】
集積回路Ａ１０１に含まれるモジュールの説明に戻る。
【００６１】
メモリＡ１０３は、ルータＡ１０６からリクエストパケットを受信し、該リクエストパケットの内容にしたがってリードあるいはライトアクセスを実行し、レスポンスパケットをルータＡ１０６に送信する記憶装置である。ＩＮＴＣＡ１０４は、イニシエータＡ１０５から割り込み情報を取り込み、該割り込み情報をＣＰＵＡ１０２に中継する割り込みコントローラである。イニシエータＡ１０５は、ルータＡ１０６と集積回路Ｂ１０９の間のアクセス要求およびアクセス応答の中継を行うブリッジ回路であると同時に、集積回路Ｂ１０９からの割り込み要求をＩＮＴＣＡ１０４に中継する割り込み中継回路である。ルータＡ１０６は、ＣＰＵＡ１０２、メモリＡ１０３、ＩＮＴＣＡ１０４、イニシエータＡ１０５が送受信するリクエストパケットおよびレスポンスパケットを中継する中継回路である。
【００６２】
つづいて、集積回路Ｂ１０９に含まれるモジュールについて説明する。
【００６３】
集積回路Ｂ１０９は、メモリＢ１１０と、ＩＰＢ１１１と、ターゲットＢ１１２と、ルータＢ１１３と、電力制御部Ｂ１１４と、クロック制御部Ｂ１１５を備えて構成される。また、集積回路Ｂ１０９には、前記信号線群ＡＢ１０７と前記信号線群ＢＡ１０８が接続される。集積回路Ｂ１０９内のアクセスは、前記集積回路Ａ１０１内のアクセスと同様のスプリットプロトコルによって行われる。集積回路Ｂ１０９内においては、ターゲットＢ１１２とＩＰＢ１１１がイニシエータであり、メモリＢ１１０がターゲットである。
【００６４】
メモリＢ１１０は、ルータＢ１１３からリクエストパケットを受信し、該リクエストパケットの内容にしたがってリードあるいはライトアクセスを実行し、レスポンスパケットをルータＢ１１３に送信する記憶装置である。
【００６５】
ＩＰＢ１１１は、ルータＢ１１３を介してメモリＢ１１０にアクセスすることによって所定の処理を実行し、該処理によって得られた結果をメモリＢ１１０に書き込み、さらに該処理の終了を割り込み信号としてターゲットＢ１１２に通知するＩＰ（Ｉｎｔｅｌｌｅｃｔｕａｌ  Ｐｒｏｐｅｒｔｙ）モジュールと称される回路である。
【００６６】
ターゲットＢ１１２は、信号線群ＡＢ１０７を介して集積回路Ａ１０１からシリアルリクエストパケットを受信し、該シリアルリクエストパケットをパラレルリクエストパケットに変換し、該パラレルリクエストパケットをルータＢ１１３に送信するブリッジ回路である。ターゲットＢ１１２は、ルータＢ１１３からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをシリアルレスポンスパケットに変換し、該シリアルレスポンスパケットを信号線群ＢＡ１０８を介して集積回路Ａ１０１に送信するブリッジ回路である。ターゲットＢ１１２は、ＩＰＢ１１１から割り込み情報を取り込み、該割り込み情報を信号線群ＢＡ１０８を介して集積回路Ａ１０１に送信する割り込み中継回路である。さらに、ターゲットＢ１１２は、信号線群ＡＢ１０７を介して集積回路Ａ１０１からシリアルリクエストパケットを受信し、該シリアルリクエストパケットに基づいて電力要求信号とクロック要求信号を生成し、それぞれ電力制御部Ｂ１１４とクロック制御部Ｂ１１５に供給する制御回路である。
【００６７】
ルータＢ１１３は、メモリＢ１１０、ＩＰＢ１１１、ターゲットＢ１１２が送受信するパラレルリクエストパケットおよびパラレルレスポンスパケットを中継する中継回路である。
【００６８】
電力制御部Ｂ１１４は、ターゲットＢ１１２から供給される電力制御信号に基づいて、ＩＰＢ１１１に対する電力を供給あるいは遮断する電力制御回路である。クロック制御部Ｂ１１５は、前記ターゲットＢ１１２から供給されるクロック制御信号に基づいて、ＩＰＢ１１１に対するクロックを供給あるいは遮断するクロック制御回路である。
【００６９】
つづいて、集積回路Ａ１０１と集積回路Ｂ１０９の間の転送処理について説明する。以下、本実施の形態では、集積回路Ａ１０１と集積回路Ｂ１０９の間の、信号線群ＡＢ１０７と信号線群ＢＡ１０８によって構成されたインタフェースを、シリアルインタフェースという。該シリアルインタフェースを経由するアクセスは、前記集積回路Ａ１０１内のアクセスと類似したスプリットプロトコルにて行われる。ただし、シリアルインタフェース上を転送されるリクエストパケットおよびレスポンスパケットは、前述のパラレルリクエストパケットやパラレスポンスパケットとは異なるフォーマットを持つ、シリアルリクエストパケットおよびシリアルレスポンスパケットである。さらに、シリアルインタフェース上には、割り込み情報などを含むシリアルコントロールパケットが転送される。以下、シリアルリクエストパケット、シリアルレスポンスパケット、シリアルコントロールパケットを総称してシリアルパケットという。
【００７０】
また、本発明のシリアルインタフェースにおいて、アウトスタンディング数算出の対象とするのは、シリアルリクエストパケットとシリアルレスポンスパケットであり、シリアルコントロールパケットはアウトスタンディング数算出の対象としない。
【００７１】
つづいて、図面を参照してシリアルリクエストパケットとシリアルレスポンスパケットを説明する。
【００７２】
図４は、シリアルリクエストパケットのフォーマットを示す図である。シリアルリクエストパケットは、start、basic、reqrsp、rw、sid、tid、alen、lasz、uadd、tid、wdataの各フィールドによって構成される。各フィールドを説明する。
【００７３】
startフィールドは、シリアルパケットの先頭位置を示す１ビットのフィールドである。startフィールドが‘１’である位置が、シリアルパケットの先頭である。
【００７４】
basicフィールドは、シリアルパケットの種類を示す１ビットのフィールドである。basicフィールドが‘１’であるパケットはシリアルリクエストパケットあるいはシリアルレスポンスパケットであり、basicフィールドが‘０’であるパケットは、シリアルコントロールパケットである。
【００７５】
reqrspは、シリアルパケットがリクエストパケットであるかレスポンスパケットであるかを示す１ビットのフィールドである。reqrspフィールドが‘１’であるパケットが、リクエストパケットである。
【００７６】
rwは、リードアクセスであるかライトアクセスであるかを示す１ビットのフィーるである。rwフィールドが‘１’であるシリアルリクエストパケットは、リードアクセスのシリアルリクエストパケットであり、rwフィールドが‘０’であるリクエストパケットは、ライトアクセスのシリアルリクエストパケットである。
【００７７】
sidは、ストリームIDを示す２ビットのフィールドである。sidフィールドの存在理由と、イニシエータおよびターゲットによるsidフィールドの取り扱いを説明する。一般に、連続的に実行される一連のアクセスは、高い空間的局所性を有する。空間的局所性を有する一連のアクセスを実行するとき、アクセス毎に転送しなければならないアドレスは下位ビット（例えば４キロバイト分を示す、アドレスのビット１１からビット０まで）のみであり、アドレス上位ビットは最初に一回だけ転送すればよい。ただし、このようにアドレスの一部を省略する場合には、ターゲット側で省略されたアドレスを補完しなければならない。また、現在では一つのプロセッサが時分割で複数の処理を並列実行するマルチタスク処理が一般的であるので、集積回路においては、空間的局所性を有する一連のアクセスからなるアクセス群が、複数並列に実行されることが多い。そこで、本明細書のシリアルインタフェースでは、上記アクセス群を識別するためのフィールドとして、sidフィールドを備える。イニシエータは、高い空間的局所性を有する一連のシリアルリクエストパケット群のsidフィールドに同一の値を設定し、後述のalenフィールドを用いてアドレス上位ビットの転送を阻止してシリアルリクエストパケットのビット数を削減し、シリアルインタフェースのレイテンシならびにスループットを向上させる。ターゲットは、シリアルリクエストパケット受信時にsidフィールドの値を保存し、sidフィールドの値に基づいてアドレス補完を行い、さらに対応するシリアルレスポンスパケットを送信する際にr_sidフィールド（後述）として出力する。
【００７８】
alenは、アドレス長を示す１ビットのフィールドである。alenフィールドが‘１’である場合、アドレス長は３２ビットであり、alenフィールドが‘０’である場合、アドレス長は１２ビットである。laszフィールドは、アドレス下位ビットと転送サイズを示す６ビットのフィールドである。
【００７９】
laszフィールドと、アクセス対象アドレスの下位ビットおよび転送サイズの関係を、図面を参照して説明する。
【００８０】
図５は、laszフィールドと、アクセス対象アドレスの下位ビットおよび転送サイズの関係図である。
【００８１】
laszフィールドの最下位ビットの値が‘１’である場合、転送サイズは１バイトであり、アクセス対象アドレスのビット４からビット０まではlaszフィールドのビット５からビット１までである。
【００８２】
laszフィールドの下位２ビットの値が“１０”である場合、転送サイズは２バイトであり、アクセス対象アドレスのビット４からビット１まではlaszフィールドのビット５からビット２までであり、アクセス対象アドレスのビット０は‘０’である。
【００８３】
laszフィールドの下位３ビットの値が“１００”である場合、転送サイズは４バイトであり、アクセス対象アドレスのビット４からビット２まではlaszフィールドのビット５からビット３までであり、アクセス対象アドレスのビット１から０までは“００”である。
【００８４】
laszフィールドの下位４ビットの値が“１０００”である場合、転送サイズは８バイトであり、アクセス対象アドレスのビット４からビット３まではlaszフィールドのビット５からビット４までであり、アクセス対象アドレスのビット２からビット０までは“０００”である。
【００８５】
laszフィールドの下位４ビットの値が“００００”である場合、転送サイズは３２バイトであり、アクセス対象アドレスのビット４から３まではlaszフィールドのビット５からビット４までであり、アクセス対象アドレスのビット２から０は“０００”までである。
【００８６】
uaddフィールドはアクセス対象アドレスの上位ビットを示す７ビットあるいは２７ビットのフィールドである。uaddフィールドは、alenフィールドの値によってビット数が異なる。alenフィールドが‘０’であるとき、アドレス長は１２ビットである。このとき、uaddフィールドは７ビットであり、アクセス対象アドレスのビット１１からビット５までを示す。alenフィールドが‘１’であるとき、アドレス長は３２ビットである。このとき、uaddフィールドは、２７ビットであり、アクセス対象アドレスのビット３１からビット５までを示す。
【００８７】
tidフィールドは、シリアルリクエストパケットとシリアルレスポンスパケットを対応付けるための３ビットのフィールドである。
【００８８】
本明細書のシリアルインタフェースは、パイプライン処理をサポートする。すなわち、イニシエータである集積回路Ａ１０１は、送信したシリアルリクエストパケットに対するシリアルレスポンスパケットを受信する前に、前記シリアルリクエストパケットとは別のシリアルリクエストパケットを送信できる。ターゲットである集積回路Ｂ１０９は、受信したシリアルリクエストパケットに対するシリアルレスポンスパケットを送信する前に、前記シリアルリクエストパケットとは別のシリアルリクエストパケットを受信して処理することもできるが、シリアルリクエストパケットの受信順と、それらに対応するシリアルレスポンスパケットの送信順が同一であることを保証しない。ターゲットがシリアルレスポンスパケットの送信順を保証しない理由は、イニシエータのシリアルレスポンス受信待ち時間を短くするためである。例えば、シリアルレスポンスパケットの生成に時間がかかるシリアルリクエストパケットにつづいて、シリアルレスポンスパケットの生成に時間がかからないシリアルリクエストパケットを受信した場合、後に受信したシリアルリクエストパケットに対するシリアルレスポンスパケットを、先に受信したシリアルリクエストパケットに対するシリアルレスポンスパケットよりも先に送信することによって、イニシエータのシリアルレスポンスパケット受信待ち時間を短くすることができる。
【００８９】
集積回路Ｂ１０９は、シリアルリクエストパケット受信時にtidフィールドの値を保存し、対応するシリアルレスポンスパケットを送信する際にr_tidフィールド（後述）として出力する。集積回路Ａ１０１は、r_tidフィールドによってシリアルリクエストパケットとシリアルレスポンスパケットを対応付ける。
【００９０】
wdataフィールドは、集積回路Ａ１０１から集積回路Ｂ１０９に転送されるライトデータを含むフィールドである。wdataフィールドは、ライトアクセスのシリアルリクエストパケットのみに存在し、リードアクセスのシリアルリクエストパケットには存在しない。
【００９１】
つづいて、シリアルレスポンスパケットのフォーマットを図面を参照して説明する。
【００９２】
図６は、シリアルレスポンスパケットフォーマットを示す図である。シリアルレスポンスパケットは、start、basic、reqrsp、dss、r_sid、r_tid、rdataの各フィールドを含む。
【００９３】
startフィールドは、シリアルパケットの先頭ビットの位置を示す１ビットのフィールドである。startフィールドが‘１’である位置が、シリアルパケットの先頭である。
【００９４】
basicフィールドは、シリアルパケットの種類を示す１ビットのフィールドである。basicフィールドが‘１’であるパケットは、シリアルリクエストパケットあるいはシリアルレスポンスパケットであり、basicフィールドが‘０’であるパケットは、シリアルコントロールパケットである。
【００９５】
reqrspは、パケットがリクエストパケットであるかレスポンスパケットであるかを示す１ビットのフィールドである。reqrspフィールドが‘０’であるパケットがレスポンスパケットである。
【００９６】
dssフィールドは、アクセスの成否とシリアルレスポンスパケットに含まれるリードデータの量を示す３ビットのフィールドである。dssフィールドの値と、アクセス成否およびリードデータ量の関係を図面を参照して説明する。
【００９７】
図７は、dssフィールドの値と、アクセス成否およびリードデータ量の関係を示す関係図である。
【００９８】
dssフィールドの値が“０００”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は０バイトであり、アクセスは成功である。すなわち、“０００”は、ライトアクセスに成功したときのdssフィールドの値である。
【００９９】
dssフィールドの値が“００１”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は１バイトであり、アクセスは成功である。すなわち、“００１”は、転送サイズ１バイトのリードアクセスに成功したときのdssフィールドの値である。
【０１００】
dssフィールドの値が“０１０”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は２バイトであり、アクセスは成功である。すなわち、“０１０”は、転送サイズ２バイトのリードアクセスに成功したときのdssフィールドの値である。
【０１０１】
dssフィールドの値が“０１１”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は４バイトであり、アクセスは成功である。すなわち、“０１１”は、転送サイズ４バイトのリードアクセスに成功したときのdssフィールドの値である。
【０１０２】
dssフィールドの値が“１００”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は８バイトであり、アクセスは成功である。すなわち、“１００”は、転送サイズ８バイトのリードアクセスに成功したときのdssフィールドの値である。
【０１０３】
dssフィールドの値が“１０１”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は３２バイトであり、アクセスは成功である。すなわち、“１０１”は、転送サイズ３２バイトのリードアクセスに成功したときのdssフィールドの値である。
【０１０４】
dssフィールドの値が“１１０”であるとき、シリアルレスポンスパケットに含まれるリードデータの量は０バイトであり、アクセスは失敗である。すなわち、“１１０”は、リードアクセスあるいはライトアクセスに失敗したときのdssフィールドの値である。
【０１０５】
なお、ターゲットである集積回路Ｂ１０９がdssフィールドの値として“１１１”を出力することは、本明細書のシリアルインタフェースでは禁止されている。
【０１０６】
r_sidフィールドは、シリアルリクエストパケットとシリアルレスポンスパケットを対応付けるための２ビットのフィールドである。ターゲットである集積回路Ｂ１０９は、シリアルリクエストパケット受信時にsidフィールドの値を保存し、対応するシリアルレスポンスパケットを送信する際にr_sidフィールドの値として出力する。イニシエータである集積回路Ａ１０１はr_sidフィールドの値と後述するr_tidフィールドの値によって、シリアルリクエストパケットとシリアルレスポンスパケットの対応付けを行う。
【０１０７】
r_tidフィールドは、シリアルリクエストパケットとシリアルレスポンスパケットを対応付けるための３ビットのフィールドである。ターゲットである集積回路Ｂ１０９は、シリアルリクエストパケット受信時にtidフィールドの値を保存し、対応するシリアルレスポンスパケットを送信する際にr_tidフィールドの値として出力する。イニシエータである集積回路Ａ１０１はr_tidフィールドの値とr_sidフィールドの値によって、シリアルリクエストパケットとシリアルレスポンスパケットの対応付けを行う。
【０１０８】
rdataフィールドは、ターゲットである集積回路Ｂ１０９からイニシエータである集積回路Ａ１０１に転送されるデータである。シリアルレスポンスパケットにrdataフィールドが存在するのは、リードアクセスが成功した場合のみである。
【０１０９】
つづいて、シリアルコントロールパケットのフォーマットを説明する。
【０１１０】
図８は、シリアルコントロールパケットのフォーマットを示す図である。シリアルコントロールパケットは、start、basic、reqrsp、reccc、intcodeの各フィールドを含む。
【０１１１】
startフィールドは、シリアルパケットの先頭ビットの位置を示す１ビットのフィールドである。startフィールドが‘１’である位置が、シリアルパケットの先頭である。
【０１１２】
basicフィールドは、シリアルパケットの種類を示す１ビットのフィールドである。basicフィールドが‘１’であるパケットは、シリアルリクエストパケットあるいはシリアルレスポンスパケットであり、basicフィールドが‘０’であるパケットは、シリアルコントロールパケットである。
【０１１３】
reqrspは、パケットがリクエストパケットであるかレスポンスパケットであるかを示す１ビットのフィールドである。
【０１１４】
recccフィールドは、シリアルコントロールパケットの種類と割り込みレベルを示す７ビットのフィールドである。recccフィールドの上位３ビットはシリアルコントロールパケットの種類を示す。
【０１１５】
recccフィールドの上位３ビットが“１００”であるシリアルコントロールパケットは、割り込み情報を含むシリアルコントロールパケットである。以下、本明細書では、割り込み情報を含むシリアルコントロールパケットを割り込みパケットという。
【０１１６】
割り込みパケットにおいては、reqccフィールドの下位４ビットは割り込みレベルである。割り込みレベルは１６段階であり、最も高い割り込みレベルではreqccフィールドの下位４ビットは“１１１１”であり、最も低い割り込みレベルではreqccフィールドの下位４ビットは“００００”である。なお、割り込みパケットはリクエストパケットのみであり、レスポンスパケットは存在しない。
【０１１７】
recccフィールドの上位３ビットが“０００”であるシリアルコントロールパケットは、シリアルインタフェースのイニシエータを停止させるシリアルコントロールパケットである。以下、本明細書では、シリアルインタフェースのイニシエータを停止させるシリアルコントロールパケットをイニシエータストップパケットという。
【０１１８】
recccフィールドの上位３ビットが“００１”であるシリアルコントロールパケットは、シリアルインタフェースのイニシエータの停止を解除するシリアルコントロールパケットである。以下、本明細書では、シリアルインタフェースのイニシエータの停止を解除するシリアルコントロールパケットをイニシエータストップ解除パケットという。
【０１１９】
intcodeフィールドは、割り込みパケットにのみ存在する１６ビットのフィールドであり、割り込みの属性情報を含む。
【０１２０】
ここで、シリアルインタフェースにおけるシリアルパケット転送の様子を図面を参照して説明する。
【０１２１】
図９は、シリアルインタフェースにおけるシリアルリクエストパケットおよびシリアルコントロールパケットの転送の様子を示す図であり、図１０はシリアルインタフェースにおけるシリアルレスポンスパケットの転送の様子を示す図である。本発明のシリアルインタフェースは、情報を送信する側が情報を示す信号とその情報のタイミングを示す信号を両方出力する、ソース同期式のインタフェースである。
【０１２２】
シリアルリクエストパケットは、リクエストストローブの立ち上がりエッジに同期して転送される。リクエストストローブは、信号線群ＡＢ１０７のストローブ信号１２０１によって集積回路Ａ１０１から集積回路Ｂ１０９に供給される。リクエストレーンにおいては、先に説明したシリアルリクエストパケットが、startフィールドから順に、かつリクエストレーンのＭＳＢ（Ｍｏｓｔ  Ｓｉｇｎｉｆｉｃａｎｔ  Ｂｉｔ）から順に転送される。図９においては、startフィールドを「０」で示している。startフィールドは必ずリクエストレーンのＭＳＢを用いて転送される。このため、本発明のシリアルインタフェースにおいては、先に説明した集積回路Ａ１０１におけるパラレルリクエストパケットの転送とは異なり、リクエストバリッド信号に相当する信号を必要としない。これはシリアルインタフェースの信号線数を少なくするためである。本発明のシリアルインタフェースのターゲットは、リクエストレーンのＭＳＢを監視し、リクエストレーンのＭＳＢが‘０’となった時刻からシリアルリクエストパケットあるいはシリアルコントロールパケットの受信を開始し、受信したシリアルパケットの内容を解析することにより該シリアルパケットの最終ビット（図９の「Ｆ」（Ｆｉｎａｌ）で示されたビット）および次のシリアルパケットの先頭位置を検出する。シリアルリクエストパケットやシリアルコントロールパケットのビット数がリクエストレーン数の倍数以外の場合には、リクエストレーンのＭＳＢ以外の信号線にダミーデータが出力される。
【０１２３】
同様に、シリアルレスポンスパケットあるいはシリアルコントロールパケットは、startフィールドがレスポンスレーンのＭＳＢによって転送され、以下、basic、reqrspの順にレスポンスレーンのＭＳＢ側を先にして順次転送される。
【０１２４】
また、図９では一本のストローブ信号を用いたが、ストローブ信号として２本のＬＶＤＳ（Ｌｏｗ  Ｖｏｌｔａｇｅ Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｓｉｇｎａｌｉｎｇ）からなる信号群を用いることもできる。この場合、信号線数はシリアルインタフェース全体で２本増加するが、他の信号の倍の頻度で変化するストローブ信号が低振幅化され、動作周波数上限が高めやすくなる。たとえば、ＬＶＤＳ信号でストローブを伝送するＤＤＲ２―ＳＤＲＡＭコントローラの物理層回路を本発明のシリアルインタフェースの物理層回路として用いれば、リクエストレーンあるいはレスポンスレーンの信号線一本あたりのデータレートを毎秒８００メガビットまで容易に高めることができる。この場合、本実施の形態におけるシリアルインタフェースの転送スループットは、リクエストレーンとレスポンスレーンの合計で毎秒６００メガバイトとなる。
【０１２５】
集積回路Ａ１０１の説明に戻る。集積回路Ａ１０１に含まれるイニシエータＡ１０５について図面を参照して説明する。
【０１２６】
図１１は、イニシエータＡ１０５の構成を示すブロック図である。
【０１２７】
イニシエータＡ１０５は、リクエスト送信制御部Ａ１１０１と、レスポンス受信制御部Ａ１１０２と、割り込み受信制御部Ａ１１０３と、暗号化送信部Ａ１１０４と、パケット計数部Ａ１１０５と、復号受信部Ａ１１０６と、レジスタＡ１１０７と、３ステートバッファ２０１と、プルアップ抵抗２０３とを備えて構成される。
【０１２８】
リクエスト送信制御部Ａ１１０１は、ルータＡ１０６からパラレルリクエストパケットを受信し、該パラレルリクエストパケットのアドレスがレジスタＡ１１０７を示すときには該パラレルリクエストパケットをレジスタＡ１１０７に送信し、該パラレルリクエストパケットのアドレスがレジスタＡ１１０７を示さないときには該パラレルリクエストパケットを暗号化送信部Ａ１１０４に送信する中継回路である。
【０１２９】
レスポンス受信制御部Ａ１１０２は、復号受信部Ａ１１０６およびレジスタＡ１１０７からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをルータＡ１０６に送信する中継回路である。
【０１３０】
割り込み受信制御部Ａ１１０３は、復号受信部Ａ１１０６から割り込みパケットを受信して該割り込みパケットの内容を解析し、解析結果に基づいてＩＮＴＣＡ１０４に対する割り込み信号を生成する割り込み情報中継回路である。
【０１３１】
暗号化送信部Ａ１１０４は、リクエスト送信制御部Ａ１１０１からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをシリアルリクエストパケットに変換し、さらに該シリアルリクエストパケットを暗号化して信号線群ＡＢ１０７を介して集積回路Ｂ１０９に送信する中継回路である。暗号化送信部Ａ１１０４はシリアルリクエストパケットを中継するときに、合わせて以下の処理を行う。暗号化送信部Ａ１１０４は、パケット計数部Ａ１１０５から供給されるシリアルリクエストパケット送信許可信号がディアサート状態であるときには、集積回路Ｂ１０９へのシリアルリクエストパケット送信を行わない。暗号化送信部Ａ１１０４は、集積回路Ｂ１０９へのシリアルリクエストパケット送信が完了するたびに、シリアルリクエストパケットの送信が完了した旨と、送信したシリアルリクエストパケットのrwフィールドの値を、パケット計数部Ａ１１０５に通知する。暗号化送信部Ａ１１０４は、後述のリクエストレーン数レジスタＡを参照し、該レジスタの値によって指定された数の信号線群ＡＢ１０７に含まれる情報信号線群を用いてシリアルリクエストパケットを送信する。暗号化送信部Ａ１１０４は、後述の暗号機能イネーブルレジスタＡの値と暗号化暗号鍵レジスタＡの値をそれぞれ参照し、該暗号機能イネーブルレジスタＡの値が暗号化機能が有効であることを示す値である場合には、該暗号化暗号鍵レジスタＡによって指定された暗号鍵を用いてシリアルリクエストパケットの暗号化を行う。
【０１３２】
パケット計数部Ａ１１０５は、アウトスタンディングカウンタ、リードアウトスタンディングカウンタ、ライトアウトスタンディングカウンタを備える。
【０１３３】
アウトスタンディングカウンタは、暗号化送信部Ａ１１０５からシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ１１０６からシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、アウトスタンディングカウンタはシリアルリクエストパケット送信とシリアルレスポンスパケット受信が同時に完了したときにはカウント値を変化させない。また、アウトスタンディングカウンタは、集積回路Ａ１０１の初期化時に０となる。
【０１３４】
リードアウトスタンディングカウンタは、暗号化送信部Ａ１１０５からrwフィールドが‘１’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ１１０６から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、リードアウトスタンディングカウンタはrwフィールドが‘１’であるシリアルリクエストパケットの送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、リードアウトスタンディングカウンタは、集積回路Ａ１０１の初期化時に０となる。
【０１３５】
ライトアウトスタンディングカウンタは、暗号化送信部Ａ１１０５からrwフィールドが‘０’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ１１０６から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、ライトアウトスタンディングカウンタは、rwフィールドが‘１’であるシリアルリクエストパケット送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、ライトアウトスタンディングカウンタは、集積回路Ａ１０１の初期化時に０となる。
【０１３６】
パケット計数部Ａ１１０５は、後述の最大アウトスタンディングレジスタＡの値と、後述の最大リードアウトスタンディングレジスタＡの値と、後述の最大ライトアウトスタンディングレジスタＡの値を参照する。パケット計数部Ａ１１０５は、該最大アウトスタンディングレジスタＡの値が前記アウトスタンディングカウンタの値より大きく、かつ、該最大リードアウトスタンディングレジスタＡの値が前記リードアウトスタンディングカウンタの値より大きく、かつ、該最大ライトアウトスタンディングレジスタＡの値が前記ライトアウトスタンディングカウンタの値より大きいときに、暗号化送信部Ａ１１０５に対するシリアルリクエストパケット送信許可信号をアサート状態に保持する。
【０１３７】
復号受信部Ａ１１０６は、信号線群ＢＡ１０８を介して集積回路Ｂ１０９からシリアルパケットを受信し、レスポンス受信制御部Ａ１１０２あるいは割り込み受信制御部Ａ１１０３に送信する中継回路である。復号受信部Ａ１１０６は、シリアルパケットを中継するときに、合わせて以下の処理を行う。復号受信部Ａ１１０６は、後述のレスポンスレーン数レジスタＡの値を参照し、該レジスタによって指定された数の信号線群ＢＡ１０８に含まれる情報信号群を用いて、シリアルパケットを受信する。復号受信部Ａ１１０６は、集積回路Ｂ１０９から受信したシリアルパケットの内容を解析し、該シリアルパケットがシリアルレスポンスパケットであるか割り込みパケットであるかを判断する。復号受信部Ａ１１０６は、受信したシリアルパケットがシリアルレスポンスパケットである場合には、パラレルレスポンスパケットに変換し、該パラレルレスポンスパケットをレスポンス受信制御部Ａ１１０２に送信する。このとき、復号受信部Ａ１１０６は、後述の暗号機能イネーブルレジスタＡと後述の復号暗号鍵レジスタＡの値をそれぞれ参照し、該暗号機能イネーブルレジスタＡの値が暗号化機能が有効であることを示す値である場合には、前記レジスタＡによって指定された暗号鍵を用いて復号を行う。
【０１３８】
復号受信部Ａ１１０６は、受信したシリアルパケットが割り込みパケットであると判断した場合には、該割り込みパケットを割り込み受信制御部Ａ１１０３に送信する。
【０１３９】
レジスタＡ１１０７は、集積回路Ａ１０１がシリアルインタフェースによって集積回路Ｂ１０９との間で通信を行うために必要な制御情報を保持するための記憶装置である。レジスタＡ１１０７は、リクエスト送信制御部Ａ１１０１から受信したパラレルリクエストパケットを解析し、解析結果に基づいて後述する各レジスタに対する処理を行い、処理結果に基づいてパラレルレスポンスパケットを生成し、該パラレルレスポンスパケットを暗号化送信部Ａ１１０２に送信する。
【０１４０】
つづいて、図面を参照してレジスタＡ１１０７に含まれるレジスタ群を説明する。図１２はレジスタＡ１１０７に含まれるレジスタ群を示す図である。
【０１４１】
レジスタＡ１１０７は、最大アウトスタンディングレジスタＡ、最大リードアウトスタンディングレジスタＡ、最大ライトアウトスタンディングレジスタＡ、暗号機能イネーブルレジスタＡ、暗号化暗号鍵レジスタＡ、復号暗号鍵レジスタＡ、リクエストレーン数レジスタＡ、レスポンスレーン数レジスタＡを備えて構成される。
【０１４２】
最大アウトスタンディングレジスタＡは、イニシエータＡ１０５の最大アウトスタンディング数が保持されるレジスタである。最大アウトスタンディングレジスタＡの値は、集積回路Ａ１０１の初期化時に１となり、ＣＰＵＡ１０２によるライトアクセスによって値が更新される。
【０１４３】
最大リードアウトスタンディングレジスタＡは、イニシエータＡ１０５のリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大リードアウトスタンディングレジスタＡの値は、集積回路Ａ１０１の初期化時に１となり、ＣＰＵＡ１０２によるライトアクセスによって値が更新される。
【０１４４】
最大ライトアウトスタンディングレジスタＡは、イニシエータＡ１０５のライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ライトアウトスタンディングレジスタＡの値は、集積回路Ａ１０１の初期化時に１となり、ＣＰＵＡ１０２によるライトアクセスによって値が更新される。
【０１４５】
暗号機能イネーブルレジスタＡは、イニシエータＡ１０５が送受信するシリアルリクエストパケットとシリアルレスポンスパケットが、暗号化されるか否かを設定するレジスタである。暗号機能イネーブルレジスタＡの値が‘１’である場合、暗号化機能は有効であり、シリアルリクエストパケットおよびシリアルレスポンスパケットはそれぞれシリアルインタフェース上を暗号化された状態で送受信される。
【０１４６】
復号暗号鍵レジスタＡは、復号受信部Ａ１１０６が暗号を復号するときに使用する暗号鍵が保持されるレジスタである。暗号化暗号鍵レジスタＡは、暗号化送信部Ａ１１０４がシリアルリクエストパケットを暗号化するときに使用する暗号鍵が保持されるレジスタである。
【０１４７】
リクエストレーン数レジスタＡは、信号線群ＡＢ１０７に含まれる情報信号線群の本数を示すレジスタである。リクエストレーン数レジスタＡの値は、集積回路Ａ１０１の初期化時に１となり、ＣＰＵＡ１０２によるライトアクセスによって更新される。レスポンスレーン数レジスタＡは、信号線群ＢＡ１０８に含まれる情報信号線群の本数を示すレジスタである。レスポンスレーン数レジスタの値は、集積回路Ａ１０１の初期化時に１となり、ＣＰＵＡ１０２によるライトアクセスによって更新される。
【０１４８】
続いて、ターゲットＢ１１２の構成について図面を参照して説明する。
【０１４９】
図１３は、ターゲットＢ１１２の構成を示すブロック図である。
【０１５０】
ターゲットＢ１１２は、復号受信部Ｂ１３０１と、暗号化送信部Ｂ１３０２と、リクエスト受信制御部Ｂ１３０３と、レジスタＢ１３０４と、レスポンス送信制御部Ｂ１３０５と、割り込み送信制御部Ｂ１３０６と、３ステートバッファ２０２とを備えて構成される。
【０１５１】
復号受信部Ｂ１３０１は、後述のリクエストレーン数レジスタＢの値を参照し、該レジスタによって指定された数の信号線群ＡＢ１０７に含まれる情報信号群を介して集積回路Ａ１０１からシリアルリクエストパケットを受信する受信回路であり、受信したシリアルリクエストパケットをパラレルリクエストパケットに変換した上で、さらに以下の処理を行う。復号受信部Ｂ１３０１は、後述の暗号機能イネーブルレジスタＢと後述の復号暗号鍵レジスタＢの値をそれぞれ参照し、該暗号機能イネーブルレジスタＢの値が暗号化機能が有効であることを示す値である場合には、前記レジスタＢによって指定された暗号鍵を用いてシリアルリクエストパケットの復号を行う。復号受信部Ｂ１３０１は、該パラレルリクエストパケットの内容を解析し、該パラレルリクエストパケットがレジスタＢ１３０４に対するアクセス要求を含むパラレルリクエストパケットであるか、メモリＢ１１０やＩＰＢ１１１に対するアクセス要求を含むパラレルリクエストパケットであるかを判断する。復号受信部Ｂ１３０１は、該パラレルリクエストパケットがレジスタＢ１３０４に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをレジスタＢ１３０４に送信し、該パラレルリクエストパケットがメモリＢ１１０やＩＰＢ１１１に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをルータＢ１１３に送信する。
【０１５２】
リクエスト受信制御部Ｂ１３０３は、復号受信部Ｂ１３０１からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをルータＢ１１３に送信する中継回路である。
【０１５３】
レジスタＢ１３０４は、集積回路Ｂ１０９がシリアルインタフェースによって集積回路Ａ１０１と通信するために必要な制御情報を保持する記憶装置である。レジスタＢ１３０４は、リクエスト受信制御部Ｂ１３０３から受信したパラレルリクエストパケットに基づいて後述するレジスタ群にアクセスし、アクセスに基づいてパラレルレスポンスパケットを生成し、該パラレルレスポンスパケットをレスポンス送信制御部Ｂ１３０５に送信する記憶装置である。
【０１５４】
つづいて、図１４を用いてレジスタＢ１３０４に含まれるレジスタ群について説明する。
【０１５５】
図１４は、レジスタＢ１３０４に含まれるレジスタ群を示す図である。レジスタＢ１３０４は、最大アウトスタンディングレジスタＢ、最大リードアウトスタンディングレジスタＢ、最大ライトアウトスタンディングレジスタＢ、暗号機能イネーブルレジスタＢ、復号暗号鍵レジスタＢ、暗号化暗号鍵レジスタＢ、リクエストレーン数レジスタＢ、レスポンスレーン数レジスタＢ、モジュール電力制御レジスタＢ、モジュールクロック制御レジスタＢ、割り込み送信イネーブルレジスタＢを備えて構成される。
【０１５６】
最大アウトスタンディングレジスタＢは、ターゲットＢ１１２が対応可能な最大アウトスタンディング数が保持されるレジスタである。最大アウトスタンディングレジスタＢの値は、集積回路Ｂ１０９の初期化時に４となり、ライトアクセスによって更新される。ただし、該ライトアクセスのライトデータの値が５以上である場合には、最大アウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ１３０２にはアクセス失敗が通知される。
【０１５７】
最大リードアウトスタンディングレジスタＢは、ターゲットＢ１１２が対応可能なリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大リードアウトスタンディングレジスタＢの値は、集積回路Ｂ１０９の初期化時に２となり、ライトアクセスによって更新される。ただし、該ライトアクセスのライトデータの値が３以上である場合には、最大リードアウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ１３０２にはアクセス失敗が通知される。
【０１５８】
最大ライトアウトスタンディングレジスタＢは、ターゲットＢ１１２が対応可能なライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ライトアウトスタンディングレジスタＢの値は、集積回路Ｂ１０５の初期化時に２となり、ライトアクセスによって値が更新される。ただし、該ライトアクセスのライトデータの値が３以上である場合には、最大ライトアウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ１３０２にはアクセス失敗が通知される。
【０１５９】
暗号機能イネーブルレジスタＢは、ターゲットＢ１１２が送受信するシリアルリクエストパケットおよびシリアルレスポンスパケットが暗号化されるか否かが設定されるレジスタである。暗号機能イネーブルレジスタＢの値が‘１’である場合、シリアルリクエストパケットおよびシリアルレスポンスパケットはそれぞれシリアルインタフェースを暗号化された状態で送受信される。
【０１６０】
復号暗号鍵レジスタＢは、復号受信部Ｂ１３０１がシリアルリクエストパケットを復号するときに使用する暗号鍵が保持されるレジスタである。暗号化暗号鍵レジスタＢは、暗号化送信部Ｂ１３０２がシリアルレスポンスパケットを暗号化するときに使用する暗号鍵が保持されるレジスタである。
【０１６１】
リクエストレーン数レジスタＢは、信号線群ＡＢ１０７に含まれる情報信号線群の本数を示すレジスタである。リクエストレーン数レジスタＢの値は、集積回路Ｂ１０９の初期化時に１となり、ライトアクセスによって更新される。レスポンスレーン数レジスタＢは、信号線群ＢＡ１０８に含まれる情報信号線群の本数を示すレジスタである。レスポンスレーン数レジスタＢの値は、集積回路Ｂ１０９の初期化時に１となり、ライトアクセスによって更新される。
【０１６２】
モジュール電力制御レジスタＢは、ＩＰＢ１１１に電力供給を行うか否かを示すレジスタである。モジュール電力制御レジスタＢの値が‘１’である場合、電力制御部Ｂ１１４に対する電力供給信号がアサート状態に保持され、モジュール電力制御レジスタＢの値が‘０’である場合、電力制御部Ｂ１１４に対する電力供給信号がディアサート状態に保持される。モジュール電力制御レジスタＢの値は、集積回路Ｂ１０９の初期化時に１となり、ライトアクセスによって更新される。
【０１６３】
モジュールクロック制御レジスタＢは、ＩＰＢ１１１にクロック供給を行うか否かを示すレジスタである。モジュールクロック制御レジスタＢの値が‘１’である場合、クロック制御部Ｂ１１５に対するクロック供給信号がアサート状態に保持され、モジュールクロック制御レジスタＢの値が‘０’である場合、クロック制御部Ｂ１１５に対するクロック供給信号がディアサート状態に保持される。モジュールクロック制御レジスタＢの値は、集積回路Ｂ１０９の初期化時に１となり、ライトアクセスによって更新される。
【０１６４】
割り込み送信イネーブルレジスタＢは、集積回路Ａ１０１への割り込みパケット送信が許可されているか否かを示すレジスタである。割り込み送信イネーブルレジスタＢの値が‘０’である場合、集積回路Ａ１０１への割り込みパケット送信は禁止であり、割り込み送信イネーブルレジスタＢの値が‘１’である場合、集積回路Ａ１０１への割り込みパケット送信は許可されている。割り込み送信イネーブルレジスタＢの値は、集積回路Ｂ１０９の初期化時に‘０’となり、ライトアクセスによって更新される。
【０１６５】
レスポンス送信制御部Ｂ１３０５は、ルータＢ１１３からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットを暗号化送信部Ｂ１３０５に送信する中継回路である。
【０１６６】
割り込み送信制御部Ｂ１３０６は、ＩＰＢ１１１から割り込み送信要求を取り込み、該割り込み送信要求に基づいて割り込みパケットを生成し、該割り込みパケットを暗号化送信部Ｂ１３０２に送信する割り込み中継回路である。
【０１６７】
ターゲットＢ１１２の構成要素の説明に戻る。
【０１６８】
暗号化送信部Ｂ１３０２は、レジスタＢ１３０４およびレスポンス送信制御部Ｂ１３０５からパラレルレスポンスパケットを、割り込み送信制御部Ｂ１３０６から割り込みパケットを受信し、受信したパケットをシリアルパケットに変換して信号線群ＢＡ１０８を介して集積回路Ａ１０１に送信する中継回路であり、合わせて以下の処理を行う。
【０１６９】
暗号化送信部Ｂ１３０２は、レスポンスレーン数レジスタＢを参照し、該レジスタの値によって指定された数の信号線群ＢＡ１０８に含まれる情報信号線群を用いてシリアルレスポンスパケットを送信する。暗号化送信部Ｂ１３０２は、暗号機能イネーブルレジスタＢの値と暗号化暗号鍵レジスタＢの値をそれぞれ参照し、該暗号機能イネーブルレジスタＢの値が暗号化機能が有効であることを示す値である場合には、該暗号化暗号鍵レジスタＢによって指定された暗号鍵を用いてシリアルレスポンスパケットの暗号化を行う。暗号化送信部Ｂ１３０２は、割り込み送信イネーブルレジスタＢの値を参照し、該レジスタの値が割り込みパケット送信を許可しない値であるときには、割り込みパケット送信を行わない。
【０１７０】
以下、本発明によるシリアルインタフェースを用いて、集積回路Ａ１０１と集積回路Ｂ１０９の間で実行されるアクセスと、割り込み処理について説明する。
【０１７１】
まず、シリアルインタフェースの初期設定を図面を参照して説明する。
【０１７２】
図１５は、集積回路Ａ１０１および集積回路Ｂ１０９の使用開始から、シリアルインタフェースの初期化完了までの一連の初期設定処理を示すフローチャートである。集積回路Ａ１０１および集積回路Ｂ１０９の使用開始時には、集積回路Ａ１０１および集積回路Ｂ１０９に電力を供給し（ステップ１５０１）、つづいてリセット信号などを用いて回路の初期化を行う（ステップ１５０２）。
【０１７３】
ステップ１５０２完了時におけるレジスタＡ１１０７およびレジスタＢ１３０４に含まれる各レジスタの値を図１６に示す。図１６は、初期化完了時のレジスタＡ１１０７およびレジスタＢ１３０４に含まれる各レジスタの値である。
【０１７４】
最大アウトスタンディングレジスタＡ、最大リードアウトスタンディングレジスタＡおよび最大ライトアウトスタンディングレジスタＡの各値は１であり、集積回路Ａ１０１がリードアクセスあるいはライトアクセスを最大アウトスタンディング数１で実行することを示している。一方、最大アウトスタンディングレジスタＢ、最大リードアウトスタンディングレジスタＢ、最大ライトアウトスタンディングレジスタＢの各値は１であり、集積回路Ｂ１０９がリードアクセスあるいはライトアクセスを最大アウトスタンディング数１で受け付けることを示している。
【０１７５】
暗号機能イネーブルレジスタＡおよび暗号機能イネーブルレジスタＢの値は、それぞれパケットが暗号化されないことを示す‘０’である。
【０１７６】
リクエストレーン数レジスタＡおよびリクエストレーン数レジスタＢは、いずれもリクエストレーン数が１であることを示し、レスポンスレーン数レジスタＡおよびレスポンスレーン数レジスタＢは、いずれもレスポンスレーン数が１であることを示している。
【０１７７】
すなわち、ステップ１５０２完了時点では、集積回路Ａ１０１は、アウトスタンディング１で、リクエストレーンおよびレスポンスレーンをそれぞれ１本用いて、暗号化されていない状態で集積回路Ｂ１０９に対してアクセスしなければならない。この状態では、シリアルインタフェースの転送能力は低く、外部からのアクセス情報取得を暗号化によって阻止することもできない。そこでステップ１５０３からステップ１５０７までに示す各処理を実行して転送能力を高め、外部からのアクセス情報取得を阻止できるようにする。まず、使用可能なリクエストレーン数および使用可能なレスポンスレーン数を増加させ、シリアルインタフェースの転送能力を高める。なお、初期化完了時にリクエストレーン数およびレスポンスレーン数がそれぞれ１に初期化されるのは、リクエストレーン数およびレスポンスレーン数を最小限とした、基板やＳｉＰ（Ｓｙｓｔｅｍ  ｉｎ  Ｐａｃｋａｇｅ）実装コストが低い実装形態を許容するためである。
【０１７８】
本実施の形態において、使用可能なリクエストレーン数およびレスポンスレーン数はそれぞれ２および４である。このため、ＣＰＵＡ１０２は、レジスタＡ１１０７のリクエストレーン数レジスタＡとレジスタＢ１３０４のリクエストレーン数レジスタＢには２を、レジスタＡ１１０７のレスポンスレーン数レジスタＡとレスポンスレーン数レジスタＢには４を、それぞれライトアクセスにより書き込む。（ステップ１５０３）。
【０１７９】
ステップ１５０３実行開始時において、シリアルインタフェースの最大アウトスタンディング数は１である。このため、ＣＰＵＡ１０２は、リクエストレーン数レジスタＢに２を書き込む第１のライトアクセスに対するシリアルレスポンスパケットの受信が完了した後に、レスポンスレーン数レジスタＢに４を書き込むための第２のライトアクセスのシリアルリクエストパケットを送信する。
【０１８０】
前記第１のライトアクセスのシリアルリクエストパケットを集積回路Ａ１０１が送信する時点では、リクエストレーン数は１であるので、集積回路Ａ１０１は、１本のリクエストレーンを用いて前記シリアルリクエストパケットを送信する。さらに集積回路Ｂ１０９は、この時点ではレスポンスレーン数が１であるので、１本のレスポンスレーンを用いて前記第１のライトアクセスのシリアルレスポンスパケットを送信する。
【０１８１】
ＣＰＵＡ１０２は、前記第１のライトアクセスのレスポンスパケットをイニシエータＡ１０５が受信した後に、リクエストレーン数レジスタＡに２を書き込み、後述の第２のライトアクセスのシリアルリクエストパケットがリクエストレーンを２本使って転送されるようにする。
【０１８２】
第２のシリアルリクエストパケットを集積回路Ａ１０１が送信する時点では利用可能なリクエストレーン数は２であるので、集積回路Ａ１０１は、２本のリクエストレーン数を用いて前記第２のライトアクセスのシリアルリクエストパケットを送信する。さらに集積回路Ｂ１０９は、レスポンスレーンの本数が１本であるので、１本のレスポンスレーンを用いて前記第２のライトアクセスのシリアルレスポンスパケットを送信する。
【０１８３】
ＣＰＵＡ１０２は、前記第２のライトアクセスのレスポンスパケットをイニシエータＡ１０５が受信した後に、レスポンスレーン数レジスタＡに４を書き込み、後述の第２のライトアクセスにつづくアクセスのシリアルレスポンスパケットがレスポンスレーンを４本使って転送されるようにする。
【０１８４】
つづいて、集積回路Ａ１０１および集積回路Ｂ１０９の暗号化機能を有効化し、外部からのアクセス情報取得を阻止する。まず、集積回路Ａ１０１は、第３のライトアクセスを実施してレジスタＢ１３０４の復号暗号鍵レジスタＢに、第４のライトアクセスを実施してレジスタＢ１３０４の暗号化暗号鍵レジスタＢに、それぞれ値を書き込む。さらに、集積回路Ａ１０１内部では、ＣＰＵＡ１０２が、レジスタＡ１１０７の復号暗号鍵レジスタＡに前記復号暗号鍵レジスタＢに書き込まれる値と同じ値を書き込み、暗号化暗号鍵レジスタＡに、前記暗号化暗号鍵レジスタＢに書き込まれる値と同じ値を書き込む（ステップ１５０４）。
【０１８５】
なお、本実施の形態においては、復号暗号鍵レジスタＡおよび復号暗号鍵レジスタＢに書き込まれる値は“０１２３４５６７”（１６進数）とし、暗号化暗号鍵レジスタＡおよび暗号化暗号鍵レジスタＢに書き込まれる値は“８９ＡＢＣＤＥＦ”（１６進数）とする。なお、ステップ１５０４実施時においては、利用可能なリクエストレーン数と、利用可能なレスポンスレーン数は、それぞれ２、４であり、ステップ１５０４の２回のシリアルインタフェース上のライトアクセスは、これらのレーン数で実行される。
【０１８６】
つづいて、集積回路Ａ１０１は、第５のライトアクセスを実行し、レジスタＢ１３０４の暗号化イネーブルレジスタＢに‘１’を書き込む。一方、集積回路Ａ１０１内部では、ＣＰＵＡ１０２が、該第５のライトアクセスのレスポンスパケットを受信した後にレジスタＡ１１０７の暗号化イネーブルレジスタＡに‘１’を書き込む（ステップ１５０５）。
【０１８７】
第５のライトアクセスを開始する時点では、集積回路Ｂ１０９の暗号化機能は無効である。このため、第５のライトアクセスを形成するシリアルリクエストパケットおよびシリアルレスポンスパケットは暗号化されない状態でシリアルインタフェース上を転送される。
【０１８８】
第５のライトアクセスのシリアルレスポンスパケットを集積回路Ａ１０１が受信した後は、シリアルリクエストパケットは暗号鍵“０１２３４５６７”（１６進数）を用いて暗号化された状態でシリアルインタフェース上を転送され、シリアルレスポンスパケットは暗号鍵“８９ＡＢＣＤＥＦ”（１６進数）を用いて暗号化された状態でシリアルインタフェース上を転送される。
【０１８９】
初期設定の最後に、アウトスタンディング数上限値を増加させて集積回路Ａ１０１のアクセス実行能力と集積回路Ｂ１０９のアクセス受け付け能力を高め、シリアルインタフェースの転送能力を高める。
【０１９０】
アウトスタンディング数設定を一連の初期設定シーケンスの最後に行うのは、アウトスタンディング数が複数であると、集積回路Ａ１０１がシリアルレスポンスパケットの受信を完了する瞬間にシリアルリクエストパケットや別のシリアルレスポンスパケットの転送処理が行われている可能性があり、集積回路Ａ１０１がシリアルレスポンスパケットの受信を完了する瞬間にシリアルリクエストパケットや別のシリアルレスポンスパケットの転送処理が行われていると、先に述べたレーン数変更処理や暗号化機能有効化処理に伴い、転送が破綻する危険があるためである。例えば、シリアルリクエストパケットを集積回路Ａ１０１が送信しているときにリクエストレーン数変更処理に伴うシリアルレスポンスパケットが集積回路Ａ１０１によって受信されると、集積回路Ａ１０１は、リクエストレーン数変更処理に伴うシリアルレスポンスパケットを受信した直後にシリアルリクエストパケット送信途中でリクエストレーン数を切り替えるが、集積回路Ｂ１０９は、リクエストレーン数が切り替わったタイミングを知ることができないため、シリアルリクエストパケットの受信を正常に行えなくなるためである。
【０１９１】
このため、ステップ１５０３およびステップ１５０５はアウトスタンディング１の状態で実行しなければならない。また、ステップ１５０４はアウトスタンディング数が２以上の状態でも実行できるが、ステップ１５０４はステップ１５０５開始前に完了していなければならないことから、ステップ１５０４もアウトスタンディング数１の状態で実施する。
【０１９２】
初期設定シーケンスの説明に戻る。集積回路Ａ１０１は、レジスタＢ１３０４の最大アウトスタンディングレジスタＢ、最大リードアウトスタンディングレジスタＢ、最大ライトアウトスタンディングレジスタＢの値を、第１、第２および第３のリードアクセスによって順次読み出し、それぞれのレジスタからそれぞれ値４、値２、値２を得る（ステップ１５０６）。
【０１９３】
そして、ＣＰＵＡ１０２は、第１のリードアクセスによって得られた値４をレジスタＡ１１０７の最大アウトスタンディングレジスタＡに設定し、第２のリードアクセスによって得られた値２をレジスタＡ１１０７の最大リードアウトスタンディングレジスタＡに設定し、第３のリードアクセスによって得られた値２をレジスタＡ１１０７の最大ライトアウトスタンディングレジスタＡに設定する（ステップ１５０７）。
【０１９４】
以上で、本実施の形態の初期設定シーケンスは完了である。初期設定シーケンスの実行により、シリアルインタフェースの転送能力は高まり、外部からのアクセス情報取得は阻止される。
【０１９５】
ここで、集積回路Ｂ１０９が、最大アウトスタンディングレジスタＢ、前記最大リードアウトスタンディングレジスタＢ、前記最大ライトアウトスタンディングレジスタＢによって示すアウトスタンディング数をサポートするためにターゲットＢ１１２に搭載するデータ格納回路の量について説明する。
【０１９６】
集積回路Ｂ１０９のターゲットＢ１１２は、シリアルリクエストパケットから得られたアクセス対象アドレスおよびライトデータと、シリアルレスポンスパケットを生成するために必要なリードデータを格納するためのバッファを搭載する。前記アドレス及びライトデータバッファは復号受信部Ｂ１３０１に設けられ、前記リードデータバッファは暗号化送信部１３０２に設けられている。夫々のバッファの数は、対応するアウトスタンディングレジスタに設定可能な最大値の数に対応される。
【０１９７】
シリアルリクエストパケットから得られたアクセス対象アドレスおよびライトデータを保持するのは、本実施の形態において、ルータＢ１１３はターゲットＢ１１２だけではなく、ＩＰＢ１１１からのパラレルリクエストパケットも受け付けるため、ターゲットＢ１１２が送信するパラレルリクエストパケットを常時無条件で受け付けることはできないためである。
【０１９８】
シリアルレスポンスパケットを生成するために必要なリードデータを保持するのは、シリアルインタフェースの最大転送スループットが、ターゲットＢ１１２とルータＢ１１３の間の転送スループットよりも低いためである。
【０１９９】
集積回路Ｂ１０９の最大アウトスタンディング数は４であるので、ターゲットＢ１１２は、シリアルリクエストパケットから抽出したアドレス情報を４パケット分保持する。集積回路Ｂ１０９の最大ライトアウトスタンディング数は２であるので、ターゲットＢ１１２は、シリアルリクエストパケットから抽出したライトデータを２パケット分保持する。集積回路Ｂ１０９の最大リードアウトスタンディング数は２であるので、ターゲットＢ１１２は、シリアルレスポンスパケット生成に用いるリードデータを２パケット分保持する。
【０２００】
すなわち、本実施の形態においては、最大アウトスタンディング数とは別に最大ライトアウトスタンディング数を設定することにより、ライトデータを格納するためのバッファを２パケット分に節約し、最大アウトスタンディング数とは別に最大リードアウトスタンディング数を設定することにより、リードデータを格納するためのバッファを２パケット分に節約している。
【０２０１】
つづいて、集積回路Ｂ１０９に搭載されたＩＰＢ１１１が生成した割り込み要求に基づいて、集積回路Ａ１０１に搭載されたＣＰＵＡ１０２が割り込み処理を実行する過程を説明する。
【０２０２】
まず、集積回路Ｂ１０９側の割り込み処理を説明する。ＩＰＢ１１１は、動作設定レジスタを内蔵し、該動作設定レジスタに対してライトアクセスを受けると、あらかじめ決められた処理を実行する。そしてＩＰＢ１１１は、該処理が完了すると割り込み信号をアサートしてターゲットＢ１１２の割り込み送信制御部Ｂ１３０６に処理が完了した旨を通知し、再度該動作設定レジスタにライトアクセスを受けるまで動作を停止する。
【０２０３】
ＩＰＢ１１１が割り込み要求信号をアサートすると、ターゲットＢ１１２の割り込み送信制御部Ｂ１３０６は割り込みパケットを生成し、該割り込みパケットを暗号化送信部Ｂ１３０２に送信する。
【０２０４】
暗号化送信部Ｂ１３０２は、割り込みパケットをシリアルインタフェースを介してイニシエータＡ１０５に送信する。このとき、暗号化送信部Ｂ１３０２は、暗号機能イネーブルレジスタＢの状態とは無関係に割り込みパケットを暗号化せずに送信する。また、暗号化送信部Ｂ１３０２は、割り込み送信制御部Ｂ１３０６からの割り込みパケットと、レスポンス送信制御部Ｂ１３０５からのパラレルレスポンスパケットを両方受信していた場合、割り込みパケットを先に送信する。暗号化送信部Ｂ１３０２が割り込みパケットを暗号化しない理由は、後述の暗号鍵変更シーケンスの実施中にＩＰＢ１１１からの割り込み要求が発生した場合に、割り込みパケットの送信が遅れるのを防ぐためである。また、暗号化送信部Ｂ１３０２が割り込みパケットをシリアルレスポンスパケットよりも先に送信するのは、割り込みパケットを早く集積回路Ａ１０１に転送することによって、ＣＰＵＡ１０２の割り込み処理を早く起動するためである。
【０２０５】
つづいて、集積回路Ａ１０１側の割り込み処理について説明する。イニシエータＡ１０５の復号受信部Ａ１１０６は、集積回路Ｂ１０９からシリアルパケットを受信し、該シリアルパケットを解析して該シリアルパケットが割り込みパケットであることを特定し、割り込み受信制御部Ａ１１０３に対して該割り込みパケットを再送信する。
【０２０６】
割り込み受信制御部Ａ１１０３は、復号受信部Ａ１１０６から受信した割り込みパケットを解析し、割り込み信号をアサートしてＩＮＴＣＡ１０４に割り込みを通知する。このとき、割り込みパケットのreqccフィールドのビット３からビット０までに基づいて割り込みレベル情報を生成し、割り込みパケットのintcodeフィールドに基づいて割り込みコード情報を生成し、該レベル情報と該コード情報をＩＮＴＣＡ１０４に合わせて供給する。
【０２０７】
ＩＮＴＣＡ１０４は、割り込み信号をアサートしＣＰＵＡ１０２に割り込みが発生した旨を通知する。ＣＰＵＡ１０２は、割り込み信号がアサート状態であることを検出し、現在実行中の処理を中断して割り込み処理プログラムを実行する。割り込み処理プログラムをＣＰＵＡ１０２が実行することにより、ＩＰＢ１１１が生成したデータのメモリＢ１１０からメモリＡ１０３へのコピーと、ＩＰＢ１１１の動作設定レジスタの再設定が行われる。
【０２０８】
以上のように、集積回路Ａ１０１に搭載されたＣＰＵＡ１０２による制御によって、集積回路Ｂ１０９のＩＰＢ１１１を反復動作させることができる。
【０２０９】
つづいて、集積回路Ａ１０１による集積回路Ｂ１０９の省電力機能の制御について説明する。本発明の集積回路Ｂ１０９は、以下の３つの省電力機構を備える。第１の省電力機構はＩＰＢ１１１への電力供給遮断であり、第２の省電力機構はＩＰＢ１１１へのクロック供給遮断であり、第３の省電力機構は、ターゲットＢ１１２のパケット格納バッファへの電力およびクロック供給遮断である。
【０２１０】
まず、第１の省電力機構を説明する。第１の省電力機構は、集積回路Ａ１０１が、集積回路Ｂ１０９のモジュール電力制御レジスタＢに値を書き込むことよって起動および停止される。
【０２１１】
ターゲットＢ１１２は、モジュール電力制御レジスタＢに‘０’が保持されているときには、電力制御部１１４に対する電力供給信号をディアサート状態としてＩＰＢ１１１に対する電力供給を停止し、モジュール電力制御レジスタＢに‘１’が保持されているときには、電力制御部１１４に対する電力供給信号をアサート状態としてＩＰＢ１１１に対する電力供給を行う。ＣＰＵＡ１０２は、該モジュール電力制御レジスタＢに対して、シリアルインタフェース経由でライトアクセスを行って‘０’を書き込むことによってＩＰＢ１１１に対する電力供給を停止し、‘１’を書き込むことによってＩＰＢ１１１に対する電力供給を行う。
【０２１２】
次に、第２の省電力機構を説明する。第２の省電力機構は、集積回路Ａ１０１が、集積回路Ｂ１０９のモジュールクロック制御レジスタＢに値を書き込むことよって起動および停止される。ターゲットＢ１１２は、モジュールクロック制御レジスタＢに‘０’が保持されているときには、クロック制御部１１５に対するクロック供給信号をディアサート状態としてＩＰＢ１１１に対するクロック供給を停止し、モジュールクロック制御レジスタＢに‘１’が保持されているときには、クロック制御部１１５に対するクロック供給信号をアサート状態としてＩＰＢ１１１に対するクロック供給を行う。ＣＰＵＡ１０２は、該モジュールクロック制御レジスタＢに対して、シリアルインタフェース経由でライトアクセスを行って‘０’を書き込むことによってＩＰＢ１１１に対するクロック供給を停止し、‘１’を書き込むことによってＩＰＢ１１１に対するクロック供給を行う。
【０２１３】
次に、第３の省電力機構を説明する。第３の省電力機構は、集積回路Ａ１０１が、集積回路Ｂ１０９の最大アウトスタンディング数設定レジスタＢ、最大ライトアウトスタンディングレジスタＢおよび最大リードアウトスタンディング数設定レジスタＢに、該レジスタ群が保持している値よりも小さな値を書き込むことによって実行される。ターゲットＢ１１２は、最大アウトスタンディングレジスタＢに対応するために必要な量のアドレスバッファにのみ電力およびクロックを供給する。ターゲットＢ１１２は、最大アウトスタンディングレジスタＢと最大ライトアウトスタンディングレジスタＢの値のうち、小さい方の値に対応するために必要な量のライトデータバッファにのみ電力およびクロックを供給する。ターゲットＢ１１２は、最大アウトスタンディングレジスタＢと最大リードアウトスタンディングレジスタＢの値のうち、小さい方の値に対応するために必要な量のリードデータバッファにのみ電力およびクロックを供給する。
【０２１４】
本実施の形態において、シリアルインタフェースの初期化が完了した時点における最大アウトスタンディングレジスタＢの値は４であり、最大ライトアウトスタンディングレジスタＢの値は２であり、最大リードアウトスタンディングレジスタＢの値は２である。よって、シリアルインタフェースの初期化が完了した時点のターゲットＢ１１２内部では、２パケット分のライトデータバッファに電力およびクロックが供給され、４パケット分のアドレスバッファに電力およびクロックが供給され、２パケット分のリードデータバッファに電力およびクロックが供給されている。
【０２１５】
この状態から最大アウトスタンディングレジスタＢに１を書き込むと、ターゲットＢ１１２のアドレスバッファ、ライトデータバッファおよびリードデータバッファにはそれぞれ１パケット分のバッファに電力およびクロックが供給されている状態となり、初期化が完了した時点よりも各バッファが消費する電力が削減される。
【０２１６】
なお、ＣＰＵＡ１０２は、集積回路Ａ１０１と集積回路Ｂ１０９の間のアウトスタンディング数の齟齬に伴うシリアルインタフェースの不具合発生を回避するために、最大アウトスタンディングレジスタＢの値を最大アウトスタンディングレジスタＡに、最大リードアウトスタンディングレジスタＢの値を最大リードアウトスタンディングレジスタＡに、最大ライトアウトスタンディングレジスタＢの値を最大ライトアウトスタンディングレジスタＡにそれぞれ設定する。
【０２１７】
つづいて、レーン数変更処理について説明する。レーン数変更を行う理由は、以下の通りである。ライトアクセスでは、ライトデータが集積回路Ａ１０１から集積回路Ｂ１０９に転送される。このため、リクエストレーン数が多い方が転送時間が短いため望ましい。一方、リードアクセスでは、リードデータが集積回路Ｂ１０９から集積回路Ａ１０１に転送される。このため、レスポンスレーン数が多い方が転送時間が短いため望ましい。
【０２１８】
しかしながら、リクエストレーン数やレスポンスレーン数は、集積回路や集積回路を搭載する基板のコストに直結するので、コストの観点ではリクエストレーン数やレスポンスレーン数は少ないほうが望ましい。
【０２１９】
さらに、集積回路の動作に着目すれば、集積回路には、リードアクセスを主に実行する時間帯とライトアクセスを主に実行する時間帯がある。本実施の形態では、集積回路Ａ１０１は、ＩＰＢ１１１のレジスタにデータを設定して起動するときにはシリアルインタフェース上でライトアクセスを実行し、ＩＰＢ１１１の処理が完了してＩＰＢ１１１が生成したデータをメモリＢ１１０から読み出すときには、シリアルインタフェース上でリードアクセスを実行する。
【０２２０】
このため、リクエストレーンやレスポンスレーンを、伝送方向が変えられるように設計し、動作状況に合わせて伝送方向を設定し、該設定に合わせて集積回路Ａ１０１のリクエストレーン数レジスタＡおよびレスポンスレーン数レジスタＡ、集積回路Ｂ１０９のリクエストレーン数レジスタＢおよびレスポンスレーン数レジスタＢを設定すれば、コスト制約の範囲で転送性能を高められる。
【０２２１】
以下、集積回路Ａ１０１が、リクエストレーン数を４に、レスポンスレーン数を２に変更し、ライトアクセスの転送性能を改善するときの動作を図面を参照して説明する。
【０２２２】
図１７はレーン数変更シーケンスの流れを示すフローチャートである。ＣＰＵＡ１０２は、レーン数変更に先立って、発行済みのパラレルリクエストパケットに対するパラレルレスポンスパケットを全て受信するまで新規パラレルリクエストパケット送信を停止し、ＣＰＵＡ１０２のアウトスタンディング数をゼロにする（ステップ１７０１）。本実施の形態においては、割り込みパケットの転送を除くシリアルインタフェース上のアクセスは、全てＣＰＵＡ１０２のアクセスによるものであるので、ＣＰＵＡ１０２のアウトスタンディングをゼロとすれば、シリアルインタフェースのアウトスタンディングはゼロになる。
【０２２３】
次に、集積回路Ａ１０１は、割り込み送信イネーブルレジスタＢに‘０’を書き込み、集積回路Ｂ１０９から集積回路Ａ１０１への割り込みパケット転送を停止する（ステップ１７０２）。次に、集積回路Ａ１０１は、レスポンスレーン数レジスタＢに２を書き込むためのシリアルリクエストパケットを、集積回路Ｂ１０９に送信する（ステップ１７０３）。
【０２２４】
集積回路Ｂ１０９は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信し、送信が完了した直後にレスポンスレーンのうちの２本の駆動を停止し、ハイインピーダンスにする。集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が、該シリアルレスポンスパケットの受信が完了した後にレスポンスレーン数レジスタＡに２を設定する（ステップ１７０４）。
【０２２５】
ステップ１５０４完了時点において、リクエストレーン数およびレスポンスレーン数はそれぞれ２である。リクエストレーンにもレスポンスレーンにも含まれない２本の信号線は、プルアップ抵抗２０３の作用によりＨＩＧＨレベルへの遷移を開始する。
【０２２６】
次に、集積回路Ａ１０１は、リクエストレーン数レジスタＢに値４を書き込むためのシリアルリクエストパケットを、集積回路Ｂ１０９に送信する（ステップ１７０５）。集積回路Ｂ１０９は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信する。集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が、該シリアルレスポンスパケットの受信が完了した後に、リクエストレーン数レジスタＡに４を設定する（ステップ１７０６）。なお、該シリアルレスポンスパケットは、２本のレスポンスレーンによって転送される。
【０２２７】
集積回路Ａ１０１は、ステップ１５０６でシリアルレスポンスパケットを受信した直後に、ステップ１５０４において集積回路Ｂ１０９が駆動を停止した２本の信号線の駆動を開始する（ステップ１７０７）。
【０２２８】
ステップ１５０７完了時点においては、リクエストレーン数が４であり、レスポンスレーン数が２である。これにより、初期設定シーケンス完了直後に比して、ライトアクセスを高速に処理できる。
【０２２９】
最後に、集積回路Ａ１０１は、割り込み送信イネーブルレジスタＢに‘１’を書き込み、集積回路Ｂ１０９に、集積回路Ａ１０１への割り込みパケット送信を許可する（ステップ１７０８）。
【０２３０】
レーン数変更シーケンスにおいて、レーン数減少処理（ステップ１７０３、ステップ１７０４）を、レーン数増加処理（ステップ１７０５、ステップ１７０６）よりも先に実行するのは、シリアルインタフェースにおける信号衝突を回避するためである。
【０２３１】
同様の理由により、例えばリクエストレーン数とレスポンスレーン数を前記ステップ１７０７完了時点の状態（リクエストレーン数４、レスポンスレーン数２）から初期設定完了時点の状態（リクエストレーン数２、レスポンスレーン数４）に戻すときには、先にレスポンスレーン数を減少させて、その後にリクエストレーン数を増加させる。
【０２３２】
以下、リクエストレーン数とレスポンスレーン数を前記ステップ１７０７完了時点の状態から初期設定完了時点の状態に戻すときの処理を図面を参照して説明する。
【０２３３】
図１８はレーン数変更シーケンスの処理の流れを示すフローチャートである。ＣＰＵＡ１０２は、レーン数変更に先立って、発行済みのパラレルリクエストパケットに対するパラレルレスポンスパケットを全て受信するまで新規パラレルリクエストパケット送信を停止し、ＣＰＵＡ１０２のアウトスタンディング数をゼロにする（ステップ１８０１）。
【０２３４】
次に、集積回路Ａ１０１は、割り込み送信イネーブルレジスタに‘０’を書き込み、集積回路Ｂ１０９から集積回路Ａ１０１への割り込みパケット転送を停止する（ステップ１８０２）。
【０２３５】
次に、集積回路Ａ１０１は、リクエストレーン数レジスタＢに２を書き込むためのシリアルリクエストパケットを、集積回路Ｂ１０９に送信する（ステップ１８０３）。集積回路Ｂ１０９は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信する。集積回路Ａ１０１は該シリアルレスポンスパケットの受信が完了した直後にリクエストレーンのうちの２本の駆動を停止し、ハイインピーダンスにする。
【０２３６】
集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が、該シリアルレスポンスパケットの受信が完了した後にリクエストレーン数レジスタＡに２を設定する（ステップ１８０４）。
【０２３７】
ステップ１６０４完了時点において、リクエストレーン数およびレスポンスレーン数はそれぞれ２である。リクエストレーンにもレスポンスレーンにも含まれない２本の信号線は、プルアップ抵抗２０３の作用によりＨＩＧＨレベルへの遷移を開始する。
【０２３８】
次に、集積回路Ａ１０１は、レスポンスレーン数レジスタＢに値４を書き込むためのシリアルリクエストパケットを集積回路Ｂ１０９に送信する（ステップ１８０５）。集積回路Ｂ１０９は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信する。集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が、該シリアルレスポンスパケットの受信が完了した後にレスポンスレーン数レジスタＡに４を設定する（ステップ１８０６）。なお、該シリアルレスポンスパケットは、２本のレスポンスレーンによって転送される。
【０２３９】
集積回路Ｂ１０９は、前記シリアルレスポンスパケットを送信した直後にステップ１６０４において集積回路Ａ１０１が駆動を停止した２本の信号線の駆動を開始する（ステップ１８０７）。
【０２４０】
ステップ１６０７完了時点においては、リクエストレーン数が２であり、レスポンスレーン数が４である。これにより、初期設定シーケンス完了直後と同様に、リードアクセスを高速に処理できる。
【０２４１】
最後に、集積回路Ａ１０１は、割り込み送信イネーブルレジスタＢに‘１’を書き込み、集積回路Ｂ１０９から集積回路Ａ１０１への割り込みパケット送信を許可する（ステップ１８０８）。
【０２４２】
つづいて、ＣＰＵＡ１０２による制御によらず、集積回路Ａ１０１内部のイニシエータＡ１０５が自律的にレーン数を変更する処理について説明する。
【０２４３】
ここで、自律的なレーン数制御が望まれる理由を簡単に説明する。近年は、複数の処理（タスク）が時分割で並行処理されるマルチタスク処理が、集積回路搭載機器において広く行われている。マルチタスク処理においては、タスクを実行するプロセッサによってレーン数を切り替えることは困難である。これは、あるタスクにとって適正なレーン数が、別のタスクにとって適正である保障がないためである。また、ソフトウエア開発時に最適なリクエストレーン数とレスポンスレーン数を把握できる保障もない。これは集積回路の開発時期とソフトウエアの開発時期が必ずしも一致しないことや、ソフトウエアが多くの場合複数の集積回路を対象として開発されることによる。したがって、マルチタスクのシステムでは、タスクによらず適切なレーン数でシリアルインタフェース上のアクセスを処理するために、シリアルインタフェース上の全てのアクセスを中継する回路がリクエストレーンおよびレスポンスレーンの使用状況を監視し、該使用状況に応じて動的にレーン数を変更することが望ましい。以下、イニシエータＡ１０５による自律的なレーン数変更処理について説明する。
【０２４４】
自律的レーン数変更制御においては、イニシエータＡ１０５のパケット係数部Ａ１１０４が、単位時間当たりのシリアルリクエストパケットを構成するビット数の量と、シリアルレスポンスパケットを構成するビット数の量を計数する。さらにパケット係数部Ａ１１０４は、シリアルリクエストパケットを構成するビット数をシリアルレスポンスパケットを構成するビット数で除算し、除算により得られた値に応じて、図１９に示す数表にしたがってリクエストレーン数とレスポンスレーン数を設定する。
【０２４５】
図１９に示す数表にしたがって制御すれば、シリアルリクエストパケットの転送にかかる時間とシリアルレスポンスパケットの時間の和を小さくすることができる。
【０２４６】
このとき、リクエストレーン数を増加させてレスポンスレーン数を減少させる場合には、図１７記載のステップ１７０１〜１７０８を実行し、先にレスポンスレーン数を減少させたのちにリクエストレーン数を増加させる。同様に、レスポンスレーン数を増加させてリクエストレーン数を減少させる場合には、図１８記載のステップ１８０１〜１８０８を実行し、先にレスポンスレーン数を減少させたのちにリクエストレーン数を増加させる。ただし、いずれの場合においても、ＣＰＵＡ１０２が実行した処理をイニシエータＡ１０５が実行する。
【０２４７】
また、図１９の数表に代えて、シリアルリクエストパケットを構成するビット数の量と、シリアルレスポンスパケットを構成するビット数の量からレーン数を設定することも可能である。例えば、シリアルリクエストパケットを構成するビット数の量が所定の閾値を下回る場合には、レスポンスレーン数を変更することなくリクエストレーン数を減少させて消費電力を削減することが可能である。
【０２４８】
最後に、シリアルインタフェースの情報秘匿をより厳重にするために、暗号鍵を変更するときの手順を図面を参照して説明する。
【０２４９】
図２０は、暗号鍵変更シーケンスの処理の流れを示すフローチャートである。ＣＰＵＡ１０２は、暗号鍵変更に先立って、発行済みのパラレルリクエストパケットに対するパラレルレスポンスパケットを全て受信するまで新規パラレルリクエストパケット送信を停止し、ＣＰＵＡ１０２のアウトスタンディング数をゼロにする（ステップ２００１）。
【０２５０】
次に、集積回路Ａ１０１は、暗号化機能イネーブルレジスタＢに‘０’を書き込み、集積回路Ｂ１０９のシリアルリクエストパケット復号機能とシリアルレスポンスパケット暗号化機能を停止する。
【０２５１】
集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が暗号化機能イネーブルレジスタＡに‘０’を書き込み、集積回路Ａ１０１のシリアルリクエストパケット暗号化機能とシリアルレスポンスパケット復号機能を停止する。（ステップ２００２）。
【０２５２】
次に、集積回路Ａ１０１は、暗号化暗号鍵レジスタＢと復号暗号鍵レジスタＢに新しい値を書き込むためのシリアルリクエストパケットを集積回路Ｂ１０９に送信する。集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が、暗号化暗号鍵レジスタＡには前記復号暗号鍵レジスタＢに書き込んだ値と同じ値を設定し、復号暗号鍵レジスタＡには前記暗号化暗号鍵レジスタＢに書き込んだ値と同じ値を設定する（ステップ２００３）。集積回路Ｂ１０９は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信する（ステップ２００４）。
【０２５３】
次に、集積回路Ａ１０１は、暗号化機能イネーブルレジスタＢに‘１’を書き込み、集積回路Ｂ１０９のシリアルリクエストパケット復号機能とシリアルレスポンスパケット暗号化機能を有効化する。集積回路Ａ１０１内部においては、ＣＰＵＡ１０２が暗号化機能イネーブルレジスタＡに‘１’を書き込み、集積回路Ａ１０１のシリアルリクエストパケット暗号化機能とシリアルレスポンスパケット復号機能を有効化する（ステップ２００５）。
【０２５４】
以上のシーケンスを実行することにより、集積回路Ａ１０１および集積回路Ｂ１０９の処理を停止させることなく暗号鍵を変更できる。なお、この一連の処理を実行している間にも、割り込みパケットの転送を行うことができる。
【０２５５】
以上説明した第１の実施の形態によれば、本発明の以下の特徴を実現できる。
【０２５６】
第１に、少ない信号線数で低コストにシリアルインタフェースが構築できる。
【０２５７】
第２に、暗号化によってシリアルインタフェース上の伝送情報を外部から取得することを阻止できる。
【０２５８】
第３に、不要な電力よびクロック供給を停止できるため、消費電力を抑制できる。また、この消費電力抑制は、電力を消費する側の集積回路ではなく、該集積回路とは別の集積回路により、あたかも２つの集積回路が一つの集積回路として実現されているかのように実現できる。
【０２５９】
第４に、信号線が許す限りの転送性能を実現できる。さらに、転送性能改善をソフトウエアによる処理を介在させることなく実行可能である。
【０２６０】
第５に、リードおよびライトアクセスに使用されるシリアルインタフェースで割り込み情報を転送することにより、割り込み専用のインタフェースを廃止することができ、集積回路のコストを削減できる。また、この割り込み情報の転送は、暗号機能の停止および起動、暗号鍵の変更に影響されることなく常時実行可能である。
【０２６１】
第６に、アウトスタンディングをリードとライトで個別に指定できるため、ターゲットに搭載するバッファ量を最小限にでき、集積回路のトランジスタ集積コストを下げられる。
【０２６２】
《第２の実施の形態》
以下、本発明の第２の実施の形態を図面を参照して説明する。
【０２６３】
図２１には本発明の一例にかかる集積回路Ａおよび集積回路Ｂが示される。同図に示される集積回路Ａ２１０１および集積回路Ｂ２１１１は、公知のＣＭＯＳ（相補型ＭＯＳトランジスタ）やバイポーラトランジスタなどを形成する半導体集積回路技術によって、単結晶シリコンのような半導体基板に形成される。本実施の形態では、本発明による集積回路Ａ２１０１と集積回路Ｂ２１１１が双方ともイニシエータとしてアクセスするときの両集積回路間のリードアクセス、ライトアクセスおよび割り込み通知について説明する。
【０２６４】
信号線群ＡＢ２１２１は、集積回路Ａ２１０１から集積回路Ｂ２１１１に情報を伝送する信号線群であり、信号線群ＢＡ２１２２は、集積回路Ｂ２１１１から集積回路Ａ２１０１に情報を伝送する信号線群である。信号線群ＡＢ２１２１および信号線群ＢＡ２１２２は、それぞれ第１の実施の形態の信号線群ＡＢ１０７および信号線群ＢＡ１０８と同一である。
【０２６５】
まず、集積回路Ａ２１０１に含まれるモジュールについて説明する。集積回路Ａ２１０１は、ＣＰＵＡ２１０２と、メモリＡ２１０３と、ＩＮＴＣＡ２１０４と、ＩＰＡ２１０５と、コントローラＡ２１０６と、ルータＡ２１０７の各モジュールを備えて構成される。また、集積回路Ａ２１０１には、信号線群ＡＢ２１２１と信号線群ＢＡ２１２２が接続される。
【０２６６】
ＣＰＵＡ２１０２は、ルータＡ２１０７を介してメモリＡ２１０３にアクセスし、該メモリに保持されているプログラムを実行することによって、集積回路Ａ２１０１および集積回路Ｂ２１１１の制御を行うプロセッサである。集積回路Ａ２１０１内のアクセスは、第１の実施の形態の集積回路Ａ１０１内のアクセスと同様にスプリットプロトコルで行われる。
【０２６７】
メモリＡ２１０３は、ルータＡ２１０７からリクエストパケットを受信し、該リクエストパケットの内容にしたがってリードあるいはライトアクセスを実行し、レスポンスパケットをルータＡ２１０７に送信する記憶装置である。
【０２６８】
ＩＮＴＣＡ２１０４は、コントローラＡ２１０６およびＩＰＡ２１０５から割り込み情報を取り込み、該割り込み情報をＣＰＵＡ２１０２に中継する割り込みコントローラである。
【０２６９】
ＩＰＡ２１０５は、ルータＡ２１０７を介してメモリＡ２１０３にアクセスすることによって所定の処理を実行し、該処理によって得られた結果をメモリＡ２１０３に書き込み、さらに該処理の終了を割り込み信号としてコントローラＡ２１０６あるいはＩＮＴＣＡ２１０４に通知するＩＰである。
【０２７０】
コントローラＡ２１０６は、ルータＡ２１０７及びＩＮＴＣＡ２１０４と、集積回路Ｂ２１１１との間の情報の中継を行う中継回路であり、イニシエータとターゲットの機能を備える。コントローラＡ２１０６は、以下の処理を行う。コントローラＡ２１０６は、ルータＡ２１０７からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをシリアルリクエストパケットに変換し、該シリアルリクエストパケットを信号線群ＡＢ２１２１を介して集積回路Ｂ２１１１に送信する。コントローラＡ２１０６は、ルータＡ２１０７からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをシリアルレスポンスパケットに変換し、該シリアルレスポンスパケットを信号線群ＡＢ２１２１を介して集積回路Ｂ２１１１に送信する。コントローラＡ２１０６は、信号線群ＢＡ２１２２を介して集積回路Ｂ２１１１からシリアルリクエストパケットを受信し、該シリアルリクエストパケットをパラレルリクエストパケットに変換し、該パラレルリクエストパケットをルータＡ２１０７に送信する。コントローラＡ２１０６は、信号線群ＢＡ２１２２を介して集積回路Ｂ２１１１からのシリアルレスポンスパケットを受信し、該シリアルレスポンスパケットをパラレルレスポンスパケットに変換してルータＡ２１１７に送信する。コントローラＡ２１０６は、ＩＰＡ２１０５から割り込み情報を取り込み、該割り込み情報を信号線群ＢＡ２１２２を介して集積回路Ｂ２１１１に送信する。コントローラＡ２１０６は、信号線群ＢＡ２１２２を介して集積回路Ｂ２１１１からの割り込みパケットを受信し、該割り込みパケットから割り込み情報を生成し、該割り込み情報をＩＮＴＣＡ２１０４に供給する。
【０２７１】
ルータＡ２１０７は、ＣＰＵＡ２１０２、メモリＡ２１０３、ＩＮＴＣＡ２１０４、ＩＰＡ２１０５、コントローラＡ２１０６が送受信するパラレルリクエストパケットおよびパラレルレスポンスパケットを中継する中継回路である。
【０２７２】
つづいて、集積回路Ｂ２１１１に含まれるモジュールについて説明する。集積回路Ｂ２１１１は、ＣＰＵＢ２１１２と、メモリＢ２１１３と、ＩＮＴＣＢ２１１４と、ＩＰＢ２１１５と、デバイスＢ２１１６と、ルータＢ２１１７と、電力制御部Ｂ２１１８と、クロック制御部Ｂ２１１９を備えて構成される。また、集積回路Ｂ２１１１には、前記信号線群ＡＢ２１２１と前記信号線群ＢＡ２１２２が接続される。集積回路Ｂ２１１１内のアクセスは、集積回路Ａ２１０１内のアクセスと同様に、スプリットプロトコルにて行われる。
【０２７３】
ＣＰＵＢ２１１２は、ルータＢ２１１７を介してメモリＢ２１１３にアクセスし、該メモリに保持されているプログラムを実行することによって、集積回路Ａ２１０１および集積回路Ｂ２１１１の制御を行うプロセッサである。
【０２７４】
メモリＢ２１１３は、ルータＢ２１１７からリクエストパケットを受信し、該リクエストパケットの内容にしたがってリードあるいはライトアクセスを実行し、レスポンスパケットをルータＢ２１１７に送信する記憶装置である。
【０２７５】
ＩＮＴＣＢ２１１４は、デバイスＢ２１１６およびＩＰＢ２１１５から割り込み情報を取り込み、該割り込み情報をＣＰＵＢ２１０２に中継する割り込みコントローラである。
【０２７６】
ＩＰＢ２１１５は、ルータＢ２１１７を介してメモリＢ２１１３にアクセスすることにより所定の処理を実行し、該処理によって得られた結果をメモリＢ２１１３に書き込み、さらに該処理の終了を割り込み信号としてデバイスＢ２１１６あるいはＩＮＴＣＢ２１１４に通知するＩＰである。
【０２７７】
デバイスＢ２１１６は、ルータＢ２１１７、ＩＮＴＣＢ２１１４、電力制御部Ｂ２１１８及びクロック制御部Ｂ２１１９と、集積回路Ｂ２１０１との間の情報の中継を行う中継回路であり、イニシエータとターゲットの機能を備える。デバイスＢ２１１６は、以下の処理を行う。デバイスＢ２１１６は、ルータＢ２１１７からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをシリアルリクエストパケットに変換し、該シリアルリクエストパケットを信号線群ＢＡ２１２２を介して集積回路Ａ２１０１に送信する。デバイスＢ２１１６は、ルータＢ２１１７からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをシリアルレスポンスパケットに変換し、該シリアルレスポンスパケットを信号線群ＢＡ２１２２を介して集積回路Ａ２１０１に送信する。デバイスＢ２１１６は、信号線群ＡＢ２１２１を通じて集積回路Ａ２１０１からシリアルリクエストパケットを受信し、該シリアルリクエストパケットをパラレルリクエストパケットに変換し、該パラレルリクエストパケットをルータＢ２１１７に送信する。デバイスＢ２１１６は、信号線群ＡＢ２１２１を通じて集積回路Ａ２１０１からのシリアルレスポンスパケットを受信し、該シリアルレスポンスパケットをパラレルレスポンスパケットに変換してルータＢ２１１７に送信する。デバイスＢ２１１６は、ＩＰＢ２１１５から割り込み情報を取り込み、該割り込み情報を信号線群ＡＢ２１２１を介して集積回路Ａ２１０１に送信する。デバイスＢ２１１６は、信号線群ＡＢ２１２１を介して集積回路Ａ２１０１から割り込みパケットを受信し、該割り込みパケットに基づいて割り込み信号を生成し、該割り込み信号をＩＮＴＣＢ２１１４に供給する。デバイスＢ２１１６は、信号線群ＡＢ２１２１を通じて集積回路Ａ２１０１からシリアルリクエストパケットを受信し、該シリアルリクエストパケットの内容に基づいて電力制御部Ｂ２１１８およびクロック制御部Ｂ２１１９に制御信号を供給する。
【０２７８】
ルータＢ２１１７は、ＣＰＵＢ２１１２、メモリＢ２１１３、ＩＮＴＣＢ２１１４、ＩＰＢ２１１５、デバイスＢ２１１６が送受信するパラレルリクエストパケットおよびパラレルレスポンスパケットを中継する中継回路である。
【０２７９】
電力制御部Ｂ２１１８は、デバイスＢ２１１６から供給される電力供給信号に基づいてＩＰＢ２１１５に対する電力を供給あるいは遮断する電力制御回路である。
【０２８０】
クロック制御部Ｂ２１１９は、前記デバイスＢ２１１６から供給されるクロック供給信号に基づいてＩＰＢ２１１５に対するクロックを供給あるいは遮断するクロック制御回路である。
【０２８１】
つづいて、集積回路Ａ２１０１と集積回路Ｂ２１１１の間の転送処理について説明する。以下、本実施の形態では、集積回路Ａ２１０１と集積回路Ｂ２１１１の間の、信号線群ＡＢ２１２１と信号線群ＢＡ２１２２によって構成されたインタフェースを、シリアルインタフェースという。該シリアルインタフェースを経由するアクセスは、第１の実施の形態において説明したスプリットプロトコルにて行われる。本実施の形態における、シリアルインタフェース上を転送されるリクエストパケットおよびレスポンスパケットは、第１の実施の形態において説明したシリアルパケットである。ただし、本実施の形態では、集積回路Ａ２１０１および集積回路Ｂ２１１１が、イニシエータにもターゲットとしても動作する。
【０２８２】
つづいて、集積回路Ａ２１０１に含まれるコントローラＡ２１０６について図面を参照して説明する。
【０２８３】
図２２は、コントローラＡ２１０６の構成を示すブロック図である。コントローラＡ２１０６は、リクエスト送信制御部Ａ２２０１と、レスポンス送信制御部Ａ２２０２と、割り込み送信制御部Ａ２２０３と、暗号化送信部Ａ２２０４と、レスポンス受信制御部Ａ２２０５と、リクエスト受信制御部Ａ２２０６と、割り込み受信制御部Ａ２２０７と、パケット計数部Ａ２２０８と、復号受信部Ａ２２０９と、レジスタＡ２２１０と、３ステートバッファＡ２２１１と、プルアップ抵抗２２１２を備えて構成される。
【０２８４】
リクエスト送信制御部Ａ２２０１は、ルータＡ２１０６からパラレルリクエストパケットを受信し、該パラレルリクエストパケットのアドレスがレジスタＡ２２１０を示すときには該パラレルリクエストパケットをレジスタＡ２２１０に送信し、該パラレルリクエストパケットのアドレスがレジスタＡ２２１０を示さないときには該パラレルリクエストパケットを暗号化送信部Ａ２２０４に送信する中継回路である。
【０２８５】
レスポンス送信制御部Ａ２２０２は、ルータＡ２１０６からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットを暗号化送信部２２０４に送信する中継回路である。
【０２８６】
割り込み送信制御部Ａ２２０３は、ＩＰＡ２１０５から割り込み送信要求を取り込み、該割り込み送信要求に基づいて割り込みパケットを生成し、該割り込みパケットを暗号化送信部２２０４に送信する割り込み情報中継回路である。
【０２８７】
暗号化送信部Ａ２２０４は、リクエスト送信制御部Ａ２２０１からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをシリアルリクエストパケットに変換した上で暗号化して信号線群ＡＢ２１２１を介して集積回路Ｂ２１１１に送信する中継回路である。また、暗号化送信部Ａ２２０４は、レスポンス送信制御部Ａ２２０２および割り込み送信制御部Ａ２２０３からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをシリアルレスポンスパケットに変換した上で暗号化して信号線群ＡＢ２１２１を介して集積回路Ｂ２１１１に送信する中継回路である。さらにまた、暗号化送信部Ａ２２０４は、割り込み送信制御部Ａ２２０３から割り込みパケットを受信し、該割り込みパケットを信号線群ＡＢ２１２１を介して集積回路Ｂ２１１１に送信する割り込み中継回路である。
【０２８８】
暗号化送信部Ａ２２０４は上記中継処理実行時に合わせて以下の処理を行う。暗号化送信部Ａ２２０４は、パケット計数部Ａ２２０８から供給されるリクエストパケット送信許可信号がディアサート状態である場合、集積回路Ｂ２１１１へのシリアルリクエストパケット送信を行わない。暗号化送信部Ａ２２０４は、集積回路Ｂ２１１１へのシリアルリクエストパケット送信が完了するたびに、シリアルリクエストパケットの送信が完了した旨と送信したシリアルリクエストパケットのrwフィールドの値を、パケット計数部Ａ２２０８に通知する。暗号化送信部Ａ２２０４は、後述のダウンレーン数レジスタＡを参照し、該レジスタの値によって指定された数の信号線群ＡＢ２１２１に含まれる情報信号線群を用いてシリアルパケットを送信する。暗号化送信部Ａ２２０４は、後述の暗号機能イネーブルレジスタＡの値と暗号化暗号鍵レジスタＡの値をそれぞれ参照し、該暗号機能イネーブルレジスタＡの値が暗号化機能が有効であることを示す値である場合には、該暗号化暗号鍵レジスタＡによって指定された暗号鍵を用いてシリアルリクエストパケットおよびシリアルレスポンスパケットの暗号化を行う。
【０２８９】
レスポンス受信制御部Ａ２２０５は、復号受信部Ａ２２０８からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをルータＡ２１０７に送信する中継回路である。
【０２９０】
リクエスト受信制御部Ａ２２０６は、復号受信部Ａ２２０８からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをルータＡ２１０７に送信する中継回路である。
【０２９１】
割り込み受信制御部Ａ２２０７は、復号受信部Ａ２２０８から割り込みパケットを受信し、該割り込みパケットの内容を解析し、解析結果に基づいてＩＮＴＣＡ２１０４に対する割り込み信号を生成する割り込み情報中継回路である。
【０２９２】
復号受信部Ａ２２０８は、信号線群ＢＡ２１２２を介して集積回路Ｂ２１１１からシリアルパケットを受信し、レスポンス受信制御部Ａ２２０５およびレスポンス受信制御部Ａ２２０６および割り込み受信制御部Ａ２２０７およびレジスタＡ２２１０に送信する中継回路である。復号受信部Ａ２２０８は、シリアルパケットを中継するときに、合わせて以下の処理を行う。
【０２９３】
復号受信部Ａ２２０８は、集積回路Ｂ２１１１から受信したシリアルパケットの内容を解析し、該シリアルパケットがシリアルリクエストパケットであるかシリアルレスポンスパケットであるか割り込みパケットであるかを判断する。復号受信部Ａ２２０８は、集積回路Ｂ２１１１から受信したシリアルパケットがシリアルレスポンスパケットである場合には、該シリアルレスポンスパケットを復号した上でパラレルレスポンスパケットを生成し、該パラレルレスポンスパケットをレスポンス受信制御部Ａ２２０５に送信する。復号受信部Ａ２２０８は、集積回路Ｂ２１１１から受信したシリアルパケットがシリアルリクエストパケットである場合には、該シリアルレスポンスパケットを復号した上でパラレルリクエストパケットを生成する。さらに該パラレルリクエストパケットの内容を解析し、該パラレルリクエストパケットがレジスタＡ２２１０に対するアクセス要求を含むパラレルリクエストパケットであるか、メモリＡ２１０２あるいはＩＰＡ２１０５に対するアクセス要求を含むパラレルリクエストパケットであるかを判断する。復号受信部Ａ２２０８は、該パラレルリクエストパケットがレジスタＡ２２１０に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをレジスタＡ２２１０に送信し、該パラレルリクエストパケットがメモリＡ２１０２あるいはＩＰＡ２１０５に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをリクエスト受信制御部Ａ２２０６に送信する。復号受信部Ａ２２０８は、集積回路Ｂ１０９から受信したパケットが割り込みパケットである場合には、該割り込みパケットを割り込み受信制御部Ａ２２０７に送信する。
【０２９４】
パケット計数部Ａ２２０９は、アウトスタンディングカウンタＡ、リードアウトスタンディングカウンタＡ、ライトアウトスタンディングカウンタＡを備え、該カウンタの値を参照して暗号化送信部Ａ２２０４へのシリアルリクエストパケット送信許可信号を生成する制御回路である。
【０２９５】
アウトスタンディングカウンタＡは、暗号化送信部Ａ２２０４からシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ２２０９からシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、アウトスタンディングカウンタＡはシリアルリクエストパケット送信とシリアルレスポンスパケット受信が同時に完了したときにはカウント値を変化させない。また、アウトスタンディングカウンタＡは、集積回路Ａ２１０１の初期化時に０となる。
【０２９６】
リードアウトスタンディングカウンタＡは、暗号化送信部Ａ２２０４からrwフィールドが‘１’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ２２０９から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、リードアウトスタンディングカウンタＡはrwフィールドが‘１’であるシリアルリクエストパケットの送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、リードアウトスタンディングカウンタＡは、集積回路Ａ２１０１の初期化時に０となる。
【０２９７】
ライトアウトスタンディングカウンタＡは、暗号化送信部Ａ２２０４からrwフィールドが‘０’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ａ２２０９から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、ライトアウトスタンディングカウンタＡはrwフィールドが‘０’であるシリアルリクエストパケットの送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、ライトアウトスタンディングカウンタＡは、集積回路Ａ２１０１の初期化時に０となる。
【０２９８】
パケット計数部Ａ２２０８は、後述の最大アウトスタンディングレジスタＡの値と、後述の最大リードアウトスタンディングレジスタＡの値と、後述の最大ライトアウトスタンディングレジスタＡの値を参照する。パケット計数部Ａ２２０８は、該最大アウトスタンディングレジスタＡの値が前記アウトスタンディングカウンタＡの値より大きく、かつ、該最大リードアウトスタンディングレジスタＡの値が前記リードアウトスタンディングカウンタＡの値より大きく、かつ、該最大ライトアウトスタンディングレジスタＡの値が前記ライトアウトスタンディングカウンタＡの値より大きいときに、暗号化送信部Ａ２２０４に対するシリアルリクエストパケット送信許可信号をアサート状態に保持する。
【０２９９】
つづいて、図面を参照してレジスタＡ２２１０に含まれるレジスタ群を説明する。図２３はレジスタ２２１０に含まれるレジスタ群を示す図である。
【０３００】
レジスタＡ２２１０は、最大ターゲットアウトスタンディングレジスタＡ、最大ターゲットリードアウトスタンディングレジスタＡ、最大ターゲットライトアウトスタンディングレジスタＡ、最大イニシエータアウトスタンディングレジスタＡ、最大イニシエータリードアウトスタンディングレジスタＡ、最大イニシエータライトアウトスタンディングレジスタＡ、暗号機能イネーブルレジスタＡ、復号暗号鍵レジスタＡ、暗号化暗号鍵レジスタＡ、ダウンレーン数レジスタＡ、アップレーン数レジスタＡを備えて構成される。
【０３０１】
最大ターゲットアウトスタンディングレジスタＡは、コントローラＡ２１０６がターゲットとしてサポートする最大アウトスタンディング数が保持されるレジスタである。最大ターゲットアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ライトアクセスによって値が更新される。最大ターゲットリードアウトスタンディングレジスタＡは、コントローラＡ２１０６がターゲットとしてサポートするリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ターゲットリードアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって値が更新される。最大ターゲットライトアウトスタンディングレジスタＡは、コントローラＡ２１０６がターゲットとしてサポートするライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ターゲットライトアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって値が更新される。最大イニシエータアウトスタンディングレジスタＡは、コントローラＡ２１０６がイニシエータとしてサポートする最大アウトスタンディング数が保持されるレジスタである。最大イニシエータアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって値が更新される。最大イニシエータリードアウトスタンディングレジスタＡは、コントローラＡ２１０６がイニシエータとしてサポートするリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大イニシエータリードアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって値が更新される。最大イニシエータライトアウトスタンディングレジスタＡは、コントローラＡ２１０６がイニシエータとしてサポートするライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大イニシエータライトアウトスタンディングレジスタＡの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって値が更新される。
【０３０２】
暗号機能イネーブルレジスタＡは、コントローラＡ２１０５が送受信するシリアルリクエストパケットと、シリアルレスポンスパケットが暗号化されるか否かを設定するレジスタである。暗号機能イネーブルレジスタＡの値が‘１’である場合、シリアルリクエストパケットおよびシリアルレスポンスパケットはそれぞれ信号線群ＡＢ２１２１および信号線群ＢＡ２１２２上を暗号化された状態で送信される。
【０３０３】
復号暗号鍵レジスタＡは、復号受信部Ａ２２０９が暗号を復号するときに使用する暗号鍵が保持されるレジスタである。暗号化暗号鍵レジスタＡは、暗号化送信部Ａ２２０４がパケットを暗号化するときに使用する暗号鍵を保持するレジスタである。
【０３０４】
ダウンレーン数レジスタＡは、信号線群ＡＢ２１２１に含まれる情報信号線群の本数を示すレジスタである。ダウンレーン数レジスタＡの値は、集積回路Ａ２１０１の初期化時に‘１’となり、ＣＰＵＡ２１０２によるライトアクセスによって更新される。
【０３０５】
アップレーン数レジスタＡは、信号線群ＢＡ２１２２に含まれる情報信号線群の本数を示すレジスタである。アップレーン数レジスタの値は、集積回路Ａ２１０１の初期化時に１となり、ＣＰＵＡ２１０２によるライトアクセスによって更新される。
【０３０６】
イニシエータストップレジスタＡは、コントローラＡに集積回路Ｂ２１１１のイニシエータ機能を停止させ、集積回路Ｂ２１１１のイニシエータのアウトスタンディング数をゼロにするシリアルコントロールパケットであるイニシエータストップパケットと、集積回路Ｂ２１１１のイニシエータの動作を再開させるイニシエータストップ解除パケットを送信するためのレジスタである。イニシエータストップレジスタＡに‘１’をライトすると、レジスタＡ２２１０は暗号化送信部２２０４にイニシエータストップパケットを送信し、イニシエータストップレジスタＡに‘０’をライトすると、レジスタＡ２２１０は暗号化送信部２２０４にイニシエータストップ解除パケットを送信する。
【０３０７】
３ステートバッファＡ２１１１は、第１の実施の形態における３ステートバッファ２０１と同様の機能を持つ３ステートバッファであり、信号線群ＡＢ２１２１あるいは信号線群ＢＡ２１２２に含まれる情報信号線群の方向を切り替える。
【０３０８】
プルアップ抵抗２１１２は、信号線群ＡＢ２１２１あるいは信号線群ＢＡ２１２２に含まれる情報信号線群が集積回路Ａ２１０１にも集積回路Ｂ２１１１にも駆動されていないときに、該情報信号線群の電位をＨＩＧＨレベルに固定するためのプルアップ抵抗である。
【０３０９】
つづいて、デバイスＢ２１１６を図面を参照して説明する。
【０３１０】
図２４は、デバイスＢ２１１６の構成を示すブロック図である。デバイスＢ２１１６は、復号受信部Ｂ２４０１と、暗号化送信部Ｂ２４０２と、割り込み受信制御部Ｂ２４０３と、レスポンス受信制御部Ｂ２４０４と、リクエスト受信制御部Ｂ２４０５と、レジスタＢ２４０６と、レスポンス送信制御部Ｂ２４０７と、リクエスト送信制御部Ｂ２４０８と、割り込み送信制御部Ｂ２４０９と、パケット計数部Ｂ２４１０と、３ステートバッファＢ２４１１とを備えて構成される。
【０３１１】
復号受信部Ｂ２４０１は、信号線群ＢＡ２１２２を介して集積回路Ａ２１０１からシリアルパケットを受信し、該シリアルパケットを割り込み受信制御部Ｂ２４０３およびレスポンス受信制御部Ｂ２４０４およびリクエスト受信制御部２４０５およびレジスタＢ２４０６に送信する中継回路である。復号受信部Ｂ２４０１は上記中継処理実行時に、合わせて以下の処理を行う。
【０３１２】
復号受信部Ｂ２４０１は、後述のリクエストレーン数レジスタＢの値を参照し、該レジスタによって指定された数の信号線群ＡＢ２１２１に含まれる情報信号線群を介してシリアルパケットを受信する。復号受信制御部Ｂ２４０１は、受信したシリアルパケットを解析し、該シリアルパケットがシリアルリクエストパケットであるかシリアルレスポンスパケットであるかシリアルコントロールパケットであるかを判断する。復号受信部Ｂ２４０１は、後述の暗号機能イネーブルレジスタＢと後述の復号暗号鍵レジスタＢの値をそれぞれ参照し、該暗号機能イネーブルレジスタＢの値が暗号化機能が有効であることを示す値である場合には、前記レジスタＢによって指定された暗号鍵を用いてシリアルリクエストパケットおよびシリアルレスポンスパケットの復号を行う復号受信部Ｂ２４０１は、受信したシリアルパケットがシリアルレスポンスパケットである場合には、パラレルレスポンスパケットに変換し、該パラレルレスポンスパケットをレスポンス受信制御部Ｂ２４０４に送信する。復号受信部Ｂ２４０１は、集積回路Ａ２１０１から受信したパケットがシリアルリクエストパケットである場合には、該レスポンスパケットを復号した上でパラレルリクエストパケットを生成する。復号受信部Ｂ２４０１は、該パラレルリクエストパケットのアドレスを解析し、該パラレルリクエストパケットがレジスタＢ２４０６に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをレジスタＢ２４０６に送信する。復号受信部Ｂ２４０１は、該パラレルリクエストパケットのアドレスを解析し、該パラレルリクエストパケットがレジスタメモリＢ２１１３あるいはＩＰＢ２１１５に対するアクセス要求を含むパラレルリクエストパケットであれば、該パラレルリクエストパケットをリクエスト受信制御部Ｂ２４０５に送信する。復号受信部Ｂ２４０１は、受信したシリアルパケットが割り込みパケットである場合には、該シリアルコントロールパケットを割り込み受信制御部Ｂ２４０３に送信する。復号受信部Ｂ２４０１は、受信したシリアルパケットがイニシエータストップパケットあるいはイニシエータストップ解除パケットである場合には、該イニシエータストップパケットあるいはイニシエータストップ解除パケットをレジスタＢ２４０６に送信する。
【０３１３】
暗号化送信部Ｂ２４０２は、リクエスト送信制御部Ｂ２４０８からパラレルリクエストパケットを受信し、レスポンス送信制御部Ｂ２４０７およびレジスタＢ２４０６からパラレルレスポンスパケットを受信し、割り込み送信制御部Ｂ２４０９から割り込みパケットを受信し、これらの受信したパケットを信号線群ＢＡ２１２２を介して集積回路Ａ２１０１に送信する中継回路である。暗号化送信部Ｂ２４０２は、上記中継処理実行時に合わせて以下の処理を行う。暗号化送信部Ｂ２４０２は受信したパラレルリクエストパケットをシリアルリクエストパケットに、パラレルレスポンスパケットをシリアルレスポンスパケットにそれぞれ変換する。暗号化送信部Ｂ２４０２は、パケット計数部Ｂ２４１０から供給されるシリアルリクエストパケット送信許可信号がディアサート状態であるときには、集積回路Ａ２１０１へのシリアルリクエストパケット送信を行わない。暗号化送信部Ｂ２４０２は、集積回路Ａ２１０１へのシリアルリクエストパケット送信が完了するたびに、シリアルリクエストパケットの送信が完了した旨と、送信したシリアルリクエストパケットのrwフィールドの値を、パケット計数部Ｂ２４１０に通知する。暗号化送信部Ｂ２４０２は、後述のアップレーン数レジスタＢを参照し、該レジスタの値によって指定された数の信号線群ＡＢ２１２１に含まれる情報信号線群を用いてシリアルパケットを送信する。暗号化送信部Ｂ２４０２は、後述の暗号機能イネーブルレジスタＢの値と暗号化暗号鍵レジスタＢの値をそれぞれ参照し、該暗号機能イネーブルレジスタＢの値が暗号化機能が有効であることを示す値である場合には、該暗号化暗号鍵レジスタＡによって指定された暗号鍵を用いてシリアルリクエストパケットおよびシリアルレスポンスパケットの暗号化を行う。
【０３１４】
割り込み受信制御部Ｂ２４０３は、復号受信部Ｂ２４０１から割り込みパケットを受信して該割り込みパケットの内容を解析し、解析結果に基づいてＩＮＴＣＢ２１１４に対する割り込み信号を生成する割り込み情報中継回路である。
【０３１５】
レスポンス受信制御部Ｂ２４０４は、復号受信部Ｂ２４０１からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットをルータＢ２１１７に送信する中継回路である。
【０３１６】
リクエスト受信制御部Ｂ２４０５は、復号受信部Ｂ２４０１からパラレルリクエストパケットを受信し、該パラレルリクエストパケットをルータＢ２１１７に送信する中継回路である。
【０３１７】
レジスタＢ２４０６は、集積回路Ｂ２１１１がシリアルインタフェースによって集積回路Ａ２１０１との間で通信を行うために必要な制御情報を保持するための記憶装置である。レジスタＢ２４０６は、リクエスト受信制御部Ｂ２４０５から受信したパラレルリクエストパケットおよびシリアルコントロールパケットを解析し、解析結果に基づいて後述する各レジスタに対する処理を行い、処理結果に基づいてパラレルレスポンスパケットを生成し、該パラレルレスポンスパケットを暗号化送信部Ｂ２４０２に送信する。レジスタＢ２４０６はイニシエータストップリクエストを受信した場合、暗号化送信部Ｂ２４０２に対するイニシエータストップ信号をアサートし、イニシエータストップ解除リクエストを受信した場合、該イニシエータストップ信号をディアサートする。また、レジスタＢ２４０６は、イニシエータストップリクエストを受信した場合、後述のアウトスタンディングカウンタＢのカウント値を参照し、該カウント値が０になるまでイニシエータストップリクエストに対するパラレルレスポンスパケットの送信を遅らせる。
【０３１８】
続いて、図２５を用いてレジスタＢ２４０６に含まれるレジスタ群について説明する。
【０３１９】
図２５は、レジスタＢ２４０６に含まれるレジスタ群を示す図である。レジスタＢ２４０６は、最大ターゲットアウトスタンディングレジスタＢ、最大ターゲットリードアウトスタンディングレジスタＢ、最大ターゲットライトアウトスタンディングレジスタＢ、最大イニシエータアウトスタンディングレジスタＢ、最大イニシエータリードアウトスタンディングレジスタＢ、最大イニシエータライトアウトスタンディングレジスタＢ、暗号機能イネーブルレジスタＢ、復号暗号鍵レジスタＢ、暗号化暗号鍵レジスタＢ、ダウンレーン数レジスタＢ、アップレーン数レジスタＢ、モジュール電力制御レジスタＢ、モジュールクロック制御レジスタＢ、割り込み送信イネーブルレジスタＢ、イニシエータイネーブルレジスタＢを備えて構成される。
【０３２０】
最大ターゲットアウトスタンディングレジスタＢは、デバイスＢ２１１６がターゲットとして対応可能な最大アウトスタンディング数が保持されるレジスタである。最大ターゲットアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって更新される。ただし、該ライトアクセスのライトデータの値が５以上である場合には、最大アウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ２４０２にはアクセス失敗が通知される。
【０３２１】
最大ターゲットリードアウトスタンディングレジスタＢは、デバイスＢ２１１６がターゲットとして対応可能なリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ターゲットリードアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって更新される。ただし、ライトデータの値が５以上である場合には、最大ターゲットリードアウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ２４０２にはアクセス失敗が通知される。
【０３２２】
最大ターゲットライトアウトスタンディングレジスタＢは、デバイスＢ２１１６がターゲットとして対応可能なライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大ターゲットライトアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって更新される。ただし、ライトアクセスによって更新される値が５以上である場合には、最大ライトアウトスタンディングレジスタＢの値は更新されず、暗号化送信部Ｂ２４０２にはアクセス失敗が通知される。
【０３２３】
最大イニシエータアウトスタンディングレジスタＢは、デバイスＢ２１１６がイニシエータとして実行する最大アウトスタンディング数が保持されるレジスタである。最大イニシエータアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって値が更新される。
【０３２４】
最大イニシエータリードアウトスタンディングレジスタＢは、デバイス２１１６がイニシエータとして実行するリードアクセスの最大アウトスタンディング数が保持されるレジスタである。最大イニシエータリードアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスＢによって値が更新される。
【０３２５】
最大イニシエータライトアウトスタンディングレジスタＢは、デバイスＢ２１１６がイニシエータとして実行するライトアクセスの最大アウトスタンディング数が保持されるレジスタである。最大イニシエータライトアウトスタンディングレジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって値が更新される。
【０３２６】
暗号機能イネーブルレジスタＢは、デバイスＢ２１１６が送受信するシリアルリクエストパケットとシリアルレスポンスパケットが、暗号化されるか否かを設定するレジスタである。暗号機能イネーブルレジスタＢの値が‘１’である場合、シリアルリクエストパケットおよびシリアルレスポンスパケットはそれぞれシリアルインタフェース上を暗号化された状態で送受信される。
【０３２７】
復号暗号鍵レジスタＢは、復号受信部Ｂ２４０１が暗号を復号するときに使用する暗号鍵が保持されるレジスタである。
【０３２８】
暗号化暗号鍵レジスタＢは、暗号化送信部Ｂ２４０２がシリアルリクエストパケットおよびシリアルレスポンスパケットを暗号化するときに使用する暗号鍵を保持するレジスタである。
【０３２９】
ダウンレーン数レジスタＢは、信号線群ＡＢ２１２１に含まれる情報信号線群の本数を示すレジスタである。ダウンレーン数レジスタの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって更新される。
【０３３０】
アップレーン数レジスタは、信号線群ＢＡ２１２２に含まれる情報信号線群の本数を示すレジスタである。アップレーン数レジスタの値は、集積回路Ｂ２１１１の初期化時に１となり、集積回路Ａ２１０１によるライトアクセスによって更新される。
【０３３１】
モジュール電力制御レジスタＢは、ＩＰＢ２１１５に電力供給を行うか否かを示すレジスタである。モジュール電力制御レジスタＢの値が‘１’である場合、電力制御部Ｂ２１１８に対する電力供給信号がアサート状態に保持され、モジュール電力制御レジスタＢの値が‘０’である場合、電力制御部Ｂ２１１８に対する電力供給信号がディアサート状態に保持される。モジュール電力制御レジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、ライトアクセスによって更新される。
【０３３２】
モジュールクロック制御レジスタＢは、ＩＰＢ２１１５にクロック供給を行うか否かを示すレジスタである。モジュールクロック制御レジスタＢの値が‘１’である場合、クロック制御部Ｂ２１１９に対するクロック供給信号がアサート状態に保持され、モジュールクロック制御レジスタＢの値が‘０’である場合、クロック制御部Ｂ２１１９に対するクロック供給信号がディアサート状態に保持される。モジュールクロック制御レジスタＢの値は、集積回路Ｂ２１１１の初期化時に１となり、ライトアクセスによって更新される。
【０３３３】
割り込み送信イネーブルレジスタＢは、集積回路Ａ２１０１への割り込みパケット送信が許可されているか否かを示すレジスタである。割り込み送信イネーブルレジスタＢの値が‘０’である場合、集積回路Ａ２１０１への割り込みパケット送信は禁止であり、割り込み送信イネーブルレジスタＢの値が‘１’である場合、集積回路Ａ２１０１への割り込みパケット送信は許可されている。割り込み送信イネーブルレジスタＢの値は、集積回路Ｂ１０９の初期化時に‘０’となり、ライトアクセスによって更新される。
【０３３４】
イニシエータイネーブルレジスタＢは、集積回路Ｂ２１１１がシリアルインタフェースのイニシエータとして動作することが許可されているか否かを示すレジスタである。イニシエータイネーブルレジスタＢの値が‘１’である場合、集積回路Ｂ２１１１はシリアルインタフェースのイニシエータとして動作することが許可されており、イニシエータイネーブルレジスタＢの値が‘０’である場合、集積回路Ｂ２１１１はシリアルインタフェースのイニシエータとして動作することが禁止されている。イニシエータイネーブルレジスタＢの値は、集積回路Ｂ２１１１の初期化時に‘０’となり、ライトアクセスによって更新される。
【０３３５】
レスポンス送信制御部Ｂ２４０７は、ルータＢ２１１７からパラレルレスポンスパケットを受信し、該パラレルレスポンスパケットを暗号化送信部Ｂ２４０２に送信する中継回路である。
【０３３６】
リクエスト送信制御部Ｂ２４０８は、ルータＢ２１１７からパラレルリクエストパケットを受信し、該パラレルリクエストパケットを暗号化送信部Ｂ２４０２に送信する中継回路である。
【０３３７】
割り込み送信制御部Ｂ２４０９は、ＩＰＢ２１１５から割り込み送信要求を取り込み、該割り込み送信要求に基づいて割り込みパケットを生成し、該割り込みパケットを暗号化送信部Ｂ２４０２に送信する割り込み中継回路である。
【０３３８】
なお、本実施の形態の割り込みパケットのフォーマットは、第１の実施の形態の割り込みパケットのフォーマットと同一である。
【０３３９】
パケット計数部Ｂ２４１０は、アウトスタンディングカウンタＢ、リードアウトスタンディングカウンタＢ、ライトアウトスタンディングカウンタＢを備え、該カウンタの値を参照して暗号化送信部Ｂ２４０２へのシリアルリクエストパケット送信許可信号を生成する制御回路である。
【０３４０】
アウトスタンディングカウンタＢは、暗号化送信部Ｂ２４０２からシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ｂ２４０１からシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、アウトスタンディングカウンタＢはシリアルリクエストパケット送信とシリアルレスポンスパケット受信が同時に完了したときにはカウント値を変化させない。また、アウトスタンディングカウンタＢは、集積回路Ｂ２１１１の初期化時に０となる。
【０３４１】
リードアウトスタンディングカウンタＢは、暗号化送信部Ｂ２４０２からrwフィールドが‘１’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ｂ２４０１から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、リードアウトスタンディングカウンタＢはrwフィールドが‘１’であるシリアルリクエストパケットの送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、リードアウトスタンディングカウンタＢは、集積回路Ｂ２１０１の初期化時に０となる。
【０３４２】
ライトアウトスタンディングカウンタＢは、暗号化送信部Ｂ２４０２からrwフィールドが‘０’であるシリアルリクエストパケットの送信が完了したことを通知されるたびにカウント値を１増加させ、復号受信部Ｂ２４０１から前記シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が完了したことを通知されるたびにカウント値を１減少させる。ただし、ライトアウトスタンディングカウンタＢはrwフィールドが‘０’であるシリアルリクエストパケットの送信と該シリアルリクエストパケットに対応するシリアルレスポンスパケットの受信が同時に行われたときにはカウント値を変化させない。また、ライトアウトスタンディングカウンタＢは、集積回路Ｂ２１０１の初期化時に０となる。
【０３４３】
パケット計数部Ｂ２４１０は、最大アウトスタンディングレジスタＢの値と、最大リードアウトスタンディングレジスタＢの値と、最大ライトアウトスタンディングレジスタＢの値を参照する。パケット計数部Ｂ２４１０は、該最大アウトスタンディングレジスタＢの値が前記アウトスタンディングカウンタの値より大きく、かつ、該最大リードアウトスタンディングレジスタＢの値が前記リードアウトスタンディングカウンタの値より大きく、かつ、該最大ライトアウトスタンディングレジスタＢの値が前記ライトアウトスタンディングカウンタの値より大きいときに、暗号化送信部Ｂ２４０２に対するシリアルリクエストパケット送信許可信号をアサート状態に保持する。ただし、パケット計数部Ｂ２４１０はイニシエータストップ信号がアサートされているときには、シリアルリクエストパケット送信許可信号をディアサート状態に保持する。
【０３４４】
３ステートバッファＢ２４１１は、第１の実施の形態における３ステートバッファ２０２と同様の機能を持つ３ステートバッファであり、信号線群ＡＢ２１２１あるいは信号線群ＢＡ２１２２に含まれる情報信号線群の方向を切り替える。
【０３４５】
以下、本発明によるシリアルインタフェースを用いて、集積回路Ａ２１０１と集積回路Ｂ２１１１の間で実行されるアクセスと、割り込み処理について説明する。
【０３４６】
まず、第２の実施の形態におけるシリアルインタフェースの初期設定を図面を参照して説明する。
【０３４７】
図２６は、集積回路Ａ２１０１および集積回路Ｂ２１１１の使用開始から、シリアルインタフェースの初期化完了までの一連の初期設定処理を示すフローチャートである。集積回路Ａ２１０１および集積回路Ｂ２１１１の使用開始時には、集積回路Ａ２１０１および集積回路Ｂ２１１１に電力を供給し（ステップ２６０１）、つづいてリセット信号などを用いて初期化を行う（ステップ２６０２）。
【０３４８】
ステップ２６０２完了時における、レジスタＡ２２１０に含まれる各レジスタの値を図２７に、レジスタＢ２４０６に含まれる各レジスタの値を図２８に、それぞれ示す。
【０３４９】
最大ターゲットアウトスタンディングレジスタＢ、最大ターゲットリードアウトスタンディングレジスタＢおよび最大ターゲットライトアウトスタンディングレジスタＢの各値は１であり、集積回路Ｂ２１１１がシリアルインタフェースのターゲットとしてリードアクセスあるいはライトアクセスを最大で一回受け付けられることを示している。すなわち、この状態では、集積回路Ｂ２１１１は、集積回路Ａ２１０１からシリアルリクエストパケットを１パケット受信したら、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信し終わるまで、集積回路Ａ２１０１が送信する次のシリアルリクエストパケットを正常に処理することを保証しない。
【０３５０】
暗号機能イネーブルレジスタＢの値は、パケットが暗号化されないことを示している。ダウンレーン数レジスタＢは、ダウンレーンのレーン数が１であり、アップレーン数レジスタＢはアップレーンのレーン数が１であることをそれぞれ示している。
【０３５１】
イニシエータイネーブルレジスタＢの値は‘０’であり、集積回路Ｂ２１１１はシリアルインタフェースのイニシエータとしてアクセスを実行することを禁止されている。最大ターゲットアウトスタンディングレジスタＡ、最大ターゲットリードアウトスタンディングレジスタＡおよび最大ターゲットライトアウトスタンディングレジスタＡの各値は４であり、集積回路Ａ２１１１がシリアルインタフェースのターゲットとしてリードアクセスあるいはライトアクセスを最大で４回受け付けられることを示している。すなわち、この状態では、集積回路Ａ２１０１は、集積回路Ｂ２１１１からシリアルリクエストパケットを４パケット受信したら、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信し終わるまで、次の集積回路Ｂ２１１１が送信するシリアルリクエストパケットを正常に処理することを保証しない。
【０３５２】
暗号機能イネーブルレジスタＡの値は、パケットが暗号化されないことを示している。アップレーン数レジスタＡは、アップレーンのレーン数が１であり、ダウンレーン数レジスタＡはダウンレーンのレーン数が１であることをそれぞれ示している。
【０３５３】
この状態では、集積回路Ａ２１０１と集積回路Ｂ２１１１の間の転送能力は低く、外部からのアクセス情報取得を暗号化によって阻止することができない。また、集積回路Ｂ２１１１は集積回路Ａ２１０１に対してイニシエータとしてアクセスすることができない。そこでステップ２６０３からステップ２６０８までに示す各処理を実行して転送能力を高め、外部からのアクセス情報取得を阻止し、集積回路Ｂ２１１１から集積回路Ａ２１０１へのアクセスを実行できるようにする。
【０３５４】
まず、集積回路Ａ２１０１は、アップレーンとダウンレーンの本数を集積回路Ｂ２１１１とコントローラＡ２１０５に設定し、シリアルインタフェースのパケット転送能力を高める。
【０３５５】
本実施の形態において、信号線群ＡＢ２１２１および信号線群ＢＡ２１２２に含まれる情報信号線群の数はそれぞれ２本および４本である。このため、集積回路Ａ２１０１は、レジスタＢ２４０６のダウンレーン数レジスタには２を、アップレーン数レジスタには４を、それぞれライトアクセスにより書き込み、集積回路Ｂ２１１１に信号線群ＡＢ２１２１の情報信号線群の数が２であり、信号線群ＢＡ２１２２の情報信号線群の数が４である旨を通知する。
【０３５６】
また、集積回路Ａ２１０１内部においては、ＣＰＵＡ２１０２が、レジスタＡ２２１０のダウンレーン数レジスタＡには２を、アップレーン数レジスタＡには４をそれぞれ書き込み、コントローラＡ２１１６に信号線群ＡＢ２１２１の情報信号線群の数が２であり、信号線群ＢＡ２１２２の情報信号線群の数が４である旨を通知する（ステップ２６０３）。
【０３５７】
つづいて、集積回路Ａ２１０１および集積回路Ｂ２１１１に搭載された暗号化機能を有効化し、外部からのアクセス情報取得を阻止する。
【０３５８】
まず、集積回路Ａ２１０１は、第３のライトアクセスを実施してレジスタＢ２４０６の復号暗号鍵レジスタＢに、第４のライトアクセスを実施して暗号化暗号鍵レジスタＢに、それぞれ３２ビットの値を書き込み、集積回路Ｂ２１１１に暗号鍵を供給する。本実施の形態においては、復号暗号鍵レジスタＢと暗号化暗号鍵レジスタＢにそれぞれ“０１２３４５６７”（１６進数）と“８９ＡＢＣＤＥＦ”（１６進数）を書き込む。また、集積回路Ａ２１０１は、前記第３のライトアクセス完了後にレジスタＡ２２１０の暗号化暗号鍵レジスタＡに値“０１２３４５６７”（１６進数）を書き込み前記第４のライトアクセス完了後にレジスタＡ２２１０の復号暗号鍵レジスタＡに、“８９ＡＢＣＤＥＦ”（１６進数）を書き込む（ステップ２６０４）。
【０３５９】
つづいて、集積回路Ａ２１０１は、第５のライトアクセスを実行し、レジスタＢ２４１０の暗号化イネーブルレジスタＢに‘１’を書き込む。また、ＣＰＵＡ２１０２は、前記第５のライトアクセス完了後にレジスタＡ２２１０の暗号化イネーブルレジスタＡに‘１’を書き込む（ステップ２６０５）。
【０３６０】
つづいて、アウトスタンディング数上限値を増加させて集積回路Ｂ２１１１のアクセス受け付け能力およびアクセス実行能力を高め、シリアルインタフェースの転送能力を高める。
【０３６１】
集積回路Ａ２１０１は、最大ターゲットアウトスタンディングレジスタＢ、最大ターゲットリードアウトスタンディングレジスタＢ、最大ターゲットライトアウトスタンディングレジスタＢの値を、第１、第２および第３のリードアクセスによって順次読み出し、それぞれのレジスタからそれぞれ値４、値２、値２を得、これらの数値をレジスタＡ２２１０の最大イニシエータアウトスタンディングレジスタＡ、最大イニシエータリードアウトスタンディングレジスタＡ、最大イニシエータライトアウトスタンディングレジスタＡにそれぞれ設定し、集積回路Ａ２１０１のイニシエータとしてのアクセス実行能力を高める。
【０３６２】
また、集積回路Ａ２１０１は、最大イニシエータアウトスタンディングレジスタＢには最大ターゲットアウトスタンディングレジスタＡの値である値４を、最大イニシエータリードアウトスタンディングレジスタＢには最大ターゲットリードアウトスタンディングレジスタＡの値である値４を、最大イニシエータライトアウトスタンディングレジスタＢにはレジスタＡ２２１０の最大ターゲットライトアウトスタンディングレジスタＡの値である値４を、それぞれ設定し、集積回路Ｂ２１１１のイニシエータとしてのアクセス実行能力を高める（ステップ２６０６）。
【０３６３】
初期設定シーケンスの最後の処理として、集積回路Ａ２１０１は、イニシエータ機能イネーブルレジスタＢに‘１’をライトして、集積回路Ｂ２１１１がイニシエータとしてアクセスを実行できるようにする（ステップ２６０７）。
【０３６４】
以上で、第２の実施の形態の初期設定シーケンスは完了である。初期設定シーケンスの実行により、集積回路Ａ２１０１と集積回路Ｂ２１１１の間の転送能力は高まり、外部からのアクセス情報取得は暗号化によって阻止され、集積回路Ｂ２１１１はイニシエータとして集積回路Ａ２１０１にアクセスできるようになった。
【０３６５】
つづいて、レーン数変更処理について説明する。本実施の形態におけるレーン数変更処理と、第１の実施の形態におけるレーン数変更処理の主な相違は、集積回路Ｂ２１１１のイニシエータ機能を停止するか否かである。第１の実施の形態では、集積回路Ｂ１０９にシリアルインタフェースのイニシエータ機能が存在しないため、集積回路Ａ１０１のイニシエータがアウトスタンディングを解消し、割り込みパケットの送信を禁止すればレーン数変更処理を開始できたが、本実施の形態では、集積回路Ｂ２１１１にシリアルインタフェースのイニシエータ機能があるため、該イニシエータ機能をレーン数変更処理を開始する前に停止しなければならない。
【０３６６】
以下、本実施の形態におけるレーン数変更処理について図面を参照して説明する。
【０３６７】
図２９はレーン数変更シーケンスの処理の流れを示すフローチャートである。本実施の形態では、集積回路Ａ２１０１が、ダウンレーン数を４に、アップレーン数を２に変更し、集積回路Ａ２１０１からのライトアクセスと、集積回路Ｂ２１１１からのリードアクセスの処理性能を改善するときの動作を説明する。
【０３６８】
まず、ＣＰＵＡ２１０２は、集積回路Ｂ２１１１のイニシエータ機能を停止し、レーン数変更シーケンス実行中に集積回路Ｂ２１１１のイニシエータによるシリアルリクエストパケットが送信されないようにする。このために、ＣＰＵＡ２１０２は、レジスタＡ２２１０のイニシエータストップレジスタＡに‘１’をライトして、集積回路Ｂ２１１１にイニシエータストップパケットを送信する。イニシエータストップコントロールパケットを受信した集積回路Ｂ２１１１のデバイスＢ２１１６は、以下の動作を行う。デバイスＢ２１１６による新規のシリアルリクエストパケット送信を禁止する。既に送信済みのシリアルリクエストパケットに対して、未受信のシリアルレスポンスパケットが存在する場合、該シリアルレスポンスパケットを受信するまで待機する。前記シリアルレスポンスパケットの受信が完了したら、イニシエータストップコントロールパケットに対するシリアルレスポンスパケットを送信する。ここまでがステップ２９０１の処理である。
【０３６９】
集積回路Ａ２１０１側の処理の説明に戻る。ＣＰＵＡ２１０２は、レジスタＢ２４０６のダウンレーン数レジスタＢに対してライトアクセスを実行する。本実施の形態においては、シリアルインタフェースを用いて集積回路Ｂ２１１１にアクセスするモジュールがＣＰＵＡ２１０２以外に存在する。このため、ＣＰＵＡ２１０２がＣＰＵＡ２１０２のアウトスタンディングを解消しても、コントローラＡ２１０６の集積回路Ｂ２１１１に対するアウトスタンディングが解消さる保障がない。このため、ＣＰＵＡ２１０２の制御によるのではではなく、コントローラＡ２１０６が主体となってレーン数変更処理を実行する。
【０３７０】
コントローラＡ２１０６は該ライトアクセスを検出して、発行済みのシリアルリクエストパケットに対するシリアルレスポンスパケットを全て受信するまで新規シリアルリクエストパケット送信を停止し、コントローラＡ２１０６の集積回路Ｂ２１１１に対するアウトスタンディング数をゼロにする（ステップ２９０２）。
【０３７１】
次に、コントローラＡ２１０６は、割り込み送信イネーブルレジスタＢに‘０’を書き込み、集積回路Ｂ２１１１の割り込みパケット送信を停止する（ステップ２９０３）。コントローラＡ２１０６は、集積回路Ｂ２１１１のアップレーン数レジスタに２を書き込むためのシリアルリクエストパケットを集積回路Ｂ２１１１に送信する（ステップ２９０４）。
【０３７２】
集積回路Ｂ２１１１は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信し、送信が完了した直後にアップレーンのうちの２本の駆動を停止する。コントローラＡは、該シリアルレスポンスパケット受信後に、アップレーン数レジスタＡに２を書き込む。（ステップ２９０５）。
【０３７３】
次に、コントローラＡ２１０６は、ダウンレーン数レジスタに値４を書き込むためのシリアルリクエストパケットを集積回路Ｂ２１１１に送信する（ステップ２９０６）。集積回路Ｂ２１１１は、該シリアルリクエストパケットに対するシリアルレスポンスパケットを送信する。コントローラＡ２１０６は、該シリアルレスポンスパケット受信後に、ダウンレーン数レジスタＡに４を書き込む。（ステップ２９０７）。
【０３７４】
集積回路Ａ２１０１は、ダウンレーン数レジスタＡに４が書き込まれた直後にステップ２９０５において集積回路Ｂ２１１１が駆動を停止した２本の信号線の駆動を開始する（ステップ２９０８）。ステップ２９０８完了時点においては、ダウンレーン数が４であり、アップレーン数が２である。これにより、初期設定シーケンス完了直後に比して、集積回路Ａ２１０１側からはライトアクセスが、集積回路Ｂ２１１１側からはリードアクセスを高速に処理できる。
【０３７５】
つづいて、コントローラＡ２１０６は、割り込み送信イネーブルレジスタＢに値１を書き込み、集積回路Ｂ２１１１から集積回路Ａ２１０１への割り込みパケット転送停止を解除する（ステップ２９０９）。
【０３７６】
最後に、コントローラＡ２１０６は、レジスタＡ２２１０のイニシエータストップレジスタＡに‘０’をライトして、集積回路Ｂ２１１１にイニシエータストップ解除パケットを送信する。（ステップ２９１０）。
【０３７７】
以上で第２の実施の形態におけるレーン数変更処理は終了である。なお、暗号鍵やアウトスタンディング数を変更するときには、前記ステップ２９０１を暗号鍵変更シーケンスやアウトスタンディング変更シーケンスの前に実行し、前記ステップ２９１０を暗号鍵変更シーケンスやアウトスタンディング変更シーケンスの後に実行する。これにより、シリアルインタフェースに複数のイニシエータが存在する本実施の形態の構成であっても、暗号鍵やアウトスタンディング数の変更が可能である。
【０３７８】
最後に、集積回路Ａ２１０１に搭載されたＩＰＡ２１０５が生成した割り込み要求に基づいて、集積回路Ｂ２１１１に搭載されたＣＰＵＢ２１１２が割り込み処理を実行する過程を説明する。
【０３７９】
まず、集積回路Ａ２１０１における割り込み処理を説明する。ＩＰＡ２１０５は、動作設定レジスタを内蔵し、該動作設定レジスタに対してルータＡ２１０７を介してライトアクセスを受けると、あらかじめ決められた処理を実行し、該処理が完了すると割り込み信号をアサートしてコントローラＡ２１０６に処理が完了した旨を通知し、再度動作設定レジスタにライトアクセスを受けるまで動作を停止する。
【０３８０】
ＩＰＡ２１０５が割り込み要求信号をアサートすると、コントローラＡ２１０６の割り込み送信制御部Ａ２２０３は割り込みパケットを生成し、該割り込みパケットを暗号化送信部Ａ２２０４に送信する。
【０３８１】
暗号化送信部Ａ２２０４は、割り込みパケットを集積回路Ｂ２１１１に送信する。このとき、暗号化送信部Ａ２２０４は、暗号機能イネーブルレジスタＡの状態とは無関係に割り込みパケットを暗号化せずに送信する。また、暗号化送信部Ａ２２０４は、割り込み送信制御部Ａ２２０３からの割り込みパケットと、リクエスト送信制御部Ａ２２０１からのパラレルリクエストパケットとレスポンス送信制御部Ａ２２０２からのパラレルレスポンスパケットを受信していた場合、割り込みパケットを先に送信する。
【０３８２】
暗号化送信部Ａ２２０４が割り込みパケットを暗号化しない理由は、暗号鍵変更シーケンス実施中にＩＰＡ２１０５からの割り込み要求が発生した場合に、割り込みパケットの転送が遅れるのを防ぐためである。また、暗号化送信部Ａ２２０４が割り込みパケットをシリアルリクエストパケットやシリアルレスポンスパケットよりも先に送信するのは、割り込みパケットを早く集積回路Ｂ２１１１に転送することによって、ＣＰＵＢ２１１２の割り込み処理を早く起動するためである。
【０３８３】
つづいて、集積回路Ｂ２１１１の割り込み処理について説明する。デバイスＢ２１１６の復号受信部Ｂ２４０１は、集積回路Ａ２１０１からシリアルパケットを受信し、該シリアルパケットを解析して該パケットが割り込みパケットであることを特定し、割り込み受信制御部Ｂ２４０３に対して該割り込みパケットを送信する。割り込み受信制御部Ｂ２４０３は、復号受信部Ｂ２４０１から受信した割り込みパケットを解析し、割り込み信号をアサートしてＩＮＴＣＢ２１１４に割り込みを通知する。このとき、割り込みパケットのreqccフィールドのビット３からビット０までに基づいて割り込みレベル情報を生成し、割り込みパケットのintcodeフィールドに基づいて割り込みコード情報を生成し、該レベル情報と該コード情報をＩＮＴＣＢ２１１４に合わせて供給する。
【０３８４】
ＩＮＴＣＢ２１１４は、割り込み信号をアサートしＣＰＵＢ２１１２に割り込みが発生した旨を通知する。
【０３８５】
ＣＰＵＢ２１１２は、割り込みを受け付け、現在実行中の処理を中断して割り込み処理プログラムを実行し、ＩＰＡ２１０５が生成したデータをメモリＡ２１０３から読み出してメモリＢ２１１３に格納し、さらにＩＰＡ２１０５の動作設定レジスタに対して、ルータＢ２１１７、デバイスＢ２１１６、コントローラＡ２１０６、ルータＡ２１０７を介してライトアクセスを行い、再度動作させる。
【０３８６】
以上の割り込み処理を繰り返すことにより、集積回路Ｂ２１１１からの制御によって集積回路Ａ２１０１のＩＰＡ２１１５を反復動作させることが可能となる。
【０３８７】
以上説明した第２の実施の形態によれば、第１の実施の形態において述べた効果を、複数のイニシエータがシリアルインタフェースに接続された構成においても同様に実現できる。
【０３８８】
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
【図面の簡単な説明】
【０３８９】
【図１】本発明の第１の実施の形態にかかる集積回路Ａ１０１と集積回路Ｂ１０９のブロック図である。
【図２】本発明の第１の実施の形態に係る信号線群ＡＢ１０７と信号線群ＢＡ１０８を示す図である。
【図３】本発明の第１の本実施の形態にかかるスプリットプロトコルを示すタイミングチャートである。
【図４】本発明の第１の実施の形態に係るシリアルリクエストパケットのフォーマットを示す図である。
【図５】本発明の第１の実施の形態に係るlaszフィールドとアクセス対象アドレスの下位ビットと転送サイズの関係を示す関係図である。
【図６】本発明の第１の実施の形態に係るシリアルレスポンスパケットフォーマットを示す図である。
【図７】本発明の第１の実施の形態に係るdssフィールドの値と、アクセス成否およびリードデータ量の関係を示す関係図である。
【図８】本発明の第１の実施の形態に係るシリアルコントロールパケットフォーマットを示す図である。
【図９】本発明の第１の実施の形態に係るシリアルインタフェースにおけるシリアルリクエストパケットおよびシリアルコントロールパケットの転送の様子を示す図である。
【図１０】本発明の第１の実施の形態に係るシリアルインタフェースにおけるシリアルレスポンスパケットおよびシリアルコントロールパケットの転送の様子を示す図である。
【図１１】本発明の第１の実施の形態に係るイニシエータＡ１０５の構造を示すブロック図である。
【図１２】本発明の第１の実施の形態に係るレジスタ７０７に含まれるレジスタ群を示す図である。
【図１３】本発明の第１の実施の形態にターゲットＢ１１２の構成を示すブロック図である。
【図１４】本発明の第１の実施の形態に係るレジスタＢ１３０４に含まれるレジスタ群を示す図である。
【図１５】本発明の第１の実施の形態に係るシリアルインタフェースの初期設定処理を示すフローチャートである。
【図１６】本発明の第１の実施の形態に係る初期化完了時のレジスタＡ１１０７およびレジスタＢ８０４に含まれる各レジスタの値を示す図である。
【図１７】本発明の第１の実施の形態に係るレーン数変更シーケンスの流れを示すフローチャートである。
【図１８】本発明の第１の実施の形態に係るレーン数変更シーケンスの処理の流れを示すフローチャートである。
【図１９】本発明の第１の実施の形態に係るリクエストレーン数とレスポンスレーン数を設定するための数表である。
【図２０】本発明の第１の実施の形態に係る暗号鍵数変更シーケンスの処理の流れを示すフローチャートである。
【図２１】本発明の第２の実施の形態にかかる集積回路Ａ２１０１と集積回路Ｂ２１１１のブロック図である。
【図２２】本発明の第２の実施の形態にかかるコントローラＡ２１０６の構成を示すブロック図である。
【図２３】本発明の第２の実施の形態にかかるレジスタ２２１０に含まれるレジスタ群を示す図である。
【図２４】本発明の第２の実施の形態にかかるデバイスＢ２１１６の構成を示すブロック図である。
【図２５】本発明の第２の実施の形態にかかるレジスタＢ２４０６に含まれるレジスタ群を示す図である。
【図２６】本発明の第２の実施の形態に係るシリアルインタフェースの初期設定処理を示すフローチャートである。
【図２７】本発明の第２の実施の形態にかかるレジスタＡ２２１０に含まれる各レジスタの値を示す図である。
【図２８】本発明の第２の実施の形態にかかるレジスタＢ２４０６に含まれる各レジスタの値を示す図である。
【図２９】本発明の第２の実施の形態にかかるレーン数変更シーケンスの処理の流れを示すフローチャートである。
【符号の説明】
【０３９０】
１０１，１０２  集積回路
１０５  イニシエータ
１１２  ターゲット
１１０１  リクエスト送信制御部
１１０２  レスポンス受信制御部
１１０３  割込み受信制御部
１１０４  暗号化送信部
１１０５  パケット計数部
１１０６  復号受信部
１１０７  レジスタ
１３０１  復号受信部
１３０２  暗号化送信部
１３０３  リクエスト受信制御部
１３０４  レジスタ
１３０５  レスポンス送信制御部
１３０６  割込み送信制御部
【図１】
2009059122.tif 000003
【図２】
2009059122.tif 000004
【図３】
2009059122.tif 000005
【図４】
2009059122.tif 000006
【図５】
2009059122.tif 000007
【図６】
2009059122.tif 000008
【図７】
2009059122.tif 000009
【図８】
2009059122.tif 000010
【図９】
2009059122.tif 000011
【図１０】
2009059122.tif 000012
【図１１】
2009059122.tif 000013
【図１２】
2009059122.tif 000014
【図１３】
2009059122.tif 000015
【図１４】
2009059122.tif 000016
【図１５】
2009059122.tif 000017
【図１６】
2009059122.tif 000018
【図１７】
2009059122.tif 000019
【図１８】
2009059122.tif 000020
【図１９】
2009059122.tif 000021
【図２０】
2009059122.tif 000022
【図２１】
2009059122.tif 000023
【図２２】
2009059122.tif 000024
【図２３】
2009059122.tif 000025
【図２４】
2009059122.tif 000026
【図２５】
2009059122.tif 000027
【図２６】
2009059122.tif 000028
【図２７】
2009059122.tif 000029
【図２８】
2009059122.tif 000030
【図２９】
2009059122.tif 000031