(57)【要約】【課題】データの転送効率を向上させることができる、半導体装置を提供する。【解決手段】データを送受信するシリアルインターフェース１７と、ＬＦＳＲ値を用いてスクランブルされたデータをシリアルインターフェース１７を介して受信し、ＬＦＳＲ値を用いてデスクランブルするデスクランブラ３２と、データの送信側コンポーネント２１Ａから所定の時間間隔で送信されるSKP OSからデータのスクランブルに用いたＬＦＳR値を検出するLFSR値検出部３６と、LFSR検出部３６で検出されたLFSR値とデスクランブラ３２で用いられたLFSR値とを比較するLFSR値比較部３８と、LFSR値比較部３８の結果に基づき、データの送信側コンポーネント２１Ａにリカバリを実行させるコントローラ４０と、を備えたことを特徴とする。【選択図】図３
2014057269.tif 000002
【特許請求の範囲】
【請求項１】
PCI Expressアーキテクチャの通信プロトコルでデータを送受信する通信回路と、
第１の線形帰還シフトレジスタによって生成される第１のＬＦＳＲ値を用いてスクランブルされたデータを前記通信回路を介して受信し、第２の線形帰還シフトレジスタによって生成される第２のＬＦＳＲ値を用いてデスクランブルするデスクランブル部と、
前記通信回路により通信を行う通信相手から所定の時間間隔で送信される前記第１のＬＦＳＲ値の情報が含まれるパケットを、前記通信回路を介して受信し、前記パケットから前記第１のＬＦＳＲ値を検出する検出部と、
前記検出器で検出された前記第１のＬＦＳＲ値と、前記第２のＬＦＳＲ値とを比較する比較部と、
前記比較部の結果に基づき、前記データの送信側に前記通信回路が採用する通信アーキテクチャに規定されるリカバリを実行させるコントローラと、
を備え、
前記比較部において、前記第１のＬＦＳＲ値と前記第２のＬＦＳＲ値とが不一致であると判定された場合、前記通信回路により通信を行う通信相手から受信するデータの転送を停止することを特徴とする半導体装置。
【請求項２】
データを送受信する通信回路と、
第１の疑似乱数を用いてスクランブルされたデータを前記通信回路を介して受信し、第２の疑似乱数を用いてデスクランブルするデスクランブル部と、
前記通信回路により通信を行う通信相手から所定の時間間隔で送信される前記第１の疑似乱数の情報が含まれるパケットを、前記通信回路を介して受信し、前記パケットから前記第１の疑似乱数を検出する検出部と、
前記検出器で検出された前記第１の疑似乱数と、前記第２の疑似乱数とを比較する比較部と、
前記比較部の結果に基づき、前記データの送信側に前記通信回路が採用する通信アーキテクチャに規定されるリカバリを実行させるコントローラと、
を備えたことを特徴とする半導体装置。
【請求項３】
前記比較部において、前記第１の疑似乱数と前記第２の疑似乱数とが不一致であると判定された場合、前記通信回路により通信を行う通信相手から受信するデータの転送を停止することを特徴とする、請求項２に記載の半導体装置。
【請求項４】
前記通信回路は、前記データをシリアルデータ形式で送受信することを特徴とする、請求項２又は請求項３に記載の半導体装置。
【請求項５】
前記第１及び第２の疑似乱数は、線形帰還シフトレジスタによって生成されるＬＦＳＲ値であることを特徴とする、請求項２乃至請求項４に記載の半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、半導体装置に関する。
【背景技術】
【０００２】
従来、チップ間、ボード間及びシステム間で行われるデータ通信には、各種アーキテクチャが存在している。例えば、各種アーキテクチャの一つに、PCI（Peripheral Component Interconnect） Express規格がある。PCI Expressは、転送速度の高速化とデータ転送の安定化を図るために開発された、高速なシリアルインターフェースである。現在までにGen1、Gen2、Gen3、の３世代の規格が開発されており、最も直近に開発されたGen３では、8.0GT/sのデータ転送速度を実現している。
【０００３】
PCI Expressは、トランザクション層、データリンク層、MAC(Media Access Controller)層、物理層、の４層からなるレイヤ構造で定義されている。
【０００４】
PCI Express Gen3において、トランザクション層で生成及び消費されるデータパケットであるTLP(Transaction Layer Packet)や、データリンク層で生成及び消費されるデータパケットであるDLLP(Data Link Layer Packet)は、次のように転送が行われている。まず、送信側では、トランザクション層やデータリンク層で生成されたTLP／DLLPがMAC層でスクランブルされた後に、送信側の物理層で１２８ビットから１３０ビットにエンコードされ、シリアル伝送路を通じて受信側の物理層へドライブされる。
【０００５】
受信側では、受信したTLP／DLLPが物理層で１３０ビットから１２８ビットにデコードされ、MAC層でデスクランブルされ、トランザクション層やデータリンク層に送られる。受信側のMAC層はデスクランブル処理の他に、受信したTLP／DLLPについてのエラーチェックが行われており、一度エラーが検出されると、以降に受信したTLP／DLLPがトランザクション層やデータリンク層に送信されない仕組みになっている。従って、データリンク層からリトレインが要求されるまでの一定期間、TLP／DLLPを受信してもデータ転送が行われなくなってしまうという問題があった。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００５−２６８９１０号公報
【特許文献２】特開平０３−８０７２９号公報
【特許文献３】特開平１１−２５２０６２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
本実施形態は、データの転送効率を向上させることができる、半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本実施形態の半導体装置は、データを送受信する通信回路と、第１の疑似乱数を用いてスクランブルされたデータを前記通信回路を介して受信し、第２の疑似乱数を用いてデスクランブルするデスクランブル部と、前記通信回路により通信を行う通信相手から所定の時間間隔で送信される前記第１の疑似乱数の情報が含まれるパケットを、前記通信回路を介して受信し、前記パケットから前記第１の疑似乱数を検出する検出部と、前記検出器で検出された前記第１の疑似乱数と、前記第２の疑似乱数とを比較する比較部と、前記比較部の結果に基づき、前記データの送信側に前記通信回路が採用する通信アーキテクチャに規定されるリカバリを実行させるコントローラと、を備えたことを特徴とする。
【図面の簡単な説明】
【０００９】
【図１】本実施形態に係わるパーソナルコンピュータの一例を説明する構成図。
【図２】PCI Expressアーキテクチャのハードウェア構成図。
【図３】本実施形態に係わるPCI Expressアーキテクチャを用いたコンポーネントの詳細なハードウェア構成図。
【図４】コンポーネント２１Ａ、２１Ｂ間でのパケットデータの送受信の流れを経時的に説明する図。
【発明を実施するための形態】
【００１０】
以下、図面を参照して実施形態を説明する。
【００１１】
図１は、本実施形態に係わるパーソナルコンピュータの一例を説明する構成図である。パーソナルコンピュータ（以下、PCという）１は、PC１の全体の制御を行うCPU（中央処理装置）１１と、最上位のI/O構造を構成するルートコンプレックス１２と、スイッチ１３と、デバイス１４，１５を含んで構成されている。
【００１２】
CPU１１とルートコンプレックス１２は、マザーボード（図示せず）に搭載される。ルートコンプレックス１２は、バス１６により、CPU１１と接続されている。ルートコンプレックス１２は、シリアルインターフェース１７ａにより、スイッチ１３と接続されている。スイッチ１３は、シリアルインターフェース１７ｂにより、デバイス１４と接続され、さらに、スイッチ１３は、シリアルインターフェース１７ｃにより、デバイス１５と接続されている。ここでは、エンドポイントであるデバイス１４は、例えばハードディスクドライブ装置であり、デバイス１５は、例えば半導体素子メモリを用いたＳＳＤ（Solid State Drive）である。スイッチ１３は、ルートコンプレックス１２と、複数のデバイスとの接続を可能にするデバイスである。
【００１３】
なお、図１においては、エンドポイントであるデバイス１４、１５は、スイッチ１３を介してルートコンプレックス１２に接続されるように構成しているが、スイッチ１３を介さずに直接ルートコンプレックス１２に接続されるような構成もとることができる。
【００１４】
ルートコンプレックス１２は、シリアルインターフェース１７ａを介するスイッチ１３との通信のための通信制御部１２ａを有している。スイッチ１３は、シリアルインターフェース１７ａを介するルートコンプレックス１２との通信のための通信制御部１３ａと、シリアルインターフェース１７ｂを介するデバイス１４との通信のための通信制御部１３ｂと、シリアルインターフェース１７ｃを介するデバイス１５との通信のための通信制御部１３ｃとを有している。デバイス１４も、シリアルインターフェース１７ｂを介するスイッチ１３との通信のための通信制御部１４ａを有し、同様に、デバイス１５も、シリアルインターフェース１７ｃを介するスイッチ１３との通信のための通信制御部１５ａを有している。
【００１５】
通信制御部１２ａは、ルートコンプレックス１２の他の回路と共に１つの半導体装置内に含まれている。なお、通信制御部１２ａは、マザーボード上の１つのチップとしての半導体装置として実現されていてもよい。
【００１６】
他の通信制御部１３ａ、１３ｂ、１３ｃ、１４ａ、１５ａのそれぞれも、１つ半導体装置に形成されていてもよいし、CPU、他の回路と共に１つの半導体装置に含まれるものであってもよい。
【００１７】
スイッチ１３は、内部のバス１３Ａに接続されたCPU１３Ｂを有しており、バス１３Ａには、通信制御部１３ａ、１３ｂ、１３ｃが接続されている。
【００１８】
同様に、デバイス１４も、内部のバス１４Ａにそれぞれが接続されたCPU１４Ｂおよびハードディスク装置（HD）を有しており、バス１４Ａには、通信制御部１４ａが接続されている。
【００１９】
デバイス同士は、シリアルインターフェース１７ａ、１７ｂ、１７ｃを介して、PCI Expressアーキテクチャの通信プロトコルで通信可能となっている。例えば、ルートコンプレックス１２の通信制御部１２ａは、バス１６を介してCPU１１からスイッチ１３へ送信するデータ（送信データ）を受信すると、PCI Expressのシリアルインターフェース１７ａを介して送信データをスイッチ１３の通信制御部１３ａへ送信する。また、ルートコンプレックス１２の通信制御部１２ａは、PCI Expressのシリアルインターフェース１７ａを介して、スイッチ１３の通信制御部１３ａからのデータ（受信データ）を受信する。
【００２０】
同様に、スイッチ１３の通信制御部１３ａは、内部のCPU１３Ｂからルートコンプレックス１２へ送信するパケットデータ（以下、送信データという）を受信すると、PCI Expressのシリアルインターフェース１７ａを介して送信データをルートコンプレックス１２の通信制御部１２ａへ送信する。また、スイッチ１３の通信制御部１３ａは、PCI Expressのシリアルインターフェース１７ａを介して、ルートコンプレックス１２の通信制御部１２ａからのデータ（受信データ）を受信する。  
他の通信制御部１３ｂ、１３ｃ、１４ａ、１５ａも、それぞれのシリアルインターフェース１７ｂ、１７ｃを介するデータの送受信を行う。なお、各通信制御部は、半導体装置内の回路として構築される。
【００２１】
次に、通信制御部１２ａ、１３ａ、１３ｂ、１３ｃ、１４ａ、１５ａに実装されているPCI Expressアーキテクチャのハードウェア構成について、図２を参照して説明する。図２は、PCI Expressアーキテクチャのハードウェア構成図である。
【００２２】
図２において、コンポーネント２１Ａは、例えば、ルートコンプレックス１２の通信制御部１２ａにおけるPCI Expressアーキテクチャの実装部分であり、コンポーネント２１Ｂは、スイッチ１３の通信制御部１３ａにおけるPCI Expressアーキテクチャの実装部分を表している。コンポーネント２１Ａは、PCI Expressアーキテクチャにおけるトランザクション層、データリンク層、ＭＡＣ層、物理層の４つの層からなる階層構造にそれぞれ対応している、トランザクション部２２ａ、データリンク部２３ａ、ＭＡＣ部２４ａ、物理回路部２５ａを有している。また、コンポーネント２１Bは、コンポーネント２１Ａと同様に、PCI Expressアーキテクチャにおけるトランザクション層、データリンク層、ＭＡＣ層、物理層の４つの層からなる階層構造にそれぞれ対応している、トランザクション部２２ｂ、データリンク部２３ｂ、ＭＡＣ部２４ｂ、物理回路部２５ｂを有している。
【００２３】
PCI Expressアーキテクチャにおけるトランザクション層に対応するトランザクション部２２ａ、２２ｂは、TLPの生成及び復号を主に担っている。PCI Expressアーキテクチャにおけるデータリンク層に対応するデータリンク部２３ａ、２３ｂは、パケット全体のフローを制御し、また、DLLPの生成及び復号などを担う。PCI ExpressアーキテクチャにおけるＭＡＣ層に対応するＭＡＣ部２４ａ、２４ｂは、上位層から送られてくるパケットのフレーミングや送信するパケットデータのスクランブル、下位層から送られてくるパケットのデフレーミングや受信したパケットデータのデスクランブルを主に担っている。
【００２４】
また、ＭＡＣ部２４ａ、２４ｂでは、TLP/DLLP送信中において、データの送受信が行われるコンポーネント間のクロック速度の差を補正するために、SKPパケット（以下、SKP Ordered Set、SKP OSと示す）を定期的に生成して互いに送信する。PCI Expressアーキテクチャにおける物理層に対応する物理回路部２５ａ、２５ｂは、送信するパケットデータを１２８ビットから１３０ビットにエンコードしたり、受信したパケットデータデータを１３０ビットから１２８ビットにデコードしたり、パケットデータを送受信するコンポーネント間のリンクの制御を主に担っている。
【００２５】
物理回路部２５ａ、２５ｂは、他のコンポーネントと接続してデータを送受信するための複数のポートTxp、Txn、Rxp、Rxn、…を備えている。コンポーネント２１ＡのポートTxp、Txnはパケットを送信するためのポートであり、コンポーネント２１ＢのポートRxp、Rxnとそれぞれ接続されている。また、コンポーネント２１ＡのポートRxp、Rxnはパケットを受信するためのポートであり、コンポーネント２１ＢのポートTxp、Txnとそれぞれ接続されている。
【００２６】
コンポーネント２１ＡのポートTxp、Txnと、コンポーネント２１ＢのポートRxp、Rxnとをそれぞれ接続している２本の配線（コンポーネント２１Ａ側に関する送信側の１対の配線）と、コンポーネント２１ＡのポートRxp、Rxnと、コンポーネント２１ＢのポートTxp、Txnとをそれぞれ接続している２本の配線（コンポーネント２１Ａ側に関する受信側の１対の配線）の４本の配線で１つのレーンを構成している。図２において、コンポーネント２１Ａとコンポーネント２１Ｂは、レーン０、レーン１、…、レーンＮの複数のレーンで接続されている。
【００２７】
すなわち、コンポーネント２１Ａが、例えば、ルートコンプレックス１２の通信制御部１２ａにおけるPCI Expressアーキテクチャの実装部分であり、コンポーネント２１Ｂが、スイッチ１３の通信制御部１３ａにおけるPCI Expressアーキテクチャの実装部分を表しているとした場合、シリアルインターフェース１７ａは（Ｎ＋１）組のレーンで構成されていることになる。なお、コンポーネント間を接続するシリアルインターフェースのレーンの数は使用用途や必要とされるデータ帯域に応じて１レーンから３２レーン程度にまで拡張することもできる。
【００２８】
図３は、本実施形態に係わるPCI Expressアーキテクチャを用いたコンポーネントの詳細なハードウェア構成図である。図３では、図２に示すコンポーネント２１Ａからコンポーネント２１Ｂに対してTLP／DLLPが送信される場合について、ＭＡＣ部２４ａ、２４ｂ及び物理回路部２５ａ、２５ｂの詳細な構成について説明する。
【００２９】
TLP／DLLPの送信側であるコンポーネント２１ＡのＭＡＣ部２４ａは、送信データをスクランブルするスクランブラ３１ａと、受信データをデスクランブルするデスクランブラ３２ａを備えている。なお、スクランブラ３１ａとデスクランブラ３２ａは、線形帰還シフトレジスタによって生成する疑似乱数（LFSR値）を用いてスクランブルやデスクランブルを行う。スクランブルに用いたLFSR値は、SKP OS内に組み込まれており、定期的にコンポーネント２１Bに対して送信される。
【００３０】
同じくTLP／DLLPの送信側であるコンポーネント２１Ａの物理回路部２５ａは、送信データを１２８ビットから１３０ビットにエンコードするエンコーダ３３ａと、受信データを１３０ビットから１２８ビットにデコードするデコーダ３４ａとを備えている。
【００３１】
一方、TLP／DLLPの受信側であるコンポーネント２１Bの物理回路部２５ｂは、受信データを１３０ビットから１２８ビットにデコードするデコーダ３４ｂと、送信データを１２８ビットから１３０ビットにエンコードするエンコーダ３３ｂとを備えている。
【００３２】
同じくTLP／DLLPの受信側であるコンポーネント２１BのＭＡＣ部２４ｂは、受信データをデスクランブルするデスクランブラ３２ｂと、コンポーネント２１Ａから定期的に送られてくるSKP OSを検出するSKP OS検出部３５とを備えている。SKP OS検出部３５は、SKP OSに組み込まれているLFSR値を検出する、LFSR値検出部３６を有する。
【００３３】
ＭＡＣ部２４ｂは、デスクランブラ３２ｂにおいて受信データのデスクランブルに用いたLFSR値と、LFSR値検出部３６で検出されたLFSR値（受信データがコンポーネント２１ＡのＭＡＣ部２４ａでスクランブルされるときに用いられたLFSR値）とを比較するLFSR値比較部３８と、デスランブルした受信データにエラーがあった場合に、受信データを上位部（データリンク部２３ｂ）へ送信しないように制御するエラーチェック部３７と、エラー内容などを記憶させるエラーレジスタ４１も備えている。
【００３４】
LFSR値比較部３８の比較結果はエラーチェック部３７に出力される。LFSR値検出部３６で検出されたLFSR値とデスクランブラ３２ｂにおいて受信データのデスクランブルに用いたLFSR値とが異なるという比較結果がエラーチェック部３７に入力されると、エラーチェック部３７は受信データを上位部（データリンク部２３ｂ）へ送信しないように制御する。
【００３５】
ＭＡＣ部２４ｂは、更に、LFSR値比較部３８の比較結果に従って送信データを制御するコントローラ４０と、コントローラ４０から指示があった場合に、その制御内容に従ってデータリンク部２３ｂから送られてくる送信データの代わりに、EIEOS (Electrical Idle Exit Ordered Set)を送信データとする送信データ制御部３９と、送信データをスクランブルするスクランブラ３１ｂとを備えている。
【００３６】
上述のように構成されたコンポーネント２１Ａ、２１Bにおいて、コンポーネント２１Ａからコンポーネント２１Ｂに対してTLP／DLLPが送信され、途中でエラーが発生した場合の処理について、図３及び図４を用いて説明する。図４は、コンポーネント２１Ａ、２１Ｂ間でのパケットデータの送受信の流れを経時的に説明する図である。図４において、図面の上から下方向に向かって時間の流れを表している。
【００３７】
最初に、データの送信側であるコンポーネント２１ＡのＭＡＣ部２４ａから、データの受信側であるコンポーネント２１ＢのＭＡＣ部２４ｂに対してEIEOSが送信される。
【００３８】
EIEOSを送受信することによって、ＭＡＣ部２４ａのスクランブラ３１ａとＭＡＣ部２４ｂのデスクランブラ３２ｂで用いられるLFSR値が初期化され、所定の値にセットされる。
【００３９】
LFSR値の初期化が完了すると、コンポーネント２１Ａ、２１Ｂ間でのTLP／DLLPの送受信が開始される。具体的には、コンポーネント２１Ａのデータリンク部２３ａから送信されたTLP／DLLPは、ＭＡＣ部２４ａのスクランブラ３１ａにおいて、スクランブラ３１ａにセットされているLFSR値を用いてスクランブルされ、物理回路部２５ａのエンコーダ３３ａに送られ、１２８ビットから１３０ビットにエンコードされる。エンコードされたTLP／DLLPは、所定のレーンを介してコンポーネント２１Ｂの物理回路部２５ｂのデコーダ３４ｂに送信され、１３０ビットから１２８ビットにデコードされる。
【００４０】
デコードされたTLP／DLLPはＭＡＣ部２４ｂのデスクランブラ３２ｂに送られ、デスクランブラ３２ｂにセットされているLFSR値を用いてデスクランブルされる。デスクランブルされたTLP／DLLPは、エラーチェック部３７でエラーチェックが行われ、エラーが検出されなかった場合はデータリンク部２３ｂに送信される。エラーが検出された場合は、エラー内容をエラーレジスタ４１に書き込むともに、これ以降に受信したTLP／DLLPをデータリンク部２３ｂに送信しないよう制御する。
【００４１】
このようにしてTLP／DLLPを送受信する際に、例えばEIEOSの受信ミスなど何らかの不具合によってＭＡＣ部２４ａのスクランブラ３１ａのLFSR値とＭＡＣ部２４ｂのデスクランブラ３２ｂのLFSR値とが異なってしまう場合、TLP／DLLPをデスクランブラ３２ｂで正しくデスクランブルすることができなくなってしまう。このような場合、L LFSR値比較部３８から、両LFSR値が異なっているという比較結果がエラーチェック部３７に入力される。エラーチェック部３７はエラー内容をエラーレジスタ４１に書き込むともに、これ以降に受信したTLP／DLLPをデータリンク部２３ｂに送信しないよう制御する。
【００４２】
例えば、図４において、上から２番目のTLP／DLLPについてエラーチェック部３７でエラーが検出された場合、これ以降にエラーチェック部３７が受信したTLP／DLLPはデータリンク部２３ｂに送信しないよう制御される。従って、上から３番目のTLP／DLLPはＭＡＣ部２４ｂまでは送信されるが、データリンク部２３ｂには送信されない。
【００４３】
一方、TLP／DLLPの送受信タイミングには無関係に、ＭＡＣ部２４ａからＭＡＣ部２４ｂに対し、例えば６〜９μｓ程度の一定の時間間隔でSKP OSが逐次送信されている。ＭＡＣ部２４ａから送信されたSKP OSは、物理回路部２５ａのエンコーダ３３ａでエンコードされ、所定のレーンを介してコンポーネント２１Ｂの物理回路部２５ｂのデコーダ３４ｂでデコードされる。デコードされたSKP OSは、デスクランブラ３２ｂとSKP OS検出部３５とに送信される。
【００４４】
デスクランブラ３２ｂは、デスクランブルに用いたLFSR値をLFSR値比較部３８に送信する。SKP OS検出部３５では、SKP OS を受信すると、LFSR値検出部３６においてSKP OSに組み込まれているLFSR値を検出し、LFSR値比較部３８に送信する。LFSR値比較部３８は、デスクランブラ３２ｂから受信したLFSR値と、LFSR値検出部３６から受信したLFSR値とを比較し、異なっているという結果が得られた場合は、比較結果をエラーチェック部３７とコントローラ４０とに送信する。エラーチェック部３７からの比較結果（LFSR値が異なっているという結果）に基づき、コントローラ４０は送信データ制御部３９に対してリカバリを指示する。送信データ制御部３９は、ＭＡＣ部２４ａに対してEIEOSとTS OS（Training Sequence Ordered Set）とを送信してリンクイニシャライゼーションを行う。
【００４５】
EIEOSとTS OSとを受信したＭＡＣ部２４ａは、ＭＡＣ部２４ｂに対してEIEOSとTS OSとを送信し、スクランブラ３１ａのLFSR値とデスクランブラ３２ｂのLFSR値の初期化が行われる。両LFSR値が一致しエラーが解消されると、コンポーネント２１Ａ、２１Ｂ間でのTLP／DLLPの送受信が再び行われる。すなわち、エラーが発生してから次のSKP OSを受信してエラー解除指示が行われるまでの時間ｔｄは６〜９μｓ程度もしくはそれ以下の時間となる。
【００４６】
従来の装置では、データリンク部２３ｂが最後にデータを受信してから１２８μｓの間次のデータを受信しないと、データリンク部２３ｂからＭＡＣ部２４ｂに対してリトレインが要求されていた。従って、エラーが発生してから１２８μｓの間はデータ転送が行われずに転送効率が悪化していた。
【００４７】
上述のように、本実施形態によれば、６〜９μｓ程度の一定の時間間隔で逐次送信されているSKP OSの情報を用い、スクランブルに用いるLFSR値とデスクランブルに用いるLFSR値の不一致をチェックし、不一致であると判定されるとただちに初期化を行ってデータ転送を再開させることで、従来よりも１２０μｓ程度データ転送停止期間を短縮することができ、データ転送効率を向上させることができる。また、エラー発生時だけでなく、スクランブルに用いるLFSR値とデスクランブルに用いるLFSR値を常時行っているので、受信データの信頼性を向上させることができる。
【００４８】
なお、上述した一例では、LFSR値比較部３８の比較結果に従って送信データを制御するコントローラ４０をＭＡＣ部２４ｂに設けているが、通信確立やリンクの初期化、エラー復旧を含むステータス管理や電力管理などを行う、LTSSM(Link Training Status State Machine)と呼ばれるステートマシンで行ってもよい。
【００４９】
また、エラー検出とリカバリに用いる構成要素を、通信を確立している片方のコンポーネント（上述した一例ではコンポーネント２１Ｂ）にのみ配置しているが、両方のコンポーネントに配置してもよい。すなわち、コンポーネント２１ＡにもSKP OS検出部３５、LFSR値検出部３６、エラーチェック部３７、LFSR値比較部３８、送信データ制御部３９、コントローラ４０を配置してもよい。
【００５０】
なお、以上の例では、PCI Expressアーキテクチャにおける構成と動作を説明したが、本実施形態の半導体装置は、PCI Expressアーキテクチャ以外の通信アーキテクチャにおいても適用可能である。
【００５１】
さらになお、以上の例では、コンポーネントが実装されている通信制御部がPC内における通信に用いられている例を説明したが、本実施形態の通信制御部は、携帯電話、スマートフォン、タブレットPC等の各種電子機器における通信にも適用可能である。
【００５２】
本明細書における各「部」は、実施の形態の各機能に対応する概念的なもので、必ずしも特定のハードウェアやソフトウエア・ルーチンに１対１には対応しない。従って、本明細書では、以下、実施の形態の各機能を有する仮想的回路ブロック（部）を想定して実施の形態を説明した。
【００５３】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として例示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると共に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５４】
１…PC、１１…CPU、１２…ルートコンプレックス、１２ａ…通信制御部、１３…スイッチ、１３ａ、１３ｂ、１３ｃ…通信制御部、１３Ａ…バス、１３Ｂ…CPU、１４…デバイス、１４Ａ…バス、１４Ｂ…CPU、１４C…ハードディスク、１４ａ…通信制御部、１５…デバイス、１５ａ…通信制御部、１６…バス、１７ａ、１７ｂ、１７ｃ…シリアルインターフェース、２１Ａ、２１Ｂ…コンポーネント、２２ａ、２２ｂ…トランザクション部、２３ａ、２３ｂ…データリンク部、２４ａ、２４ｂ…ＭＡＣ部、２５ａ、２５ｂ…物理回路部、３１ａ、３１ｂ…スクランブラ、３２ａ、３２ｂ…デスクランブラ、３３ａ、３３ｂ…エンコーダ、３４ａ、３４ｂ…デコーダ、３５…SKP OS検出部、３６…LFSR値検出部、３７…エラーチェック部、３８…LFSR値比較部、３９…送信データ制御部、４０…コントローラ、４１…エラーレジスタ、
【図１】
2014057269.tif 000003
【図２】
2014057269.tif 000004
【図３】
2014057269.tif 000005
【図４】
2014057269.tif 000006