JP2009130614A - 通信制御装置、通信制御方法および通信制御プログラム - Google Patents

通信制御装置、通信制御方法および通信制御プログラム Download PDF

Info

Publication number
JP2009130614A
JP2009130614A JP2007303291A JP2007303291A JP2009130614A JP 2009130614 A JP2009130614 A JP 2009130614A JP 2007303291 A JP2007303291 A JP 2007303291A JP 2007303291 A JP2007303291 A JP 2007303291A JP 2009130614 A JP2009130614 A JP 2009130614A
Authority
JP
Japan
Prior art keywords
setting
communication control
data
control device
transmission circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2007303291A
Other languages
English (en)
Inventor
Masatsugu Nishida
正嗣 西田
Mamoru Mori
衛 森
Katsuhiko Takeuchi
克彦 竹内
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2007303291A priority Critical patent/JP2009130614A/ja
Priority to US12/247,011 priority patent/US20090138786A1/en
Publication of JP2009130614A publication Critical patent/JP2009130614A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/0001Systems modifying transmission characteristics according to link quality, e.g. power backoff
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L2001/0092Error control systems characterised by the topology of the transmission link
    • H04L2001/0094Bus

Abstract

【課題】データの規格を拡張することなく、安定した通信を行って、システムの信頼性を向上することを課題とする。
【解決手段】通信システム1のデバイス10は、フレーム送信要求(X_RDY)をホスト20に送信した後に、フレーム転送を行う。続いて、送信許可を受信したデバイス10は、SOFからEOFまでフレーム転送を行い、その後、転送終了した後に、WTERMプリミティブを出力しながら、ホストからの受信結果を待つ。そして、ホスト20は、受信の間、受信中を示すR_IPプリミティブを出力し、受信フレームに問題が無ければ、R_OKをデバイス10に送信する。一方、ホスト20は、受信フレームに問題がある場合には、受信エラー(R_ERR)をデバイス10に対して送信する。その後、デバイス10は、ホスト20から受信エラーの返信があった場合には、送信回路の設定を変更する。
【選択図】 図1

Description

この発明は、他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御装置、通信制御方法および通信制御プログラムに関する。
現在、ディスクドライブの新インタフェースとして、シリアルATAインタフェース(以下、SATAインタフェースと称する)が主流となってきている。このSATAインタフェースとは、従来のATAインタフェース(つまりパラレルATAインタフェース)と同様に、磁気ディスクドライブに代表される周辺機器とパーソナルコンピュータに代表されるホスト(ホストシステム)との間のインタフェースとして用いられる。
このようなSATAインタフェースを持つ周辺機器であるデバイス(例えば、磁気ディスクドライブ(以下、適宜HDDと称する)は、ホスト(Host Bus Adaptor)とSATAバスにより接続され、FIS(Frame Information Structure)という単位で、通信が行われる。
また、ホスト側は、シャドウタスクファイルレジスタを持ち、アプリケーションがこのレジスタをアクセスすること(例えば、コマンド発行など)によりFIS(Frame Information Structure)がデバイスに発行され、デバイス側のタスクファイルレジスタに反映する。そして、デバイスは、反映されたコマンドを解釈して処理する。また、デバイスからのコマンド応答もFISによって伝達され、ホスト側のシャドウタスクファイルレジスタに反映される。
また、SATAインタフェースにおける規格では、SATAインタフェースを使用したデータ転送において最大1mのケーブルが使用できることと定められている。また、受信側での信号振幅の最大レベル及び最小レベルについても、Genliの規格ではそれぞれ600mV及び325mVと定められている。
ところで、実際にSATAインタフェースを用いて機器を接続する場合、ケーブル(SATAバス)によるデータ信号の減衰が起こる。つまり、SATAインタフェースを適用する送信側の機器から出力されたデータ信号がケーブル(SATAバス)で減衰され、受信側では信号振幅が小さくなる問題がある。
そのため、長いケーブルや品質の悪い伝送路で接続されている場合には、振幅や信号品質が劣化し、通信エラーを起こす可能性がある。一方、悪い伝送路を想定して、例えば信号振幅を上げすぎると、上記したSATAインタフェースの規格をオーバし、相手装置にダメージを与える可能性もある。
このように、どのような伝送路で接続されるか分からないため、装置起動時に設定される、固定のパラメータを使わざるを得なかった。したがって、図13に示すように、送信側からR_ERRが返ってきた場合に、ハードウェアで規定の回数のリトライを行っているが、固定のパラメータを使用していたため、救済される可能性は極めて少なかった。
このため、特許文献1では、或るポートの受信信号の振幅を規格基準と比較し、ポートの送信信号の振幅を操作する方法が開示されている。つまり、受信信号系のレベルに応じて、受信系とは別の送信信号系の振幅を制御する。
また、受信側と送信側とで通信を行って出力信号レベルを調整する方法も知られている。具体的には、受信側が受信信号の品質を測定し、その結果に基づいて送信側に補正要求データを送信する。そして、送信側が受信した補正要求データに従って、送信出力の設定を補正する。
特開2005−50257号公報
ところで、上記した特許文献1の技術では、二つの独立した信号伝送系が全く同じ振幅をしていると仮定しているので、例えば、受信信号レベルが規格基準より高くて自ポートの送信レベルを下げる(負のフィードバック)場合に、自ポートの送信系がすでに規格基準より低くてもさらに下げてしまうので、相手ポートは現在よりさらに信号レベルを上げてきてラッチアップしてしまう結果、安定した通信が行えずに、システムの信頼性に欠けるという課題があった。
また、上記した受信側と送信側とで通信を行って出力信号レベルを調整する方法では、出力信号レベルを調整するための補正要求データを送受信するので、送信側受信側ともに、補正要求データの規格を拡張する必要がある。
そこで、この発明は、上述した従来技術の課題を解決するためになされたものであり、データの規格を拡張することなく、安定した通信を行って、システムの信頼性を向上することを目的とする。
この装置は、他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御装置であって、前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更手段を備えることを要件とする。
開示の装置は、本発明により、受信エラー受信時に送信回路の設定を変更するので、データの規格を拡張することなく、また、伝送系の品質に寄らずに安定した通信が行えるとともに、システムの信頼性を向上するという効果を奏する。
以下に添付図面を参照して、この発明に係る通信制御装置、通信制御方法および通信制御プログラムの実施例を詳細に説明する。
以下の実施例では、実施例1に係る通信システムの概要および特徴、通信システムの構成および処理の流れを順に説明し、最後に実施例1による効果を説明する。なお、以下では、シリアルATAインタフェースを持つマザーボード(以下、ホストという)と磁気ディスクドライブ(以下、デバイスという)がSATAバスを介して、フレームデータの送受信を行う通信システムの例について説明する。
[実施例1に係る通信システムの概要および特徴]
まず最初に、図1を用いて、実施例1に係る通信システムの概要および特徴を説明する。図1は、実施例1に係る通信システムの概要および特徴を説明するための図である。
実施例1の通信システム1では、デバイス10がホスト20にデータを送信し、ホスト20から正常にデータを受信できたか否かの通知を受信することを概要とする。そして、このデバイス10では、システムの信頼性を向上する点に主たる特徴がある。なお、以下の説明では、ホスト20に対してフレーム送信を行うデバイス10を送信側、デバイス10からフレーム受信を行うホスト20を受信側とする場合の例を説明するが、ホストを送信側、デバイスを受信側としてもよい。
この主たる特徴について具体的に説明すると、通信システム1は、ホスト20に対してフレーム送信を行うデバイス10と、デバイス10からフレーム受信を行うホスト20とで構成され、SATAケーブルを介して接続されている。
このような構成のもと、通信システム1のデバイス10は、フレーム送信要求(X_RDY)をホスト20に送信した後に、フレーム転送を行う(図1の(1)参照)。具体的には、デバイス10は、フレーム送信要求(X_RDY)をホスト20に送信する。そして、フレーム送信要求を受信したホスト20は、準備が整うと、デバイス10に対し、送信許可(R_RDY)を返信する。
続いて、送信許可を受信したデバイス10は、SOFからEOFまでフレーム転送(後に説明する、図3参照)を行い、その後、転送終了した後に、WTERMプリミティブを出力しながら、ホストからの受信結果を待つ。そして、ホスト20は、受信の間、受信中を示すR_IPプリミティブを出力し、受信フレームに問題が無ければ、R_OKをデバイス10に送信する。一方、ホスト20は、受信フレームに問題がある場合には、受信エラー(R_ERR)をデバイス10に対して送信する(図1の(2)参照)。
その後、デバイス10は、ホスト20から受信エラーの返信があった場合には、送信回路の設定を変更する(図1の(3)参照)。例えば、デバイス10は、受信エラー(R_ERR)を受信した場合には、デバイスは送信エラーステータスビットをセットし、バスをアイドル状態に移行させる。そして、デバイス10は、送信エラーステータスビットがセットされている場合には、Alignを送信するタイミングで、設定値テーブルを参照してTX振幅パラメータを変更する。その際、デバイス10は、送信エラーステータスビットはクリアする。
その後、デバイス10は、再度フレーム送信要求を行って、リトライを行う。なお、図1の例では、設定値テーブルが「リトライ15回目用」として、設定値が設定されており、最大15回のリトライを行うようになっている。なお、15回のリトライでもR_ERRが返ってきた場合には、割り込みを発生し、処理をファームウェアに戻す。
このように、通信システム1は、上記した主たる特徴のごとく、受信エラー受信時に送信回路の設定を変更するので、データの規格を拡張することなく、また、伝送系の品質に寄らずに安定した通信が行えるとともに、システムの信頼性を向上することが可能である。
[通信システムの通信階層]
次に、図2を用いて、図1に示した通信システム1におけるSerialATAの通信階層を説明する。図2は、実施例1に係る通信システム1のSerialATAの通信階層を示すブロック図である。
同図に示すように、デバイス10とホスト20との間のインタフェースとして用いられるSATAインタフェースでは、通信プロトコル7層のうち、4つの層、つまり物理(PHY)層(Physical Layer)、リンク(LINK)層、トランスポート(Transport)層、およびアプリケーション(Application)層を使用している。物理層は、シリアルATAバスを介して高速のシリアルデータ転送(送受信)を実行する機能を有しており、シリアルデータ信号を入出力する。
ここで、図3および図4を用いてフレームの転送制御について説明する。図3に示すように、リンク層は、プリミティブ(primitive)と呼ばれる制御コードで転送制御される。プリミティブは、1ダブルワード(4バイト)のデータで、K28.3またはK28.5と呼ばれる制御用コード(1バイト目)と、3バイトのデータコードから構成される。
そして、リンク層は、トランスポート層から送られてきたフレームデータのCRCを計算し、フレームデータの最後に付加し、SOFプリミティブとEOFプリミティブにより挟まれ、先頭と最後の目印を付けられ、8b10b符号化して物理層に送る。
図4の例を用いて転送制御の簡単な一例を説明する。同図に示すように、送信側であるデバイス10は、送信フレームがあると、アービトレーションとして、送信側リンク層がX_RDYで送信要求を受信側であるホスト20に送信し、受信側リンク層のR_RDYの返信によって、送信許可を得る。
その後、デバイス10は、前述のSOFからEOFまでをホスト20に送信する。その後、デバイス10は、WTRMを送信しながら受信側であるホスト10の送信ステータスを待つ。ホスト20は、正常ならR_OKを、また異常があればR_ERRをデバイス10に返信する。そして、デバイス10は、受信エラー(R_ERR)を受信した場合には、TX振幅パラメータを変更して再度フレーム送信要求を行って、リトライを行う。
なお、シリアルATAでは、送信側のクロック源と受信側のクロック源の周波数が必ずしも完全一致していないため、その差を補正しながら受信クロックを生成する。また、長時間経過するとクロックの位相がずれてしまうので、SATAインタフェース規格では、256ダブルワードの中に必ず2組(2Dワード)以上のALIGNプリミティブを転送し、位相修正を行う。
[デバイスの構成]
次に、図5を用いて、図1に示したデバイス10の構成を説明する。図5は、実施例1に係るデバイス10の構成を示すブロック図である。同図に示すように、このデバイス10は、通信I/F11、制御部12、記憶部13を備え、SATAケーブルを介してホスト20と接続される。以下にこれらの各部の処理を説明する。
通信I/F11は、接続されるホスト20との間でやり取りする各種情報に関する通信を制御する。具体的には、通信I/F11は、フレーム送信要求(X_RDY)やフレームデータをホスト20へ送信し、また、送信許可(R_RDY)や受信エラー(R_ERR)をホスト20から受信する。
記憶部13は、制御部12による各種処理に必要なデータおよびプログラムを格納するが、特に本発明に密接に関連するものとしては、記憶部13には振幅を設定するための振幅設定用レジスタ13aを備える。
振幅設定用レジスタ13aは、16ビットレジスタ4個で構成されており、各レジスタの各フィールドに対応したTX振幅の値がセットされている。これらの設定値は、ホスト20からの受信エラーの返信があった場合に、後述する設定変更部12cによって参照される。具体的には、振幅設定用レジスタ13aは、4ビット毎のフィールドに、それぞれ「初期値用」、「リトライ1回目用」、「リトライ2回目用」、・・・と定義されており、デバイス10が備えるTX信号の振幅を制御する0h〜Fhまでの値を設定する。
そして、振幅設定用レジスタ13aは、各レジスタの各フィールドに対応して設定している。例えば、振幅設定用レジスタ13aは、図6に例示するように、初期値が0x5(0101b)とし、リトライ1回目を0x6に、2回目を0x7に、・・・といった具合に、予め決めておいた値が設定されている。
また、図6に例示する振幅設定用レジスタ13aでは、リトライを繰り返す毎に各フィールドで設定されたTX振幅の設定値に設定され、最終リトライでは、初期値のTX振幅の値となるように設定されている。なお、図6例では、レジスタのフィールドの数を16カ所とした場合を示しているが、4カ所のように少なくし、リトライカウントに応じて、初期値用、リトライ1回目用、リトライ2回目用、リトライ3回目用、初期値用、リトライ1回目用・・・といった具合に、設定値を繰り返す構成であってもよい。
制御部12は、各種の処理手順などを規定したプログラムおよび所要データを格納するための内部メモリを有し、これらによって種々の処理を実行するが、特に本発明に密接に関連するものとしては、送信部12a、受信部12b、設定変更部12cを備える。なお、設定変更部12cは、特許請求の範囲に記載の「設定変更手段」に対応する。
送信部12aは、SATAケーブルを介してシリアルデータをホスト20に送信する。具体的には、送信部12aは、フレーム送信要求(X_RDY)やフレームデータをホスト20へ送信する。また、受信部12bは、SATAケーブルを介してシリアルデータをホスト20から受信する。具体的には、受信部12bは、送信許可(R_RDY)や受信エラー(R_ERR)をホスト20から受信し、受信エラー(R_ERR)および受信正常(R_OK)を受信した場合には、設定変更部12cに受信した旨を通知する。
設定変更部12cは、ホスト20から受信エラーの返信があった場合には、送信回路の設定を変更する。具体的には、設定変更部12cは、受信エラー(R_ERR)を受信した旨を受信部12bから受信した場合には、送信エラーステータスビットをセットし、バスをアイドル状態に移行させる。そして、設定変更部12cは、カウンタ値の値を1インクリメントし、そのカウンタ値「N」が16未満であるか判定する。その結果、設定変更部12cは、カウンタ値「N」が16未満でない場合には、割り込みを発生し、処理をファームウェアに戻す。
また、設定変更部12cは、カウンタ値「N」が16未満である場合には、送信エラーステータスビットがセットされていることを条件に、Alignを送信するタイミングで、リトライカウンタの値に対応した、振幅設定用レジスタ13aを参照してTX振幅パラメータを変更する。その際、設定変更部12cは、送信エラーステータスビットはクリアする。その後、設定変更部12cは、再度フレーム送信要求を行って、リトライを行う。
ここで、Alignプリミティブの送信タイミングで設定を変更しているのは、受信しても意味を成さないため、このタイミングで設定を切り替えたことによって、ノイズが生じたとしても、再同期により、通信に影響がないからである。ただし、再同期に失敗する恐れがあるため、Alignの送信数を増やして対応する。なお、Alignプリミティブ送信時に限定するものではないが、Alignプリミティブ以外の送信タイミングで、設定を変更すると、ビット列にノイズやオフセットが生じ、ホストが誤って受信し、ハングする恐れもある。
[デバイスによる処理]
次に、図7を用いて、実施例1に係るデバイス10による処理を説明する。図7は、実施例1に係るデバイス10の処理動作を示すフローチャートである。
同図に示すように、デバイス10は、リトライカウンタ値「N」を初期値「0」(TX振幅パラメータ=0x5)に設定した後(ステップS101)、ホスト20に対し、フレーム送信要求(X_RDY)を送信する(ステップS102)。そして、デバイス10は、ホスト20から送信許可(R_RDY)を受信すると(ステップS103)、SOFからEOFまでフレーム転送を行う(ステップS104)。その後、デバイス10は、転送を終了した後、WTERMプリミティブを出力しながら、ホストからの受信結果を待つ(ステップS105)。
そして、デバイス10は、受信正常(R_OK)を受信したか判定する(ステップS106)。その結果、受信正常(R_OK)を受信した場合には(ステップS106肯定)、処理を正常に終了する。一方、デバイス10は、受信正常(R_OK)を受信せずに、受信エラー(R_ERR)を受信した場合には(ステップS106否定)、バスをアイドル状態に移行させ、送信エラーステータスビットをセットする(ステップS107)。そして、デバイス10は、カウンタ値の値を1インクリメントし、そのカウンタ値「N」が16未満であるか判定する(ステップS108)。その結果、デバイス10は、カウンタ値「N」が16未満でない場合には(ステップS108否定)、割り込みを発生し、処理をファームウェアに戻す。
また、デバイス10は、カウンタ値「N」が16未満である場合には(ステップS108肯定)、送信エラーステータスビットがセットされていることを条件に、Alignを送信するタイミングで、リトライカウンタの値に対応した、振幅設定用レジスタを参照してTX振幅パラメータを変更する(ステップS109)。その際、デバイス10は、送信エラーステータスビットはクリアする。その後、デバイス10は、S102に戻って、再度フレーム送信要求を行い、リトライを行う。
[実施例1の効果]
上述してきたように、通信システム1は、受信エラー受信時に送信回路の設定を変更するので、データの規格を拡張することなく、また、伝送系の品質に寄らずに安定した通信が行えるとともに、システムの信頼性を向上することが可能である。
また、実施例1によれば、パラメータの変更指示があった時に、データ送信中に切り替えると不連続なオフセット変動やタイミング変動が発生し、さらなるエラーを引き起こすことが考えられる。このため、変更指示に対して、即時に切り替えるのではなく、AGILNプリミティブ送信時などの通信に影響のないタイミングで設定を反映することにより、通信を切らずに、パラメータの通信途中で通信に影響のないタイミングで設定を反映することが可能である。
ところで、上記の実施例1では、デバイスがTX信号の振幅を制御する4ビットのフィールドを16カ所備える場合を説明したが、本発明はこれに限定されるものではなく、デバイスがTX信号の振幅を制御する4ビットのフィールドを1つだけ備えるようにしてもよい。
そこで、以下の実施例2では、デバイス10aがTX信号の振幅を制御するレジスタを1つだけ備え、初期値0x5(0101b)とし、さらに、ファームウェアがリトライ1回目の設定値「0x6」、2回目の設定値「0x7」、・・・といった具合に、予め決めておいた設定値を記憶するリトライテーブルを記憶部13に持つ場合として、図8を用いて、実施例2に係るデバイス10aの処理について説明する。図8は、実施例2に係るデバイスの処理手順を示すフローチャートである。
同図に示すように、実施例2に係るデバイス10aでは、ホスト20にフレーム送信を行った後(ステップS201)、ホストからR_ERRを受信した場合に(ステップS202否定)、割り込みを発生させ、ファームウェアに処理を移行させる(ステップS203)。そして、デバイス10aは、カウンタ値の値を1インクリメントし、そのカウンタ値「N」が16未満であるか判定する(ステップS204)。その結果、デバイス10aは、カウンタ値「N」が16未満でない場合には(ステップS204否定)、エラー処理を行う。
また、デバイス10は、カウンタ値「N」が16未満である場合には(ステップS204肯定)、ファームウェアがカウント値とリトライテーブルとに応じて、TX振幅パラメータをレジスタに書き換える(ステップS205)。つまり、例えば、リトライ値が「N=1」である場合には、リトライ1回目であるとし、リトライテーブルに対応する設定値「0x6」のTX振幅パラメータをレジスタに書き換える。
設定は、即座に反映されず、ハードウェアによって、AGILNプリミティブを送信するタイミングで、設定を反映させる(ステップS206)。なお、上記ではリトライテーブルを持つ場合を説明したが、テーブルを持たず、計算式によって設定値を求めるような構成であってもよい。
このように、上記の実施例2では、受信エラーを受信した場合には、送信回路の設定を制御するレジスタの設定値をファームウェアによって書き換えるように制御して、送信回路の設定を変更するので、単一のレジスタでデータの規格を拡張することなく、安定した通信を行って、システムの信頼性を向上することが可能である。
ところで、上記の実施例1では、デバイスが送信側で、R_ERRを受信した場合に、送信側であるデバイスのパラメータを変更する場合を説明したが、本発明はこれに限定されるものではなく、デバイスが受信側で、R_ERRを送信した場合に、受信側であるデバイスのパラメータを変更するようにしてもよい。なお、受信側のデバイスがパラメータを変更する場合、送信側のホストがリトライをするかどうか、不明なため、リトライをするという前提で以下説明する。
そこで、以下の実施例3では、R_ERRを送信した場合に、受信側であるデバイス10bのパラメータを変更する場合として、図9および図10を用いて、実施例3におけるデバイスの構成と処理について説明する。図9は、実施例3に係るデバイス10bが保持する設定値テーブルであり、図10は、実施例3に係るデバイス10bの処理手順を示すフローチャートである。
図9に示すように、実施例3に係るデバイス10bでは、RX信号のスレッショルドを制御する4ビットのフィールドを3箇所備えたレジスタを備えている。このスレッショルドとは、設定した振幅より小さい信号を無視するための設定である。例えば、レジスタは、初期値が0x5(0101b)とし、リトライ1回目を0x4に、2回目を0x3に、といった具合に、予め決めておいたスレッショルドの値が設定されている。
例えば、図9に示すように、デフォルト時、200mV(0101b)とし、リトライ1回目は175mVに、2回目は150mVに、といった具合に、予め決めておいた値を設定しておく。なお、ここでは、レジスタの数を3個として、ファームウェアの介在なく、リトライに応じる構成について説明したが、レジスタの数を初期値用のみとし、予め決めておいたスレッショルドの設定値を記憶するリトライテーブルを記憶部13に持つようにして、受信エラーの度に、割り込みを発生し、ファームウェアによって、リトライテーブルに対応するスレッショルドの値をRXスレッショルド設定レジスタに書き換え、リトライに応じる構成であってもよい。
次に、実施例3に係るデバイス10bの処理手順について説明する。図10に示すように、デバイス10bは、ホスト20が送信したフレーム送信要求(X_RDY)を受信する(ステップS301)。そして、デバイス10bは、R_ERR送信ビットが「0」であるか否か判定し(ステップS302)、R_ERR送信ビットが「1」である場合には(ステップS302否定)、ホストからのCONTプリミティブを受信した後、RXスレッショルド設定をリトライ用のレジスタにセットされている値に変更する。例えば、デバイス10bは、リトライ一回目である場合には、RXスレッショルド設定をリトライ1回目用レジスタにセットされている175mVに変更する。その際、受信エラーステータスビットはクリアする(ステップS303)。
その後、ホスト20からフレーム送信要求(X_RDY)を来た場合、フレーム送信許可(R_RDY)を出し、ホスト20からのデータを受信する(ステップS304)。ここで、CONTプリミティブとは、通常、繰り返し送信されプリミティブの代わりに送信されるプリミティブで、直前のプリミティブと同じ意味として処理される。例えば、アイドル状態を続ける場合、SYNCプリミティブが繰り返し送信される代わりに、CONTプリミティブが送信され、引き続きスクランブルされた任意のData(JUNK)が送信される。
そして、デバイス10bは、ホスト20に対して送信許可(R_RDY)を返す(ステップS304)。ホスト20は、SOFからEOFまでフレーム転送を行い(ステップS305)、転送終了後、WTERMプリミティブを出力しながら、デバイス10bからの受信結果を待つ(ステップS306)。デバイス10bは、受信の間、受信中を示すR_IPプリミティブを出力し、正常に受信できたか判定して(ステップS307)、その結果、受信フレームに問題が無ければ(ステップS307肯定)、R_OKをホスト20に送信する。
一方、デバイス10bは、正常に受信できなかった場合には(ステップS307否定)、デバイスはR_ERRを送信し、R_ERR送信ビットを「1」にセットする(ステップS308)。その後、デバイス10bは、SYNCプリミティブを送信し、バスをアイドル状態に移行させてステップS302に戻る。つまり、正常に受信できなかった場合には、ホスト20からのリトライ要求がある度に、2回目用レジスタ、初期値用、リトライ1回目用・・・といった具合に、設定値を繰り返し、リトライに応じる。
なお、図10のフローの中では、バスがアイドル状態を意味するCONTプリミティブを受信したら、設定を変更しているが、特に、それに限定するものではない。また、リトライで変更するパラメータを受信側のパラメータとして、スレッショルド設定パラメータとしたが、PLLの応答特性やイコライザ等の設定を変更してもよい。つまり、ループフィルタの特性やダンピングファクタの設定を変更することで、振幅が小さくてエラーが発生していたのが、エラーが発生しなくなるようにできる。
このように実施例3によれば、受信側の受信回路を設定して、データの規格を拡張することなく、安定した通信を行って、システムの信頼性を向上することが可能となる。
さて、これまで本発明の実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では実施例4として本発明に含まれる他の実施例を説明する。
(1)設定用レジスタ
上記の実施例1では、設定用レジスタとして、リトライを繰り返す毎にTX振幅の値が大きくなるように設定値を設定する場合を説明したが、本発明はこれに限定されるものではなく、図11に例示するように、初期値を基準として、TX振幅の値が大きくなる設定値と、小さくなる設定値とが交互になるように設定してもよい。
このように、TX振幅の値が小さくなる設定値を設けるので、長いケーブルや品質の悪い伝送路で接続されていることが原因で、データ信号の減衰している場合に、信号振幅を上げ、また、TX振幅が大きいことが原因でジッタが発生して通信エラーが発生している場合に、TX振幅を小さくして、リトライできる結果、安定した通信を行うことが可能である。
(2)送信回路の設定
また、上記の実施例1では、リトライで変更するパラメータとして、TX出力信号の振幅パラメータを変更する場合を説明したが、本発明は変更する変更するようにしてもよい。
(3)システム構成等
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、受信部12bと設定変更部12cを統合してもよい。さらに、各装置にて行なわれる各処理機能は、その全部または任意の一部が、CPUおよび当該CPUにて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現され得る。
また、本実施例において説明した各処理のうち、自動的におこなわれるものとして説明した処理の全部または一部を手動的におこなうこともでき、あるいは、手動的におこなわれるものとして説明した処理の全部または一部を公知の方法で自動的におこなうこともできる。この他、上記文書中や図面中で示した処理手順、制御手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。
(4)プログラム
ところで、上記の実施例で説明した各種の処理は、あらかじめ用意されたプログラムをコンピュータで実行することによって実現することができる。そこで、以下では、図12を用いて、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図12は、通信制御プログラムを実行するコンピュータを示す図である。
同図に示すように、通信制御装置としてのコンピュータ600は、HDD610、RAM620、ROM630およびCPU640をバス650で接続して構成される。
そして、ROM630には、上記の実施例と同様の機能を発揮する通信制御プログラム、つまり、図12に示すように、データ送信プログラム631、データ受信プログラム632、設定変更プログラム633が予め記憶されている。なお、プログラム631〜633については、図5に示したデバイス10の各構成要素と同様、適宜統合または分散してもよい。
そして、CPU640が、これらのプログラム631〜633をROM630から読み出して実行することで、図12に示すように、各プログラム631〜633は、データ送信プロセス641、データ受信プロセス642、設定変更プロセス643として機能するようになる。各プロセス641〜643は、図5に示した送信部12a、受信部12b、設定変更部12cにそれぞれ対応する。
また、HDD610には、図12に示すように、設定値テーブル611が設けられる。そして、CPU640は、設定値テーブル611に対してデータを登録するとともに、設定値テーブル611から設定値データ621を読み出してRAM620に格納し、RAM620に格納された設定値データ621に基づいて処理を実行する。
(付記1)他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御装置であって、
前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更手段を備えることを特徴とする通信制御装置。
(付記2)前記設定変更手段は、前記送信回路の設定として、振幅、プリエンファシス量、スルーレート量のいずれか一つまたは複数を変更することを特徴とする付記1に記載の通信制御装置。
(付記3)前記設定変更手段は、他の通信制御装置との位相修正を行うためのデータを送信するタイミングで、前記送信回路の設定を変更することを特徴とする付記1または2に記載の通信制御装置。
(付記4)送信回路の設定を制御する複数のレジスタそれぞれに、送信回路の設定用の値を対応付けるとともに、各レジスタが送信回路の設定を制御する順番を所定の記憶部に記憶する設定値記憶手段と、
前記設定変更手段は、前記受信エラーを受信した場合には、前記所定の記憶部に記憶された前記各レジスタの順番に従って、送信回路の設定を変更することを特徴とする付記1〜3のいずれか一つに記載の通信制御装置。
(付記5)前記受信エラーを受信した場合には、送信回路の設定を制御するレジスタの設定値をファームウェアによって書き換えるように制御して、送信回路の設定を変更することを特徴とする付記1〜3のいずれか一つに記載の通信制御装置。
(付記6)他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御方法であって、
前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更ステップを含んだことを特徴とする通信制御方法。
(付記7)他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御方法をコンピュータに実行させる通信制御プログラムであって、
前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更手順をコンピュータに実行させることを特徴とする通信制御プログラム。
(付記8)他の通信制御装置からデータを受信し、当該他の通信制御装置から正常にデータを受信できたか否かを判定する通信制御装置であって、
前記他の通信制御装置からデータを正常に受信できなかった場合には、受信回路の設定を変更する設定変更手段を備えることを特徴とする通信制御装置。
(付記9)前記設定変更手段は、意味を成さないデータを受信したタイミングで設定を変更することを特徴とする付記8に記載の通信制御装置。
以上のように、本発明に係る通信制御装置、通信制御方法および通信制御プログラムは、他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する場合に有用であり、特に、データの規格を拡張することなく、安定した通信が行って、システムの信頼性を向上することに適する。
実施例1に係る通信システムの概要および特徴を説明するための図である。 実施例1に係る通信システム1のSerialATAの通信階層を示すブロック図である。 フレームデータの構成を説明するための図である。 フレーム転送制御の一例を説明するための図である。 実施例1に係るデバイスの構成を示すブロック図である。 実施例1に係るデバイスが保持する振幅設定用レジスタの一例を説明するための図である。 実施例1に係るデバイスの処理動作を示すフローチャートである。 実施例2に係るデバイスの処理動作を示すフローチャートである。 実施例3に係るデバイスが保持する設定用レジスタの一例を説明するための図である。 実施例3に係るデバイスの処理動作を示すフローチャートである。 実施例4に係るデバイスが保持する設定用レジスタの一例を説明するための図である。 通信制御プログラムを実行するコンピュータを示す図である。 従来を説明するための図である。
符号の説明
10、10a、10b デバイス
11 通信I/F
12 制御部
12a 送信部
12b 受信部
12c 設定変更部
13 記憶部
13a 振幅設定用レジスタ
20 ホスト

Claims (7)

  1. 他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御装置であって、
    前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更手段を備えることを特徴とする通信制御装置。
  2. 前記設定変更手段は、前記送信回路の設定として、振幅、プリエンファシス量、スルーレート量のいずれか一つまたは複数を変更することを特徴とする請求項1に記載の通信制御装置。
  3. 前記設定変更手段は、他の通信制御装置との位相修正を行うためのデータを送信するタイミングで、前記送信回路の設定を変更することを特徴とする請求項1または2に記載の通信制御装置。
  4. 送信回路の設定を制御する複数のレジスタそれぞれに、送信回路の設定用の値を対応付けるとともに、各レジスタが送信回路の設定を制御する順番を所定の記憶部に記憶する設定値記憶手段と、
    前記設定変更手段は、前記受信エラーを受信した場合には、前記所定の記憶部に記憶された前記各レジスタの順番に従って、送信回路の設定を変更することを特徴とする請求項1〜3のいずれか一つに記載の通信制御装置。
  5. 前記受信エラーを受信した場合には、送信回路の設定を制御するレジスタの設定値をファームウェアによって書き換えるように制御して、送信回路の設定を変更することを特徴とする請求項1〜3のいずれか一つに記載の通信制御装置。
  6. 他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御方法であって、
    前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更ステップを含んだことを特徴とする通信制御方法。
  7. 他の通信制御装置にデータを送信し、当該他の通信制御装置から正常にデータを受信できたか否かの通知を受信する通信制御方法をコンピュータに実行させる通信制御プログラムであって、
    前記他の通信制御装置からデータを正常に受信できなかった旨の通知である受信エラーを受信した場合には、送信回路の設定を変更する設定変更手順をコンピュータに実行させることを特徴とする通信制御プログラム。
JP2007303291A 2007-11-22 2007-11-22 通信制御装置、通信制御方法および通信制御プログラム Pending JP2009130614A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007303291A JP2009130614A (ja) 2007-11-22 2007-11-22 通信制御装置、通信制御方法および通信制御プログラム
US12/247,011 US20090138786A1 (en) 2007-11-22 2008-10-07 Communication control apparatus, communication control method, and communication control program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007303291A JP2009130614A (ja) 2007-11-22 2007-11-22 通信制御装置、通信制御方法および通信制御プログラム

Publications (1)

Publication Number Publication Date
JP2009130614A true JP2009130614A (ja) 2009-06-11

Family

ID=40670799

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007303291A Pending JP2009130614A (ja) 2007-11-22 2007-11-22 通信制御装置、通信制御方法および通信制御プログラム

Country Status (2)

Country Link
US (1) US20090138786A1 (ja)
JP (1) JP2009130614A (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011130008A (ja) * 2009-12-15 2011-06-30 Hitachi-Lg Data Storage Inc データ入出力装置
US8645590B2 (en) 2012-01-18 2014-02-04 Lsi Corporation Application of alternate align primitives during SAS rate matching to improve continuous adaptation

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06268634A (ja) * 1993-03-16 1994-09-22 Seiko Instr Inc 無線通信方式
JP2003078509A (ja) * 2001-09-05 2003-03-14 Hitachi Kokusai Electric Inc 自動再送要求通信方法
JP2005050257A (ja) * 2003-07-31 2005-02-24 Toshiba Corp シリアルataインタフェース持つ電子機器及び信号振幅自動調整方法
JP2005286393A (ja) * 2004-03-26 2005-10-13 Nec Corp 通信装置及び方法
JP2006018712A (ja) * 2004-07-05 2006-01-19 Ricoh Co Ltd デジタル・アナログ混載型半導体集積回路
JP2007267392A (ja) * 2006-03-09 2007-10-11 Silicon Image Inc 集積回路間のポイントツーポイント通信のための物理インタフェースでのエラー検出

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06268634A (ja) * 1993-03-16 1994-09-22 Seiko Instr Inc 無線通信方式
JP2003078509A (ja) * 2001-09-05 2003-03-14 Hitachi Kokusai Electric Inc 自動再送要求通信方法
JP2005050257A (ja) * 2003-07-31 2005-02-24 Toshiba Corp シリアルataインタフェース持つ電子機器及び信号振幅自動調整方法
JP2005286393A (ja) * 2004-03-26 2005-10-13 Nec Corp 通信装置及び方法
JP2006018712A (ja) * 2004-07-05 2006-01-19 Ricoh Co Ltd デジタル・アナログ混載型半導体集積回路
JP2007267392A (ja) * 2006-03-09 2007-10-11 Silicon Image Inc 集積回路間のポイントツーポイント通信のための物理インタフェースでのエラー検出

Also Published As

Publication number Publication date
US20090138786A1 (en) 2009-05-28

Similar Documents

Publication Publication Date Title
US7765348B2 (en) Configurable two-wire interface module
US8719475B2 (en) Method and system for utilizing low power superspeed inter-chip (LP-SSIC) communications
US8225024B2 (en) Use of a first two-wire interface communication to support the construction of a second two-wire interface communication
US9129064B2 (en) USB 3.0 link layer timer adjustment to extend distance
US11467909B1 (en) Peripheral component interconnect express interface device and operating method thereof
US20060200641A1 (en) Protecting data transactions on an integrated circuit bus
EP4116836A1 (en) Equalization time configuration method, chip, and communications system
US20120327950A1 (en) Method for Transmitting Data Packets
JP5407230B2 (ja) Pciカード、マザーボード、pciバスシステム、制御方法、及びプログラム
KR102535563B1 (ko) Can 버스를 이용한 다중 uart 통신 방법, 이를 수행하기 위한 기록 매체 및 장치
JP2009130614A (ja) 通信制御装置、通信制御方法および通信制御プログラム
CN106664231A (zh) 具有检验功能的传输单元
JP4643499B2 (ja) 情報処理装置
EP3726813B1 (en) Control of ethernet link-partner gpio using oam
KR100935000B1 (ko) 상이한 버스 프로토콜을 표현하기 위한 적응적 접근법
KR20050118754A (ko) 데이터 헤더 오류 체크를 통한 버스 사용 효율 향상 방법
CN108241586A (zh) 控制器电路与估计延迟补偿方法
WO2012071925A1 (zh) 单板通信系统及其通信方法
TW201810059A (zh) 主控元件以及資料傳輸方法
JP6241256B2 (ja) 電子機器、制御装置および通信方法
US11960367B2 (en) Peripheral component interconnect express device and operating method thereof
JP6299302B2 (ja) 通信装置および通信システム
US20230315672A1 (en) Interface device and computing system including the same
CN115378756B (zh) 监控控制器域网络(can)xl节点
JP2013105450A (ja) Usb3.0装置及び制御方法

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20091022

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110221

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110426

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110920