JP2017054174A - Receiving apparatus, receiving method, and transfer apparatus - Google Patents
Receiving apparatus, receiving method, and transfer apparatus Download PDFInfo
- Publication number
- JP2017054174A JP2017054174A JP2015175689A JP2015175689A JP2017054174A JP 2017054174 A JP2017054174 A JP 2017054174A JP 2015175689 A JP2015175689 A JP 2015175689A JP 2015175689 A JP2015175689 A JP 2015175689A JP 2017054174 A JP2017054174 A JP 2017054174A
- Authority
- JP
- Japan
- Prior art keywords
- data
- controller
- element data
- transfer
- error
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 239
- 230000005540 biological transmission Effects 0.000 claims description 34
- 230000002159 abnormal effect Effects 0.000 claims description 30
- 230000004044 response Effects 0.000 description 97
- 238000010586 diagram Methods 0.000 description 22
- 238000002360 preparation method Methods 0.000 description 10
- 230000005856 abnormality Effects 0.000 description 8
- 238000001514 detection method Methods 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000005055 memory storage Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 3
Images
Abstract
Description
本発明は、転送対象であるデータを受信する受信装置等に関する。 The present invention relates to a receiving apparatus that receives data to be transferred.
SATAに関するインターフェース規格において、命令、ステータス等の制御系FISについては、FISに関するエラーに対する応答に際して、エラーが生じたフレームを再送信する処理が定義されている。これに対して、該インターフェース規格においては、データFISについては、FISに関するエラー応答に際して、フレームを再送信する処理が定義されていない。 In the interface standard related to SATA, for a control system FIS such as an instruction and status, a process for retransmitting a frame in which an error has occurred in response to an error related to FIS is defined. On the other hand, in the interface standard, for data FIS, a process for retransmitting a frame in response to an error response related to FIS is not defined.
SATAは、シリアルAT_Attachmentの略称を表す。FISは、Frame_Information_Structure(フレーム情報構造)の略称を表す。 SATA represents an abbreviation for serial AT_Attachment. FIS represents an abbreviation of Frame_Information_Structure (frame information structure).
該インターフェース規格に従えば、データを送受信している最中にデータFISに関してエラーが生じた場合に、データFISを送受信する命令を発行する処理、データFISを送受信する処理、送受信処理後のステータスを更新する処理等の一連の処理を再実行する必要がある。この結果、データFISに関してエラーが生じた場合に、該エラーが生じるまでに実行した処理を繰り返し実行する必要があるので、該エラーが生じるまでに実行した処理が無駄である。 According to the interface standard, when an error occurs in the data FIS during data transmission / reception, processing for issuing a command for transmitting / receiving the data FIS, processing for transmitting / receiving the data FIS, and status after the transmission / reception processing are performed. It is necessary to re-execute a series of processes such as an update process. As a result, when an error occurs with respect to the data FIS, it is necessary to repeatedly execute the process executed until the error occurs, so the process executed before the error occurs is useless.
特許文献1に開示されたインターフェース装置は、デコード部と、保持部と、CRC部と、エラー検出部と、データ処理部とを有する。尚、CRCは、Cyclic_Redundancy_Checkの略称を表す。デコード部は、受信したデータをデコードし、デコード後のデータを保持部に保持する。CRC部は、該デコード後のデータに関してCRCエラーを検出する。エラー検出部は、該デコード後のデータに関してデコードエラーを検出する。エラー検出部が検出したデコードエラーが、インターフェースにおける同期を確保している期間に処理されるデータに関するエラーであり、かつ、CRC部がCRCエラーを検出しない場合に、データ処理部は、保持部に保持されているデコード後のデータを、有効なデータとして処理する。
The interface device disclosed in
特許文献2に開示されたデータ転送制御装置は、受信回路と、エラー検出回路と、FIFO回路と、制御回路とを有する。尚、FIFOは、First−In_First−Outの略称を表す。受信回路は、所定のデータ単位にて送信される送信データを受信する。エラー検出回路は、受信した送信データにおけるエラーを検出する。制御回路は、FIFO回路における領域を指し示すアドレスポインタに基づき、FIFO回路に格納された送信データを後段の装置に転送する処理を制御する。該データ転送制御装置は、エラー検出回路がエラーを検出しなかった場合に、アドレスポインタを所定のデータ単位分、インクリメントすることによって、次の送信データを受信する。該データ転送制御装置は、エラー検出回路がエラーを検出した場合に、通信先におけるアドレスポインタを所定のデータ単位分、デクリメントする命令を通信先に送信し、次の送信データを受信する。 The data transfer control device disclosed in Patent Document 2 includes a reception circuit, an error detection circuit, a FIFO circuit, and a control circuit. FIFO represents an abbreviation for First-In_First-Out. The receiving circuit receives transmission data transmitted in a predetermined data unit. The error detection circuit detects an error in the received transmission data. The control circuit controls processing for transferring the transmission data stored in the FIFO circuit to a subsequent apparatus based on an address pointer indicating an area in the FIFO circuit. When the error detection circuit does not detect an error, the data transfer control device receives the next transmission data by incrementing the address pointer by a predetermined data unit. When the error detection circuit detects an error, the data transfer control device transmits an instruction for decrementing the address pointer in the communication destination by a predetermined data unit to the communication destination and receives the next transmission data.
しかし、たとえ特許文献1を用いたとしても、対象データに関する転送処理にてエラーが生じた場合に、効率よく対象データに関する転送処理を実行することは難しい。この理由は、対象データに関する転送処理にてエラーが生じた場合に、該装置が該転送処理を再実行するからである。
However, even if
そこで、本発明の主たる目的は、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することが可能な受信装置等を提供することである。 Accordingly, a main object of the present invention is to provide a receiving apparatus or the like that can receive data in a short time even when an error occurs in the process of transferring data.
前述の目的を達成するために、本発明の一態様において、受信装置は、
対象データに含まれている要素データを受信し、受信した前記要素データがエラーを含んでいるか否かを判定する受信コントローラと、
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいると前記受信コントローラが判定した場合に、前記エラーを含む前記要素データを格納した位置を保存するメモリコントローラと
を備え、
前記メモリコントローラは、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置を基準として、前記メモリの記憶領域に順に格納する。
In order to achieve the above object, in one embodiment of the present invention, a receiving device includes:
A receiving controller that receives element data included in target data and determines whether the received element data includes an error; and
A memory controller that stores the element data in a memory in the order in which the element data is received and stores the position where the element data including the error is stored when the reception controller determines that the element data includes the error And
When the memory controller re-receives the element data included in the target data, the memory controller follows the element data corresponding to the element data including the error among the re-received target data. The data to be stored are sequentially stored in the storage area of the memory with the saved position as a reference.
また、本発明の他の見地として、受信方法は、
対象データに含まれている要素データを受信し、受信した前記要素データがエラーを含んでいるか否かを判定する受信コントローラを備える装置において、
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいる場合に、前記エラーを含む前記要素データを格納した位置を保存するとともに、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置以降に格納する。
As another aspect of the present invention, the receiving method is:
In an apparatus comprising a reception controller that receives element data included in target data and determines whether the received element data includes an error,
The element data is stored in the memory in the order received, and when the element data includes the error, the position where the element data including the error is stored is stored, and is included in the target data. When the received element data is received again, the subsequent data after the element data corresponding to the element data including the error is stored after the saved position among the re-received target data. .
本発明に係る転送装置等によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することができる。 According to the transfer device and the like according to the present invention, even when an error occurs in the process of transferring data, the data can be received in a short time.
次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。 Next, embodiments for carrying out the present invention will be described in detail with reference to the drawings.
<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係るコンピュータシステム101が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係るコンピュータシステム101が有する構成を示すブロック図である。
<First Embodiment>
The configuration of the
第1の実施形態に係るコンピュータシステム101は、大別して、ホスト装置102と、デバイス107とを有する。ホスト装置102は、メモリ103と、転送装置104とを有する。デバイス107は、メモリ108と、転送装置109とを有する。転送装置104は、DMAコントローラ105と、SATAコントローラ106とを有する。転送装置109は、DMAコントローラ110と、SATAコントローラ111とを有する。ホスト装置102と、デバイス107とは、SATAコントローラ106、SATAコントローラ111、及び、SATAコントローラ106とSATAコントローラ111とを通信接続可能な通信路を介して、情報(データ)を送受信することができる。通信路は、たとえば、SATAインターフェース112である。
The
図2を参照しながら、DMAコントローラ121(たとえば、DMAコントローラ105、または、DMAコントローラ110)が有する構成について、さらに詳細に説明する。図2は、DMAコントローラ121が有する構成を示すブロック図である。
The configuration of the DMA controller 121 (for example, the
DMAコントローラ121は、PRDテーブルポインタレジスタ122と、PRDインデックスレジスタ123と、DMAベースアドレスレジスタ124と、DMAバイトカウントレジスタ125とを有する。尚、PRDは、Physical_Region_Descriptorの略称を表す。
The
PRDテーブルポインタレジスタ122は、メモリ103において、PRDテーブル(図3、後述)を記憶している記憶領域の先頭アドレスを記憶することができる。以降、PRDテーブルが格納されている記憶領域の先頭アドレスを、「PRDベースアドレス」(または、「転送ベースアドレス」)と表す。
The PRD
PRDインデックスレジスタ123は、PRDテーブルのうち、転送処理している対象データに関する情報を記憶している記憶領域の先頭アドレスを記憶することができる。尚、PRDインデックスレジスタ123は、PRDテーブルポインタレジスタ122に格納されている値を基準とした場合の、相対アドレスであってもよい。この場合に、PRDテーブルのうち、転送処理しているデータに関する情報を記憶している記憶領域の先頭アドレスは、PRDテーブルポインタレジスタ122に格納されている値と、PRDインデックスレジスタ123に格納されている値との和である。以降、説明の便宜上、PRDインデックスレジスタ123は、該相対アドレスを記憶することができるとする。
The PRD index register 123 can store the start address of the storage area in the PRD table that stores information related to the target data being transferred. Note that the
DMAベースアドレスレジスタ124は、転送対象である対象データを記憶している記憶領域の先頭アドレスを記憶することができる。 The DMA base address register 124 can store the start address of the storage area that stores the target data to be transferred.
DMAバイトカウントレジスタ125は、該対象データのサイズ(大きさ、長さ)を記憶することができる。
The DMA
DMAコントローラ121は、さらに、Transferカウントレジスタを有してもよい。Transferカウントレジスタは、たとえば、対象データに関して、転送処理が完了したデータのサイズ(大きさ、長さ)を記憶することができる。
The
以降の説明においては、説明の便宜上、DMAコントローラ121は、Transferカウントレジスタを有すると仮定する。
In the following description, for convenience of explanation, it is assumed that the
尚、本発明の各実施形態においては、特定の値を格納可能なレジスタを用いて表現するが、必ずしも、該特定の値を格納する専用のレジスタでなく、汎用のレジスタを用いて専用のレジスタに相当する機能を実現してもよい。あるいは、値を記憶可能なレジスタは、メモリ103における一部の記憶領域であってもよい。また、ホスト装置102、及び、デバイス107は、それぞれ、図2に示したレジスタを有しているとする。
In each embodiment of the present invention, a specific value can be stored using a register. However, the register is not necessarily a dedicated register for storing the specific value, but a dedicated register using a general-purpose register. A function corresponding to may be realized. Alternatively, the register capable of storing a value may be a partial storage area in the
次に、図3を参照しながら、転送処理において参照するPRDテーブルが有する構成について、さらに詳細に説明する。図3は、PRDテーブルが有する構成を示すブロック図である。 Next, the configuration of the PRD table referred to in the transfer process will be described in more detail with reference to FIG. FIG. 3 is a block diagram showing the configuration of the PRD table.
PRDテーブルは、転送する対象である対象データが格納されている記憶領域を指し示す先頭アドレス(ベースアドレス)と、該対象データのサイズ(大きさ、長さ)を表すバイトカウントとが関連付けされたアドレスセットを少なくとも1つ記憶することが可能なテーブルである。 The PRD table is an address in which a head address (base address) indicating a storage area in which target data to be transferred is stored and a byte count indicating the size (size, length) of the target data are associated with each other. It is a table capable of storing at least one set.
先頭アドレスは、メモリ(メモリ103、または、メモリ108)のうち、該対象データを記憶している記憶領域を指し示す値である。以降、転送する対象である値を記憶している記憶領域の先頭アドレスを「転送ベースアドレス」等と表すとする。以下の説明においては、バイトカウントを「転送サイズ」等と表すこともある。
The start address is a value indicating a storage area in the memory (the
言い換えると、対象データが複数ある場合に、PRDテーブルは、各対象データに関する先頭アドレスと、該対象データに関するサイズとが関連付けされたアドレスセットを複数種類、記憶することができる。 In other words, when there are a plurality of target data, the PRD table can store a plurality of types of address sets in which the start address related to each target data is associated with the size related to the target data.
説明の便宜上、PRDテーブルは、N個(ただしNは自然数)のアドレスセットを含むとする。また、I(ただし、1≦I≦N)番目のアドレスセットを、「第Iアドレスセット」と表す。さらに、該第Iアドレスセットに含まれている転送ベースアドレスを、「第I転送ベースアドレス」と表し、第Iアドレスセットに含まれている転送サイズを、「第I転送サイズ」と表す。また、第Iアドレスセットが表す記憶領域に格納可能な対象データを、「第I対象データ」と表す。 For convenience of explanation, it is assumed that the PRD table includes N address sets (where N is a natural number). Also, the I (where 1 ≦ I ≦ N) th address set is represented as “the I-th address set”. Further, the transfer base address included in the I-th address set is expressed as “I-th transfer base address”, and the transfer size included in the I-th address set is expressed as “I-th transfer size”. The target data that can be stored in the storage area represented by the I-th address set is represented as “first target data”.
次に、図4を参照しながら、第1の実施形態に係るSATAコントローラ106が送受信する命令「Set_Features」について説明する。図4は、命令「Set_Features」に関するCountフィールドを概念的に表す図である。すなわち、命令「Set_Features」は、Featureフィールドにベンダー固有サブコマンドを有し、Countフィールドにコマンドの詳細情報を有する。
Next, an instruction “Set_Features” transmitted and received by the
命令「Set_Features」は、たとえば、デバイス装置が有する機能を有効に設定する、または、無効に設定する命令である。たとえば、デバイス107に通知する対象である情報は、FeatureフィールドとCountフィールドとに記載されている情報である。命令「Set_Features」は、たとえば、転送装置等のベンダーに固有のサブ命令を介して実現される。命令「Set_Features」は、Featureフィールドを含む。さらに、Set_Featuresは、Countフィールドを含む。Countフィールドは、通常コマンドにおいては、ホスト装置102及びデバイス107間における転送処理に関する情報(たとえば、データ量、データのサイズ)を格納可能である。
The command “Set_Features” is, for example, a command for setting the function of the device device to be valid or invalid. For example, the information to be notified to the
本実施形態に係るCountフィールドについて詳細に説明する。Countフィールドに格納される値の上位4ビット(図4における「ビット[7:4]」)は、たとえば、後述する再送処理に関して処理を繰り返す回数を表す。該値の下位4ビット(図4における「ビット[3:0]」)は、たとえば、指示する内容を表す指示内容に関する値を表す。 The Count field according to the present embodiment will be described in detail. The upper 4 bits (“bits [7: 4]” in FIG. 4) of the value stored in the Count field represent, for example, the number of times the process is repeated with respect to a retransmission process described later. The lower 4 bits of the value (“bit [3: 0]” in FIG. 4) represent, for example, a value related to the instruction content indicating the instruction content.
該繰り返し回数が0の場合は、たとえば、指示内容に関する値にかかわらずに、再送処理が無効状態であることを表す。該繰り返し回数が1以上である場合は、たとえば、再送処理が有効状態であることを表す。さらに、繰り返し回数が1以上の値である場合に、該値は、たとえば、再送処理を異常終了と判定するか否かの閾値を表す。言い換えれば、繰り返し回数が1以上の値である場合、該繰り返し回数以上に再送処理が要求されたときに、後述の装置は、該再送処理に関して異常終了する。 When the number of repetitions is 0, for example, the retransmission process is in an invalid state regardless of the value related to the instruction content. When the number of repetitions is 1 or more, for example, it indicates that the retransmission process is in an effective state. Furthermore, when the number of repetitions is a value of 1 or more, this value represents, for example, a threshold value for determining whether or not the retransmission process is abnormally terminated. In other words, when the number of repetitions is a value of 1 or more, when a retransmission process is requested more than the number of repetitions, the apparatus described later abnormally ends with respect to the retransmission process.
図4に例示するCountフィールドは、上位4ビット(図4における「ビット[7:4]」)に「3」が格納されており、下位4ビット(図4における「ビット[3:0]」)に「0」が格納されている。上位4ビットに格納されている「3」は、再送処理を有効状態に設定すること、及び、再送処理に関する繰り返し回数が3回以上である場合に該再送処理を異常終了することを表す。また、下位4ビットに格納されている「0」は、R_ERR(p)送信に起因して実行される再送処理であることを表す。 In the Count field illustrated in FIG. 4, “3” is stored in the upper 4 bits (“bit [7: 4]” in FIG. 4), and the lower 4 bits (“bit [3: 0]” in FIG. 4). ) Stores “0”. “3” stored in the upper 4 bits indicates that the retransmission process is set to the valid state, and that the retransmission process is abnormally terminated when the number of repetitions related to the retransmission process is three or more. Also, “0” stored in the lower 4 bits represents a retransmission process executed due to R_ERR (p) transmission.
次に、図5及び図6を参照しながら、第1の実施形態に係るSATAコントローラ106がFISを送受信する処理を制御する処理について説明する。図5は、SATAを介して、FISを送信する処理を制御するSATAコントローラ106における処理の流れを示すフローチャートである。図6は、SATAを介して、FISを受信する処理を制御するSATAコントローラ106における処理の流れを示すフローチャートである。
Next, a process for controlling the process in which the
説明の便宜上、ホスト装置102におけるSATAコントローラ106は、たとえば、ホスト装置102がデバイス107にデータを出力するライト処理を表す命令(以降、「ライト命令」と表す)を外部装置等から受信するとする。さらに、該ライト命令に応じた処理において、ホスト装置102がデバイス107に送信する対象であるデータを、「対象データ」と表すとする。また、デバイス107がホスト装置102にデータを出力する処理を表す命令を、「リード命令」と表すとする。
For convenience of explanation, it is assumed that the
まず、ホスト装置102におけるSATAコントローラ106は、外部装置が送信したライト命令を受信し、受信したライト命令に応じて、デバイス107におけるSATAコントローラ111に対象データに関するFISを送信する処理を開始する(ステップS101)。処理を開始した場合に、ホスト装置102におけるSATAコントローラ106は、受信したライト命令に基づいて、Featureフィールドを作成し、作成したFeatureフィールドを含む命令「Set_Features」をデバイス107におけるSATAコントローラ111に送信する。この処理によって、ホスト装置102におけるSATAコントローラ106は、デバイス107におけるSATAコントローラ111に、ホスト装置102に関する状態を通知する。その後、ホスト装置102におけるSATAコントローラ106は、デバイス107におけるSATAコントローラ111に、受信した命令(この場合に、ライト命令)を送信する。
First, the
さらに、ステップS101に示す処理において、ホスト装置102におけるSATAコントローラ106は、受信した命令に基づく命令パラメタ情報を作成し、その後、ホスト装置102におけるDMAコントローラ105を起動する制御を実行する。たとえば、命令に基づく命令パラメタ情報は、処理の種類、対象データの大きさ、該対象データを格納している位置情報等である。命令に応じた指示に関する命令パラメタ情報は、必ずしも、上記のすべての項目を含んでいる必要はない。
Further, in the processing shown in step S101, the
ホスト装置102におけるSATAコントローラ106が起動する制御を実行するのに応じて、ホスト装置102におけるDMAコントローラ105は、起動し、ホスト装置102におけるSATAコントローラ106が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ105における処理については、図7及び図8を参照しながら後述する。
The
一方、デバイス107におけるSATAコントローラ111は、ホスト装置102におけるSATAコントローラ106が送信した命令「Set_Features」、及び、ライト命令を受信する。すなわち、この例の場合に、デバイス107におけるSATAコントローラ111は、対象データを受信する処理を開始する(ステップS121)。たとえば、デバイス107におけるSATAコントローラ111は、受信した命令「Set_Features」に含まれているFeatureフィールドに基づき、ホスト装置102が再送処理可能な装置であること等を認識し、Countフィールドに基づき、再送処理を有効または無効にする。さらに、デバイス107におけるSATAコントローラ111は、受信したライト命令に応じた処理を開始する。
On the other hand, the
ステップS121に示す処理において、デバイス107におけるSATAコントローラ111は、ライト命令に基づいた命令パラメタ情報を作成し、その後、デバイス107におけるDMAコントローラ110を起動する制御を実行する。たとえば、命令に基づいた命令パラメタ情報は、処理の種類、対象データのサイズ、該対象データを格納している位置情報等である。デバイス107におけるSATAコントローラ111が起動する制御を実行するのに応じて、デバイス107におけるDMAコントローラ110は、起動し、デバイス107におけるSATAコントローラ111が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ110については、図7及び図8を参照しながら後述する。
In the processing shown in step S121, the
次に、ホスト装置102におけるSATAコントローラ106は、対象データに関するデータFISを、デバイス107におけるSATAコントローラ111に送信する(ステップS102)。尚、この場合に、ホスト装置102におけるSATAコントローラ106は、さらに、対象データ(または、FIS)に関するエラーを検知可能なデータ(たとえば、CRCに従い算出されたデータ、以降、「CRCデータ」と表す)を送信する。すなわち、CRCデータを参照する処理により、対象データに関するFISに生じたエラーを検知することができる。尚、CRCは、Cyclic_Redundancy_Checkの略称を表す。本実施形態においては、CRCに関する説明を省略する。
Next, the
これに対して、デバイス107におけるSATAコントローラ111は、ホスト装置102におけるSATAコントローラ106が送信したデータFISを受信する(ステップS122)。さらに、デバイス107におけるSATAコントローラ111は、CRCデータを受信し、受信したCRCデータに基づき、受信したデータFISがエラーを含むか否かを判定する(ステップS123)。言い換えれば、デバイス107におけるSATAコントローラ111は、受信したCRCデータに基づき、対象データを構成する要素データごとに、エラーが生じているか否かを判定する。
In response to this, the
デバイス107におけるSATAコントローラ111は、受信したデータFISがエラーを含んでいない場合に(ステップS123にてNO)、データFISを正常に受信したことを表す応答信号(以降、「正常応答信号」と表す)を作成する。デバイス107におけるSATAコントローラ111は、作成した正常応答信号をホスト装置102におけるSATAコントローラ106に送信する(ステップS127)。
The
ステップS123にてNOの場合に、デバイス107におけるSATAコントローラ111は、デバイス107におけるDMAコントローラ110に、正常応答信号を送信する。
If NO in step S123, the
デバイス107におけるSATAコントローラ111は、受信したデータFISがエラーを含んでいる場合に(ステップS123にてYES)、送信する応答信号をある判定基準に従い選び(ステップS124)、選んだ応答信号を送信する。ある判定基準は、たとえば、エラーが生じた回数が所定の回数以下であるか否かを表す条件である。所定の回数は、たとえば、図4に示す命令「Set_Features」におけるCountフィールドに格納されている。デバイス107におけるSATAコントローラ111は、該ある判定基準を満たすと判定する場合に(ステップS124にてYES)、対象データを再送する要求を表す応答信号(以降、「要求応答信号」と表す)を選び、選んだ要求応答信号を、ホスト装置102におけるSATAコントローラ106に送信する(ステップS125)。ステップS125に示す処理において、デバイス107におけるSATAコントローラ111は、エラーが生じたデータFISに関して再送処理を実行する再送通知信号を、デバイス107におけるDMAコントローラ110に対して出力する。デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が出力した再送通知信号を入力する(図8におけるステップS156、後述)。デバイス107におけるSATAコントローラ111は、該ある判定基準を満たさないと判定する場合に(ステップS124にてNO)、対象データを正しく受信できなかったことを表す応答信号(以降、「異常応答信号」と表す)を選ぶ。デバイス107におけるSATAコントローラ111は、選んだ異常応答信号を、ステップS126に示す処理において、デバイス107におけるSATAコントローラ111は、異常通知信号を、デバイス107におけるDMAコントローラ110に対して出力する。デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が出力した異常通知信号を入力する(図8におけるステップS156、後述)。
When the received data FIS includes an error (YES in step S123), the
言い換えれば、デバイス107におけるSATAコントローラ111は、デバイス107におけるDMAコントローラ110に対して、ステップS124にてYESの場合には、再送通知信号を出力し、ステップS124にてNOの場合には、異常通知信号を出力する。たとえば、デバイス107におけるSATAコントローラ111は、エラーの原因となったデータFISに関して、該エラーの回数が所定の回数よりも大きな値である場合には異常応答信号を選び、該エラーの回数が所定の回数以下である場合には要求応答信号を選ぶ。
In other words, the
ホスト装置102におけるSATAコントローラ106は、デバイス107におけるSATAコントローラ111が送信した応答信号(正常応答信号、異常応答信号、または、要求応答信号)を受信することにより(ステップS103)、データFISを送信する処理を終了する(ステップS104)。尚、ホスト装置102におけるSATAコントローラ106は、対象データを送信して(ステップS102)から、応答信号を受信する(ステップS103)までの期間内に、応答信号を待つ処理を実行してもよい。
The
その後、ホスト装置102におけるSATAコントローラ106は、ホスト装置102におけるDMAコントローラ105に、受信した応答信号を送信する。
Thereafter, the
係る応答信号を送信する処理について詳細に説明する。ホスト装置102におけるSATAコントローラ106は、受信した応答信号が、正常応答信号であるか否かを判定する(ステップS105)。ホスト装置102におけるSATAコントローラ106は、受信した応答信号が正常応答信号である場合に(ステップS105にてYES)、エラーが生じなかったことを表す通知信号を、ホスト装置102におけるDMAコントローラ105に対して出力する。以降、説明の便宜上、エラーが生じなかったことを表す通知信号を、「正常通知信号」と表す。その後、ホスト装置102におけるSATAコントローラ106は、データFISに関する処理を正常終了する(ステップS109)。ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が出力した正常通知信号を入力する(図8におけるステップS156、後述)。
Processing for transmitting such a response signal will be described in detail. The
ホスト装置102におけるSATAコントローラ106は、受信した応答信号が正常応答信号でない場合に(ステップS105にてNO)、受信した応答信号が要求応答信号であるか否かを判定する(ステップS106)。ホスト装置102におけるSATAコントローラ106は、応答信号が該要求応答信号である場合に(ステップS106にてYES)、エラーが生じたデータFISを再送する再送通知信号を、ホスト装置102におけるDMAコントローラ105に対して出力する。その後、ホスト装置102におけるSATAコントローラ106は、対象データを再送する処理に関する命令パラメタ情報を設定した後に再送終了する(ステップS107)。ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が出力した再送通知信号を入力する(図8におけるステップS156、後述)。
If the received response signal is not a normal response signal (NO in step S105), the
ホスト装置102におけるSATAコントローラ106は、応答信号が該要求応答信号でない場合に(ステップS106にてNO)、異常終了したことを表す異常通知信号を、ホスト装置102におけるDMAコントローラ105に対して出力する。その後、ホスト装置102におけるSATAコントローラ106は、データFISに関する転送処理を異常終了する(ステップS108)。データFISに関するエラーが所定の回数よりも大きな場合に異常応答信号が送信されるので、異常終了は、該データFISに関する転送処理を繰り返し実行したにもかかわらず、該データFISに関する転送処理が失敗したことを表す。ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が出力した異常通知信号を入力する(図8におけるステップS156、後述)。
When the response signal is not the request response signal (NO in step S106), the
次に、図7を参照しながら、DMAコントローラ105における処理について説明する。図7は、DMAコントローラ105における処理の流れ(1/2)を示すフローチャートである。DMAは、Direct_Memory_Accessの略称を表す。
Next, processing in the
ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が起動する制御を実行するのに応じて処理を開始する。同様に、デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が起動する制御を実行するのに応じて処理を開始する。
The
ホスト装置102におけるDMAコントローラ105は、たとえば、ホスト装置102におけるSATAコントローラ106がステップS101にて作成した命令パラメタ情報を読み取り、読み取った命令パラメタ情報に基づき、メモリ103において、全ての対象データつまりN個の対象データを格納可能な記憶領域を確保し、その領域を指し示すPRDテーブルを用意する(ステップS131)。
ホスト装置102におけるDMAコントローラ105は、用意したPRDテーブルの先頭アドレス(すなわち、「PRDベースアドレス」)を、PRDテーブルポインタレジスタに格納する(ステップS132)。ホスト装置102におけるDMAコントローラ105は、命令FISに応じた転送処理において、転送するデータを一時的に記憶するメモリ領域を確保する(ステップS133)。ホスト装置102におけるDMAコントローラ105は、PRDインデックスレジスタに処理を開始する対象データの番号(たとえば、1)を格納する(ステップS134)。
The
The
ステップS131乃至ステップS134に示す処理によって、ホスト装置102におけるDMAコントローラ105は、全ての対象データつまりN個の対象データを転送する処理に関する準備を実行する。ステップS134に示す処理によって、ホスト装置102におけるDMAコントローラ105は、N個の対象データに含まれている第1対象データを送信する準備を実行する。
By the processing shown in steps S131 to S134, the
同様に、デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111がステップS121にて作成した命令パラメタ情報を読み取り、読み取った命令パラメタ情報に基づき、ステップS131乃至ステップS134に示した処理と同様の処理を実行する。
Similarly, the
DMAコントローラ105は、第I対象データに関するアドレスが格納されている記憶領域を指し示すアドレスを算出する(ステップS135)。より具体的に、ステップS135に示す処理について説明する。まず、ホスト装置102におけるDMAコントローラ105は、PRDテーブルポインタレジスタに格納されているPRDベースアドレス、及び、PRDインデックスレジスタに格納されている値を読み取り、読み取ったPRDベースアドレスと、読み取った値との和を算出する。PRDテーブルポインタレジスタは、PRDテーブルを記憶している記憶領域を指し示す先頭アドレスが格納されている。PRDインデックスレジスタは、PRDテーブルに含まれるN個の対象データのうち、処理している第I対象データを指し示す値が格納されている。
The
ホスト装置102におけるDMAコントローラ105は、算出した先頭アドレスが指し示す記憶領域から第I対象データに関するアドレスセット(すなわち、PRDテーブルの一部)を読み取る(ステップS136)。ホスト装置102におけるDMAコントローラ105は、読み取ったアドレスセットに含まれている転送ベースアドレスを、DMAベースアドレスレジスタに格納する(ステップS137)。ホスト装置102におけるDMAコントローラ105は、読み取ったアドレスセットに含まれているバイトカウントの値(すなわち、「転送サイズ」)を、DMAバイトカウントレジスタに格納する(ステップS138)。ステップS137及びステップS138に示す処理によって、ホスト装置102におけるDMAコントローラ105は、第I対象データに関する転送ベースアドレスをDMAベースアドレスレジスタに格納し、第I対象データに関するサイズをDMAバイトカウントレジスタに格納する。
The
同様に、デバイス107におけるDMAコントローラ110は、ステップS135乃至ステップS138に示した処理と同様の処理を、デバイス107にて実行する。
Similarly, the
ホスト装置102におけるDMAコントローラ105は、ステップS131にて読み取った命令パラメタ情報から再送処理が有効であるか否かを判定する。さらに、ホスト装置102におけるDMAコントローラ105は、ステップS156にて入力した通知信号が再送通知信号であるか否かを判定する(ステップS139)。たとえば、DMAコントローラ105が、該通知信号が格納された記憶領域を参照することにより、ステップS139に示す処理を実現することができる。ホスト装置102におけるDMAコントローラ105は、再送処理が有効であり、かつ、通知信号が再送通知信号である場合に(ステップS139にてYES)、Transferカウントレジスタに、FISオフセットレジスタに格納されているデータを格納する(ステップS140)。この処理によって、ホスト装置102におけるDMAコントローラ105は、たとえば、転送処理しているFISの番号を格納可能なTransferカウントレジスタに、再送要求にて再送を開始するFISの番号を格納可能な記憶領域に記憶されている値を格納する。すなわち、この処理によって、ホスト装置102におけるDMAコントローラ105は、第I対象データに関して、該FISの番号から転送する処理を開始する。
The
尚、説明の便宜上、上述した処理において、PRDテーブルにおける1つのエントリのサイズと、FISのサイズとは同じであるとした。以降に説明する実施形態においても同様である。ただし、PRDテーブルにおける1つのエントリのサイズと、FISのサイズとは必ずしも同じでなくともよい。 For convenience of explanation, it is assumed that the size of one entry in the PRD table is the same as the size of the FIS in the above-described processing. The same applies to the embodiments described below. However, the size of one entry in the PRD table and the size of the FIS are not necessarily the same.
ホスト装置102におけるDMAコントローラ105は、処理の種類が再送処理でないまたは、通知信号が再送通知信号でない場合に(ステップS139にてNO)、Transferカウントレジスタに1を格納する(ステップS141)。尚、Transferカウントレジスタは、PRDの1エントリの内どれだけのデータを転送したかを記憶している。ホスト装置102におけるDMAコントローラ105は、たとえば、第I対象データに関して、1番目のFISから転送する処理を開始する。
If the type of processing is not retransmission processing or the notification signal is not a retransmission notification signal (NO in step S139), the
同様に、デバイス107におけるDMAコントローラ105は、ステップS131乃至ステップS141に示した処理と同様の処理を、デバイス107にて実行する。
Similarly, the
次に、図8を参照しながら、ステップS140(または、ステップS141)に後続するDMAコントローラ105における処理について説明する。図8は、DMAコントローラ105における処理の流れ(2/2)を示すフローチャートである。
Next, processing in the
ホスト装置102におけるDMAコントローラ105は、PRDインデックスレジスタに格納されている値を、FISインデックスレジスタに格納する(ステップS152)。さらに、ホスト装置102におけるDMAコントローラ105は、Transferカウントレジスタに格納されている値(たとえば、1)を、FISオフセットレジスタに格納する(ステップS153)。ステップS152及びステップS153に示す処理によって、たとえば、FISにエラーが生じた場合であっても、FISインデックスレジスタ等を参照することにより、転送装置104は、エラーが生じたFISを再処理することができる。
The
ホスト装置102におけるDMAコントローラ105は、DMAベースアドレスレジスタに格納されている値と、Transferカウントレジスタに格納されている値とを読み取り、読み取った2つの値を足し合わせた値を算出する。ホスト装置102におけるDMAコントローラ105が算出した値は、該DMAコントローラ105が、対象データに関して転送するデータを記憶している記憶領域を表すDMAアドレスを表す。
The
ホスト装置102におけるDMAコントローラ105は、算出したDMAアドレスが表す記憶領域を起点として、データFISのサイズ分の大きさのデータを読み取り、読み取ったデータを該ホスト装置102におけるSATAコントローラ106に対して出力する。
The
ホスト装置102におけるSATAコントローラ106は、ホスト装置102におけるDMAコントローラ105が出力したデータを入力し、入力したデータをデバイス107におけるSATAコントローラ111に送信する。デバイス107におけるSATAコントローラ111は、ホスト装置102におけるSATAコントローラ106が送信したデータを受信し、受信したデータを、デバイス107におけるDMAコントローラ110に対して出力する。すなわち、ホスト装置102におけるDMAコントローラ105は、DMA転送する処理を実行する(ステップS154)。
The
ホスト装置102におけるDMAコントローラ105は、Transferカウントレジスタに格納されている値を読み取り、読み取った値に、転送したデータのサイズを加算する。ホスト装置102におけるDMAコントローラ105は、加算した結果算出される値をTransferカウントレジスタに格納する。すなわち、ホスト装置102におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を、転送したデータのサイズ分(たとえば、FISの個数)だけ増やす(ステップS155)。
The
デバイス107におけるDMAコントローラ110は、DMAベースアドレスレジスタに格納されているデータと、Transferカウントレジスタに格納されているデータを読み取り、読み取った2つのデータを加算する。この処理にて、DMAコントローラ110が算出した値は、該DMAコントローラ110が、受信したデータを格納する記憶領域を表すDMAアドレスを表す。
The
デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が出力したデータを入力し、算出したDMAアドレスから始まる記憶領域に、入力したデータを格納する。すなわち、デバイス107におけるDMAコントローラ110は、DMA転送する処理を実行する(ステップS154)。
The
デバイス107におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を読み取り、記憶領域に格納したデータの個数と、読み取った値とが加算された値を算出し、算出した値を該Transferカウントレジスタに格納する。すなわち、デバイス107におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を、受信したデータのサイズ分だけ増やす(ステップS155)。
The
すなわち、ステップS152乃至ステップS155に示す処理によって、デバイス107におけるDMAコントローラ110、及び、ホスト装置102におけるDMAコントローラ105は、第I対象データに関するデータFISを転送する処理を実行する。
That is, according to the processing shown in steps S152 to S155, the
ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が出力した通知信号を入力する(ステップS156)。ホスト装置102におけるDMAコントローラ105は、ステップS156にて受信した通知信号が再送通知信号であるか否かを判定する(ステップS157)。以降、通知信号が再送通知信号である場合を、再送設定情報が有効であるとも表す。
The
通知信号が再送通知信号である場合に(ステップS157にてYES)、ホスト装置102におけるDMAコントローラ105は、FISインデックスレジスタに格納されている値を、PRDインデックスレジスタに格納する(ステップS158)。その後、ホスト装置102におけるDMAコントローラ105は、ステップS135(図7)に示す処理を実行する。通知信号が再送通知信号である場合に、ステップS158に示す処理によって、ホスト装置102におけるDMAコントローラ105は、PRDインデックスレジスタにおける値をステップS152にて格納した値に設定する。
When the notification signal is a retransmission notification signal (YES in step S157), the
通知信号が再送通知信号でない場合に(ステップS157にてNO)、ホスト装置102におけるDMAコントローラ105は、複数の対象データに関する転送処理がすべて完了したか否かを判定する(ステップS159)。
If the notification signal is not a retransmission notification signal (NO in step S157), the
ステップS159において、ホスト装置102におけるDMAコントローラ105は、たとえば、PRDインデックスレジスタに格納されている値の最上位ビットが「0」であるか、または、「1」であるかを判定する。この処理によって、ホスト装置102におけるDMAコントローラ105は、転送処理を実行したアドレスセットが第N対象データであるか否かを判定する。すなわち、ホスト装置102におけるDMAコントローラ105は、対象データが複数ある場合に、すべての対象データに関して、該対象データを転送する処理が完了したか否かを判定する。
In step S159, the
複数の対象データに関する転送処理がすべて完了した場合に(ステップS159にてYES)、ホスト装置102におけるDMAコントローラ105は、対象データを転送する処理を終了する。また、転送処理が完了していない対象データがある場合に(ステップS159にてNO)、ホスト装置102におけるDMAコントローラ105は、PRDインデックスレジスタの値を、1増やす(ステップS160)。ステップS160に示す処理によって、ホスト装置102におけるDMAコントローラ105は、第(I+1)対象データに関する処理を開始することができる。
When all the transfer processes related to the plurality of target data are completed (YES in step S159), the
同様に、デバイス107におけるDMAコントローラ110は、ステップS152乃至ステップS160に示した処理と同様の処理を、デバイス107にて実行する。
Similarly, the
次に、本実施形態に係る転送装置104が奏する効果について説明する。
Next, effects achieved by the
第1の実施形態に係る転送装置104によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができるとともに、ハードウェアに関する故障が生じる場合であっても処理を停止することができる。
According to the
本実施形態に係る転送装置104が上述した効果を奏する理由を、特許文献1及び特許文献2と対比しながら以下に説明する。
The reason why the
たとえば、第I(ただし、1≦I≦Nの整数)対象データを転送する処理において転送されるN個のデータFISのうち、2つのデータFISにてエラーが生じるとする。該2つのデータFISは、第AデータFIS、及び、第BデータFISであるとする。この前提において、特許文献1に示された装置が、該対象データを転送する処理の流れについて説明し、次に、本実施形態に係る転送装置104が、該対象データを転送する処理の流れについて説明する。その後、該2つの処理の違いが、上述した効果を奏する理由について説明する。
For example, it is assumed that an error occurs in two data FIS out of N data FIS transferred in the process of transferring the I-th (where 1 ≦ I ≦ N) target data. The two data FISs are an A-th data FIS and a B-th data FIS. Under this premise, the flow of processing in which the device disclosed in
特許文献1に示された装置は、対象データに関する処理を実行する場合に、大別して、転送処理に関する準備処理(各種レジスタの設定等)と、対象データを転送する転送処理と実行する。該装置は、第AデータFISにてエラーが生じた場合に、対象データに関する処理を再実行する。すなわち、該装置は、第AデータFISに関してエラーが生じる場合に、該準備処理と、該転送処理とを再実行する。さらに、対象データに関する処理において第BデータFISにてエラーが生じた場合に、該装置は、対象データに関する処理を再実行する。すなわち、上述したような例において、該装置は、該準備処理と、該転送処理とを3回分、実行する。 The apparatus disclosed in Japanese Patent Laid-Open No. 2004-228688 roughly executes a preparation process (such as setting of various registers) related to a transfer process and a transfer process that transfers the target data when executing a process related to the target data. When an error occurs in the A-th data FIS, the apparatus re-executes processing related to the target data. That is, when an error occurs regarding the A-th data FIS, the apparatus re-executes the preparation process and the transfer process. Further, when an error occurs in the B-th data FIS in the process related to the target data, the apparatus re-executes the process related to the target data. That is, in the example as described above, the apparatus executes the preparation process and the transfer process three times.
これに対して、転送装置104は、第AデータFISにエラーが生じた場合に、ステップS158に示した処理によって、ステップS131乃至ステップS134に示す準備処理を実行することなく、転送処理(ステップS135乃至ステップS138、及び、ステップS152乃至ステップS156等に相当)を実行する。さらに、転送装置104は、2度目の該転送処理において、第BデータFISにエラーが生じた場合に、同様の理由により、ステップS131乃至ステップS134に示す準備処理を実行することなく、転送処理を実行する。この結果、本実施形態に係る転送装置104によれば、1度(回)の転送処理で済むので、特許文献1に示された装置に比べ、準備処理が少なくなる。したがって、本実施形態に係る転送装置104によれば、転送エラーが生じるような状況において、効率よくデータを転送することができる。
On the other hand, when an error occurs in the A-th data FIS, the
また、特許文献2に示された装置は、対象データを記憶しているハードウェア(たとえば、記憶領域)が故障した場合に、処理を終了することができない。この理由は、該装置が、エラーの原因であるデータに関して、エラーが生じている期間に繰り返し該データに関する転送処理を繰り返すからである。たとえば、記憶領域が故障した場合に、該記憶領域に格納されているデータに関して、エラーは、該データを読み取るたびに生じる。該装置は、エラーが生じるのに応じて繰り返し転送処理を実行するので、転送処理を終了することができない。 Further, the apparatus disclosed in Patent Document 2 cannot end the process when hardware (for example, a storage area) storing target data fails. This is because the apparatus repeatedly repeats the transfer process for the data during the period in which the error is generated for the data causing the error. For example, when a storage area fails, with respect to data stored in the storage area, an error occurs each time the data is read. Since the apparatus repeatedly executes the transfer process in response to an error, the transfer process cannot be terminated.
これに対して、第1の実施形態に係る転送装置は、図4に示すCountフィールドに基づき、再送処理を実行するか否かを判定する(図6におけるステップS124)ので、所定の回数以下の転送処理を繰り返す。したがって、第1の実施形態に係る転送装置によれば、ハードウェアに関する故障が生じる場合であっても処理を停止することができる。 On the other hand, the transfer apparatus according to the first embodiment determines whether or not to execute a retransmission process based on the Count field shown in FIG. 4 (step S124 in FIG. 6). Repeat the transfer process. Therefore, according to the transfer apparatus according to the first embodiment, it is possible to stop processing even when a hardware-related failure occurs.
<第2の実施形態>
次に、本発明の第2の実施形態について説明する。
<Second Embodiment>
Next, a second embodiment of the present invention will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same components as those in the first embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図9を参照しながら、本発明の第2の実施形態に係るコンピュータシステム201が有する構成について詳細に説明する。図9は、本発明の第2の実施形態に係るコンピュータシステム201が有する構成を示すブロック図である。
With reference to FIG. 9, the configuration of the
第2の実施形態に係るコンピュータシステム201は、大別して、ホスト装置202と、デバイス207とを有する。ホスト装置202は、メモリ103と、転送装置204とを有する。デバイス207は、メモリ108と、転送装置209とを有する。転送装置204は、DMAコントローラ205と、SATAコントローラ206とを有する。転送装置209は、DMAコントローラ210と、SATAコントローラ211とを有する。ホスト装置202と、デバイス207とは、SATAコントローラ206、SATAコントローラ206、及び、SATAコントローラ206とSATAコントローラ206とを通信接続可能な通信路(たとえば、SATAインターフェース112)を介して、情報(データ)を送受信することができる。
A
図10を参照しながら、第2の実施形態に係る転送装置204における処理について説明する。図10は、ホスト装置202がデバイス207におけるデータを読み取るリード命令の場合に、第2の実施形態に係る転送装置204における処理の流れを示すシーケンス図である。
Processing in the
ホスト装置202におけるSATAコントローラ206は、ホスト装置202がデバイス207からデータを受信するリード命令、または、ホスト装置202がデバイス207にデータを送信するライト命令等を表す命令FISを、デバイス207におけるSATAコントローラ211に送信する(ステップS201)。ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205に対して出力する(ステップS203)。
The
ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力した命令FISを入力する(ステップS204)。ホスト装置202におけるDMAコントローラ205は、命令FISを入力するのに応じて、命令パラメタ情報を読み取る等の処理を開始する。
The
デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した該命令FISを受信し(ステップS202)、受信した命令FISを、デバイス207におけるDMAコントローラ210に対して出力する(ステップS205)。デバイス207におけるDMAコントローラ210は、命令FISを入力するのに応じて処理を開始する。
The
尚、SATAコントローラ206がステップS203(または、ステップS205)に示した処理にてDMAコントローラ205を起動する態様は、上述した例(たとえば、FIS)に限定されず、たとえば、上述したような命令パラメタ情報を入出力する態様であってもよい。
Note that the manner in which the
転送装置204においては、命令FISの内容に応じて、ライト命令に応じた処理、または、リード命令に応じた処理が実行される。尚、該ライト命令に応じた処理、または、該リード命令に応じた処理において、SATAコントローラ206は、データを、FISの単位のサイズにて分割し、該FISを送受信する。また、SATAコントローラ206は、該データを構成しているすべてのFISに関して、受信した命令に応じて、次に示すライト命令に応じた処理、または、リード命令に応じた処理を繰り返し実行する。
In the
まず、受信した命令がライト命令である場合における処理について説明する。ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205が処理を開始するのに応じて出力するデータFISを入力し、入力したデータFISを、デバイス207におけるSATAコントローラ211に送信する。デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信したデータFISを受信し、受信したデータFISを、デバイス207におけるDMAコントローラ210に対して出力する。
First, processing when the received command is a write command will be described. The
次に、受信した命令がリード命令である場合における処理について説明する。受信した命令がライト命令である場合には、該命令がリード命令である場合における処理と比較して、データを受信する側、データを送信する側の処理を入れ替えた処理が実行される。このため、以降の説明においては、受信した命令がリード命令である場合の例を参照しながら、本実施形態に係る転送装置204における処理について説明することとし、受信した命令がライト命令である場合については説明を省略する。
Next, processing when the received command is a read command will be described. When the received instruction is a write instruction, a process is executed in which the processes on the data receiving side and the data transmitting side are switched as compared with the process when the instruction is a read instruction. Therefore, in the following description, the processing in the
デバイス207におけるDMAコントローラ210は、第I(ただし、1≦I≦N)対象データを格納している記憶領域から第I対象データに関するデータFISを読み取り、読み取ったデータFISを、デバイス207におけるSATAコントローラ211に対して出力する(ステップS207)。たとえば、デバイス207におけるDMAコントローラ210は、第I対象データを、FISの単位に分割し、分割後のデータFISをデバイス207におけるSATAコントローラ211に対して出力する。
The
以降、転送装置209が受信した命令がリード命令である場合の例を参照しながら、本実施形態に係る転送装置における処理について説明する。
Hereinafter, processing in the transfer apparatus according to the present embodiment will be described with reference to an example in which the instruction received by the
デバイス207におけるSATAコントローラ211は、デバイス207におけるDMAコントローラ210が出力したデータFISを入力し(ステップS208)、入力した第I対象データに関するデータFISを、ホスト装置202におけるDMAコントローラ205に送信する(ステップS209)。ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信したデータFISを受信し(ステップS210)、受信したデータFISを、ホスト装置202におけるDMAコントローラ205に対して出力する(ステップS211)。
The
ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力したデータFISを入力し(ステップS212)、入力したデータFISをメモリ103に格納する。
The
デバイス207における転送装置209及び、ホスト装置202における転送装置204は、たとえば、第I対象データに関して、ステップS207乃至ステップS212に示した処理と同様の処理を繰り返すことにより、第I対象データに関する転送処理を実行する(ステップS213乃至ステップS218)。
For example, the
尚、ステップS207乃至ステップS212に示した一連の処理、または、ステップS213乃至ステップS218に示した一連の処理において、データFISを出力する処理(ステップS211、または、ステップS217)の後に、ステップS219及びステップS220に示す処理が実行される。すなわち、ホスト装置202におけるSATAコントローラ206は、データFISを出力する処理(ステップS211、または、ステップS217)の後に、たとえば、ステップS123(図6)に示した判定処理を実行することによって、受信したデータFISがエラーを含むか否かを判定する。ホスト装置202におけるSATAコントローラ206は、該判定処理に応じて、応答信号を作成し、デバイス207におけるSATAコントローラ211に、作成した応答信号を送信する(ステップS219)。デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した応答信号を受信する(ステップS220)。言い換えれば、ステップS211の後に、ステップS219、及び、ステップS220が実行され、ステップS217の後に、ステップS219、及び、ステップS220が実行される。
In the series of processes shown in steps S207 to S212 or the series of processes shown in steps S213 to S218, after the process of outputting the data FIS (step S211 or step S217), step S219 and The process shown in step S220 is executed. That is, the
次に、図11及び図12を参照しながら、転送装置204が実行する転送処理の流れについて説明する。図11及び図12は、転送装置204が送受信するデータの一例を概念的に表す図である。
Next, a flow of transfer processing executed by the
転送処理において送受信されるデータは、大別して、命令FIS、データFIS、及び、状態FISを含む。命令FIS、データFIS、及び、状態FISは、図11及び図12に示すような構成を有しており、DATA部分(図11及び図12の「データ送信」における「DATA」)のフォーマットが相互に異なっている。 Data transmitted and received in the transfer process is roughly divided into an instruction FIS, a data FIS, and a status FIS. The command FIS, data FIS, and status FIS have a configuration as shown in FIGS. 11 and 12, and the format of the DATA portion (“DATA” in “Data transmission” in FIGS. 11 and 12) is mutual. Is different.
状態FISは、たとえば、応答信号が送受信された後のホスト装置202(または、デバイス207)における状態に関するデータである。 The state FIS is data relating to a state in the host apparatus 202 (or device 207) after a response signal is transmitted / received, for example.
データFISは、第I対象データに関するデータFIS(または、第I対象データ)が、正しいデータであるか否かを、少なくとも検出可能なCRC(図12における「CRC」)データを含む。CRCは、Cyclic_Redundancy_Checkの略称を表す。データFISを受信する装置は、CRCデータに基づき、受信したデータFISがエラーを含むか否かを判定することができる。 The data FIS includes CRC (“CRC” in FIG. 12) data that can at least detect whether the data FIS (or the first target data) regarding the first target data is correct data. CRC represents an abbreviation for Cyclic_Redundancy_Check. The apparatus that receives the data FIS can determine whether the received data FIS includes an error based on the CRC data.
尚、データを格納可能な「DATA」欄は、該「DATA」欄に含まれているデータに基づき算出される値を格納可能な「CRC」欄を含んでいる。 The “DATA” column capable of storing data includes a “CRC” column capable of storing a value calculated based on the data included in the “DATA” column.
SATAに関するインターフェース規格に従えば、対象データは、8キロバイト(=16セクタ×512バイト)毎に分割され、分割されたデータがデータFISとして転送される。転送されるデータ量は、実行される命令に応じて、セクタ数によって指定することができる。該インターフェース規格に従えば、指定することができるセクタ数の最大は、たとえば、65535セクタである。したがって、該インターフェース規格に従えば、指定可能な最大のセクタ数を有するデータ量を転送する場合には、該データ量は、4096(=65535÷16)個のデータFISに分割される。 According to the interface standard related to SATA, the target data is divided every 8 kilobytes (= 16 sectors × 512 bytes), and the divided data is transferred as data FIS. The amount of data to be transferred can be specified by the number of sectors according to the instruction to be executed. According to the interface standard, the maximum number of sectors that can be specified is, for example, 65535 sectors. Therefore, according to the interface standard, when transferring a data amount having the maximum number of sectors that can be specified, the data amount is divided into 4096 (= 65535 ÷ 16) data FIS.
以降の説明においては、説明の便宜上、データは、16個のセクタ毎に分割されているとする。尚、必ずしも、16個のセクタに分割されている必要はない。すなわち、1個のFISは、最大8キロバイトのデータを有することができる。尚、該FISは、8キロバイト以下のサイズであってもよい。 In the following description, for convenience of explanation, it is assumed that data is divided into 16 sectors. Note that it is not necessarily divided into 16 sectors. That is, one FIS can have a maximum of 8 kilobytes of data. The FIS may be a size of 8 kilobytes or less.
次に、図13を参照しながら、第2の実施形態に係るコンピュータシステム201における処理について説明する。図13は、第2の実施形態に係るコンピュータシステム201における処理の流れを示すシーケンス図である。説明の便宜上、ホスト装置202におけるSATAコントローラ206は、デバイス207からホスト装置202にデータを転送するリード命令を外部装置から受信するとする。
Next, processing in the
まず、ホスト装置202におけるSATAコントローラ206は、外部装置が送信したリード命令を受信し、受信したリード命令に応じて、対象データを受信する処理を開始する。たとえば、この処理において、ホスト装置202におけるSATAコントローラ206は、受信したリード命令に先立って、図4に例示するようなCountフィールドを作成し、作成したCountフィールドを含む命令「Set_Features」をデバイス207におけるSATAコントローラ211に送信する(ステップS231)。さらに、ホスト装置202におけるSATAコントローラ206は、受信した命令(この例では、リード命令)をデバイス207におけるSATAコントローラ211に送信する。尚、「Set_Features」に対しても、状態FISがデバイス207からホスト装置202に送信する処理が実行されるが、本実施形態においては、状態FISの処理に関する説明を省略する。
First, the
デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した命令「Set_Features」及びリード命令を受信(ステップS232)する。デバイス207におけるSATAコントローラ211は、受信した命令「Set_Features」内のCountフィールドに含まれている繰り返し回数(すなわち、第1の実施形態に示した所定の回数)を読み取り、さらに、受信したリード命令に応じて、対象データを送信する処理を開始する。
The
デバイス207におけるSATAコントローラ211は、受信したデータ(すなわち、リード命令)がエラーを含んでいるか否かを判定する。デバイス207におけるSATAコントローラ211は、受信した命令FISのデータがエラーを含んでいる場合に、受信した命令FISがエラーを含んでいることを通知する異常応答信号を作成し、作成した異常応答信号をホスト装置202におけるSATAコントローラ206に送信する。デバイス207におけるSATAコントローラ211は、受信したデータがエラーを含んでいない場合に、受信したデータがエラーを含んでいないことを通知する正常応答信号を作成し、作成した正常応答信号をホスト装置202におけるSATAコントローラ206に送信する(ステップS233)。尚、図13は、説明の便宜上、リード命令を送受信する処理において、エラーが生じていない場合の処理を示す。
The
ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信した応答信号を受信する(ステップS237)。ホスト装置202におけるSATAコントローラ206は、受信した応答信号が正常応答信号である場合に、リード命令を送信する処理を正常終了する。ホスト装置202におけるSATAコントローラ206は、受信した応答信号が異常応答信号である場合に、リード命令を送信する処理を異常終了する。
The
ホスト装置202におけるSATAコントローラ206は、該リード命令に応じた指示に関する命令パラメタ情報を作成し(ステップS238)、その後、ホスト装置202におけるDMAコントローラ205を起動する制御を実行する(ステップS239)。たとえば、命令に応じた指示に関する命令パラメタ情報は、処理の種類、対象データのサイズ、該対象データを格納している位置情報等である。命令に応じた指示に関する命令パラメタ情報は、必ずしも、上記のすべての項目を含んでいる必要はない。ホスト装置202におけるSATAコントローラ206が起動する制御を実行するのに応じて、ホスト装置202におけるDMAコントローラ205は、起動し、ホスト装置202におけるSATAコントローラ206が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ205については、図14乃至図17を参照しながら後述する。
The
デバイス207におけるSATAコントローラ211は、ステップS232にて受信した命令(この例では、リード命令)に応じた指示に関する命令パラメタ情報を作成し(ステップS234)、その後、デバイス207におけるDMAコントローラ210を起動する制御を実行する(ステップS235)。たとえば、命令に応じた指示に関する命令パラメタ情報は、処理の種類、対象データのサイズ、該対象データを格納している位置情報等である。デバイス207におけるSATAコントローラ211が起動する制御を実行するのに応じて、デバイス207におけるDMAコントローラ210は、起動し、デバイス207におけるSATAコントローラ211が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ205については、図14乃至図17を参照しながら後述する。
The
デバイス207におけるSATAコントローラ211は、デバイス207におけるDMAコントローラ210が出力したデータFISを入力し(ステップS236)、該データFISを、ホスト装置202におけるSATAコントローラ206に送信する(ステップS240)。この場合に、デバイス207におけるSATAコントローラ211は、第I対象データに関するデータFISを送信する。尚、該データFISは、対象データに関するエラーを検知可能なデータ(たとえば、CRCに従い算出されたデータ、以降、「CRC」データと表す)を含んでいる。
The
ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信したCRCデータを含むデータFISを受信する(ステップS241)。ホスト装置202におけるSATAコントローラ206は、受信したデータFISを、ホスト装置202におけるDMAコントローラ205に対して出力する(ステップS242)。ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力したデータFISを入力し、入力したデータFISをメモリ103に格納する。
The
ホスト装置202におけるSATAコントローラ206は、第I(ただし、1≦I≦N、Iは整数)対象データに関するデータFISとともに受信したCRCデータに基づき、第I対象データに関して受信したデータFISがエラーを含むか否かを判定する(ステップS243)。
The
受信したデータFISがエラーを含まない場合に(ステップS243にてNO)、ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205に対して、対象データを受信する処理を正常終了することを表す指示情報(以降、「正常指示情報」と表す)を出力する(ステップS244)。その後、ホスト装置202におけるSATAコントローラ206は、第I対象データに関するデータFISを正しく受信したことを表す正常応答信号を作成し、デバイス207におけるSATAコントローラ211に、作成した正常応答信号を送信する(ステップS250)。
When the received data FIS does not include an error (NO in step S243), the
受信したデータFISがエラーを含む場合に(ステップS243にてYES)、ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205に対して、対象データを受信する処理を異常終了することを表す指示情報(以降、「異常指示情報」と表す)を出力する(ステップS245)。すなわち、ホスト装置202におけるSATAコントローラ206は、ステップS245に示す処理において、対象データに関するデータFISを送信する処理を終了する情報を、ホスト装置202におけるDMAコントローラ205に対して出力する。その後、ホスト装置202におけるSATAコントローラ206は、再送する処理が有効状態であるか否かを判定する(ステップS246)。
When the received data FIS includes an error (YES in step S243), the
再送する処理が無効状態である場合に(ステップS246にてNO)、ホスト装置202におけるSATAコントローラ206は、異常応答信号を作成し(ステップS249)、作成した異常応答信号を、デバイス207におけるSATAコントローラ211に送信する。
When the process to be retransmitted is invalid (NO in step S246), the
再送する処理が有効状態である場合に(ステップS246にてYES)、ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205が出力した命令信号(図16におけるステップS276、または、ステップS278、後述)を入力する。
When the retransmission process is in a valid state (YES in step S246), the
ホスト装置202におけるSATAコントローラ206は、入力した命令信号が継続命令信号(図16、後述)である場合に(ステップS247にてYES)、ホスト装置202におけるSATAコントローラ206は、正常応答信号を作成する(ステップS248)。ホスト装置202におけるSATAコントローラ206は、作成した正常応答信号を、デバイス207におけるSATAコントローラ211に送信する(ステップS250)。この例の場合に、継続命令信号は、図16におけるステップS275示すような、ホスト装置202におけるDMAコントローラ205が出力する命令信号であり、詳細については後述する。
When the input command signal is a continuation command signal (FIG. 16, described later) (YES in step S247), the
すなわち、ホスト装置202におけるSATAコントローラ206は、ステップS247に示した処理によって、対象データがエラーを含む場合であっても、該継続命令信号を受信した場合に正常応答信号を、デバイス207におけるSATAコントローラ211に送信する。対象データを送信する側であるデバイス207におけるSATAコントローラ211は、該正常応答信号を受信し、受信した正常応答信号に基づいて処理を実行する。この場合に、正常応答信号、または、異常応答信号に基づく送信側の処理は、特許文献1に示された装置における転送装置における処理であってよい。
That is, the
ホスト装置202におけるSATAコントローラ206は、入力した命令信号が異常命令信号である場合に(ステップS247にてNO)、異常応答信号を作成する(ステップS249)。ホスト装置202におけるSATAコントローラ206は、作成した異常応答信号を、デバイス207におけるSATAコントローラ211に送信する(ステップS250)。この例の場合に、異常命令信号は、図16におけるステップS278に示すような、ホスト装置202におけるDMAコントローラ205が出力する命令信号であり、詳細については後述する。
When the input command signal is an abnormal command signal (NO in step S247), the
すなわち、ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211に、正常応答信号、または、異常応答信号を送信する。
That is, the
デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した応答信号(すなわち、正常応答信号、または、異常応答信号)を受信する(ステップS251)。受信した応答信号が正常応答信号である場合に(ステップS252にてNO)、デバイス207におけるSATAコントローラ211は、デバイス207におけるDMAコントローラ210に正常指示信号を送信し、対象データを送受信する処理を正常終了する(ステップS253)。受信した応答信号が異常応答信号である場合に(ステップS252にてYES)、デバイス207におけるSATAコントローラ211は、デバイス207におけるDMAコントローラ210に異常指示信号を送信し、対象データを送受信する処理を異常終了する(ステップS254)。すなわち、ステップS254において(すなわち、エラーが生じた場合に)、デバイス207におけるSATAコントローラ211は、対象データに含まれる要素データを受信する処理を終了する情報を、デバイス207におけるDMAコントローラ210に対して出力する。
The
対象データが複数ある場合に、ホスト装置202、及び、デバイス207は、図13におけるステップS235、ステップS236、及び、ステップS239乃至ステップS254に示す処理を繰り返し実行する。
When there are a plurality of target data, the
すべての対象データを送受信する処理の後に、デバイス207におけるSATAコントローラ211は、SATAコントローラ206における状態を表す状態信号を作成し、ホスト装置202におけるSATAコントローラ206に、作成した状態信号を送信する。状態信号は、たとえば、正常な状態を表す正常状態信号、または、異常な状態を表す異常状態信号である。
After the process of transmitting and receiving all target data, the
ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信した状態信号(すなわち、正常状態信号、または、異常状態信号)を受信する。ホスト装置202におけるSATAコントローラ206は、データFISの場合と同様に受信したFISにエラーが含まれるかどうかを判定し、判定結果に応じた応答信号を作成し、デバイス207におけるSATAコントローラ211に、作成した応答信号を送信する。ホスト装置202におけるSATAコントローラ206は、FISがエラーを含んでいるか否かを表す信号を送信する。
The
デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した応答信号(すなわち、正常応答信号、または、異常応答信号)を受信する。受信した応答信号が正常応答信号である場合に、デバイス207におけるSATAコントローラ211は、状態信号を送受信する処理を正常終了する。受信した応答信号が異常応答信号である場合に、デバイス207におけるSATAコントローラ211は、状態信号を送受信する処理を異常終了する。
The
尚、図13のステップS232乃至ステップS236、ステップS240、及び、ステップS251乃至ステップS254を参照すると、これらの処理は、SATAに関するインターフェース規格に従う装置が実行する処理と同様の処理である。すなわち、本実施形態に係るSATAコントローラによれば、対象データを送信するSATAコントローラ(上述した例では、デバイス207におけるSATAコントローラ211)は、SATAに関するインターフェース規格に従う装置が実行する処理と同様の処理を実行する。
Note that, referring to steps S232 to S236, step S240, and steps S251 to S254 in FIG. 13, these processes are the same as the processes executed by the apparatus according to the interface standard related to SATA. That is, according to the SATA controller according to the present embodiment, the SATA controller (
次に、DMAコントローラ205(または、DMAコントローラ210)における処理について説明する。 Next, processing in the DMA controller 205 (or the DMA controller 210) will be described.
本実施形態に係るDMAコントローラ205は、自コントローラにおいて、再送処理に関する処理の状態に関する情報(以降、「再送処理情報」と表す)を記憶可能な記憶領域(メモリ103、レジスタ等)を有するとする。再送処理情報は、再送処理においてメモリ103にデータを格納する処理を実行する状態を表す有効状態、再送処理においてメモリ103にデータを格納しない状態を表す準備状態、または、再送処理が実行されている状態とは異なる状態を表す無効状態である。さらに、本実施形態に係るDMAコントローラ205は、DMAに関する転送処理を実行するか否かを表すDMA転送情報を記憶可能な記憶領域(メモリ103、レジスタ等)を有するとする。DMA転送情報は、メモリに格納する処理を実行することを表す「有効状態」または、メモリに格納する処理を実行しないことを表す「無効状態」である。
It is assumed that the
本実施形態に係る命令パラメタ情報は、たとえば、処理の種類、対象データのサイズ、該対象データを格納している位置情報、処理が再実行処理であるか否かを表す再実行情報を含んでもよい。命令パラメタ情報は、さらに、再送処理機能に有効状態に設定するか、無効状態に設定するかを表す再送設定情報を含んでもよい。 The instruction parameter information according to the present embodiment may include, for example, the type of processing, the size of the target data, position information storing the target data, and re-execution information indicating whether the processing is a re-execution process. Good. The command parameter information may further include retransmission setting information indicating whether the retransmission processing function is set to a valid state or an invalid state.
次に、図14乃至図17を参照しながら、DMAコントローラ205における処理について説明する。図14乃至図17は、DMAコントローラ205における処理の流れを示すフローチャートである。対象データを送信する側であるDMAコントローラ210は、SATAに関するインターフェース規格に従う転送装置におけるDMAコントローラと同様に、主として、図14乃至図17に示した処理のうち、一部の処理のみを実行する。
Next, processing in the
ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が起動する制御を実行するのに応じて起動し、その後、ホスト装置202におけるSATAコントローラ206が作成した命令パラメタ情報を読み取る。同様に、デバイス207におけるDMAコントローラ210は、デバイス207におけるSATAコントローラ211が起動する制御を実行するのに応じて起動し、その後、デバイス207におけるSATAコントローラ211が作成した命令パラメタ情報を読み取る。
The
ホスト装置202におけるDMAコントローラ205は、命令パラメタ情報における処理の種類が再送処理である場合に(ステップS260にてYES)、再送処理情報が準備状態であるか否かを判定する(ステップS261)。ホスト装置202におけるDMAコントローラ205は、ステップS261にてYESの場合に、再送処理情報に有効状態を設定する(ステップS262)。この処理に対して、デバイス207におけるDMAコントローラ210は、ステップS260乃至ステップS262に示す処理を実行しない。
If the type of processing in the instruction parameter information is retransmission processing (YES in step S260), the
デバイス207におけるDMAコントローラ210は、読み取った命令パラメタ情報から対象データ数を読み取り、読み取った対象データ数に基づき、デバイス207におけるメモリ103に、該転送処理にて参照するPRDテーブルを格納する記憶領域を確保する(ステップS131)。デバイス207におけるDMAコントローラ210は、確保した記憶領域の先頭アドレスをPRDテーブルポインタレジスタに格納し(ステップS132)、その後、転送処理にて一時的にデータを記憶する記憶領域を表すDMA転送領域を確保する(ステップS133)。
The
ホスト装置202におけるDMAコントローラ205は、ステップS260にてNOの場合に、ステップS131乃至ステップS133に示す処理を実行する。
The
デバイス207におけるDMAコントローラ210は、PRDインデックスレジスタに、まだ、対象データに関する処理が実行されていないことを表す値(たとえば、「1」)を格納する(ステップS134)。同様に、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに、まだ、対象データに関する処理が実行されていないことを表す値(たとえば、「1」)を格納する(ステップS134)。
The
ホスト装置202におけるDMAコントローラ205は、PRDテーブルポインタレジスタに格納されている値、及び、PRDインデックスレジスタに格納されている値を読み取り、たとえば、読み取った2つの値を加算する。すなわち、ホスト装置202におけるDMAコントローラ205は、第I対象データに関するアドレスセットが格納されている記憶領域を指し示すアドレスを算出する(ステップS135)。ホスト装置202におけるDMAコントローラ205は、算出した先頭アドレスが指し示す記憶領域から、PRDテーブルにおけるアドレスセットを読み取る(ステップS136)。この処理によって、ホスト装置202におけるDMAコントローラ205は、PRDテーブルにおいて、処理対象である第I対象データの先頭アドレスを格納している記憶領域のアドレスを特定する。さらに、ホスト装置202におけるDMAコントローラ205は、特定したアドレスが指し示す記憶領域から、対象データを格納する先を表す記憶領域を指し示すアドレスを読み取る。
The
ホスト装置202におけるDMAコントローラ205は、読み取ったアドレスセットから、DMA転送処理にて転送するデータを格納している記憶領域を表す先頭アドレスと、該データのサイズとを読み取る。ホスト装置202におけるDMAコントローラ205は、読み取った先頭アドレスを、DMAベースアドレスレジスタに格納し(ステップS137)、読み取ったサイズを、DMAバイトカウントレジスタに格納する(ステップS138)。すなわち、ステップS135及びステップS136に示す処理によって、ホスト装置202におけるDMAコントローラ205は、処理対象である第I対象データを格納する記憶領域を指し示す先頭アドレスを読み出し、読み出した先頭アドレスをDMAベースアドレスレジスタに格納する処理等を実行する。
The
同様に、デバイス207におけるDMAコントローラ210は、ステップS135乃至ステップS138に示した処理と同様の処理を、デバイス207にて実行する。この処理によって、デバイス207におけるDMAコントローラ210は、PRDテーブルにおいて、処理対象である対象データの先頭アドレスを格納している記憶領域のアドレスを特定する。デバイス207におけるDMAコントローラ210は、特定したアドレスが指し示す記憶領域から、対象データを格納している記憶領域を指し示すアドレス、及び、該対象データのサイズを読み取る。デバイス207におけるDMAコントローラ210は、処理対象である対象データを格納している記憶領域を指し示す先頭アドレスを読み出し、読み出した先頭アドレスをDMAベースアドレスレジスタに格納する処理等を実行する。
Similarly, the
次に、ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるTransferカウントレジスタに、まだ、対象データに関するデータFISに対して処理が実行されていないことを表す値(たとえば、1)を格納する(ステップS263)。デバイス207におけるDMAコントローラ210は、デバイス207におけるTransferカウントレジスタに、まだ、対象データに関するFISに対して処理が実行されていないことを表す値(たとえば、1)を格納する。尚、Transferカウントレジスタに格納されている値は、たとえば、対象データに関するFISのうち、処理対象であるFISが格納されているアドレスを表す。すなわち、ステップS263に示す処理によって、ホスト装置202(または、デバイス207)におけるDMAコントローラ205は、まだ、対象データに関するFISを送信していないことを表す値(たとえば、1)を、Transferカウントレジスタに格納する。
Next, the
ホスト装置202におけるDMAコントローラ205は、再送処理情報が準備状態であるか否かを判定する(ステップS264)。再送処理情報が準備状態を表す場合に(ステップS264にてYES)、ホスト装置202におけるDMAコントローラ205は、DMA転送情報に無効状態を設定する(ステップS269)。再送処理情報が準備状態でない場合に(ステップS264にてNO)、ホスト装置202におけるDMAコントローラ205は、再送処理情報が有効状態であるか否かを判定する(ステップS265)。
The
再送処理情報が無効状態である場合に(ステップS265にてYES)、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに格納されている値を、FISインデックスレジスタに格納する(ステップS152)。さらに、ホスト装置202におけるDMAコントローラ205は、Transferカウントレジスタに格納されている値(たとえば、1)を、FISオフセットレジスタに格納する(ステップS153)。その後、ホスト装置202におけるDMAコントローラ205は、DMA転送情報を有効に設定する(ステップS270)。ステップS152及びステップS153に示す処理によって、DMAコントローラ205は、たとえば、DMA転送する処理を開始した時点でのTransferカウントレジスタの値、及び、PRDインデックスレジスタに格納されている値を記憶することができる。すなわち、ステップS153に示す処理によって、対象データを転送する処理にてエラーが生じる場合であっても、Transferカウントレジスタは、たとえば、ステップS154にて処理するデータFISを識別可能な識別子を格納している。
When the retransmission processing information is invalid (YES in step S265), the
再送処理情報が有効状態である場合に(ステップS265にてYES)、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに格納されている値と、FISインデックスレジスタに格納されている値との大小を比較する。
When the retransmission processing information is valid (YES in step S265), the
PRDインデックスレジスタに格納されている値が、FISインデックスレジスタに格納されている値よりも大きな値である場合に(ステップS266にてYES)、ホスト装置202におけるDMAコントローラ205は、DMA転送情報を有効に設定する(ステップS270)。PRDインデックスレジスタに格納されている値は、たとえば、処理する対象である対象データを識別可能な番号を表す。以降、説明の便宜上、PRDインデックスレジスタに格納されている値は、対象データを識別可能な番号であるとする。また、FISインデックスレジスタに格納されているデータは、たとえば、対象データを処理する場合に保存された対象データの番号を表す。したがって、PRDインデックスレジスタに格納されている値が、FISインデックスレジスタに格納されている値よりも大きな値である状態は、本実施形態に係る転送装置204が処理する対象データが、まだ、メモリ103に格納されていない(すなわち、未処理である)状態を表す。
When the value stored in the PRD index register is larger than the value stored in the FIS index register (YES in step S266), the
PRDインデックスレジスタに格納されている値が、FISインデックスレジスタに格納されている値以下である場合に(ステップS266にてNO)、ホスト装置202におけるDMAコントローラ205は、2つの該値が等しいか否かを判定する(ステップS267)。ホスト装置202におけるDMAコントローラ205は、2つの該値が等しくない場合に(ステップS267にてNO)、DMA転送情報に無効状態を設定する(ステップS269)。ステップS267にてNOである状態は、PRDインデックスレジスタに格納されている値が、FISインデックスレジスタに格納されている値未満である状態、すなわち、本実施形態に係る転送装置204が処理する対象データが処理済みである状態を表す(ステップS267にてNO)。このため、ホスト装置202におけるDMAコントローラ205は、DMA転送情報に無効状態を設定する(ステップS269)。
When the value stored in the PRD index register is equal to or less than the value stored in the FIS index register (NO in step S266), the
PRDインデックスレジスタに格納されている値が、FISインデックスレジスタに格納されている値と等しい場合に(ステップS267にてYES)、ホスト装置202におけるDMAコントローラ205は、Transferカウントレジスタに格納されているデータと、FISオフセットレジスタに格納されているデータとを比較する(ステップS268)。
When the value stored in the PRD index register is equal to the value stored in the FIS index register (YES in step S267), the
ホスト装置202におけるDMAコントローラ205は、Transferカウントレジスタに格納されているデータの方が小さい場合に(ステップS268にてYES)、DMA転送情報に無効状態を設定する(ステップS269)。ホスト装置202におけるDMAコントローラ205は、ステップS268にてNOの場合に、DMA転送情報に有効状態を設定する(ステップS270)。すなわち、ステップS268に示す処理によって、メモリ103にデータを格納する処理を実行するホスト装置202におけるDMAコントローラ205は、エラーが生じた位置を格納しているFISインデックスレジスタに基づき、対象データを格納する記憶領域を特定する。
If the data stored in the transfer count register is smaller (YES in step S268), the
ステップS267にてYESの状態は、2つの該値が等しい場合、すなわち、ホスト装置202におけるDMAコントローラ205が処理する第I対象データが、再実行されている対象データであることを表す。また、ステップS268にてYESの状態は、Transferカウントレジスタに格納されているデータの方が小さい場合、すなわち、ホスト装置202におけるDMAコントローラ205が処理する第I対象データに関して、該第I対象データに関するデータFISが格納済みの状態であることを表す。ステップS268にてNOの状態は、該第I対象データに関するデータFISが未処理の(転送処理されていない)状態であることを表す。
The state of YES in step S267 indicates that the two target values are equal, that is, the first target data processed by the
デバイス207におけるDMAコントローラ210は、図15に示した処理を実行しない。デバイス207におけるDMAコントローラ210は、図14に示すステップS263の次に、図16に示すステップS154(後述)を実行する。
The
ステップS154に示す処理において、デバイス207におけるDMAコントローラ210は、DMAベースアドレスレジスタに格納されている値と、Transferカウントレジスタに格納されている値とを足し算する。この処理によって、デバイス207におけるDMAコントローラ210は、転送データに関するデータFISを格納している記憶領域の先頭アドレスを表すDMAアドレスを算出する。
In the processing shown in step S154, the
デバイス207におけるDMAコントローラ210は、メモリ103のうち、算出したDMAアドレスを先頭アドレスとする記憶領域から、所定の大きさ(たとえば、FISのサイズ)分のデータを読み取り、読み取ったデータをデバイス207におけるSATAコントローラ211に対して出力する。この場合に、デバイス207におけるSATAコントローラ211は、入力したデータをホスト装置202におけるSATAコントローラ206に送信する。すなわち、デバイス207における転送装置204は、第I対象データを、ホスト装置202における転送装置204に送信するDMA転送処理を実行する(ステップS154)。
The
デバイス207におけるDMAコントローラ210は、Transferカウントレジスタに格納されている値を読み取り、転送処理にて転送したデータ数と、読み取った値とを足し算し、算出した値をTransferカウントレジスタに格納する。すなわち、デバイス207におけるDMAコントローラ210は、転送したデータFISのデータ数分だけ、Transferカウントレジスタに格納されている値を増やす(ステップS155)。
The
ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信したデータを受信し(ステップS154にて送信)、受信したデータをホスト装置202におけるDMAコントローラ205に対して出力する。
The
ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力したデータを入力する。ホスト装置202におけるDMAコントローラ205は、ステップS269(図15)、または、ステップS270(図15)にて設定したDMA転送情報が有効状態であるか、または、無効状態であるかを判定する(ステップS271)。
The
DMA転送情報が有効状態である場合に(ステップS271にてYES)、ホスト装置202におけるDMAコントローラ205は、DMAベースアドレスレジスタに格納されている値と、Transferカウントレジスタに格納されている値とを足し算する。ホスト装置202におけるDMAコントローラ205は、入力したデータを、メモリ103のうち、算出したDMAアドレスを先頭アドレスとする記憶領域(すなわち、メモリ103の一部)に格納する。すなわち、ホスト装置202におけるDMAコントローラ205は、DMA転送情報が有効状態である場合に(ステップS271にてYES)、データFISに関するDMA転送処理を実行する(ステップS154)。DMA転送情報が無効状態である場合に(ステップS271にてNO)、ホスト装置202におけるDMAコントローラ205は、第I対象データに関するDMA転送処理を実行しない。
When the DMA transfer information is in a valid state (YES in step S271), the
言い換えると、ホスト装置202におけるDMAコントローラ205は、ステップS271、ステップS154、及び、ステップS155に示す処理によって、DMA転送情報に基づき、入力したデータFISをメモリ103に格納するか否かを制御する。すなわち、ホスト装置202におけるDMAコントローラ205は、対象データを再送する処理において、DMA転送情報が有効状態である場合に、入力したデータをメモリ103に格納する。ホスト装置202におけるDMAコントローラ205は、対象データを再送する処理において、DMA転送情報が無効状態である場合に、入力したデータをメモリ103に格納しない。
In other words, the
ホスト装置202におけるDMAコントローラ205は、Transferカウントレジスタに格納されている値を読み取り、転送処理にて転送したデータ数と、読み取った値とを足し算し、算出した値をTransferカウントレジスタに格納する。この処理によって、デバイス207におけるDMAコントローラ210は、たとえば、転送したデータFISのデータ数分だけ、Transferカウントレジスタに格納されている値を増やす(ステップS155)。言い換えると、ホスト装置202におけるDMAコントローラ205は、DMA転送情報が無効状態である場合であっても、Transferカウントレジスタに格納されている値を更新する。次に、ホスト装置202におけるDMAコントローラ205は、再送設定情報が有効状態であるか否かを判定する(ステップS157)。
The
再送設定情報が有効状態である場合に(ステップS157にてYES)、ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力した指示情報(図13におけるステップS244、または、ステップS245)を入力する。ホスト装置202におけるDMAコントローラ205は、入力した指示情報が正常指示情報であるか否かを判定する(ステップS272)。ホスト装置202におけるDMAコントローラ205は、受信した指示情報が正常指示情報であり(ステップS272にてYES)、DMA転送情報が有効状態である場合に(ステップS274にてYES)、再送処理情報に無効状態を設定する(ステップS277)。DMA転送情報が有効状態であり(ステップS274にてYES)、さらに、対象データに関する転送処理が正常(すなわち、正常指示情報)である場合(ステップS272にてYES)は、エラーが生じていたデータを正しく受信した状態を表す。この場合に、ホスト装置202におけるDMAコントローラ205は、再送処理情報に無効状態を設定する(ステップS277)。
When the retransmission setting information is valid (YES in step S157), the
ホスト装置202におけるDMAコントローラ205は、受信した指示情報が正常指示情報であり(ステップS272にてYES)、DMA転送情報に格納されている値が無効状態である場合に(ステップS274にてNO)、ステップS277に示す処理を実行しない。再送処理情報が有効状態であり(ステップS157にてYES)、DMA転送情報が無効状態であり(すなわち、メモリ103にデータFISを格納しない)、さらに、対象データに関する転送処理が正常(すなわち、正常指示情報)である場合(ステップS272にてYES)は、エラーが生じたデータFISをメモリ103が記憶している状態を表す。
The
ホスト装置202におけるSATAコントローラ206が出力した指示情報が異常指示情報である場合に(ステップS272にてNO)、ホスト装置202におけるDMAコントローラ205は、所定の条件を満たすか否かを判定する(ステップS273)。係る所定の条件は、以下に示す条件1及び条件2を満たすか否かである。すなわち、
条件1:DMA転送情報が無効状態であるか否か、
条件2:再送処理情報が有効状態であるか否か。
When the instruction information output from the
Condition 1: Whether the DMA transfer information is in an invalid state,
Condition 2: Whether the retransmission processing information is valid.
ホスト装置202におけるDMAコントローラ205は、条件1にてYES、かつ、条件2にてYESの場合に、ホスト装置202におけるDMAコントローラ205は、処理を継続することを指示する命令信号(すなわち、継続指示信号)を作成する。ホスト装置202におけるDMAコントローラ205は、作成した継続命令信号をホスト装置202におけるSATAコントローラ206に対して出力する(ステップS275)。
If the
条件1及び条件2を満たす(ステップS273にてYES)の場合は、ステップS268(図15)にてYESの場合、または、ステップS267にてNOの場合を表す。この場合には、対象データに関する再転送処理を実行している処理において、エラーが生じる以前にメモリ103に格納済みのデータFISをメモリ103に格納しない場合を表す。すなわち、この場合には、受信したデータFISに関してエラーが生じていた場合であっても、ホスト装置202におけるDMAコントローラ205は、該データFISをメモリ103に格納しない。
When the
ホスト装置202におけるSATAコントローラ206が出力した指示情報が異常指示情報であり(ステップS272にてNO)、かつ、ステップS273にてNOの場合には、ホスト装置202におけるDMAコントローラ205は、再送処理情報に準備状態を設定する(ステップS276)。その後、ホスト装置202におけるDMAコントローラ205は、処理を異常終了することを指示する命令信号(すなわち、異常命令信号)を作成し、作成した異常命令信号をホスト装置202におけるSATAコントローラ206に送信する(ステップS278)。
If the instruction information output from the
ステップS273にてNOの場合には、ホスト装置202におけるDMAコントローラ205は、対象データのうち、エラーが生じたデータFISをメモリ103に格納している。したがって、メモリ103は、エラーが生じたデータFISを記憶している。この場合に、ホスト装置202におけるDMAコントローラ205は、再送処理情報に準備状態を設定する(ステップS276)。この結果に、該データFISを再転送する処理に含まれるステップS264にてYESと判定されるので、転送装置204は、ステップS154にて、入力した情報をメモリ103に格納しない。すなわち、転送装置204は、対象データに関する転送処理において、該データFISに後続するデータFISをメモリ103に格納しない。言い換えれば、対象データを受信する受信装置を表す転送装置204は、対象データを受信する処理にてエラーが生じるのに応じて、エラーが生じたデータFISに後続するデータFISをメモリ103に格納する処理を実行しない。
If NO in step S273, the
上述した受信側のSATAコントローラの処理に対して、デバイス207におけるDMAコントローラ210は、図16に示した処理に関して、ステップS157、ステップS272乃至ステップS278に示す処理を実行しない。すなわち、デバイス207におけるDMAコントローラ210は、ステップS155に示す処理を実行した後に、図17に示すステップS281に示す処理を実行する。
In contrast to the processing of the SATA controller on the receiving side described above, the
ホスト装置202におけるDMAコントローラ205は、DMAバイトカウントレジスタに格納されているデータと、Transferカウントレジスタに格納されている値とを比較する。すなわち、この処理によって、ホスト装置202におけるDMAコントローラ205は、対象データに関するデータFISを転送する処理が完了したか否かを判定する(ステップS281)。DMAバイトカウントレジスタに格納されているデータと、Transferカウントレジスタに格納されている値とが異なる場合(すなわち、対象データに関する処理が終了していない場合)に、ホスト装置202におけるDMAコントローラ205は、ステップS264(図15)に示す処理を実行する。
The
同様に、デバイス207におけるDMAコントローラ205は、ステップS281に示した処理と同様の処理を、デバイス207にて実行する。
Similarly, the
DMAバイトカウントレジスタに格納されているデータと、Transferカウントレジスタに格納されている値とが一致している場合(すなわち、対象データに関する処理が終了した場合、ステップS281にてYES)に、ホスト装置202におけるDMAコントローラ205は、すべての対象データを転送したか否かを判定する(ステップS159)。
たとえば、ホスト装置202におけるDMAコントローラ205は、ステップS159に示す処理において、PRDインデックスレジスタに格納されているデータを読み取り、読み取ったデータの最上位ビットが0であるか否かを判定する(ステップS159)。
When the data stored in the DMA byte count register matches the value stored in the Transfer count register (that is, when the processing related to the target data ends, YES in step S281), the host device The
For example, the
ホスト装置202におけるDMAコントローラ205は、読み取ったデータの最上位ビットが0である場合に(ステップS159にてNO)、たとえば、PRDインデックスレジスタに格納されている値を、次の対象データを指し示すサイズ分(たとえば、1)だけ増やす(ステップS160)。その後、ホスト装置202におけるDMAコントローラ205は、ステップS135(図14)に示す処理を実行する。この場合に、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに格納されている値を、次の対象データを指し示すサイズ分(たとえば、1)増やす処理により、処理した対象データに後続している対象データに関する処理を実行することができる。
When the most significant bit of the read data is 0 (NO in step S159), the
ホスト装置202におけるDMAコントローラ205は、すべての対象データに関する転送処理が終了した場合に(ステップS159にてYES)、処理を終了する。
The
これに対して、デバイス207におけるDMAコントローラ205は、図17に示した処理と同様の処理を、デバイス207にて実行する。
On the other hand, the
次に、本実施形態に係る転送装置204が奏する効果について説明する。
Next, effects produced by the
第2の実施形態に係る転送装置204によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することができる。この理由は、対象データに関する送受信にエラーが生じた場合であっても、該対象データに関するFISのうち、正常に送受信されているFISに関しては、転送装置204がメモリ103に格納する処理等を実行しないからである。
According to the
第2の実施形態に係る転送装置204によれば、そのデータを短期間に受信することができる理由について、本実施形態においても特許文献1と特許文献2と対比しながら、さらに、詳細に説明する。
According to the
SATAに関するインターフェース規格によれば、対象データを転送する処理が異常終了した場合に、対象データを正しく転送するためには、該対象データを、再度、転送する必要がある。すなわち、該インターフェース規格に準拠した装置は、データFISに関して異常終了を表す出力を検知した場合に、該データFISに関連している命令処理を無効にし、その後、該命令処理を再実行する。たとえば、該装置は、4096個のデータFISを送信した後に異常終了を表す出力を検知した場合に、4096個のデータFISを送信する処理を実行する。したがって、該装置によれば、4096個分のFISを送信する処理に要する送信時間が無駄になってしまう。 According to the interface standard related to SATA, when the process of transferring the target data is abnormally terminated, it is necessary to transfer the target data again in order to transfer the target data correctly. In other words, when an apparatus that conforms to the interface standard detects an output indicating an abnormal end with respect to the data FIS, the instruction processing related to the data FIS is invalidated, and then the instruction processing is re-executed. For example, when the apparatus detects an output indicating abnormal termination after transmitting 4096 data FISs, the apparatus executes a process of transmitting 4096 data FISs. Therefore, according to this apparatus, the transmission time required for the process of transmitting 4096 FISs is wasted.
これに対して、本実施形態に係る転送装置204は、データFISを転送することによってエラーが生じた場合に、該エラーが生じたる原因であるデータFISをメモリ103に格納する処理を実行する。この結果、本実施形態に係る転送装置204によれば、該データFISに関する処理を再実行する処理時間を削減することができる。
On the other hand, when an error occurs due to the transfer of the data FIS, the
たとえば、下記の状態1乃至状態3を満たす場合の例を参照しながら、上述した効果を奏する理由について説明する。説明の便宜上、対象データは、N個のデータFISを含むとする。
For example, the reason why the above-described effect is achieved will be described with reference to an example in which the following
状態1:1回目の処理にて、第E(ただし、1≦E≦N)データFISに関する転送処理にてエラーが生じる、
状態2:2回目の処理にて、第FデータFIS、及び、第CデータFISに関する転送処理にてエラーが生じる(ただし、1≦F<E<C≦N)、
状態3:3回目の処理にて、第DデータFIS(ただし、1≦D<C)に関する転送処理にてエラーが生じる。
State 1: In the first processing, an error occurs in the transfer processing related to the E-th (where 1 ≦ E ≦ N) data FIS.
State 2: In the second processing, an error occurs in the transfer processing related to the F-th data FIS and the C-th data FIS (where 1 ≦ F <E <C ≦ N),
State 3: In the third process, an error occurs in the transfer process related to the D-th data FIS (where 1 ≦ D <C).
特許文献1及び特許文献2に示した装置は、第1の実施形態に示したように、対象データに含まれるデータFISに関する転送処理にてエラーが生じた場合に、再度、対象データを転送する処理を実行する。たとえば、状態1乃至状態3を満たす例の場合に、該装置は、対象データに関して、状態1にて第EデータFISに起因する1回、状態2にて第F及びCデータFISに起因する2回、及び、状態3にて第CデータFISに起因する1回の再転送処理を実行する。すなわち、該装置は、対象データを転送する処理に関して、状態3以降に正常に転送する転送処理を含め、合計5回の転送処理を実行する。
As shown in the first embodiment, the devices shown in
これに対して、本実施形態に係る転送装置204は、3回の転送処理を実行するのみで対象データを転送することができる。この理由について、転送装置204における処理に沿って説明する。
On the other hand, the
本実施形態に係るSATAコントローラ206は、まず、対象データに関するデータFISを送信することにより、対象データに関する転送処理を実行する。DMAコントローラ205は、SATAコントローラ206が転送処理した対象データを、たとえば、FISの単位にてメモリ103に格納する。しかし、状態1によって、第EデータFISがエラーであるので、記憶領域は、第EデータFISに関するエラーを含む対象データを記憶している。
The
次に、SATAコントローラ206は、対象データに関するデータFISを送信することにより、対象データに関する転送処理を実行する。DMAコントローラ205は、SATAコントローラ206が転送処理した対象データのうち、図15及び図16に示す処理に従って、第EデータFIS以降のデータをメモリ103に格納する。従って、第FデータFISがエラーである場合であっても、DMAコントローラ205は、第EデータFIS以前にある第FデータFISをメモリ103に格納しない。これに対して、DMAコントローラ205は、第EデータFIS以降にある第CデータFISをメモリ103に格納する。したがって、記憶領域は、第CデータFISに関するエラーを含む対象データを記憶している。
Next, the
次に、SATAコントローラ206は、対象データに関するデータFISを送信することにより、対象データに関する転送処理を実行する。DMAコントローラ205は、SATAコントローラ206が転送処理した対象データのうち、図15及び図16に示す処理に従って、第CデータFIS以降のデータをメモリ103に格納する。状態3の場合に、エラーは、第CデータFIS以前にある第DデータFISにて生じる。DMAコントローラ205は、たとえ、SATAコントローラ206がエラーを含むFISを送受信する場合であっても、第CデータFIS以前にあるデータFISをメモリ103に格納しない。したがって、記憶領域は、エラーを含まない対象データを記憶している。この結果、転送装置204は、3回の転送処理を実行するのみで対象データを転送することができる。
Next, the
尚、上述した説明においては、説明の便宜上、DMAコントローラがFISを作成するとして説明したが、DMAコントローラが出力したデータに基づいて、SATAコントローラがFISを作成する態様であってもよい。 In the above description, the DMA controller creates the FIS for convenience of explanation. However, the SATA controller may create the FIS based on the data output from the DMA controller.
<第3の実施形態>
図18及び図19を参照しながら、本発明の第3の実施形態に係る転送装置301が有する構成と、転送装置301における処理の流れについて詳細に説明する。図18は、本発明の第3の実施形態に係る転送装置301が有する構成を示すブロック図である。図19は、第3の実施形態に係る転送装置301における処理の流れを示すシーケンス図である。
<Third Embodiment>
The configuration of the
第3の実施形態に係る転送装置301は、送信部302と、受信部303とを有する。転送装置301は、さらに、送信部302がアクセス可能なメモリ304と、受信部303がアクセス可能なメモリ305とを有してもよい。
A
送信部302は、メモリ304のうち、第1識別子が表す記憶領域に記憶されている第1データに関して送信処理を実行するとする。また、受信部303は、メモリ305のうち、第2識別子が表す記憶領域に、受信した第1データを格納する受信処理を実行するとする。送受信処理したエラーがない場合に、送信処理に応じて、第1識別子は、メモリ304のうち、次の記憶領域を指し示す識別子に更新されるとする。同様に、送受信処理したエラーがない場合に、受信処理に応じて、第2識別子は、メモリ305のうち、次の記憶領域を指し示す識別子に更新されるとする。
Assume that the
送信部302は、第1データが記憶された記憶領域を指し示す第1識別子を、たとえば、記憶装置(または、メモリ304)に格納する(ステップS301)。次に、送信部302は、第1識別子が表す記憶領域から第1データを読み取り(ステップS302)、読み取った第1データを受信部303に送信する(ステップS303)。
The transmitting
受信部303は、受信した第1データを格納する記憶領域を指し示す第2識別子を、たとえば、記憶装置(または、メモリ305)に格納する(ステップS304)。次に、受信部303は、送信部302が送信した第1データを受信し(ステップS305)、受信した第1データを、第2識別子が表す記憶領域に格納する(ステップS306)。
The receiving
次に、受信部303は、受信した第1データがエラーを含むか否かを判定する(ステップS307)。たとえば、受信部303は、エラーを検知可能なCRCデータに基づいて、第1データがエラーを含むか否かを判定する。受信部303は、第1データがエラーを含む場合に(ステップS307にてYES)、第1データを再送する処理を要求する要求信号を、送信部302に送信する(ステップS308)。
Next, the receiving
送信部302は、該要求信号を受信し(ステップS309)、受信した要求信号に応じて、記憶装置に格納した第1識別子を読み取り(ステップS310)、読み取った第1識別子が表す記憶領域から、第2データを読み取る(ステップS311)。送信部302は、読み取った第2データを受信部303に送信する(ステップS312)。
The
受信部303は、該要求信号を送信した場合に、記憶装置から第2識別子を読み取る(ステップS313)。次に、受信部303は、送信部302が送信した第2データを受信し(ステップS314)、読み取った第2識別子が表す記憶領域に、受信した第2データを格納する(ステップS315)。
When receiving the request signal, the
送信部302、及び、受信部303は、たとえば、第1の実施形態に示したSATAコントローラ、及び、DMAコントローラを用いて実現することができる。
The
次に、本実施形態に係る転送装置301が奏する効果について説明する。
Next, effects produced by the
第3の実施形態に係る転送装置301によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができる。この理由は、対象データを転送する処理においてエラーが生じた場合に、転送処理に伴う記憶領域を確保する等の処理を実行することなく、該対象データを再送する処理を実行するからである。すなわち、対象データがエラーを含んでいる場合に、転送装置301は、確保されている記憶領域を再利用することにより、転送処理を再度実行する。
According to the
これに対して、特許文献1に示された装置は、転送した対象データにエラーが生じた場合に、転送する処理をはじめから実行する。したがって、該装置は、対象データを転送する処理が実行される場合に、対象データに関する転送処理を実行するたびに、転送処理に伴う記憶領域を確保する処理を実行する。この結果、該装置を用いて転送処理する場合の処理量は、本実施形態に係る転送装置301を用いて転送処理する場合の処理量に比べて多い。
On the other hand, the apparatus disclosed in
また、特許文献2には、エラーが生じた場合に再送する処理において、命令コードに従い、アドレスポインタを、エラーが生じたアドレスポインタに戻す処理が記載されているものの、具体的な処理については記載されていない。 In addition, Patent Document 2 describes a process of returning an address pointer to an address pointer in which an error has occurred in accordance with an instruction code in a process of retransmitting when an error occurs, but the specific process is described. It has not been.
これに対して、第3の実施形態に係る転送装置301は、第1データに関する送受信処理の前に、第1識別子、及び、第2識別子を記憶装置に格納し、第2データに関する送受信処理の前に、記憶装置に格納した識別子を読み取る処理を実行する。したがって、本実施形態には、記憶領域を指し示す識別子に関する処理が具体的に記載されている。
On the other hand, the
したがって、第3の実施形態に係る転送装置301によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができる。
Therefore, according to the
<第4の実施形態>
図20及び図21を参照しながら、本発明の第4の実施形態に係る受信装置404が有する構成と、受信装置404における処理の流れについて詳細に説明する。図20は、本発明の第4の実施形態に係る受信装置404が有する構成を示すブロック図である。図19は、第4の実施形態に係る受信装置404における処理の流れを示すフローチャートである。
<Fourth Embodiment>
The configuration of the
第4の実施形態に係る受信装置404は、受信コントローラ401と、メモリ格納部402とを有する。受信装置404は、さらに、メモリ格納部402とは異なる記憶領域おして、たとえば、メモリ403を有してもよい。
A
説明の便宜上、メモリ403は、転送された対象である対象データを記憶可能であるとする。対象データは、複数の要素データを含むとする。
For convenience of explanation, it is assumed that the
受信コントローラ401は、対象データにおける複数の要素データを受信する受信処理を実行する(ステップS401)。受信コントローラ401は、受信した要素データを、メモリ格納部402に対して出力する。
The
メモリ格納部402は、受信コントローラ401が出力した要素データを入力し、入力した要素データをメモリ403に格納する(ステップS402)。尚、ステップS402にて、メモリ格納部402は、受信した対象データを、その対象データに含まれる受信した要素データの順序にて、メモリ403に格納するとする。
The
受信コントローラ401は、受信した要素データにエラーが生じたか否かを判定する。受信コントローラ401は、受信した要素データがエラーを含んでいる場合に、エラーを含む要素データを格納した記憶領域を表す位置を保存する(ステップS403)。
The
受信装置404は、エラーが生じた対象データを再度受信する再受信処理を実行する(ステップS404)。
The receiving
説明の便宜上、受信装置404は、再受信した対象データに含まれる各要素データに関して、ステップS402にて要素データを格納した位置に格納するとする。
For convenience of explanation, it is assumed that the receiving
次に、受信装置404は、再度受信した対象データにおける要素データに関して、ステップS403にて保存した位置を読み取り、読み取った位置以降に格納する要素データであるか否かを判定する(ステップS405)。受信装置404は、再度受信した要素データが、読み取った位置以降に格納する要素データである場合に、該要素データをメモリ403に格納する(ステップS406)。受信装置404は、再度受信した要素データが、読み取った位置以降に格納する要素データでない場合に、該要素データをメモリ403に格納しない(ステップS407)。
Next, the receiving
位置は、エラーが生じた要素データを表す識別番号であってもよい。 The position may be an identification number representing element data in which an error has occurred.
受信コントローラ401は、たとえば、第2の実施形態に示したSATAコントローラを用いて実現することができる。また、メモリ格納部402は、DMAコントローラを用いて実現することができる。また、対象データを転送する処理に必要な記憶領域は、たとえば、PRDテーブルを格納可能な記憶領域、または、対象データを一時的に格納可能な転送領域である。また、要素データは、たとえば、対象データに関するデータFISであってもよい。
The
次に、本実施形態に係る受信装置404が奏する効果について説明する。
Next, effects produced by the receiving
第4の実施形態に係る受信装置404によれば、対象データを転送する処理においてエラーが生じた場合であっても、その対象データを短期間に受信することができる。この理由は、対象データを受信する処理においてエラーが生じた場合に、エラーが生じるまでに格納されていたデータを、再度、メモリ403に格納する処理を実行しないからである。
According to the receiving
これに対して、特許文献1に示された装置は、転送した対象データにエラーが生じた場合に、転送する処理をはじめから実行する。したがって、該装置は、対象データを転送する処理が実行される場合に、対象データに関する転送処理を実行するたびに、転送処理において、受信したデータをメモリに格納する処理を繰り返し実行する。この結果、該装置を用いて転送処理する場合の処理量は、本実施形態に係る受信装置404を用いて転送処理する場合の処理量に比べて多い。
On the other hand, the apparatus disclosed in
したがって、第4の実施形態に係る受信装置404によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することができる。
Therefore, according to the receiving
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。 The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。すなわち、
(付記1)
対象データに含まれている要素データを受信し、受信した前記要素データがエラーを含んでいるか否かを判定する受信コントローラと、
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいると前記受信コントローラが判定した場合に、前記エラーを含む前記要素データを格納した位置を保存するメモリコントローラと
を備え、
前記メモリコントローラは、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置を基準として、前記メモリの記憶領域に順に格納する
受信装置。
In addition, a part or all of each embodiment mentioned above can be described also as the following additional remarks. However, the present invention described by way of example with the above-described embodiments is not limited to the following. That is,
(Appendix 1)
A receiving controller that receives element data included in target data and determines whether the received element data includes an error; and
A memory controller that stores the element data in a memory in the order in which the element data is received and stores the position where the element data including the error is stored when the reception controller determines that the element data includes the error And
When the memory controller re-receives the element data included in the target data, the memory controller follows the element data corresponding to the element data including the error among the re-received target data. A receiving apparatus that sequentially stores data to be stored in a storage area of the memory with reference to the stored position.
(付記2)
前記メモリコントローラは、前記エラーを含んでいると前記受信コントローラが判定した場合に前記要素データより後に前記受信コントローラが受信した前記要素データを、前記メモリに格納しない
付記1に記載の受信装置。
(Appendix 2)
The receiving device according to
(付記3)
前記メモリコントローラは、前記メモリのうち前記要素データを格納する記憶領域を指し示す格納位置情報と、格納した前記位置との相対的な位置関係に基づいて、前記要素データを前記格納位置情報が指し示す記憶領域に格納するか否かを判定する
付記2に記載の受信装置。
(Appendix 3)
The memory controller stores the element data in the storage position information based on a relative positional relationship between the storage position information indicating the storage area in the memory for storing the element data and the stored position. The receiving device according to attachment 2, wherein it is determined whether or not to store in the area.
(付記4)
前記受信コントローラは、前記要素データに関して前記エラーが生じた場合であり、さらに前記メモリコントローラが、前記要素データを前記メモリに格納しない場合に、前記要素データを送信した送信元に、前記要素データを受信する処理を正常に終了したことを表す正常状態信号を送信する
付記1乃至付記3のいずれかに記載の受信装置。
(Appendix 4)
The reception controller is a case where the error has occurred with respect to the element data, and further, when the memory controller does not store the element data in the memory, the element data is transmitted to a transmission source that has transmitted the element data. The receiving apparatus according to any one of
(付記5)
前記メモリコントローラは、
前記メモリに前記要素データを格納する処理を実行する有効状態であるか、または、前記要素データを格納する処理を実行しない無効状態であるかを表す転送情報を格納可能な転送情報手段
をさらに備え、
前記受信コントローラは、受信した前記要素データが前記エラーを含んでいる場合に、前記メモリコントローラに、前記要素データを受信する処理を異常終了したことを表す異常信号を送信し、
前記メモリコントローラは、前記大小関係に基づいて前記転送情報を設定し、設定した前記転送情報に基づき、前記要素データを格納するか否かを判定する
付記1乃至付記4のいずれかに記載の受信装置。
(Appendix 5)
The memory controller is
Transfer information means capable of storing transfer information indicating whether it is a valid state for executing the process of storing the element data in the memory or an invalid state for not executing the process of storing the element data ,
The reception controller, when the received element data includes the error, transmits an abnormal signal indicating that the process of receiving the element data has ended abnormally to the memory controller;
The memory controller sets the transfer information based on the magnitude relationship and determines whether to store the element data based on the set transfer information. Reception according to any one of
(付記6)
前記メモリコントローラは、前記メモリのうち前記要素データを格納する記憶領域を指し示す格納位置情報が、前記位置よりも小さな値である場合に前記転送情報に前記無効状態を設定し、前記メモリのうち前記要素データを格納する記憶領域を指し示す格納位置情報が、前記位置以上の値である場合に前記転送情報に前記有効状態を設定する
付記1乃至付記5のいずれかに記載の受信装置。
(Appendix 6)
The memory controller sets the invalid state in the transfer information when storage position information indicating a storage area for storing the element data in the memory is a value smaller than the position, and the memory controller The receiving apparatus according to any one of
(付記7)
付記1乃至付記6のいずれかに記載の受信装置と、
前記対象データを記憶している記憶領域から、所定の単位にて対象データを読み取る読み取り手段と、
読み取った前記対象データを、前記受信コントローラに送信する送信コントローラと、
を備える転送装置。
(Appendix 7)
The receiving device according to any one of
Reading means for reading the target data in a predetermined unit from the storage area storing the target data;
A transmission controller that transmits the read target data to the reception controller;
A transfer device comprising:
(付記8)
対象データに含まれている要素データを受信し、受信した前記要素データがエラーを含んでいるか否かを判定する受信コントローラを備える装置において、
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいる場合に、前記エラーを含む前記要素データを格納した位置を保存するとともに、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置以降に格納する
受信方法。
(Appendix 8)
In an apparatus comprising a reception controller that receives element data included in target data and determines whether the received element data includes an error,
The element data is stored in the memory in the order received, and when the element data includes the error, the position where the element data including the error is stored is stored, and is included in the target data. When the received element data is received again, the subsequent data after the element data corresponding to the element data including the error is stored after the saved position among the re-received target data. Reception method.
(付記9)
前記エラーを含んでいる前記要素データより後に前記受信コントローラが受信した前記要素データを、前記メモリに格納しない
付記8に記載の受信方法。
(Appendix 9)
The reception method according to claim 8, wherein the element data received by the reception controller after the element data including the error is not stored in the memory.
(付記10)
前記メモリのうち前記要素データを格納する記憶領域を指し示す格納位置情報と、格納した前記位置との大小関係に基づいて、前記要素データを前記格納位置情報が指し示す記憶領域に格納するか否かを判定する
付記9に記載の受信方法。
(Appendix 10)
Whether or not to store the element data in the storage area pointed to by the storage position information based on the size relationship between the storage position information indicating the storage area for storing the element data in the memory and the stored position. The receiving method according to appendix 9.
(付記11)
送信する対象である第1データが記憶された記憶領域を指し示す第1識別子を第1記憶手段に保存し、前記第1識別子が表す前記記憶領域から前記第1データを読み取り、読み取った前記第1データを送信する送信手段と、
受信した前記第1データを格納する記憶領域を指し示す第2識別子を第2記憶手段に保存し、前記送信コントローラが送信した前記第1データを受信し、受信した前記第1データを前記第2識別子が表す前記記憶領域に格納し、受信した前記第1データがエラーを含むか否かを判定し、前記第1データが前記エラーを含む場合に、前記第1データを再送する処理を要求する要求信号を前記送信手段に送信する受信手段と
を備え、
前記送信手段は、前記要求信号に応じて、前記第1識別子を前記第1記憶手段から読み取り、読み取った前記第1識別子が表す前記記憶領域から第2データを読み取り、読み取った前記第2データを、前記受信手段に送信し、
前記受信手段は、前記送信手段に前記要求信号を送信した場合に、前記第2識別子を前記第2記憶手段から読み取り、前記第2データを受信し、受信した前記第2データを前記第2識別子が表す前記記憶領域に格納する
転送装置。
(Appendix 11)
The first identifier indicating the storage area in which the first data to be transmitted is stored is stored in the first storage means, the first data is read from the storage area represented by the first identifier, and the read first A transmission means for transmitting data;
A second identifier indicating a storage area for storing the received first data is stored in a second storage means, the first data transmitted by the transmission controller is received, and the received first data is defined as the second identifier. A request for requesting processing for retransmitting the first data when the first data stored in the storage area represented by the received data includes an error and the first data includes the error. Receiving means for transmitting a signal to the transmitting means, and
In response to the request signal, the transmission means reads the first identifier from the first storage means, reads second data from the storage area indicated by the read first identifier, and reads the read second data. , Send to the receiving means,
The receiving means reads the second identifier from the second storage means when receiving the request signal to the transmitting means, receives the second data, and receives the received second data as the second identifier. A transfer device that stores in the storage area represented by
(付記12)
前記受信手段は、前記第1データがエラーを含み、さらに、受信した前記第1データがエラーを含む回数が所定の回数以下である場合に、前記要求信号を前記送信手段に送信する
付記11に記載の転送装置。
(Appendix 12)
The receiving unit transmits the request signal to the transmitting unit when the first data includes an error and the number of times the received first data includes an error is equal to or less than a predetermined number. The transfer device described.
101 コンピュータシステム
102 ホスト装置
103 メモリ
104 転送装置
105 DMAコントローラ
106 SATAコントローラ
107 デバイス
108 メモリ
109 転送装置
110 DMAコントローラ
111 SATAコントローラ
112 SATAインターフェース
121 DMAコントローラ
122 PRDテーブルポインタレジスタ
123 PRDインデックスレジスタ
124 DMAベースアドレスレジスタ
125 DMAバイトカウントレジスタ
201 コンピュータシステム
202 ホスト装置
204 転送装置
205 DMAコントローラ
206 SATAコントローラ
207 デバイス
209 転送装置
210 DMAコントローラ
211 SATAコントローラ
301 転送装置
302 送信部
303 受信部
304 メモリ
305 メモリ
401 受信コントローラ
402 メモリ格納部
403 メモリ
404 受信装置
Claims (10)
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいると前記受信コントローラが判定した場合に、前記エラーを含む前記要素データを格納した位置を保存するメモリコントローラと
を備え、
前記メモリコントローラは、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置を基準として、前記メモリの記憶領域に順に格納する
受信装置。 A receiving controller that receives element data included in target data and determines whether the received element data includes an error; and
A memory controller that stores the element data in a memory in the order in which the element data is received and stores the position where the element data including the error is stored when the reception controller determines that the element data includes the error And
When the memory controller re-receives the element data included in the target data, the memory controller follows the element data corresponding to the element data including the error among the re-received target data. A receiving apparatus that sequentially stores data to be stored in a storage area of the memory with reference to the stored position.
請求項1に記載の受信装置。 The receiving device according to claim 1, wherein the memory controller does not store, in the memory, the element data received by the receiving controller after the element data when the receiving controller determines that the error is included.
請求項2に記載の受信装置。 The memory controller stores the element data in the storage position information based on a relative positional relationship between the storage position information indicating the storage area in the memory for storing the element data and the stored position. The receiving apparatus according to claim 2, wherein it is determined whether or not to store in an area.
請求項1乃至請求項3のいずれかに記載の受信装置。 The reception controller is a case where the error has occurred with respect to the element data, and further, when the memory controller does not store the element data in the memory, the element data is transmitted to a transmission source that has transmitted the element data. The receiving apparatus according to any one of claims 1 to 3, wherein a normal state signal indicating that the receiving process is normally completed is transmitted.
前記メモリに前記要素データを格納する処理を実行する有効状態であるか、または、前記要素データを格納する処理を実行しない無効状態であるかを表す転送情報を格納可能な転送情報手段
をさらに備え、
前記受信コントローラは、受信した前記要素データが前記エラーを含んでいる場合に、前記メモリコントローラに、前記要素データを受信する処理を異常終了したことを表す異常信号を送信し、
前記メモリコントローラは、前記大小関係に基づいて前記転送情報を設定し、設定した前記転送情報に基づき、前記要素データを格納するか否かを判定する
請求項1乃至請求項4のいずれかに記載の受信装置。 The memory controller is
Transfer information means capable of storing transfer information indicating whether it is a valid state for executing the process of storing the element data in the memory or an invalid state for not executing the process of storing the element data ,
The reception controller, when the received element data includes the error, transmits an abnormal signal indicating that the process of receiving the element data has ended abnormally to the memory controller;
The memory controller sets the transfer information based on the magnitude relationship, and determines whether to store the element data based on the set transfer information. Receiver.
請求項1乃至請求項5のいずれかに記載の受信装置。 The memory controller sets the invalid state in the transfer information when storage position information indicating a storage area for storing the element data in the memory is a value smaller than the position, and the memory controller The receiving apparatus according to claim 1, wherein the valid state is set in the transfer information when storage position information indicating a storage area for storing element data is a value equal to or greater than the position.
前記対象データを記憶している記憶領域から、所定の単位にて対象データを読み取る読み取り手段と、
読み取った前記対象データを、前記受信コントローラに送信する送信コントローラと、
を備える転送装置。 A receiving device according to any one of claims 1 to 6;
Reading means for reading the target data in a predetermined unit from the storage area storing the target data;
A transmission controller that transmits the read target data to the reception controller;
A transfer device comprising:
前記要素データを受信した順序にてメモリに格納し、前記要素データが前記エラーを含んでいる場合に、前記エラーを含む前記要素データを格納した位置を保存するとともに、前記対象データに含まれている前記要素データを再受信する場合に、再受信した前記対象データのうち、前記エラーを含む前記要素データに対応している前記要素データ以降に後続するデータを、保存した前記位置以降に格納する
受信方法。 In an apparatus comprising a reception controller that receives element data included in target data and determines whether the received element data includes an error,
The element data is stored in the memory in the order received, and when the element data includes the error, the position where the element data including the error is stored is stored, and is included in the target data. When the received element data is received again, the subsequent data after the element data corresponding to the element data including the error is stored after the saved position among the re-received target data. Reception method.
請求項8に記載の受信方法。 The reception method according to claim 8, wherein the element data received by the reception controller after the element data including the error is not stored in the memory.
請求項9に記載の受信方法。 Whether to store the element data in the storage area indicated by the storage position information based on the relative positional relationship between the storage position information indicating the storage area for storing the element data in the memory and the stored position The receiving method according to claim 9, wherein it is determined whether or not.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015175689A JP6641131B2 (en) | 2015-09-07 | 2015-09-07 | Receiving device, receiving method, and transfer device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015175689A JP6641131B2 (en) | 2015-09-07 | 2015-09-07 | Receiving device, receiving method, and transfer device |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017054174A true JP2017054174A (en) | 2017-03-16 |
JP6641131B2 JP6641131B2 (en) | 2020-02-05 |
Family
ID=58316544
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015175689A Active JP6641131B2 (en) | 2015-09-07 | 2015-09-07 | Receiving device, receiving method, and transfer device |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6641131B2 (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022139737A (en) * | 2021-03-12 | 2022-09-26 | 株式会社光電製作所 | Transmission device, receiving device, control method, and program |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1188464A (en) * | 1997-09-04 | 1999-03-30 | Fujitsu Ltd | Data transfer device and data transfer method |
JP2004326847A (en) * | 2003-04-22 | 2004-11-18 | Shinano Kenshi Co Ltd | Audio data read method, computer readable audio data read, program and optical disk drive |
JP2008015856A (en) * | 2006-07-07 | 2008-01-24 | Seiko Epson Corp | Data transfer control device and electronic equipment |
JP2014096162A (en) * | 2012-05-08 | 2014-05-22 | Unitex:Kk | Interface conversion device and interface conversion method |
JP2015046050A (en) * | 2013-08-28 | 2015-03-12 | 京セラドキュメントソリューションズ株式会社 | Communication device and communication method |
-
2015
- 2015-09-07 JP JP2015175689A patent/JP6641131B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH1188464A (en) * | 1997-09-04 | 1999-03-30 | Fujitsu Ltd | Data transfer device and data transfer method |
JP2004326847A (en) * | 2003-04-22 | 2004-11-18 | Shinano Kenshi Co Ltd | Audio data read method, computer readable audio data read, program and optical disk drive |
JP2008015856A (en) * | 2006-07-07 | 2008-01-24 | Seiko Epson Corp | Data transfer control device and electronic equipment |
JP2014096162A (en) * | 2012-05-08 | 2014-05-22 | Unitex:Kk | Interface conversion device and interface conversion method |
JP2015046050A (en) * | 2013-08-28 | 2015-03-12 | 京セラドキュメントソリューションズ株式会社 | Communication device and communication method |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2022139737A (en) * | 2021-03-12 | 2022-09-26 | 株式会社光電製作所 | Transmission device, receiving device, control method, and program |
JP7264517B2 (en) | 2021-03-12 | 2023-04-25 | 株式会社光電製作所 | Transmitting device, receiving device, control method, and program |
Also Published As
Publication number | Publication date |
---|---|
JP6641131B2 (en) | 2020-02-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210011785A1 (en) | Methods and apparatus for correcting out-of-order data transactions between processors | |
CN109964215B (en) | Flow control in remote direct memory access data communications with ring buffer mirroring | |
CN114328316B (en) | DMA controller, SOC system and data carrying method based on DMA controller | |
CN110447020B (en) | Communication device, communication method, program, and communication system | |
US20200210224A1 (en) | Methods and apparatus for verifying completion of groups of data transactions between processors | |
US9473273B2 (en) | Memory system capable of increasing data transfer efficiency | |
EP3065323B1 (en) | Transmission method and device based on management data input/output multi-source agreements | |
JP5407230B2 (en) | PCI card, motherboard, PCI bus system, control method, and program | |
JP2014003377A (en) | Control device and image formation apparatus | |
US8484546B2 (en) | Information processing apparatus, information transmitting method, and information receiving method | |
JP6641131B2 (en) | Receiving device, receiving method, and transfer device | |
CN107852275B (en) | Data transmission device, data transmission method, reception device, and reception method | |
JP2010092336A (en) | Storage system and communication method | |
US20100318666A1 (en) | Expediting adapter failover | |
JP2016059012A (en) | Receiver, transmitter, and data transfer system | |
CN114928511A (en) | Data processing apparatus and data processing system | |
US10218468B2 (en) | USB device, data transfer system and data transfer method | |
US11929834B2 (en) | Redundant communication apparatus, method, and program | |
EP3772845B1 (en) | Protocol converter, data transmission system, data transmission method, and non-transitory computer-readable medium | |
JP6381501B2 (en) | Redundant system | |
JP2008053783A (en) | Data transfer buffer controller and data transfer control method | |
JP2009130614A (en) | Communication controller, communication control method and communication control program | |
WO2009095969A1 (en) | Data transfer device, data transfer system, and data transfer method | |
JP5713136B2 (en) | Control device, first control device, second control device, image forming apparatus | |
JP5913454B2 (en) | Control device, first control device, second control device, image forming apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180809 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20190521 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190604 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190729 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20191210 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20191227 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6641131 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |