(57)【要約】【課題】デバイス間でのネゴシエーションの所要時間を短縮することができる通信装置を提供する。【解決手段】実施形態によれば、通信装置は、不揮発性メモリと、受信回路と、制御回路とを具備する。受信回路は、インタフェースを介して外部装置からデータを受信する。制御回路は、受信回路によって受信される外部装置からのデータの出力波形を決定する。制御回路は、データの出力波形をＮ種類（Ｎは３以上の自然数）の出力波形の候補の中から決定したことに応じて、当該決定した出力波形に関する情報を不揮発性メモリへ記録し、出力波形に関する情報が不揮発性メモリに記録されている状況下においてデータの出力波形を決定する場合、不揮発性メモリに記録されている出力波形に関する情報に基づき、Ｎ種類の出力波形の中のＭ（Ｍ＜Ｎ）（ＭはＮ−２以上の自然数）種類以下の出力波形を選択肢としてデータの出力波形を決定する。【選択図】図１
2020155916.tif 000002
【特許請求の範囲】
【請求項１】
不揮発性メモリと、
インタフェースを介して外部装置からデータを受信する受信回路と、
前記受信回路によって受信される前記外部装置からのデータの出力波形を決定する制御回路と、
を具備し、
前記制御回路は、
前記データの出力波形をＮ種類（Ｎは３以上の自然数）の出力波形の候補の中から決定したことに応じて、当該決定した出力波形に関する情報を前記不揮発性メモリへ記録し、
前記出力波形に関する情報が前記不揮発性メモリに記録されている状況下において前記データの出力波形を決定する場合、前記不揮発性メモリに記録されている前記出力波形に関する情報に基づき、前記Ｎ種類の出力波形の中のＭ（Ｍ＜Ｎ）（ＭはＮ−２以上の自然数）種類以下の出力波形を選択肢として前記データの出力波形を決定する、
通信装置。
【請求項２】
前記Ｎ種類の出力波形は、それぞれ１以上の係数によって設定され、
前記制御回路は、前記不揮発性メモリに記録されている前記出力波形に関する情報で示される出力波形に関する前記１以上の係数の値と、前記Ｎ種類の出力波形の中の一部または全部の出力波形に関する前記１以上の係数の値とに基づき、前記Ｍ種類以下の出力波形を選択する、
請求項１に記載の通信装置。
【請求項３】
前記制御回路は、前記Ｎ種類の出力波形の候補の中の一部または全部の出力波形の候補の中から前記不揮発性メモリに記録されている前記出力波形に関する情報で示される出力波形と前記１以上の係数の値の差分が第１閾値以内である前記Ｍ種類以下の出力波形を選択する請求項２に記載の通信装置。
【請求項４】
前記制御回路は、前記Ｎ種類の出力波形の候補の中の一部または全部の出力波形の候補の中から前記Ｍ種類以下の出力波形を選択し、当該選択した前記Ｍ種類以下の出力波形の候補の中から前記データの出力波形を決定する段階を第１段階として、前記第１段階において決定される出力波形の種類数が第２閾値以内に収束したことに応じて、前記Ｎ種類の出力波形の中の前記第２閾値以内の種類数の出力波形と前記１以上の係数の中の一部の係数の値が一致し、かつ、前記一部の係数以外の係数の値が順序的に連続する出力波形を選択肢として前記データの出力波形を決定する第２段階へ移行する請求項２に記載の通信装置。
【請求項５】
前記制御回路は、前記第２段階において決定される出力波形が１種類に収束した場合、当該１種類の出力波形を前記データの出力波形として決定する第３段階へ移行する請求項４に記載の通信装置。
【請求項６】
前記制御回路は、前記第３段階において決定される出力波形によって前記外部装置から送信されるデータの出力波形の品質が第３閾値を下回った場合、前記不揮発性メモリに記録されている前記出力波形に関する情報を消去して、前記Ｎ種類の出力波形の候補の中から前記データの出力波形を決定する初期段階へ移行する請求項５記載の通信装置。
【請求項７】
前記Ｎ種類の出力波形の中の一部の出力波形は、前記Ｎ種類の出力波形の中から予め指定されたＬ（Ｌ＜Ｎ、Ｌ＞Ｍ）種類の出力波形である請求項２から４のいずれか１項に記載の通信装置。
【請求項８】
前記Ｎ種類の出力波形は、それぞれ１以上の係数によって設定され、
前記制御回路は、前記Ｎ種類の出力波形の候補の中から前記不揮発性メモリに記録されている前記出力波形に関する情報で示される出力波形と前記１以上の係数の中の一部の係数の値が一致し、かつ、前記一部の係数以外の係数の値が順序的に連続する前記Ｍ種類以下の出力波形を選択する、
請求項１に記載の通信装置。
【請求項９】
前記制御回路は、前記Ｎ種類の出力波形の候補の中から前記Ｍ種類以下の出力波形を選択し、当該選択した前記Ｍ種類以下の出力波形の候補の中から前記データの出力波形を決定する段階を第１段階として、前記第１段階において決定される出力波形が１種類に収束した場合、当該１種類の出力波形を前記データの出力波形として決定する第２段階へ移行する請求項１に記載の通信装置。
【請求項１０】
前記制御回路は、前記第２段階において決定される出力波形によって送信されるデータの出力波形の品質が第３閾値を下回った場合、前記不揮発性メモリに記録されている前記出力波形に関する情報を消去して、前記Ｎ種類の出力波形の候補の中から前記データの出力波形を決定する初期段階へ移行する請求項９に記載の通信装置。
【請求項１１】
前記制御回路は、前記Ｎ種類の出力波形の中から予め指定されたＬ（Ｌ＜Ｎ、Ｌ＞Ｍ）種類の出力波形の候補の中から前記Ｍ種類以下の出力波形を選択し、当該選択した前記Ｍ種類以下の出力波形の候補の中から前記データの出力波形を決定する段階を第１段階として、前記第１段階において決定される出力波形が１種類に収束した場合、当該１種類の出力波形を前記データの出力波形として決定する第２段階へ移行する請求項１に記載の通信装置。
【請求項１２】
前記制御回路は、前記第２段階において決定される出力波形によって送信されるデータの出力波形の品質が第３閾値を下回った場合、前記不揮発性メモリに記録されている前記出力波形に関する情報を消去して、前記Ｎ種類の出力波形の候補の中から前記データの出力波形を決定する初期段階へ移行する請求項１１に記載の通信装置。
【請求項１３】
不揮発性メモリと、インタフェースを介して外部装置からデータを受信する受信回路と、を具備する通信装置における、前記受信回路によって受信される前記外部装置からのデータの出力波形を決定する方法であって、
前記データの出力波形をＮ種類（Ｎは３以上の自然数）の出力波形の候補の中から決定したことに応じて、当該決定した出力波形に関する情報を前記不揮発性メモリへ記録することと、
前記出力波形に関する情報が前記不揮発性メモリに記録されている状況下において前記データの出力波形を決定する場合、前記不揮発性メモリに記録されている前記出力波形に関する情報に基づき、前記Ｎ種類の出力波形の中のＭ（Ｍ＜Ｎ）（ＮはＮ−２以上の自然数）種類以下の出力波形を選択肢として前記データの出力波形を決定することと、
を具備する出力波形決定方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、通信装置および方法に関する。
【背景技術】
【０００２】
近時、たとえばＰＣＩ Express（ＰＣＩｅ）（登録商標）など、デバイス間を接続する様々なインタフェースが普及している。様々なインタフェース規格の多くが、デバイス間でのネゴシエーションに時間を要し、通信の開始が遅延することがある。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−１８３５８３号公報
【特許文献２】特開２０１１−１３０２３１号公報
【特許文献３】特開２０１１−１５１７５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、デバイス間でのネゴシエーションの所要時間を短縮することができる通信装置および方法を提供することである。
【課題を解決するための手段】
【０００５】
実施形態によれば、通信装置は、不揮発性メモリと、受信回路と、制御回路とを具備する。受信回路は、インタフェースを介して外部装置からデータを受信する。制御回路は、受信回路によって受信される外部装置からのデータの出力波形を決定する。制御回路は、データの出力波形をＮ種類（Ｎは３以上の自然数）の出力波形の候補の中から決定したことに応じて、当該決定した出力波形に関する情報を不揮発性メモリへ記録し、出力波形に関する情報が不揮発性メモリに記録されている状況下においてデータの出力波形を決定する場合、不揮発性メモリに記録されている出力波形に関する情報に基づき、Ｎ種類の出力波形の中のＭ（Ｍ＜Ｎ）（ＭはＮ−２以上の自然数）種類以下の出力波形を選択肢としてデータの出力波形を決定する。
【図面の簡単な説明】
【０００６】
【図１】実施形態の通信装置の一構成例を示す図。
【図２】実施形態の通信装置が適用するシリアルインタフェースにおいて選択肢として用意される４２種類のデータの出力波形を表形式で示す図。
【図３】実施形態の通信装置が適用するシリアルインタフェースにおける送信対象のデータへの前後の送信データの一部の加算を示す図。
【図４】実施形態の通信装置が適用するシリアルインタフェースにおけるデータの出力波形の特性を示す図。
【図５】実施形態の通信装置が通信相手に要求するデータの出力波形を選択する手続きであるEqualizationの典型的な流れを示す図。
【図６】実施形態の通信装置が第４世代ＰＣＩｅ仕様（Ｇｅｎ４）レベルでリンクをＬ０ステートに遷移させるまでの手順を示す図。
【図７】実施形態の通信装置が備えるＴＸＥＱ決定回路が最適なＴＸＥＱ設定を決定する局面として管理する４つのステージを示すフローチャート。
【図８】実施形態の通信装置が備えるＴＸＥＱ決定回路がステージ１でのEqualizationにおいて選択肢とする周辺Presetについて説明するための図。
【図９】実施形態の通信装置が備えるＴＸＥＱ決定回路がステージ２でのEqualizationにおいて選択肢とする周辺Coefficientについて説明するための図。
【図１０】実施形態の通信装置が備えるＴＸＥＱ決定回路がステージ３でのEqualizationにおいて即時的に選択するCoefficientについて説明するための図。
【図１１Ａ】実施形態の通信装置において実行されるEqualizationの手順を示す第１のフローチャート。
【図１１Ｂ】実施形態の通信装置において実行されるEqualizationの手順を示す第２のフローチャート。
【図１２】実施形態の通信装置がストレージ装置として実現されている例を示す図。
【発明を実施するための形態】
【０００７】
以下、実施の形態について図面を参照して説明する。
図１は、本実施形態の通信装置（第１通信装置１−１、第２通信装置１−２）の一構成例を示す図である。第１通信装置１−１と第２通信装置１−２とは、それぞれ共通のインタフェース規格に準拠する共通の通信機能を有するデバイスであり、パーソナルコンピュータ同士などの同一種類のデバイスであってもよいし、パーソナルコンピュータと周辺機器などの異なる種類のデバイスであってもよい。以下、第１通信装置１−１と第２通信装置１−２とをそれぞれ通信装置１と総称することがある。
【０００８】
図１に示すように、第１通信装置１−１と第２通信装置１−２とは、インタフェース２を介して接続される。本実施形態においては、このインタフェース２が、ＰＣＩｅ規格に準拠するシリアルインタフェースであることを想定する。なお、ＰＣＩｅ規格は例示であって、後述する、本実施形態の通信装置１がネゴシエーションの所要時間を短縮するための構成は、様々なインタフェース規格に適用することができる。
【０００９】
また、図１に示すように、第１通信装置１−１と第２通信装置１−２とは、つまり、通信装置１は、プロセッサ１０と、不揮発性メモリ２０と、通信コントローラ３０とを有している。
プロセッサ１０は、通信相手との間でデータを送受信するために、通信コントローラ３０の動作を制御する。具体的には、プロセッサ１０は、データ送信またはデータ受信のための各種トランザクションの処理を通信コントローラ３０に要求する。不揮発性メモリ２０は、後述する履歴データ２０１を含む各種データ（プログラムを含む）を恒久的に保持することができるストレージデバイスである。
【００１０】
通信コントローラ３０は、プロセッサ１０の制御の下、インタフェース２経由でデータを送受信する。通信コントローラ３０は、トランザクション・レイヤ３１、データ・リンク・レイヤ３２および物理レイヤ３３を含む。物理レイヤ３３は、物理サブブロック（ＰＨＹ）３３ａおよびＭＡＣサブブロック３３ｂを含む。
【００１１】
トランザクション・レイヤ３１は、プロセッサ１０から要求される各種トランザクションの処理を実行する。具体的には、トランザクション・レイヤ３１は、トランザクション・レイヤ・パケット（ＴＬＰ）の構築および処理を実行する。ＴＬＰは、通信相手のトランザクション・レイヤ３１との間でやりとりされるパケットである。
【００１２】
データ・リンク・レイヤ３２は、トランザクション・レイヤ３１と物理レイヤ３３との間の中間レイヤであり、インタフェース２に含まれるリンクの管理と、データ・リンク・レイヤ・パケット（ＤＬＬＰ）の構築および処理とを実行する。ＤＬＬＰは、通信相手のデータ・リンク・レイヤ３２との間でやりとりされるパケットである。ＰＣＩｅ規格に準拠するシリアルインタフェースであるインタフェース２は、デバイス間を接続するリンク（シリアルリンク）を含む。リンクは、複数のレーン（レーン０、レーン１、…、レーンＮ）を含む。各レーンは、送信用の差動信号線ペア（Ｔｘ＋、Ｔｘ−）と、受信用の差動信号線ペア（Ｒｘ＋、Ｒｘ−）とを含む。インタフェース２を介して接続される第１通信装置１−１と第２通信装置１−２とは、複数のレーン（レーン０、レーン１、…、レーンＮ）で構成されるリンクを介してデータ送信とデータ受信とを並行して実行することができる。ＰＣＩｅ規格においては、ｘ１レーン、ｘ２レーン、ｘ４レーン、ｘ８レーン、ｘ１２レーン、ｘ１６レーン、ｘ３２レーンがサポートされている。たとえばｘ４レーンのリンクの場合、リンクはレーン０〜レーン３を含む。ＤＬＬＰには、フロー制御情報を送信するためのＤＬＬＰ（Update FC DLLPなど）、肯定応答（アクノリッジ）を送信するためのＤＬＬＰ（Ack DLLP）、否定応答（再送要求）を送信するためのＤＬＬＰ（Nak DLLP）などが存在する。
【００１３】
また、データ・リンク・レイヤ３２は、データの物理的な送受信を実行する物理レイヤ３３に、通信相手が最適な出力波形でデータを送信するためのＴＸＥＱ決定回路３２１を含む。最適な出力波形は、通信相手との間で構築される伝送経路、具体的には、相手装置、ケーブル、自装置の３要素の組み合わせによって変化する。また、最適な出力波形は、相手装置から自装置へ向けたデータの出力波形と、自装置から相手装置へ向けたデータの出力波形とで異なり得る。データの出力波形は、通信相手との間のネゴシエーションによって決定される。ＴＸＥＱ決定回路３２１は、このネゴシエーションの一環として、通信相手に要求するデータの出力波形を、選択肢として用意される複数の出力波形の中から決定する。つまり、第１通信装置１−１が第２通信装置１−２へ送信するデータ（第２通信装置１−２が第１通信装置１−１から受信するデータ）の出力波形は、受信側の装置である第２通信装置１−２によって決定される。一方、第２通信装置１−２が第１通信装置１−１へ送信するデータ（第１通信装置１−１が第２通信装置１−２から受信するデータ）の出力波形は、受信側の装置である第２通信装置１−２によって決定される。ＴｘＥＱ決定回路３２１は、通信相手に要求するデータの出力波形を短時間で決定する仕組み（アルゴリズム）を備える。このＴＸＥＱ決定回路３２１が備える仕組みについては後述する。
【００１４】
物理レイヤ３３は、リンクに含まれる複数のレーンを介してデータを物理的に送受信するインタフェース動作を実行する。物理レイヤ３３は、このインタフェース動作のための様々な回路を含む。ＰＣＩｅ規格においては、ドライバ、入力バッファ、シリアライザ、デシリアライザ、エンコーダ、デコーダ、スクランブラ、デスクランブラ、バイトアライン回路、バイトストライピング回路、ＣＤＲ（Clock Data Recovery）回路などが、インタフェース動作のための回路として存在する。ドライバ、シリアライザ、エンコーダ、スクランブラ、バイトストライピング回路は、データの送信に関する動作を行う回路であり、入力バッファ、デシリアライザ、デコーダ、デスクランブラ、バイトアライン回路、ＣＤＲ回路は、データの受信に関する動作を行う回路である。
【００１５】
ドライバは、データを送信するために送信用の差動信号線ペア（Ｔｘ＋、Ｔｘ−）を駆動する回路である。ドライバは、通信相手から要求されたデータの出力波形を形成するように、送信用の差動信号線ペア（Ｔｘ＋、Ｔｘ−）を駆動する。
入力バッファは、受信用の差動信号線ペア（Ｒｘ＋、Ｒｘ−）からデータを受信する回路であり、たとえばイコライザなどを含む。このイコライザによって、様々なデータの出力波形に対応することができる。また、入力バッファは、データの出力波形の品質を評価する機能を有する。
【００１６】
シリアライザは、送信データをパラレルデータからシリアルデータに変換する。デシリアライザは、受信されたシリアルデータをパラレルデータに変換する。エンコーダは、送信データを符号化する。デコーダは、受信された符号化データを復号する。スクランブラは、エンコーダによる符号化の前に、同じビット値が連続する長さが一定長以下となるように送信データをスクランブルする。デスクランブラは、スクランブルされている受信データをデスクランブルして元のデータを得る。
【００１７】
バイトストライピング回路は、バイトストライピング動作を実行する。バイトストライピング動作は、ＴＬＰやＤＬＬＰのような送信データを構成する複数のデータを複数のレーンに所定の単位で順番に割り当てる動作である。このように、物理レイヤ３３がフレーミング動作を実行するので、データ・リンク・レイヤ３２とトランザクション・レイヤ３１とは、複数のレーンを意識する必要がない。物理レイヤ３３が複数のレーンに対応して複数の送信回路（Ｔｘ回路）と複数の受信回路（Ｒｘ回路）とを備えるのに対して、データ・リンク・レイヤ３２とトランザクション・レイヤ３１とは各々、複数のレーンに共通の１つの送信回路（Ｔｘ回路）と、複数のレーンに共通の１つの受信回路（Ｒｘ回路）とを備える。
【００１８】
ここで、まず、図２から図４を参照して、デバイス間でのネゴシエーションに時間を要する原因の一つとなっている、ＰＣＩｅ規格に準拠するシリアルインタフェースにおいて選択肢として用意される様々なデータの出力波形について説明する。
図２は、ＰＣＩｅ規格に準拠するシリアルインタフェースにおいて選択肢として用意される４２種類のデータの出力波形に関する設定値を表形式で示す図である。なお、図２は、ドライバの分割数が２４の場合の例である。ＰＣＩｅにおいては、ドライバの分割数として２４〜６３を取り得る。ここでは、ドライバの分割数が２４の場合を例にとって説明する。
【００１９】
図２中、横軸のＣ+1は、送信対象のデータに加算する、１タイミング前に送信されたデータの係数であり、縦軸のＣ-1は、送信対象のデータに加算する、１タイミング後に送信されるデータの係数である。ＰＣＩｅ規格に準拠するシリアルインタフェースにおいては、図３に示すように、送信対象のデータ（Ｃ0）ｂ１が、１タイミング前に送信されたデータの一部（Ｃ+1）ｂ２と、１タイミング後に送信されるデータの一部（Ｃ-1）ｂ３とが加算されて出力される。図２に示すように、送信対象のデータに加算する、１タイミング前に送信されたデータの係数（Ｃ+1）の下限は０／２４で上限は８／２４であり、１タイミング後に送信されるデータの係数（Ｃ-1）の下限は０／２４で上限は６／２４である。また、送信対象のデータ（Ｃ0）に加算する、１タイミング前に送信されたデータの係数（Ｃ+1）と、１タイミング後に送信されるデータの係数（Ｃ-1）との和の上限は８／２４である。
【００２０】
そして、図２中、横軸のＣ+1の何れかと縦軸のＣ-1の何れかとの交点に配置される４２個の枠が、各々、Ｃ+1とＣ-1との組み合わせで設定されるデータの出力波形に関する設定値を示している。つまり、ＰＣＩｅ規格に準拠するシリアルインタフェースにおいては、Ｃ+1とＣ-1との２つの係数によって４２種類のデータの出力波形を設定し得る。各枠内には、３つの数字が示されている。上段左部の数字は、Ｃ+1およびＣ-1によって定まるPreshoot（PS）の値、上段右部の数字は、Ｃ+1およびＣ-1によって定まるDe-emphasis（DE）の値、下段中央部の数字は、Ｃ+1およびＣ-1によって定まるBoost（BOOST）の値に対応する。Preshoot、De-emphasis、Boostは、図４に示すように、データの出力波形の特性を示す。通信装置１は、たとえばＣ+1とＣ-1との２つの係数を通知することで、通信相手に対して、意図する特性の波形でデータを出力することを要求する。
【００２１】
また、図２中、符号ａ１で示される枠内のハッチングと同じハッチングが施された６個の枠と、符号ａ２で示される枠内のハッチングと同じハッチングが施された４個の枠との計１０個の枠は、４２種類のＣ+1とＣ-1との組み合わせの中からPresetとして予め指定された１０種類のＣ+1とＣ-1との組み合わせを示す。本来、４２種類のＣ+1とＣ-1との組み合わせの中から最適なＣ+1とＣ-1との組み合わせ、つまり、最適なデータの出力波形を選択することが望ましいが、候補を絞り込むことで、選択のための所要時間を短縮することができる。もちろん、最適なデータの出力波形がPresetとして予め指定された１０種類のＣ+1とＣ-1との組み合わせ以外であることも考えられるが、選択のための所要時間の短縮を優先する場合には、当該１０種類のＣ+1とＣ-1との組み合わせの中から最適なデータの出力波形を選択する。なお、４２種類のＣ+1とＣ-1との組み合わせは、ＴＸＥＱ設定またはCoefficientと称される。つまり、Presetは、４２種類のCoefficientの中から予め指定された１０種類のCoefficientである。また、通信相手と協働して当該通信相手に要求するデータの出力波形を選択する手続きは、Equalizationと称される。さらに、Equalizationの手続きにおいて複数のＴＸＥＱ設定の中から最適なＴＸＥＱ設定を探索する行為は、Sweepと称される。
【００２２】
ここで、図５を参照して、一比較例について説明する。図５には、たとえば第１通信装置１−１と第２通信装置１−２とがインタフェース２を介した通信を開始する場合における、第２通信装置１−２が第１通信装置１−１に要求するデータの出力波形を選択する手続きであるEqualizationの典型的な流れが示されている。第１通信装置１−１が第２通信装置１−２に要求するデータの出力波形を選択する手続きであるEqualizationの典型的な流れも同様であるので、ここでは、その説明は省略する。
【００２３】
第２通信装置１−２は、第１通信装置１−１に対して、１個目のPreset（TXEQ=P1）でのトレーニングを要求する（Ｓ１＿１）。この要求を受けた第１通信装置１−１は、第２通信装置１−２に対して１個目のPresetに応じたテストデータを送信する（Ｓ２＿１）。このテストデータを受信した第２通信装置１−２は、受信データの波形品質を評価、具体的には、１個目のPresetに応じたテストデータを評価する（Ｓ３＿１）。
【００２４】
第２通信装置１−２は、１個目のPreset（TXEQ=P1）でのトレーニングであるＳ１＿１〜Ｓ３＿１に相当する処理を、１個目のPreset（TXEQ=P1）から１０個目のPreset（TXEQ=P10）までの１０回分繰り返す。図５のＳ１＿１０〜Ｓ３＿１０は、１０個目のPreset（TXEQ=P10）についての処理を示している。
【００２５】
１個目のPreset（TXEQ=P1）から１０個目のPreset（TXEQ=P10）まで一通り評価を終えた第２通信装置１−２は、それら１０個のPresetの中から最も評価の高かったPresetを最適なＴＸＥＱ設定として決定し（Ｓ４）、第１通信装置１−１に対して、決定したＴＸＥＱ設定での再トレーニングを要求する（Ｓ５）。この要求を受けた第１通信装置１−１は、第２通信装置１−２に対して最適と決定されたＴＸＥＱ設定に応じたテストデータを送信する。 
【００２６】
ところで、たとえば第４世代ＰＣＩｅ仕様（Ｇｅｎ４）において、リンクをデータ送受信が実行可能な通常状態であるＬ０ステートに遷移させるためには、図６に示すように、第３世代ＰＣＩｅ仕様（Ｇｅｎ３）レベルでのRecovery.Equalization（ｃ１）でリンクをＬ０ステートに遷移させた後、改めて、Ｇｅｎ４レベルでのRecovery.Equalization（ｃ１）でリンクをＬ０ステートに遷移させる必要がある。そして、Recovery.Equalization（ｃ１）のPhase0〜Phase3の４つのPhaseの中のPhase2（ｃ２）において、たとえば図５に示したような手順で、第１通信装置１−１と第２通信装置１−２とが協働することが必要となる。つまり、デバイス間でのネゴシエーションに時間を要し、通信の開始が遅延することがある。そこで、本実施形態の通信装置１は、ネゴシエーションの所要時間を短縮する仕組み（アルゴリズム）を備えたものであり、以下、この点について説明する。
【００２７】
前述したように、本実施形態の通信装置１のデータ・リンク・レイヤ３２は、物理レイヤ３３が通信相手から最適な出力波形でデータを受信するためのＴＸＥＱ決定回路３２１を含む。ＴＸＥＱ決定回路３２１は、Equalizationによって、図２に示した４２種類のＴＸＥＱ設定の中から最適なＴＸＥＱ設定を決定するにあたり、図７に示すような、ステージ０〜ステージ３の４つのステージを管理する。
【００２８】
ステージ０は、図５を参照して説明した、Equalizationの典型的な流れである、すべてのPresetをSweepする段階である（Ａ１）。ステージ０は、初期段階であり、ＴＸＥＱ決定回路３２１は、まず、このステージ０で、すべてのPresetをSweepして、その中から最適なPresetを決定する。また、ＴＸＥＱ決定回路３２１は、最適なPresetを決定した場合、そのPresetに対応したＴＸＥＱ設定情報を履歴データ２０１として不揮発性メモリ２０に格納する。ステージ０は、不揮発性メモリ２０に履歴データ２０１が格納されていない場合に実行される。つまり、通常、ＴＸＥＱ決定回路３２１は、１度、すべてのPresetをSweepして、その中から最適なPresetを決定すると、ステージ１へ移行する。ＴＸＥＱ決定回路３２１は、ステージ０〜ステージ３のどのステージの状態にあるのかについても、たとえば履歴データ２０１の属性情報として不揮発性メモリ２０に格納する。また、履歴データ２０１は、通信相手を識別可能に不揮発性メモリ２０に格納される。つまり、通信相手ごとに、履歴データ２０１が不揮発性メモリ２０に格納されているか否かや、ステージ０〜ステージ３のどのステージの状態にあるのかなどを判定できる。通信相手を識別するための情報（識別子）としては、特定の情報に限定されず、様々な情報を使用し得る。
【００２９】
ステージ１は、選択Presetおよび周辺PresetをSweepする段階である（Ａ２）。履歴データ２０１は、不揮発性メモリ２０に格納されるので、通信装置１が電源オフされた後、再び電源オンされた場合においても、ＴＸＥＱ決定回路３２１は、履歴データ２０１を参照することができる。
【００３０】
ステージ１における選択Presetは、履歴データ２０１によって示される、前回決定されたPresetや、最も多く決定されたPresetなどである。周辺PresetのSweepについて、図８を参照して説明する。
図８中、符号ｄ１で示される黒塗りの星形が配置されたPresetが、たとえば前回決定されたPresetである。ステージ１に移行すると、ＴＸＥＱ決定回路３２１は、選択Presetと、その選択Presetの周辺に位置するPresetを選択肢とし、その中から最適なＴＸＥＱ設定を決定する。図８中、符号ｄ２で示される白抜きの星形が配置された複数のPresetが、周辺Presetである。図８では、３つのPresetが周辺Presetとして選択されている。周辺Presetの選択方法は、特定の方法に限定されず、種々の方法を適用し得る。たとえば、選択Presetとの間のＣ+1の値の差分とＣ-1の値の差分との和、又は各差分の和が一定値以内のPresetを周辺Presetとして選択する等でもよい。ＴＸＥＱ決定回路３２１は、選択Presetと３つのPresetとをそれぞれSweepする。
【００３１】
ステージ１においては、Sweep対象が１０個のPresetから４個のPresetへ絞られているため、最適なＴＸＥＱ設定を決定する所要時間が短縮される。
また、ＴＸＥＱ決定回路３２１は、履歴データ２０１を参照することで、決定されたPresetが特定のPresetに収束したことを判定することができる。この判定方法は、特定の方法に限定されず、種々の方法を適用し得る。たとえば、履歴データ２０１が一定数以上蓄積された状況下において、予め定められる割合を超えて決定されているPresetが存在する場合、決定されるPresetが特定のPresetに収束したと判定する等でもよい。特定のPresetは、１つに限らず、複数であってもよい。図７に示したように、このステージ１において、決定されるPresetが特定のPresetに収束した場合、ＴＸＥＱ決定回路３２１は、ステージ２へ移行する。なお、ＴＸＥＱ決定回路３２１は、単に、選択Presetと３つのPresetとのSweepを完了していずれかのPresetを選択したら、ステージ２へ移行するようにしてもよい。
【００３２】
ステージ２は、選択Presetおよび周辺CoefficientをSweepする段階である。ステージ２における選択Presetは、履歴データ２０１によって示される、ステージ１で収束した特定のPresetである。周辺CoefficientのSweepについて、図９を参照して説明する。
【００３３】
図９中、符号ｅ１で示される黒塗りの星形が配置されたPresetが、選択Presetである。ステージ２に移行した場合、ＴＸＥＱ決定回路３２１は、選択Presetと、選択Presetの周辺に位置するCoefficientとを選択肢とし、その中から最適なＴＸＥＱ設定を決定する。選択肢として選択されるCoefficientは、Presetか否かを問わない。図９中、符号ｅ２で示される太線の枠で囲まれたCoefficientが、周辺Coefficientである。周辺Coefficientの選択方法は、特定の方法に限定されず、種々の方法を適用し得る。たとえば、選択PresetとＣ+1の値またはＣ-1の値の一方が同じで、他方が隣接するCoefficientを周辺Coefficientとして選択する等でもよい。なお、ここでは、Ｃ+1とＣ-1との２つの係数でデータの出力波長が設定される場合を想定しているが、データの出力波形が１つの係数で設定される場合、その係数が隣接する前後のCoefficientを周辺Coefficientとして選択してもよい。また、データの出力波形が３つ以上の係数で設定される場合、（係数の数−１）個の係数の値が同一であり、残りの１個の係数の値が隣接する（係数の数×２）個のCoefficientを周辺Coefficientとして選択してもよい。
【００３４】
ステージ２においても、Sweep対象がステージ０での１０個のPresetと比較して５個のCoefficientと少ないため、最適なＴＸＥＱ設定を決定する所要時間が短縮される。加えて、ステージ２においては、Sweep対象がPresetに限定されないため、データの出力波形の品質向上が期待できる。
【００３５】
そして、このステージ２において、決定されるCoefficientが特定のCoefficientに収束した場合、ＴＸＥＱ決定回路３２１は、ステージ３へ移行する（図７：Ａ４）。なお、ステージ２における特定のCoefficientは、１つであることが好ましい。
【００３６】
ステージ３は、選択Coefficientのみに限定する段階である。ステージ３における選択Coefficientは、ステージ２における選択Presetと同様、履歴データ２０１によって示される、ステージ２で収束した特定のCoefficientである。ステージ３における選択Coefficientの例を図１０に示す。
【００３７】
図１０中、符号ｆ１で示される黒塗りの星形が配置されたCoefficientが、選択Coefficientである。ステージ３に移行した場合、ＴＸＥＱ決定回路３２１は、この選択Coefficientを最適なＴＸＥＱ設定として即時的に決定する。
【００３８】
ステージ３においては、最適なＴＸＥＱ設定が即時的に決定されるので、最適なＴＸＥＱ設定を決定する所要時間がさらに短縮される。
このように、本実施形態の通信装置１においては、履歴データ２０１を不揮発性メモリ２０に格納し、この履歴データ２０１を用いた学習によって、最適なＴＸＥＱ設定にたどり着くまでの時間を短縮することができる。また、Presetに限定されず、すべてのCoefficientから最適なＴＸＥＱ設定が選択されるので、より良い受信特性を得ることができる。
【００３９】
ところで、たとえば同じ通信相手との間であっても、たとえば環境温度や経時的変化などによって、データの出力波形の品質は変化し得る。そのため、ステージ３まで到達した後、即時的に決定されるＴＸＥＱ設定が、実は、最適なＴＸＥＱ設定ではなくなっているという事態も生じ得る。
【００４０】
前述したように、物理レイヤ３３の入力バッファは、データの出力波形の品質を評価する機能を有する。本実施形態の通信装置１は、ステージ３において即時的に決定されるＴＸＥＱ設定によるデータの出力波形の品質が閾値を下回った場合、その通信相手に関する履歴データ２０１を不揮発性メモリ２０から削除して、ステージ０（すべてのPresetをSweep）を再実行する。この結果、ステージ１に戻ることになる。このように、本実施形態の通信装置１は、たとえばデバイス特性が変わって最適なＴＸＥＱ設定が変化する場合に対しても適切に対処することができる。
【００４１】
図１１Ａおよび図１１Ｂは、本実施形態の通信装置１において実行されるEqualizationの手順を示すフローチャートである。
ＴＸＥＱ決定回路３２１は、通信相手に関する履歴データ２０１が不揮発性メモリ２０に格納されているか否かを確認する（Ｂ１）。格納されていない場合、すなわち現在の状態がステージ０である場合、（Ｂ１：ＮＯ）、ＴＸＥＱ決定回路３２１は、すべてのPresetをSweepする（Ｂ２）。
【００４２】
ＴＸＥＱ決定回路３２１は、Ｂ２のSweepで選択したPresetを履歴データ２０１として不揮発性メモリ２０に格納する（Ｂ３）。ＴＸＥＱ決定回路３２１は、履歴データ２０１と共に、ステージ１を示す情報を履歴データ２０１の属性情報として不揮発性メモリ２０に格納し（Ｂ４）、Equalizationを終了する。履歴データ２０１は、通信相手を識別可能に不揮発性メモリ２０に格納される。なお、Ｂ３とＢ４との順序は逆でもよい。
【００４３】
履歴データ２０１が格納されている場合（Ｂ１：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、現在の状態がステージ１であるか否かを確認する（Ｂ５）。現在の状態がステージ１の場合（Ｂ５：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、履歴データ２０１で示される、たとえば前回のEqualizationで選択されたPresetおよびその周辺Presetを選択肢としてSweepを実行する（Ｂ６）。
【００４４】
ＴＸＥＱ決定回路３２１は、Ｂ６のSweepで選択したPresetを履歴データ２０１として不揮発性メモリ２０に格納する（Ｂ７）。ＴＸＥＱ決定回路３２１は、不揮発性メモリ２０に格納される履歴データ２０１から、選択されるPresetが収束しているか否かを確認する（Ｂ８）。収束している場合（Ｂ８：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、ステージ２を示す情報を履歴データ２０１の属性情報として不揮発性メモリ２０に格納し（Ｂ９）、Equalizationを終了する。収束していない場合は（Ｂ８：ＮＯ）、ＴＸＥＱ決定回路３２１は、Ｂ９を実行せずに、そのままEqualizationを終了する。
【００４５】
また、現在の状態がステージ２の場合（Ｂ５：ＮＯ、Ｂ１１：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、履歴データ２０１で示される、ステージ１で収束した特定のPresetおよびその周辺Coefficientを選択肢としてSweepを実行する（Ｂ１２）。
【００４６】
ＴＸＥＱ決定回路３２１は、Ｂ１２のSweepで選択したCoefficientに関する情報を履歴データ２０１として不揮発性メモリ２０に格納する（Ｂ１３）。ＴＸＥＱ決定回路３２１は、不揮発性メモリ２０に格納されている履歴データ２０１から、選択したCoefficientが収束しているか否かを確認する（Ｂ１４）。収束している場合（Ｂ１４：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、ステージ３を示す情報を履歴データ２０１の属性情報として不揮発性メモリ２０に格納し（Ｂ１５）、Equalizationを終了する。収束していない場合は（Ｂ１４：ＮＯ）、ＴＸＥＱ決定回路３２１は、Ｂ１５を実行せずに、そのままEqualizationを終了する。
【００４７】
また、現在の状態がステージ３の場合（Ｂ１１：ＮＯ）、ＴＸＥＱ決定回路３２１は、履歴データ２０１で示される、ステージ２で収束した特定のCoefficientを即時的に選択する（Ｂ１６）。この場合、ＴＸＥＱ決定回路３２１は、このCoefficientによるデータの出力波形の品質が閾値以上か否かを確認する（Ｂ１７）。閾値以上の場合（Ｂ１７：ＹＥＳ）、ＴＸＥＱ決定回路３２１は、そのままEqualizationを終了する。閾値を下回っている場合（Ｂ１７：ＮＯ）、ＴＸＥＱ決定回路３２１は、通信相手に関するＴＸＥＱ決定履歴データ２０１を不揮発性メモリ２０から削除し（Ｂ１８）、Ｂ２に戻って、すべてのPresetを対象としたSweepを実行する。
【００４８】
以上のように、本実施形態の通信装置１においては、最適なＴＸＥＱ設定にたどり着くまでの時間を短縮することができる。また、Presetに限定されず、すべてのCoefficientから最適なＴＸＥＱ設定が選択されるので、より良い受信特性を得ることができる。さらに、たとえばデバイス特性が変わって最適なＴＸＥＱ設定が変化する場合に対しても適切に対処することができる。つまり、本実施形態の通信装置１は、デバイス間でのネゴシエーションの所要時間を短縮することができる。
【００４９】
なお、ここでは、ＴＸＥＱ決定回路３２１が、ステージ０〜ステージ３の４つのステージを管理することを想定したが、各ステージについて種々の変更を施してもよい。たとえば、ステージ１において、選択Presetと周辺Presetとを選択肢とすることに代えて、選択Presetと周辺Coefficientとを選択肢とするようにしてもよい。この場合、ステージ２における周辺Coefficientとの違いは、ステージ２における周辺Coefficientは係数が隣接するものであるのに対して、ステージ１における周辺Coefficientは係数の差分の和が一定値以内のものである点である。
【００５０】
また、ステージ０〜ステージ３の４つのステージの中のいずれかのステージを省略してもよい。たとえば、ステージ１を省略して、ステージ０で選択されたPresetと、このPresetと係数が隣接するCoefficientとを選択肢としてステージ２のsweepを実行するようにしてもよい。あるいは、ステージ２を省略して、ステージ１で収束したCoefficientをステージ３で即時的に決定するようにしてもよい。
【００５１】
図１２は、本実施形態の通信装置１がストレージ装置４として実現されている例を示す図である。なお、ホスト装置３も、本実施形態の通信装置１の一実現例であってもよい。
ストレージ装置４は、たとえばＳｏＣなどの半導体集積回路で構成されるコントローラ４１と、たとえばＤＲＡＭなどであるバッファメモリ４２と、たとえばＮＡＮＤ型フラッシュメモリなどであるストレージ４３とを有している。コントローラ４１は、ホスト装置３からのコマンドに応じて、バッファメモリ４２をデータの一時的な格納領域として利用しながら、ストレージ４３へのデータの書き込みおよびストレージ４３からのデータの読み出しを実行する。そして、このコントローラ４１が、前述の通信コントローラ３０を備える。
【００５２】
ストレージ装置４のコントローラ４１が備える通信コントローラ３０は、ホスト装置３との間の通信を制御する。前述したように、通信コントローラ３０は、ＴＸＥＱ決定回路（アルゴリズム）３２１を有している。このＴＸＥＱ決定回路３２１は、ＴＸＥＱ決定履歴データ２０１をストレージ４３に格納する。ＴＸＥＱ決定回路３２１は、ストレージ４３に格納されるＴＸＥＱ決定履歴データ２０１に基づき、ホスト装置３との間でEqualizationを実行する。
【００５３】
前述したように、ＴＸＥＱ決定回路３２１が実行する、ＴＸＥＱ決定履歴データ２０１に基づいたEqualizationによって、ストレージ装置４は、最適なＴＸＥＱ設定にたどり着くまでの時間を短縮することができ、また、より良い受信特性を得ることができ、さらに、たとえばデバイス特性が変わって最適なＴＸＥＱ設定が変化する場合に対しても適切に対処することができる。
【００５４】
したがって、本実施形態の通信装置１の一実現例であるストレージ装置４においては、たとえば電源オンされてからホスト装置３と通信を開始できるようになるまでの起動時間を短縮することが実現される。
また、ストレージ装置４は、PresetをSweepしたときや、選択されるPresetが収束したと判定したときなどの環境温度の情報も、履歴データ２０１の属性情報としてストレージ４３に格納してもよい。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５５】
１…通信装置、２…インタフェース、１０…プロセッサ、２０…不揮発性メモリ、３０…通信コントローラ、３１…トランザクション・レイヤ、３２…データ・リンク・レイヤ、３３…物理レイヤ、３３ａ…物理サブブロック、３３ｂ…ＭＡＣサブブロック、２０１…履歴データ、３２１…ＴＸＥＱ決定回路。
【図１】
2020155916.tif 000003
【図２】
2020155916.tif 000004
【図３】
2020155916.tif 000005
【図４】
2020155916.tif 000006
【図５】
2020155916.tif 000007
【図６】
2020155916.tif 000008
【図７】
2020155916.tif 000009
【図８】
2020155916.tif 000010
【図９】
2020155916.tif 000011
【図１０】
2020155916.tif 000012
【図１１Ａ】
2020155916.tif 000013
【図１１Ｂ】
2020155916.tif 000014
【図１２】
2020155916.tif 000015