JP2017054174A - Receiving apparatus, receiving method, and transfer apparatus - Google Patents

Receiving apparatus, receiving method, and transfer apparatus Download PDF

Info

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
Application number
JP2015175689A
Other languages
Japanese (ja)
Other versions
JP6641131B2 (en
Inventor
祥布 福井
Yoshinobu Fukui
祥布 福井
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.)
NEC Platforms Ltd
Original Assignee
NEC Platforms 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 NEC Platforms Ltd filed Critical NEC Platforms Ltd
Priority to JP2015175689A priority Critical patent/JP6641131B2/en
Publication of JP2017054174A publication Critical patent/JP2017054174A/en
Application granted granted Critical
Publication of JP6641131B2 publication Critical patent/JP6641131B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide a receiving apparatus or the like, which can receive data in a short period or time, even when an error occurs in processing of receiving the data.SOLUTION: A receiving apparatus 404 includes: a receiving controller 401 which receives element data included in object data, to determine whether the received element data includes an error or not; and a memory controller 402 which stores the element data in the order of reception, on a memory, and stores a storage location of the element data including the error when the element data includes the error. In receiving again the element data included in the object data, the memory controller 402 stores the data following the element data and corresponding to the element data including the error, out of the object data received again, in positions following the storage location.SELECTED DRAWING: Figure 20

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 Patent Literature 1 includes a decoding unit, a holding unit, a CRC unit, an error detection unit, and a data processing unit. CRC represents an abbreviation for Cyclic_Redundancy_Check. The decoding unit decodes the received data and holds the decoded data in the holding unit. The CRC unit detects a CRC error for the decoded data. The error detection unit detects a decoding error with respect to the decoded data. When the decoding error detected by the error detection unit is an error related to data to be processed during the period when synchronization is ensured in the interface, and the CRC unit does not detect a CRC error, the data processing unit The decoded data that is held is processed as valid data.

特許文献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.

特開2011−248977号公報JP 2011-248977 A 特開2008−017250号公報JP 2008-017250 A

しかし、たとえ特許文献1を用いたとしても、対象データに関する転送処理にてエラーが生じた場合に、効率よく対象データに関する転送処理を実行することは難しい。この理由は、対象データに関する転送処理にてエラーが生じた場合に、該装置が該転送処理を再実行するからである。   However, even if Patent Document 1 is used, it is difficult to efficiently execute the transfer process related to the target data when an error occurs in the transfer process related to the target data. This is because, when an error occurs in the transfer process related to the target data, the apparatus re-executes the transfer process.

そこで、本発明の主たる目的は、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することが可能な受信装置等を提供することである。   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.

本発明の第1の実施形態に係るコンピュータシステムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the computer system which concerns on the 1st Embodiment of this invention has. DMAコントローラが有する構成を示すブロック図である。It is a block diagram which shows the structure which a DMA controller has. PRDテーブルが有する構成を示すブロック図である。It is a block diagram which shows the structure which a PRD table has. 命令「Set_Features」に関するCountフィールドを概念的に表す図である。FIG. 11 is a diagram conceptually illustrating a Count field related to an instruction “Set_Features”. SATAを介して、FISを送信する処理を制御するSATAコントローラにおける処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the SATA controller which controls the process which transmits FIS via SATA. SATAを介して、FISを受信する処理を制御するSATAコントローラにおける処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the SATA controller which controls the process which receives FIS via SATA. DMAコントローラにおける処理の流れ(1/2)を示すフローチャートである。It is a flowchart which shows the flow (1/2) of the process in a DMA controller. DMAコントローラにおける処理の流れ(2/2)を示すフローチャートである。It is a flowchart which shows the flow (2/2) of the process in a DMA controller. 本発明の第2の実施形態に係るコンピュータシステムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the computer system concerning the 2nd Embodiment of this invention has. リード命令の場合に、第2の実施形態に係る転送装置における処理の流れを示すシーケンス図である。FIG. 11 is a sequence diagram showing a flow of processing in a transfer device according to the second embodiment in the case of a read command. 転送装置が送受信するデータの一例(1/2)を概念的に表す図である。FIG. 5 is a diagram conceptually illustrating an example (1/2) of data transmitted and received by a transfer device. 転送装置が送受信するデータの一例(2/2)を概念的に表す図である。It is a figure which represents notionally an example (2/2) of the data which a transfer apparatus transmits / receives. 第2の実施形態に係るコンピュータシステムにおける処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a process in the computer system which concerns on 2nd Embodiment. DMAコントローラにおける処理の流れ(1/4)を示すフローチャートである。It is a flowchart which shows the flow (1/4) of the process in a DMA controller. DMAコントローラにおける処理の流れ(2/4)を示すフローチャートである。It is a flowchart which shows the flow (2/4) of the process in a DMA controller. DMAコントローラにおける処理の流れ(3/4)を示すフローチャートである。It is a flowchart which shows the flow (3/4) of the process in a DMA controller. DMAコントローラにおける処理の流れ(4/4)を示すフローチャートである。It is a flowchart which shows the flow (4/4) of the process in a DMA controller. 本発明の第3の実施形態に係る転送装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the transfer apparatus which concerns on the 3rd Embodiment of this invention has. 第3の実施形態に係る転送装置における処理の流れを示すシーケンス図である。It is a sequence diagram which shows the flow of a process in the transfer apparatus which concerns on 3rd Embodiment. 本発明の第4の実施形態に係る転送装置が有する構成を示すブロック図である。It is a block diagram which shows the structure which the transfer apparatus which concerns on the 4th Embodiment of this invention has. 第4の実施形態に係る転送装置における処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the transfer apparatus which concerns on 4th Embodiment.

次に、本発明を実施する実施形態について図面を参照しながら詳細に説明する。   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 computer system 101 according to the first embodiment of the present invention will be described in detail with reference to FIG. FIG. 1 is a block diagram showing the configuration of the computer system 101 according to the first embodiment of the present invention.

第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 computer system 101 according to the first embodiment roughly includes a host device 102 and a device 107. The host device 102 includes a memory 103 and a transfer device 104. The device 107 includes a memory 108 and a transfer device 109. The transfer device 104 includes a DMA controller 105 and a SATA controller 106. The transfer device 109 includes a DMA controller 110 and a SATA controller 111. The host apparatus 102 and the device 107 can transmit and receive information (data) via the SATA controller 106, the SATA controller 111, and a communication path through which the SATA controller 106 and the SATA controller 111 can be connected. The communication path is, for example, the SATA interface 112.

図2を参照しながら、DMAコントローラ121(たとえば、DMAコントローラ105、または、DMAコントローラ110)が有する構成について、さらに詳細に説明する。図2は、DMAコントローラ121が有する構成を示すブロック図である。   The configuration of the DMA controller 121 (for example, the DMA controller 105 or the DMA controller 110) will be described in more detail with reference to FIG. FIG. 2 is a block diagram showing a configuration of the DMA controller 121. As shown in FIG.

DMAコントローラ121は、PRDテーブルポインタレジスタ122と、PRDインデックスレジスタ123と、DMAベースアドレスレジスタ124と、DMAバイトカウントレジスタ125とを有する。尚、PRDは、Physical_Region_Descriptorの略称を表す。   The DMA controller 121 includes a PRD table pointer register 122, a PRD index register 123, a DMA base address register 124, and a DMA byte count register 125. PRD represents an abbreviation for Physical_Region_Descriptor.

PRDテーブルポインタレジスタ122は、メモリ103において、PRDテーブル(図3、後述)を記憶している記憶領域の先頭アドレスを記憶することができる。以降、PRDテーブルが格納されている記憶領域の先頭アドレスを、「PRDベースアドレス」(または、「転送ベースアドレス」)と表す。   The PRD table pointer register 122 can store the start address of a storage area in the memory 103 in which a PRD table (FIG. 3, which will be described later) is stored. Hereinafter, the head address of the storage area in which the PRD table is stored is represented as “PRD base address” (or “transfer base address”).

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 PRD index register 123 may be a relative address when the value stored in the PRD table pointer register 122 is used as a reference. In this case, in the PRD table, the start address of the storage area that stores information related to the data being transferred is stored in the PRD table pointer register 122 and the PRD index register 123. Is the sum of Hereinafter, for convenience of explanation, it is assumed that the PRD index register 123 can store the relative address.

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 byte count register 125 can store the size (size, length) of the target data.

DMAコントローラ121は、さらに、Transferカウントレジスタを有してもよい。Transferカウントレジスタは、たとえば、対象データに関して、転送処理が完了したデータのサイズ(大きさ、長さ)を記憶することができる。   The DMA controller 121 may further include a transfer count register. The Transfer count register can store, for example, the size (size, length) of data for which transfer processing has been completed for the target data.

以降の説明においては、説明の便宜上、DMAコントローラ121は、Transferカウントレジスタを有すると仮定する。   In the following description, for convenience of explanation, it is assumed that the DMA controller 121 has a Transfer count register.

尚、本発明の各実施形態においては、特定の値を格納可能なレジスタを用いて表現するが、必ずしも、該特定の値を格納する専用のレジスタでなく、汎用のレジスタを用いて専用のレジスタに相当する機能を実現してもよい。あるいは、値を記憶可能なレジスタは、メモリ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 memory 103. Further, it is assumed that the host apparatus 102 and the device 107 each have the register shown in FIG.

次に、図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 memory 103 or the memory 108) that stores the target data. Hereinafter, the head address of the storage area storing the value to be transferred is represented as “transfer base address” or the like. In the following description, the byte count may be expressed as “transfer size” or the like.

言い換えると、対象データが複数ある場合に、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 SATA controller 106 according to the first embodiment will be described with reference to FIG. FIG. 4 is a diagram conceptually showing a Count field related to the instruction “Set_Features”. That is, the instruction “Set_Features” has a vendor-specific subcommand in the Feature field and has detailed command information in the Count field.

命令「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 device 107 is information described in the Feature field and the Count field. The instruction “Set_Features” is realized through a sub-instruction unique to a vendor such as a transfer apparatus, for example. The instruction “Set_Features” includes a Feature field. Furthermore, Set_Features includes a Count field. The Count field can store information (for example, data amount and data size) related to transfer processing between the host apparatus 102 and the device 107 in the normal command.

本実施形態に係る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 SATA controller 106 according to the first embodiment transmits and receives the FIS will be described with reference to FIGS. 5 and 6. FIG. 5 is a flowchart showing a process flow in the SATA controller 106 that controls the process of transmitting the FIS via the SATA. FIG. 6 is a flowchart showing a process flow in the SATA controller 106 that controls the process of receiving the FIS via the SATA.

説明の便宜上、ホスト装置102におけるSATAコントローラ106は、たとえば、ホスト装置102がデバイス107にデータを出力するライト処理を表す命令(以降、「ライト命令」と表す)を外部装置等から受信するとする。さらに、該ライト命令に応じた処理において、ホスト装置102がデバイス107に送信する対象であるデータを、「対象データ」と表すとする。また、デバイス107がホスト装置102にデータを出力する処理を表す命令を、「リード命令」と表すとする。   For convenience of explanation, it is assumed that the SATA controller 106 in the host apparatus 102 receives, for example, an instruction representing a write process in which the host apparatus 102 outputs data to the device 107 (hereinafter referred to as “write instruction”) from an external apparatus or the like. Furthermore, in the processing according to the write command, data that is the target that the host apparatus 102 transmits to the device 107 is represented as “target data”. Further, an instruction representing a process in which the device 107 outputs data to the host apparatus 102 is represented as a “read instruction”.

まず、ホスト装置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 SATA controller 106 in the host apparatus 102 receives the write command transmitted from the external apparatus, and starts processing to transmit the FIS related to the target data to the SATA controller 111 in the device 107 in accordance with the received write command (step). S101). When the process is started, the SATA controller 106 in the host apparatus 102 creates a Feature field based on the received write command, and transmits a command “Set_Features” including the created Feature field to the SATA controller 111 in the device 107. . With this processing, the SATA controller 106 in the host apparatus 102 notifies the SATA controller 111 in the device 107 of the status related to the host apparatus 102. Thereafter, the SATA controller 106 in the host apparatus 102 transmits the received command (in this case, a write command) to the SATA controller 111 in the device 107.

さらに、ステップS101に示す処理において、ホスト装置102におけるSATAコントローラ106は、受信した命令に基づく命令パラメタ情報を作成し、その後、ホスト装置102におけるDMAコントローラ105を起動する制御を実行する。たとえば、命令に基づく命令パラメタ情報は、処理の種類、対象データの大きさ、該対象データを格納している位置情報等である。命令に応じた指示に関する命令パラメタ情報は、必ずしも、上記のすべての項目を含んでいる必要はない。   Further, in the processing shown in step S101, the SATA controller 106 in the host apparatus 102 creates instruction parameter information based on the received instruction, and then executes control to activate the DMA controller 105 in the host apparatus 102. For example, the command parameter information based on the command includes the type of processing, the size of the target data, the location information storing the target data, and the like. The command parameter information relating to the instruction according to the command does not necessarily include all the items described above.

ホスト装置102におけるSATAコントローラ106が起動する制御を実行するのに応じて、ホスト装置102におけるDMAコントローラ105は、起動し、ホスト装置102におけるSATAコントローラ106が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ105における処理については、図7及び図8を参照しながら後述する。   The DMA controller 105 in the host apparatus 102 starts up and executes processing based on the command parameter information created by the SATA controller 106 in the host apparatus 102 in response to executing the control that the SATA controller 106 in the host apparatus 102 starts up. . The processing in the DMA controller 105 will be described later with reference to FIGS.

一方、デバイス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 SATA controller 111 in the device 107 receives the command “Set_Features” and the write command transmitted by the SATA controller 106 in the host device 102. That is, in this example, the SATA controller 111 in the device 107 starts a process of receiving target data (step S121). For example, the SATA controller 111 in the device 107 recognizes that the host apparatus 102 is a device that can perform retransmission processing based on the Feature field included in the received command “Set_Features”, and performs retransmission processing based on the Count field. Enable or disable. Further, the SATA controller 111 in the device 107 starts processing according to the received write command.

ステップ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 SATA controller 111 in the device 107 creates command parameter information based on the write command, and then executes control to activate the DMA controller 110 in the device 107. For example, the instruction parameter information based on the instruction includes the type of processing, the size of the target data, the position information storing the target data, and the like. The DMA controller 110 in the device 107 starts up and executes processing based on the command parameter information created by the SATA controller 111 in the device 107 in accordance with the control that the SATA controller 111 in the device 107 starts up. The DMA controller 110 will be described later with reference to FIGS.

次に、ホスト装置102におけるSATAコントローラ106は、対象データに関するデータFISを、デバイス107におけるSATAコントローラ111に送信する(ステップS102)。尚、この場合に、ホスト装置102におけるSATAコントローラ106は、さらに、対象データ(または、FIS)に関するエラーを検知可能なデータ(たとえば、CRCに従い算出されたデータ、以降、「CRCデータ」と表す)を送信する。すなわち、CRCデータを参照する処理により、対象データに関するFISに生じたエラーを検知することができる。尚、CRCは、Cyclic_Redundancy_Checkの略称を表す。本実施形態においては、CRCに関する説明を省略する。   Next, the SATA controller 106 in the host apparatus 102 transmits data FIS related to the target data to the SATA controller 111 in the device 107 (step S102). In this case, the SATA controller 106 in the host device 102 further detects data relating to the target data (or FIS) (for example, data calculated according to CRC, hereinafter referred to as “CRC data”). Send. That is, an error occurring in the FIS related to the target data can be detected by the process of referring to the CRC data. CRC represents an abbreviation for Cyclic_Redundancy_Check. In the present embodiment, description regarding CRC is omitted.

これに対して、デバイス107におけるSATAコントローラ111は、ホスト装置102におけるSATAコントローラ106が送信したデータFISを受信する(ステップS122)。さらに、デバイス107におけるSATAコントローラ111は、CRCデータを受信し、受信したCRCデータに基づき、受信したデータFISがエラーを含むか否かを判定する(ステップS123)。言い換えれば、デバイス107におけるSATAコントローラ111は、受信したCRCデータに基づき、対象データを構成する要素データごとに、エラーが生じているか否かを判定する。   In response to this, the SATA controller 111 in the device 107 receives the data FIS transmitted from the SATA controller 106 in the host apparatus 102 (step S122). Further, the SATA controller 111 in the device 107 receives the CRC data, and determines whether or not the received data FIS includes an error based on the received CRC data (step S123). In other words, the SATA controller 111 in the device 107 determines whether an error has occurred for each element data constituting the target data based on the received CRC data.

デバイス107におけるSATAコントローラ111は、受信したデータFISがエラーを含んでいない場合に(ステップS123にてNO)、データFISを正常に受信したことを表す応答信号(以降、「正常応答信号」と表す)を作成する。デバイス107におけるSATAコントローラ111は、作成した正常応答信号をホスト装置102におけるSATAコントローラ106に送信する(ステップS127)。   The SATA controller 111 in the device 107, when the received data FIS does not contain an error (NO in step S123), a response signal indicating that the data FIS has been received normally (hereinafter referred to as “normal response signal”). ). The SATA controller 111 in the device 107 transmits the created normal response signal to the SATA controller 106 in the host apparatus 102 (step S127).

ステップS123にてNOの場合に、デバイス107におけるSATAコントローラ111は、デバイス107におけるDMAコントローラ110に、正常応答信号を送信する。   If NO in step S123, the SATA controller 111 in the device 107 transmits a normal response signal to the DMA controller 110 in the device 107.

デバイス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 SATA controller 111 in the device 107 selects a response signal to be transmitted according to a certain criterion (step S124), and transmits the selected response signal. . A certain criterion is, for example, a condition indicating whether or not the number of times an error has occurred is equal to or less than a predetermined number. The predetermined number of times is stored, for example, in the Count field in the instruction “Set_Features” shown in FIG. When the SATA controller 111 in the device 107 determines that the certain criterion is satisfied (YES in step S124), the SATA controller 111 selects a response signal (hereinafter referred to as “request response signal”) indicating a request to retransmit the target data. The selected request response signal is transmitted to the SATA controller 106 in the host apparatus 102 (step S125). In the process shown in step S125, the SATA controller 111 in the device 107 outputs a retransmission notification signal for executing a retransmission process on the data FIS in which an error has occurred to the DMA controller 110 in the device 107. The DMA controller 110 in the device 107 receives the retransmission notification signal output from the SATA controller 111 in the device 107 (step S156 in FIG. 8, which will be described later). When the SATA controller 111 in the device 107 determines that the certain determination criterion is not satisfied (NO in step S124), a response signal indicating that the target data has not been correctly received (hereinafter referred to as "abnormal response signal"). Select). The SATA controller 111 in the device 107 outputs the selected abnormality response signal to the DMA controller 110 in the device 107 in the process shown in step S126. The DMA controller 110 in the device 107 inputs the abnormality notification signal output from the SATA controller 111 in the device 107 (step S156 in FIG. 8, which will be described later).

言い換えれば、デバイス107におけるSATAコントローラ111は、デバイス107におけるDMAコントローラ110に対して、ステップS124にてYESの場合には、再送通知信号を出力し、ステップS124にてNOの場合には、異常通知信号を出力する。たとえば、デバイス107におけるSATAコントローラ111は、エラーの原因となったデータFISに関して、該エラーの回数が所定の回数よりも大きな値である場合には異常応答信号を選び、該エラーの回数が所定の回数以下である場合には要求応答信号を選ぶ。   In other words, the SATA controller 111 in the device 107 outputs a retransmission notification signal to the DMA controller 110 in the device 107 in the case of YES in step S124, and an abnormality notification in the case of NO in step S124. Output a signal. For example, regarding the data FIS causing the error, the SATA controller 111 in the device 107 selects an abnormal response signal when the number of errors is larger than a predetermined number, and the number of errors is a predetermined number. If it is less than the number of times, a request response signal is selected.

ホスト装置102におけるSATAコントローラ106は、デバイス107におけるSATAコントローラ111が送信した応答信号(正常応答信号、異常応答信号、または、要求応答信号)を受信することにより(ステップS103)、データFISを送信する処理を終了する(ステップS104)。尚、ホスト装置102におけるSATAコントローラ106は、対象データを送信して(ステップS102)から、応答信号を受信する(ステップS103)までの期間内に、応答信号を待つ処理を実行してもよい。   The SATA controller 106 in the host apparatus 102 receives the response signal (normal response signal, abnormal response signal, or request response signal) transmitted by the SATA controller 111 in the device 107 (step S103), and transmits the data FIS. The process ends (step S104). Note that the SATA controller 106 in the host device 102 may execute a process of waiting for a response signal within a period from when the target data is transmitted (step S102) until the response signal is received (step S103).

その後、ホスト装置102におけるSATAコントローラ106は、ホスト装置102におけるDMAコントローラ105に、受信した応答信号を送信する。   Thereafter, the SATA controller 106 in the host apparatus 102 transmits the received response signal to the DMA controller 105 in the host apparatus 102.

係る応答信号を送信する処理について詳細に説明する。ホスト装置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 SATA controller 106 in the host device 102 determines whether or not the received response signal is a normal response signal (step S105). When the received response signal is a normal response signal (YES in step S105), the SATA controller 106 in the host device 102 sends a notification signal indicating that no error has occurred to the DMA controller 105 in the host device 102. Output. Hereinafter, for convenience of explanation, a notification signal indicating that no error has occurred is referred to as a “normal notification signal”. Thereafter, the SATA controller 106 in the host apparatus 102 normally ends the processing relating to the data FIS (step S109). The DMA controller 105 in the host apparatus 102 inputs the normal notification signal output from the SATA controller 106 in the host apparatus 102 (step S156 in FIG. 8, which will be described later).

ホスト装置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 SATA controller 106 in the host device 102 determines whether the received response signal is a request response signal (step S106). When the response signal is the request response signal (YES in step S106), the SATA controller 106 in the host apparatus 102 sends a retransmission notification signal for retransmitting the data FIS in which an error has occurred to the DMA controller 105 in the host apparatus 102. Output. Thereafter, the SATA controller 106 in the host apparatus 102 sets the command parameter information related to the process for retransmitting the target data, and then ends the retransmission (step S107). The DMA controller 105 in the host apparatus 102 inputs the retransmission notification signal output from the SATA controller 106 in the host apparatus 102 (step S156 in FIG. 8, which will be described later).

ホスト装置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 SATA controller 106 in the host apparatus 102 outputs an abnormality notification signal indicating that the abnormal termination has been performed to the DMA controller 105 in the host apparatus 102. . Thereafter, the SATA controller 106 in the host apparatus 102 abnormally ends the transfer process related to the data FIS (step S108). Since an abnormal response signal is transmitted when the error related to the data FIS is larger than the predetermined number of times, the transfer process related to the data FIS has failed even though the transfer process related to the data FIS is repeatedly executed. Represents that. The DMA controller 105 in the host apparatus 102 inputs the abnormality notification signal output from the SATA controller 106 in the host apparatus 102 (step S156 in FIG. 8, which will be described later).

次に、図7を参照しながら、DMAコントローラ105における処理について説明する。図7は、DMAコントローラ105における処理の流れ(1/2)を示すフローチャートである。DMAは、Direct_Memory_Accessの略称を表す。   Next, processing in the DMA controller 105 will be described with reference to FIG. FIG. 7 is a flowchart showing a process flow (1/2) in the DMA controller 105. DMA represents an abbreviation for Direct_Memory_Access.

ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が起動する制御を実行するのに応じて処理を開始する。同様に、デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が起動する制御を実行するのに応じて処理を開始する。   The DMA controller 105 in the host apparatus 102 starts processing in response to executing control that is activated by the SATA controller 106 in the host apparatus 102. Similarly, the DMA controller 110 in the device 107 starts processing in response to executing control that is activated by the SATA controller 111 in the device 107.

ホスト装置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 DMA controller 105 in the host apparatus 102 reads, for example, the instruction parameter information created by the SATA controller 106 in the host apparatus 102 in step S101. Based on the read instruction parameter information, all the target data, that is, N pieces of data are stored in the memory 103. A storage area capable of storing the target data is secured, and a PRD table indicating the area is prepared (step S131).
The DMA controller 105 in the host apparatus 102 stores the head address of the prepared PRD table (that is, “PRD base address”) in the PRD table pointer register (step S132). The DMA controller 105 in the host device 102 secures a memory area for temporarily storing data to be transferred in the transfer process according to the instruction FIS (step S133). The DMA controller 105 in the host apparatus 102 stores the number (for example, 1) of the target data to start processing in the PRD index register (step S134).

ステップS131乃至ステップS134に示す処理によって、ホスト装置102におけるDMAコントローラ105は、全ての対象データつまりN個の対象データを転送する処理に関する準備を実行する。ステップS134に示す処理によって、ホスト装置102におけるDMAコントローラ105は、N個の対象データに含まれている第1対象データを送信する準備を実行する。   By the processing shown in steps S131 to S134, the DMA controller 105 in the host apparatus 102 performs preparations related to processing for transferring all target data, that is, N target data. By the processing shown in step S134, the DMA controller 105 in the host apparatus 102 prepares for transmitting the first target data included in the N target data.

同様に、デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111がステップS121にて作成した命令パラメタ情報を読み取り、読み取った命令パラメタ情報に基づき、ステップS131乃至ステップS134に示した処理と同様の処理を実行する。   Similarly, the DMA controller 110 in the device 107 reads the instruction parameter information created by the SATA controller 111 in the device 107 in step S121, and based on the read instruction parameter information, the same processing as in steps S131 to S134 is performed. Execute the process.

DMAコントローラ105は、第I対象データに関するアドレスが格納されている記憶領域を指し示すアドレスを算出する(ステップS135)。より具体的に、ステップS135に示す処理について説明する。まず、ホスト装置102におけるDMAコントローラ105は、PRDテーブルポインタレジスタに格納されているPRDベースアドレス、及び、PRDインデックスレジスタに格納されている値を読み取り、読み取ったPRDベースアドレスと、読み取った値との和を算出する。PRDテーブルポインタレジスタは、PRDテーブルを記憶している記憶領域を指し示す先頭アドレスが格納されている。PRDインデックスレジスタは、PRDテーブルに含まれるN個の対象データのうち、処理している第I対象データを指し示す値が格納されている。   The DMA controller 105 calculates an address indicating a storage area in which an address related to the first target data is stored (step S135). More specifically, the process shown in step S135 will be described. First, the DMA controller 105 in the host apparatus 102 reads the PRD base address stored in the PRD table pointer register and the value stored in the PRD index register, and reads the read PRD base address and the read value. Calculate the sum. The PRD table pointer register stores a head address indicating a storage area in which the PRD table is stored. The PRD index register stores a value indicating the first target data being processed among the N target data included in the PRD table.

ホスト装置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 DMA controller 105 in the host apparatus 102 reads an address set (that is, a part of the PRD table) related to the first target data from the storage area indicated by the calculated head address (step S136). The DMA controller 105 in the host apparatus 102 stores the transfer base address included in the read address set in the DMA base address register (step S137). The DMA controller 105 in the host apparatus 102 stores the byte count value (that is, “transfer size”) included in the read address set in the DMA byte count register (step S138). By the processing shown in steps S137 and S138, the DMA controller 105 in the host apparatus 102 stores the transfer base address related to the first target data in the DMA base address register, and stores the size related to the first target data in the DMA byte count register. .

同様に、デバイス107におけるDMAコントローラ110は、ステップS135乃至ステップS138に示した処理と同様の処理を、デバイス107にて実行する。   Similarly, the DMA controller 110 in the device 107 executes processing similar to the processing shown in steps S135 to S138 in the device 107.

ホスト装置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 DMA controller 105 in the host device 102 determines whether or not the retransmission process is valid from the instruction parameter information read in step S131. Further, the DMA controller 105 in the host apparatus 102 determines whether or not the notification signal input in step S156 is a retransmission notification signal (step S139). For example, the DMA controller 105 can implement the processing shown in step S139 by referring to the storage area in which the notification signal is stored. When the retransmission processing is valid and the notification signal is a retransmission notification signal (YES in step S139), the DMA controller 105 in the host apparatus 102 stores the data stored in the Transfer count register and the FIS offset register. Is stored (step S140). By this processing, the DMA controller 105 in the host apparatus 102 stores, for example, in the Transfer count register that can store the FIS number that is being transferred, in the storage area that can store the FIS number that starts resending in response to the retransmission request. Stores the stored value. That is, by this processing, the DMA controller 105 in the host apparatus 102 starts processing for transferring the first target data from the FIS number.

尚、説明の便宜上、上述した処理において、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 DMA controller 105 in the host apparatus 102 stores 1 in the Transfer count register (step S141). The Transfer count register stores how much data is transferred in one entry of the PRD. For example, the DMA controller 105 in the host apparatus 102 starts a process of transferring the first target data from the first FIS.

同様に、デバイス107におけるDMAコントローラ105は、ステップS131乃至ステップS141に示した処理と同様の処理を、デバイス107にて実行する。   Similarly, the DMA controller 105 in the device 107 executes the same processing as the processing shown in steps S131 to S141 in the device 107.

次に、図8を参照しながら、ステップS140(または、ステップS141)に後続するDMAコントローラ105における処理について説明する。図8は、DMAコントローラ105における処理の流れ(2/2)を示すフローチャートである。   Next, processing in the DMA controller 105 subsequent to step S140 (or step S141) will be described with reference to FIG. FIG. 8 is a flowchart showing a process flow (2/2) in the DMA controller 105.

ホスト装置102におけるDMAコントローラ105は、PRDインデックスレジスタに格納されている値を、FISインデックスレジスタに格納する(ステップS152)。さらに、ホスト装置102におけるDMAコントローラ105は、Transferカウントレジスタに格納されている値(たとえば、1)を、FISオフセットレジスタに格納する(ステップS153)。ステップS152及びステップS153に示す処理によって、たとえば、FISにエラーが生じた場合であっても、FISインデックスレジスタ等を参照することにより、転送装置104は、エラーが生じたFISを再処理することができる。   The DMA controller 105 in the host apparatus 102 stores the value stored in the PRD index register in the FIS index register (step S152). Further, the DMA controller 105 in the host apparatus 102 stores the value (for example, 1) stored in the Transfer count register in the FIS offset register (Step S153). Even if an error occurs in the FIS by the processing shown in steps S152 and S153, for example, the transfer device 104 can reprocess the FIS in which the error has occurred by referring to the FIS index register or the like. it can.

ホスト装置102におけるDMAコントローラ105は、DMAベースアドレスレジスタに格納されている値と、Transferカウントレジスタに格納されている値とを読み取り、読み取った2つの値を足し合わせた値を算出する。ホスト装置102におけるDMAコントローラ105が算出した値は、該DMAコントローラ105が、対象データに関して転送するデータを記憶している記憶領域を表すDMAアドレスを表す。   The DMA controller 105 in the host device 102 reads the value stored in the DMA base address register and the value stored in the Transfer count register, and calculates a value obtained by adding the two read values. The value calculated by the DMA controller 105 in the host apparatus 102 represents a DMA address representing a storage area in which data transferred by the DMA controller 105 with respect to target data is stored.

ホスト装置102におけるDMAコントローラ105は、算出したDMAアドレスが表す記憶領域を起点として、データFISのサイズ分の大きさのデータを読み取り、読み取ったデータを該ホスト装置102におけるSATAコントローラ106に対して出力する。   The DMA controller 105 in the host apparatus 102 reads data having a size corresponding to the size of the data FIS from the storage area indicated by the calculated DMA address, and outputs the read data to the SATA controller 106 in the host apparatus 102. To do.

ホスト装置102におけるSATAコントローラ106は、ホスト装置102におけるDMAコントローラ105が出力したデータを入力し、入力したデータをデバイス107におけるSATAコントローラ111に送信する。デバイス107におけるSATAコントローラ111は、ホスト装置102におけるSATAコントローラ106が送信したデータを受信し、受信したデータを、デバイス107におけるDMAコントローラ110に対して出力する。すなわち、ホスト装置102におけるDMAコントローラ105は、DMA転送する処理を実行する(ステップS154)。   The SATA controller 106 in the host apparatus 102 receives the data output from the DMA controller 105 in the host apparatus 102 and transmits the input data to the SATA controller 111 in the device 107. The SATA controller 111 in the device 107 receives the data transmitted by the SATA controller 106 in the host apparatus 102 and outputs the received data to the DMA controller 110 in the device 107. That is, the DMA controller 105 in the host apparatus 102 executes a DMA transfer process (step S154).

ホスト装置102におけるDMAコントローラ105は、Transferカウントレジスタに格納されている値を読み取り、読み取った値に、転送したデータのサイズを加算する。ホスト装置102におけるDMAコントローラ105は、加算した結果算出される値をTransferカウントレジスタに格納する。すなわち、ホスト装置102におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を、転送したデータのサイズ分(たとえば、FISの個数)だけ増やす(ステップS155)。   The DMA controller 105 in the host device 102 reads the value stored in the Transfer count register, and adds the size of the transferred data to the read value. The DMA controller 105 in the host device 102 stores a value calculated as a result of the addition in the Transfer count register. That is, the DMA controller 110 in the host device 102 increases the value stored in the Transfer count register by the size of the transferred data (for example, the number of FIS) (step S155).

デバイス107におけるDMAコントローラ110は、DMAベースアドレスレジスタに格納されているデータと、Transferカウントレジスタに格納されているデータを読み取り、読み取った2つのデータを加算する。この処理にて、DMAコントローラ110が算出した値は、該DMAコントローラ110が、受信したデータを格納する記憶領域を表すDMAアドレスを表す。   The DMA controller 110 in the device 107 reads the data stored in the DMA base address register and the data stored in the Transfer count register, and adds the two read data. In this process, the value calculated by the DMA controller 110 represents a DMA address representing a storage area in which the DMA controller 110 stores received data.

デバイス107におけるDMAコントローラ110は、デバイス107におけるSATAコントローラ111が出力したデータを入力し、算出したDMAアドレスから始まる記憶領域に、入力したデータを格納する。すなわち、デバイス107におけるDMAコントローラ110は、DMA転送する処理を実行する(ステップS154)。   The DMA controller 110 in the device 107 receives the data output from the SATA controller 111 in the device 107, and stores the input data in a storage area starting from the calculated DMA address. That is, the DMA controller 110 in the device 107 executes a DMA transfer process (step S154).

デバイス107におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を読み取り、記憶領域に格納したデータの個数と、読み取った値とが加算された値を算出し、算出した値を該Transferカウントレジスタに格納する。すなわち、デバイス107におけるDMAコントローラ110は、Transferカウントレジスタに格納されている値を、受信したデータのサイズ分だけ増やす(ステップS155)。   The DMA controller 110 in the device 107 reads a value stored in the Transfer count register, calculates a value obtained by adding the number of data stored in the storage area and the read value, and uses the calculated value as the Transfer count. Store in register. That is, the DMA controller 110 in the device 107 increases the value stored in the transfer count register by the size of the received data (step S155).

すなわち、ステップS152乃至ステップS155に示す処理によって、デバイス107におけるDMAコントローラ110、及び、ホスト装置102におけるDMAコントローラ105は、第I対象データに関するデータFISを転送する処理を実行する。   That is, according to the processing shown in steps S152 to S155, the DMA controller 110 in the device 107 and the DMA controller 105 in the host apparatus 102 execute processing for transferring the data FIS related to the first target data.

ホスト装置102におけるDMAコントローラ105は、ホスト装置102におけるSATAコントローラ106が出力した通知信号を入力する(ステップS156)。ホスト装置102におけるDMAコントローラ105は、ステップS156にて受信した通知信号が再送通知信号であるか否かを判定する(ステップS157)。以降、通知信号が再送通知信号である場合を、再送設定情報が有効であるとも表す。   The DMA controller 105 in the host apparatus 102 inputs the notification signal output from the SATA controller 106 in the host apparatus 102 (step S156). The DMA controller 105 in the host apparatus 102 determines whether or not the notification signal received in step S156 is a retransmission notification signal (step S157). Hereinafter, when the notification signal is a retransmission notification signal, the retransmission setting information is also expressed as valid.

通知信号が再送通知信号である場合に(ステップ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 DMA controller 105 in the host apparatus 102 stores the value stored in the FIS index register in the PRD index register (step S158). Thereafter, the DMA controller 105 in the host apparatus 102 executes the process shown in step S135 (FIG. 7). When the notification signal is a retransmission notification signal, the DMA controller 105 in the host device 102 sets the value stored in the PRD index register to the value stored in step S152 by the process shown in step S158.

通知信号が再送通知信号でない場合に(ステップS157にてNO)、ホスト装置102におけるDMAコントローラ105は、複数の対象データに関する転送処理がすべて完了したか否かを判定する(ステップS159)。   If the notification signal is not a retransmission notification signal (NO in step S157), the DMA controller 105 in the host apparatus 102 determines whether or not all transfer processes relating to a plurality of target data have been completed (step S159).

ステップS159において、ホスト装置102におけるDMAコントローラ105は、たとえば、PRDインデックスレジスタに格納されている値の最上位ビットが「0」であるか、または、「1」であるかを判定する。この処理によって、ホスト装置102におけるDMAコントローラ105は、転送処理を実行したアドレスセットが第N対象データであるか否かを判定する。すなわち、ホスト装置102におけるDMAコントローラ105は、対象データが複数ある場合に、すべての対象データに関して、該対象データを転送する処理が完了したか否かを判定する。   In step S159, the DMA controller 105 in the host apparatus 102 determines, for example, whether the most significant bit of the value stored in the PRD index register is “0” or “1”. By this processing, the DMA controller 105 in the host apparatus 102 determines whether or not the address set for which the transfer processing has been performed is the Nth target data. That is, when there are a plurality of target data, the DMA controller 105 in the host apparatus 102 determines whether or not the process of transferring the target data is completed for all the target data.

複数の対象データに関する転送処理がすべて完了した場合に(ステップ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 DMA controller 105 in the host apparatus 102 ends the process of transferring the target data. If there is target data for which transfer processing has not been completed (NO in step S159), the DMA controller 105 in the host apparatus 102 increases the value of the PRD index register by 1 (step S160). By the processing shown in step S160, the DMA controller 105 in the host apparatus 102 can start processing regarding the (I + 1) th target data.

同様に、デバイス107におけるDMAコントローラ110は、ステップS152乃至ステップS160に示した処理と同様の処理を、デバイス107にて実行する。   Similarly, the DMA controller 110 in the device 107 executes processing similar to the processing shown in steps S152 to S160 in the device 107.

次に、本実施形態に係る転送装置104が奏する効果について説明する。   Next, effects achieved by the transfer device 104 according to the present embodiment will be described.

第1の実施形態に係る転送装置104によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができるとともに、ハードウェアに関する故障が生じる場合であっても処理を停止することができる。   According to the transfer device 104 according to the first embodiment, even when an error occurs in the data transfer process, the data can be transferred in a short period of time, and a hardware-related failure occurs. Even so, the processing can be stopped.

本実施形態に係る転送装置104が上述した効果を奏する理由を、特許文献1及び特許文献2と対比しながら以下に説明する。   The reason why the transfer device 104 according to the present embodiment has the above-described effect will be described below in comparison with Patent Document 1 and Patent Document 2.

たとえば、第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 Patent Document 1 transfers the target data will be described, and then the flow of processing in which the transfer device 104 according to the present embodiment transfers the target data. explain. Thereafter, the reason why the difference between the two processes has the above-described effect will be described.

特許文献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 transfer device 104 performs the transfer process (step S135) without executing the preparation process shown in steps S131 to S134 by the process shown in step S158. Through step S138 and step S152 through step S156). Further, when an error occurs in the B-th data FIS in the second transfer process, the transfer apparatus 104 performs the transfer process without executing the preparation processes shown in steps S131 to S134 for the same reason. Run. As a result, according to the transfer device 104 according to the present embodiment, only one (times) transfer process is required, so that the preparation process is less than that of the device disclosed in Patent Document 1. Therefore, according to the transfer apparatus 104 according to the present embodiment, data can be transferred efficiently in a situation where a transfer error occurs.

また、特許文献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 computer system 201 according to the second embodiment of the present invention will be described in detail. FIG. 9 is a block diagram showing a configuration of a computer system 201 according to the second embodiment of the present invention.

第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 computer system 201 according to the second embodiment roughly includes a host device 202 and a device 207. The host device 202 includes a memory 103 and a transfer device 204. The device 207 includes a memory 108 and a transfer device 209. The transfer device 204 includes a DMA controller 205 and a SATA controller 206. The transfer device 209 includes a DMA controller 210 and a SATA controller 211. The host device 202 and the device 207 communicate information (data) via the SATA controller 206, the SATA controller 206, and a communication path (for example, the SATA interface 112) through which the SATA controller 206 and the SATA controller 206 can be connected. Can be sent and received.

図10を参照しながら、第2の実施形態に係る転送装置204における処理について説明する。図10は、ホスト装置202がデバイス207におけるデータを読み取るリード命令の場合に、第2の実施形態に係る転送装置204における処理の流れを示すシーケンス図である。   Processing in the transfer device 204 according to the second embodiment will be described with reference to FIG. FIG. 10 is a sequence diagram illustrating a processing flow in the transfer apparatus 204 according to the second embodiment when the host apparatus 202 performs a read command for reading data in the device 207.

ホスト装置202におけるSATAコントローラ206は、ホスト装置202がデバイス207からデータを受信するリード命令、または、ホスト装置202がデバイス207にデータを送信するライト命令等を表す命令FISを、デバイス207におけるSATAコントローラ211に送信する(ステップS201)。ホスト装置202におけるSATAコントローラ206は、ホスト装置202におけるDMAコントローラ205に対して出力する(ステップS203)。   The SATA controller 206 in the host device 202 is configured to send a command FIS that represents a read command for the host device 202 to receive data from the device 207 or a write command for the host device 202 to transmit data to the device 207. (Step S201). The SATA controller 206 in the host device 202 outputs to the DMA controller 205 in the host device 202 (step S203).

ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力した命令FISを入力する(ステップS204)。ホスト装置202におけるDMAコントローラ205は、命令FISを入力するのに応じて、命令パラメタ情報を読み取る等の処理を開始する。   The DMA controller 205 in the host device 202 inputs the instruction FIS output from the SATA controller 206 in the host device 202 (step S204). The DMA controller 205 in the host device 202 starts processing such as reading command parameter information in response to inputting the command FIS.

デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した該命令FISを受信し(ステップS202)、受信した命令FISを、デバイス207におけるDMAコントローラ210に対して出力する(ステップS205)。デバイス207におけるDMAコントローラ210は、命令FISを入力するのに応じて処理を開始する。   The SATA controller 211 in the device 207 receives the command FIS transmitted from the SATA controller 206 in the host device 202 (step S202), and outputs the received command FIS to the DMA controller 210 in the device 207 (step S205). . The DMA controller 210 in the device 207 starts processing in response to inputting the instruction FIS.

尚、SATAコントローラ206がステップS203(または、ステップS205)に示した処理にてDMAコントローラ205を起動する態様は、上述した例(たとえば、FIS)に限定されず、たとえば、上述したような命令パラメタ情報を入出力する態様であってもよい。   Note that the manner in which the SATA controller 206 activates the DMA controller 205 in the process shown in step S203 (or step S205) is not limited to the above-described example (for example, FIS). A mode in which information is input and output may be used.

転送装置204においては、命令FISの内容に応じて、ライト命令に応じた処理、または、リード命令に応じた処理が実行される。尚、該ライト命令に応じた処理、または、該リード命令に応じた処理において、SATAコントローラ206は、データを、FISの単位のサイズにて分割し、該FISを送受信する。また、SATAコントローラ206は、該データを構成しているすべてのFISに関して、受信した命令に応じて、次に示すライト命令に応じた処理、または、リード命令に応じた処理を繰り返し実行する。   In the transfer device 204, processing according to the write command or processing according to the read command is executed according to the contents of the command FIS. In the process according to the write command or the process according to the read command, the SATA controller 206 divides the data into FIS unit sizes and transmits / receives the FIS. In addition, the SATA controller 206 repeatedly executes the process according to the write command or the process according to the read command shown below in accordance with the received command with respect to all FISs constituting the data.

まず、受信した命令がライト命令である場合における処理について説明する。ホスト装置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 SATA controller 206 in the host device 202 receives the data FIS output in response to the DMA controller 205 in the host device 202 starting processing, and transmits the input data FIS to the SATA controller 211 in the device 207. The SATA controller 211 in the device 207 receives the data FIS transmitted from the SATA controller 206 in the host device 202, and outputs the received data FIS to the DMA controller 210 in the device 207.

次に、受信した命令がリード命令である場合における処理について説明する。受信した命令がライト命令である場合には、該命令がリード命令である場合における処理と比較して、データを受信する側、データを送信する側の処理を入れ替えた処理が実行される。このため、以降の説明においては、受信した命令がリード命令である場合の例を参照しながら、本実施形態に係る転送装置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 transfer apparatus 204 according to the present embodiment will be described with reference to an example in which the received instruction is a read instruction. When the received instruction is a write instruction Description of is omitted.

デバイス207におけるDMAコントローラ210は、第I(ただし、1≦I≦N)対象データを格納している記憶領域から第I対象データに関するデータFISを読み取り、読み取ったデータFISを、デバイス207におけるSATAコントローラ211に対して出力する(ステップS207)。たとえば、デバイス207におけるDMAコントローラ210は、第I対象データを、FISの単位に分割し、分割後のデータFISをデバイス207におけるSATAコントローラ211に対して出力する。   The DMA controller 210 in the device 207 reads the data FIS related to the I-th target data from the storage area storing the I-th (where 1 ≦ I ≦ N) target data, and uses the read data FIS as the SATA controller in the device 207 It outputs to 211 (step S207). For example, the DMA controller 210 in the device 207 divides the first target data into FIS units, and outputs the divided data FIS to the SATA controller 211 in the device 207.

以降、転送装置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 transfer apparatus 209 is a read command.

デバイス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 SATA controller 211 in the device 207 inputs the data FIS output from the DMA controller 210 in the device 207 (step S208), and transmits the input data FIS related to the first target data to the DMA controller 205 in the host device 202 (step S208). S209). The SATA controller 206 in the host device 202 receives the data FIS transmitted from the SATA controller 211 in the device 207 (step S210), and outputs the received data FIS to the DMA controller 205 in the host device 202 (step S211). .

ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力したデータFISを入力し(ステップS212)、入力したデータFISをメモリ103に格納する。   The DMA controller 205 in the host device 202 inputs the data FIS output from the SATA controller 206 in the host device 202 (step S212), and stores the input data FIS in the memory 103.

デバイス207における転送装置209及び、ホスト装置202における転送装置204は、たとえば、第I対象データに関して、ステップS207乃至ステップS212に示した処理と同様の処理を繰り返すことにより、第I対象データに関する転送処理を実行する(ステップS213乃至ステップS218)。   For example, the transfer device 209 in the device 207 and the transfer device 204 in the host device 202 repeat the same processing as the processing shown in steps S207 to S212 for the first target data, thereby transferring the first target data. Are executed (steps S213 to S218).

尚、ステップ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 SATA controller 206 in the host device 202 receives the data FIS by executing the determination process shown in step S123 (FIG. 6) after the process of outputting the data FIS (step S211 or step S217), for example. It is determined whether or not the data FIS includes an error. The SATA controller 206 in the host device 202 creates a response signal according to the determination process, and transmits the created response signal to the SATA controller 211 in the device 207 (step S219). The SATA controller 211 in the device 207 receives the response signal transmitted by the SATA controller 206 in the host device 202 (step S220). In other words, Step S219 and Step S220 are executed after Step S211, and Step S219 and Step S220 are executed after Step S217.

次に、図11及び図12を参照しながら、転送装置204が実行する転送処理の流れについて説明する。図11及び図12は、転送装置204が送受信するデータの一例を概念的に表す図である。   Next, a flow of transfer processing executed by the transfer device 204 will be described with reference to FIGS. 11 and 12. 11 and 12 are diagrams conceptually illustrating an example of data transmitted and received by the transfer device 204.

転送処理において送受信されるデータは、大別して、命令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 computer system 201 according to the second embodiment will be described with reference to FIG. FIG. 13 is a sequence diagram illustrating a processing flow in the computer system 201 according to the second embodiment. For convenience of explanation, it is assumed that the SATA controller 206 in the host device 202 receives a read command for transferring data from the device 207 to the host device 202 from the external device.

まず、ホスト装置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 SATA controller 206 in the host device 202 receives a read command transmitted from the external device, and starts processing to receive target data in accordance with the received read command. For example, in this process, the SATA controller 206 in the host device 202 creates a Count field as illustrated in FIG. 4 prior to the received read command, and sends the command “Set_Features” including the created Count field to the device 207. The data is transmitted to the SATA controller 211 (step S231). Further, the SATA controller 206 in the host device 202 transmits the received command (in this example, a read command) to the SATA controller 211 in the device 207. Note that the process for transmitting the status FIS from the device 207 to the host device 202 is also executed for “Set_Features”, but in this embodiment, the description regarding the process of the status FIS is omitted.

デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した命令「Set_Features」及びリード命令を受信(ステップS232)する。デバイス207におけるSATAコントローラ211は、受信した命令「Set_Features」内のCountフィールドに含まれている繰り返し回数(すなわち、第1の実施形態に示した所定の回数)を読み取り、さらに、受信したリード命令に応じて、対象データを送信する処理を開始する。   The SATA controller 211 in the device 207 receives the command “Set_Features” and the read command transmitted by the SATA controller 206 in the host device 202 (step S232). The SATA controller 211 in the device 207 reads the number of repetitions (that is, the predetermined number shown in the first embodiment) included in the Count field in the received command “Set_Features”, and further receives the received read command. In response, processing for transmitting the target data is started.

デバイス207におけるSATAコントローラ211は、受信したデータ(すなわち、リード命令)がエラーを含んでいるか否かを判定する。デバイス207におけるSATAコントローラ211は、受信した命令FISのデータがエラーを含んでいる場合に、受信した命令FISがエラーを含んでいることを通知する異常応答信号を作成し、作成した異常応答信号をホスト装置202におけるSATAコントローラ206に送信する。デバイス207におけるSATAコントローラ211は、受信したデータがエラーを含んでいない場合に、受信したデータがエラーを含んでいないことを通知する正常応答信号を作成し、作成した正常応答信号をホスト装置202におけるSATAコントローラ206に送信する(ステップS233)。尚、図13は、説明の便宜上、リード命令を送受信する処理において、エラーが生じていない場合の処理を示す。   The SATA controller 211 in the device 207 determines whether or not the received data (that is, the read command) includes an error. When the received command FIS data includes an error, the SATA controller 211 in the device 207 creates an abnormal response signal notifying that the received command FIS includes an error. The data is transmitted to the SATA controller 206 in the host device 202. When the received data does not contain an error, the SATA controller 211 in the device 207 creates a normal response signal notifying that the received data does not contain an error, and the created normal response signal is sent to the host device 202. The data is transmitted to the SATA controller 206 (step S233). For convenience of explanation, FIG. 13 shows a process when no error occurs in the process of transmitting and receiving a read command.

ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信した応答信号を受信する(ステップS237)。ホスト装置202におけるSATAコントローラ206は、受信した応答信号が正常応答信号である場合に、リード命令を送信する処理を正常終了する。ホスト装置202におけるSATAコントローラ206は、受信した応答信号が異常応答信号である場合に、リード命令を送信する処理を異常終了する。   The SATA controller 206 in the host device 202 receives the response signal transmitted by the SATA controller 211 in the device 207 (step S237). When the received response signal is a normal response signal, the SATA controller 206 in the host device 202 ends the process of transmitting a read command normally. When the received response signal is an abnormal response signal, the SATA controller 206 in the host device 202 abnormally ends the process of transmitting the read command.

ホスト装置202におけるSATAコントローラ206は、該リード命令に応じた指示に関する命令パラメタ情報を作成し(ステップS238)、その後、ホスト装置202におけるDMAコントローラ205を起動する制御を実行する(ステップS239)。たとえば、命令に応じた指示に関する命令パラメタ情報は、処理の種類、対象データのサイズ、該対象データを格納している位置情報等である。命令に応じた指示に関する命令パラメタ情報は、必ずしも、上記のすべての項目を含んでいる必要はない。ホスト装置202におけるSATAコントローラ206が起動する制御を実行するのに応じて、ホスト装置202におけるDMAコントローラ205は、起動し、ホスト装置202におけるSATAコントローラ206が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ205については、図14乃至図17を参照しながら後述する。   The SATA controller 206 in the host device 202 creates command parameter information related to the instruction according to the read command (step S238), and then executes control to activate the DMA controller 205 in the host device 202 (step S239). For example, the command parameter information regarding the instruction according to the command includes the type of processing, the size of the target data, the position information storing the target data, and the like. The command parameter information relating to the instruction according to the command does not necessarily include all the items described above. The DMA controller 205 in the host device 202 starts up and executes processing based on the command parameter information created by the SATA controller 206 in the host device 202 in response to executing control to be started by the SATA controller 206 in the host device 202. . The DMA controller 205 will be described later with reference to FIGS.

デバイス207におけるSATAコントローラ211は、ステップS232にて受信した命令(この例では、リード命令)に応じた指示に関する命令パラメタ情報を作成し(ステップS234)、その後、デバイス207におけるDMAコントローラ210を起動する制御を実行する(ステップS235)。たとえば、命令に応じた指示に関する命令パラメタ情報は、処理の種類、対象データのサイズ、該対象データを格納している位置情報等である。デバイス207におけるSATAコントローラ211が起動する制御を実行するのに応じて、デバイス207におけるDMAコントローラ210は、起動し、デバイス207におけるSATAコントローラ211が作成した命令パラメタ情報に基づき処理を実行する。尚、DMAコントローラ205については、図14乃至図17を参照しながら後述する。   The SATA controller 211 in the device 207 creates instruction parameter information regarding an instruction according to the instruction (in this example, a read instruction) received in step S232 (step S234), and then activates the DMA controller 210 in the device 207. Control is executed (step S235). For example, the command parameter information regarding the instruction according to the command includes the type of processing, the size of the target data, the position information storing the target data, and the like. The DMA controller 210 in the device 207 is activated in accordance with execution of the control to activate the SATA controller 211 in the device 207, and executes processing based on the command parameter information created by the SATA controller 211 in the device 207. The DMA controller 205 will be described later with reference to FIGS.

デバイス207におけるSATAコントローラ211は、デバイス207におけるDMAコントローラ210が出力したデータFISを入力し(ステップS236)、該データFISを、ホスト装置202におけるSATAコントローラ206に送信する(ステップS240)。この場合に、デバイス207におけるSATAコントローラ211は、第I対象データに関するデータFISを送信する。尚、該データFISは、対象データに関するエラーを検知可能なデータ(たとえば、CRCに従い算出されたデータ、以降、「CRC」データと表す)を含んでいる。   The SATA controller 211 in the device 207 inputs the data FIS output from the DMA controller 210 in the device 207 (step S236), and transmits the data FIS to the SATA controller 206 in the host device 202 (step S240). In this case, the SATA controller 211 in the device 207 transmits data FIS related to the first target data. The data FIS includes data (for example, data calculated according to CRC, hereinafter referred to as “CRC” data) that can detect an error related to the target data.

ホスト装置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 SATA controller 206 in the host device 202 receives the data FIS including the CRC data transmitted by the SATA controller 211 in the device 207 (step S241). The SATA controller 206 in the host device 202 outputs the received data FIS to the DMA controller 205 in the host device 202 (step S242). The DMA controller 205 in the host device 202 inputs the data FIS output from the SATA controller 206 in the host device 202 and stores the input data FIS in the memory 103.

ホスト装置202におけるSATAコントローラ206は、第I(ただし、1≦I≦N、Iは整数)対象データに関するデータFISとともに受信したCRCデータに基づき、第I対象データに関して受信したデータFISがエラーを含むか否かを判定する(ステップS243)。   The SATA controller 206 in the host device 202 is based on the CRC data received together with the data FIS related to the I-th (where 1 ≦ I ≦ N, I is an integer) target data, and the data FIS received regarding the first target data includes an error. Whether or not (step S243).

受信したデータ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 SATA controller 206 in the host apparatus 202 normally ends the process of receiving the target data to the DMA controller 205 in the host apparatus 202. Is output (hereinafter referred to as “normal instruction information”) (step S244). After that, the SATA controller 206 in the host device 202 creates a normal response signal indicating that the data FIS related to the first target data has been correctly received, and transmits the created normal response signal to the SATA controller 211 in the device 207 (step). S250).

受信したデータ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 SATA controller 206 in the host device 202 abnormally ends the process of receiving the target data to the DMA controller 205 in the host device 202. The instruction information (hereinafter, referred to as “abnormal instruction information”) is output (step S245). That is, the SATA controller 206 in the host apparatus 202 outputs information for ending the process of transmitting the data FIS related to the target data to the DMA controller 205 in the host apparatus 202 in the process shown in step S245. Thereafter, the SATA controller 206 in the host device 202 determines whether or not the retransmission process is in a valid state (step S246).

再送する処理が無効状態である場合に(ステップS246にてNO)、ホスト装置202におけるSATAコントローラ206は、異常応答信号を作成し(ステップS249)、作成した異常応答信号を、デバイス207におけるSATAコントローラ211に送信する。   When the process to be retransmitted is invalid (NO in step S246), the SATA controller 206 in the host device 202 creates an abnormal response signal (step S249), and the created abnormal response signal is sent to the SATA controller in the device 207. 211.

再送する処理が有効状態である場合に(ステップ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 SATA controller 206 in the host device 202 causes the command signal output from the DMA controller 205 in the host device 202 (step S276 in FIG. 16 or step S278). , Described later).

ホスト装置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 SATA controller 206 in the host device 202 creates a normal response signal. (Step S248). The SATA controller 206 in the host device 202 transmits the created normal response signal to the SATA controller 211 in the device 207 (step S250). In the case of this example, the continuation command signal is a command signal output from the DMA controller 205 in the host device 202 as shown in step S275 in FIG.

すなわち、ホスト装置202におけるSATAコントローラ206は、ステップS247に示した処理によって、対象データがエラーを含む場合であっても、該継続命令信号を受信した場合に正常応答信号を、デバイス207におけるSATAコントローラ211に送信する。対象データを送信する側であるデバイス207におけるSATAコントローラ211は、該正常応答信号を受信し、受信した正常応答信号に基づいて処理を実行する。この場合に、正常応答信号、または、異常応答信号に基づく送信側の処理は、特許文献1に示された装置における転送装置における処理であってよい。   That is, the SATA controller 206 in the host device 202 sends a normal response signal when the continuation command signal is received even if the target data includes an error by the processing shown in step S247, and the SATA controller in the device 207. 211. The SATA controller 211 in the device 207 which is the side that transmits the target data receives the normal response signal, and executes processing based on the received normal response signal. In this case, the processing on the transmission side based on the normal response signal or the abnormal response signal may be processing in the transfer apparatus in the apparatus disclosed in Patent Document 1.

ホスト装置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 SATA controller 206 in the host device 202 creates an abnormal response signal (step S249). The SATA controller 206 in the host device 202 transmits the created abnormal response signal to the SATA controller 211 in the device 207 (step S250). In this example, the abnormal command signal is a command signal output from the DMA controller 205 in the host device 202 as shown in step S278 in FIG. 16, and details will be described later.

すなわち、ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211に、正常応答信号、または、異常応答信号を送信する。   That is, the SATA controller 206 in the host device 202 transmits a normal response signal or an abnormal response signal to the SATA controller 211 in the device 207.

デバイス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 SATA controller 211 in the device 207 receives the response signal (that is, the normal response signal or the abnormal response signal) transmitted by the SATA controller 206 in the host device 202 (step S251). When the received response signal is a normal response signal (NO in step S252), the SATA controller 211 in the device 207 transmits a normal instruction signal to the DMA controller 210 in the device 207, and performs normal processing for transmitting and receiving target data. The process ends (step S253). When the received response signal is an abnormal response signal (YES in step S252), the SATA controller 211 in the device 207 transmits an abnormality instruction signal to the DMA controller 210 in the device 207 and abnormally transmits / receives the target data. The process ends (step S254). That is, in step S254 (that is, when an error occurs), the SATA controller 211 in the device 207 sends information for ending the process of receiving element data included in the target data to the DMA controller 210 in the device 207. Output.

対象データが複数ある場合に、ホスト装置202、及び、デバイス207は、図13におけるステップS235、ステップS236、及び、ステップS239乃至ステップS254に示す処理を繰り返し実行する。   When there are a plurality of target data, the host apparatus 202 and the device 207 repeatedly execute the processes shown in Step S235, Step S236, and Step S239 to Step S254 in FIG.

すべての対象データを送受信する処理の後に、デバイス207におけるSATAコントローラ211は、SATAコントローラ206における状態を表す状態信号を作成し、ホスト装置202におけるSATAコントローラ206に、作成した状態信号を送信する。状態信号は、たとえば、正常な状態を表す正常状態信号、または、異常な状態を表す異常状態信号である。   After the process of transmitting and receiving all target data, the SATA controller 211 in the device 207 creates a status signal indicating the status in the SATA controller 206, and transmits the created status signal to the SATA controller 206 in the host device 202. The state signal is, for example, a normal state signal indicating a normal state or an abnormal state signal indicating an abnormal state.

ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信した状態信号(すなわち、正常状態信号、または、異常状態信号)を受信する。ホスト装置202におけるSATAコントローラ206は、データFISの場合と同様に受信したFISにエラーが含まれるかどうかを判定し、判定結果に応じた応答信号を作成し、デバイス207におけるSATAコントローラ211に、作成した応答信号を送信する。ホスト装置202におけるSATAコントローラ206は、FISがエラーを含んでいるか否かを表す信号を送信する。   The SATA controller 206 in the host device 202 receives the status signal (that is, the normal status signal or the abnormal status signal) transmitted by the SATA controller 211 in the device 207. The SATA controller 206 in the host device 202 determines whether or not an error is included in the received FIS as in the case of the data FIS, creates a response signal according to the determination result, and creates the response signal in the SATA controller 211 in the device 207. Send the response signal. The SATA controller 206 in the host device 202 transmits a signal indicating whether or not the FIS includes an error.

デバイス207におけるSATAコントローラ211は、ホスト装置202におけるSATAコントローラ206が送信した応答信号(すなわち、正常応答信号、または、異常応答信号)を受信する。受信した応答信号が正常応答信号である場合に、デバイス207におけるSATAコントローラ211は、状態信号を送受信する処理を正常終了する。受信した応答信号が異常応答信号である場合に、デバイス207におけるSATAコントローラ211は、状態信号を送受信する処理を異常終了する。   The SATA controller 211 in the device 207 receives a response signal (that is, a normal response signal or an abnormal response signal) transmitted by the SATA controller 206 in the host device 202. When the received response signal is a normal response signal, the SATA controller 211 in the device 207 normally ends the process of transmitting and receiving the status signal. When the received response signal is an abnormal response signal, the SATA controller 211 in the device 207 abnormally ends the process of transmitting and receiving the status signal.

尚、図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 (SATA controller 211 in the device 207 in the example described above) that transmits the target data performs the same process as the process executed by the device that conforms to the interface standard related to SATA. Run.

次に、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 DMA controller 205 according to the present embodiment has a storage area (memory 103, a register, etc.) capable of storing information relating to the state of processing relating to retransmission processing (hereinafter referred to as “retransmission processing information”) in the own controller. . The retransmission processing information is an effective state indicating a state in which processing for storing data in the memory 103 is executed in the retransmission processing, a preparation state indicating a state in which data is not stored in the memory 103 in the retransmission processing, or the retransmission processing is executed. This is an invalid state representing a state different from the state. Furthermore, it is assumed that the DMA controller 205 according to the present embodiment has a storage area (a memory 103, a register, or the like) that can store DMA transfer information indicating whether or not to perform transfer processing related to DMA. The DMA transfer information is a “valid state” indicating that the process stored in the memory is executed, or a “invalid state” indicating that the process stored in the memory is not executed.

本実施形態に係る命令パラメタ情報は、たとえば、処理の種類、対象データのサイズ、該対象データを格納している位置情報、処理が再実行処理であるか否かを表す再実行情報を含んでもよい。命令パラメタ情報は、さらに、再送処理機能に有効状態に設定するか、無効状態に設定するかを表す再送設定情報を含んでもよい。   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 DMA controller 205 will be described with reference to FIGS. 14 to 17 are flowcharts showing the flow of processing in the DMA controller 205. Similar to the DMA controller in the transfer apparatus according to the SATA interface standard, the DMA controller 210 on the target data transmission side mainly executes only a part of the processes shown in FIGS.

ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が起動する制御を実行するのに応じて起動し、その後、ホスト装置202におけるSATAコントローラ206が作成した命令パラメタ情報を読み取る。同様に、デバイス207におけるDMAコントローラ210は、デバイス207におけるSATAコントローラ211が起動する制御を実行するのに応じて起動し、その後、デバイス207におけるSATAコントローラ211が作成した命令パラメタ情報を読み取る。   The DMA controller 205 in the host device 202 is activated in response to the control that the SATA controller 206 in the host device 202 is activated, and then reads the command parameter information created by the SATA controller 206 in the host device 202. Similarly, the DMA controller 210 in the device 207 is activated in accordance with the control that the SATA controller 211 in the device 207 is activated, and then reads the command parameter information created by the SATA controller 211 in the device 207.

ホスト装置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 DMA controller 205 in the host device 202 determines whether the retransmission processing information is in a ready state (step S261). If YES in step S261, the DMA controller 205 in the host device 202 sets a valid state in the retransmission processing information (step S262). In response to this process, the DMA controller 210 in the device 207 does not execute the processes shown in steps S260 to S262.

デバイス207におけるDMAコントローラ210は、読み取った命令パラメタ情報から対象データ数を読み取り、読み取った対象データ数に基づき、デバイス207におけるメモリ103に、該転送処理にて参照するPRDテーブルを格納する記憶領域を確保する(ステップS131)。デバイス207におけるDMAコントローラ210は、確保した記憶領域の先頭アドレスをPRDテーブルポインタレジスタに格納し(ステップS132)、その後、転送処理にて一時的にデータを記憶する記憶領域を表すDMA転送領域を確保する(ステップS133)。   The DMA controller 210 in the device 207 reads the target data number from the read instruction parameter information, and stores a storage area for storing a PRD table to be referred to in the transfer process in the memory 103 in the device 207 based on the read target data number. Secure (step S131). The DMA controller 210 in the device 207 stores the start address of the reserved storage area in the PRD table pointer register (step S132), and then reserves a DMA transfer area representing a storage area for temporarily storing data in the transfer process. (Step S133).

ホスト装置202におけるDMAコントローラ205は、ステップS260にてNOの場合に、ステップS131乃至ステップS133に示す処理を実行する。   The DMA controller 205 in the host device 202 executes the processes shown in steps S131 to S133 when NO in step S260.

デバイス207におけるDMAコントローラ210は、PRDインデックスレジスタに、まだ、対象データに関する処理が実行されていないことを表す値(たとえば、「1」)を格納する(ステップS134)。同様に、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに、まだ、対象データに関する処理が実行されていないことを表す値(たとえば、「1」)を格納する(ステップS134)。   The DMA controller 210 in the device 207 stores a value (for example, “1”) indicating that processing related to the target data has not been executed yet in the PRD index register (step S134). Similarly, the DMA controller 205 in the host device 202 stores a value (for example, “1”) indicating that the processing related to the target data has not been executed yet in the PRD index register (step S134).

ホスト装置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 DMA controller 205 in the host device 202 reads the value stored in the PRD table pointer register and the value stored in the PRD index register, and adds, for example, the two read values. That is, the DMA controller 205 in the host device 202 calculates an address indicating a storage area in which an address set related to the first target data is stored (step S135). The DMA controller 205 in the host device 202 reads the address set in the PRD table from the storage area indicated by the calculated head address (step S136). By this processing, the DMA controller 205 in the host device 202 specifies the address of the storage area storing the first address of the first target data to be processed in the PRD table. Further, the DMA controller 205 in the host device 202 reads an address indicating a storage area indicating a storage destination of the target data from a storage area indicated by the identified address.

ホスト装置202におけるDMAコントローラ205は、読み取ったアドレスセットから、DMA転送処理にて転送するデータを格納している記憶領域を表す先頭アドレスと、該データのサイズとを読み取る。ホスト装置202におけるDMAコントローラ205は、読み取った先頭アドレスを、DMAベースアドレスレジスタに格納し(ステップS137)、読み取ったサイズを、DMAバイトカウントレジスタに格納する(ステップS138)。すなわち、ステップS135及びステップS136に示す処理によって、ホスト装置202におけるDMAコントローラ205は、処理対象である第I対象データを格納する記憶領域を指し示す先頭アドレスを読み出し、読み出した先頭アドレスをDMAベースアドレスレジスタに格納する処理等を実行する。   The DMA controller 205 in the host device 202 reads the start address representing the storage area storing the data to be transferred by the DMA transfer process and the size of the data from the read address set. The DMA controller 205 in the host device 202 stores the read head address in the DMA base address register (step S137), and stores the read size in the DMA byte count register (step S138). That is, by the processing shown in step S135 and step S136, the DMA controller 205 in the host device 202 reads the head address indicating the storage area for storing the first target data to be processed, and the read head address is stored in the DMA base address register. The process etc. which are stored in are executed.

同様に、デバイス207におけるDMAコントローラ210は、ステップS135乃至ステップS138に示した処理と同様の処理を、デバイス207にて実行する。この処理によって、デバイス207におけるDMAコントローラ210は、PRDテーブルにおいて、処理対象である対象データの先頭アドレスを格納している記憶領域のアドレスを特定する。デバイス207におけるDMAコントローラ210は、特定したアドレスが指し示す記憶領域から、対象データを格納している記憶領域を指し示すアドレス、及び、該対象データのサイズを読み取る。デバイス207におけるDMAコントローラ210は、処理対象である対象データを格納している記憶領域を指し示す先頭アドレスを読み出し、読み出した先頭アドレスをDMAベースアドレスレジスタに格納する処理等を実行する。   Similarly, the DMA controller 210 in the device 207 executes processing similar to the processing shown in steps S135 to S138 in the device 207. By this processing, the DMA controller 210 in the device 207 specifies the address of the storage area storing the start address of the target data to be processed in the PRD table. The DMA controller 210 in the device 207 reads the address indicating the storage area storing the target data and the size of the target data from the storage area indicated by the identified address. The DMA controller 210 in the device 207 reads a head address indicating a storage area in which target data to be processed is stored, and executes a process of storing the read head address in the DMA base address register.

次に、ホスト装置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 DMA controller 205 in the host device 202 stores a value (for example, 1) indicating that the process has not yet been performed on the data FIS related to the target data in the Transfer count register in the host device 202 ( Step S263). The DMA controller 210 in the device 207 stores in the Transfer count register in the device 207 a value (for example, 1) indicating that processing has not yet been performed for the FIS relating to the target data. Note that the value stored in the Transfer count register represents, for example, the address where the FIS that is the processing target is stored among the FISs related to the target data. That is, by the processing shown in step S263, the DMA controller 205 in the host apparatus 202 (or device 207) sets a value (for example, 1) indicating that the FIS related to the target data has not been transmitted yet to the Transfer count register. Store.

ホスト装置202におけるDMAコントローラ205は、再送処理情報が準備状態であるか否かを判定する(ステップS264)。再送処理情報が準備状態を表す場合に(ステップS264にてYES)、ホスト装置202におけるDMAコントローラ205は、DMA転送情報に無効状態を設定する(ステップS269)。再送処理情報が準備状態でない場合に(ステップS264にてNO)、ホスト装置202におけるDMAコントローラ205は、再送処理情報が有効状態であるか否かを判定する(ステップS265)。   The DMA controller 205 in the host device 202 determines whether or not the retransmission processing information is in a ready state (step S264). When the retransmission processing information indicates the ready state (YES in step S264), the DMA controller 205 in the host device 202 sets an invalid state in the DMA transfer information (step S269). If the retransmission processing information is not in the ready state (NO in step S264), the DMA controller 205 in the host device 202 determines whether the retransmission processing information is in a valid state (step S265).

再送処理情報が無効状態である場合に(ステップ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 DMA controller 205 in the host device 202 stores the value stored in the PRD index register in the FIS index register (step S152). Further, the DMA controller 205 in the host device 202 stores the value (for example, 1) stored in the Transfer count register in the FIS offset register (step S153). Thereafter, the DMA controller 205 in the host device 202 sets the DMA transfer information to be valid (step S270). By the processing shown in steps S152 and S153, the DMA controller 205 can store, for example, the value of the transfer count register at the time when the DMA transfer processing is started and the value stored in the PRD index register. . That is, even if an error occurs in the process of transferring the target data by the process shown in step S153, the Transfer count register stores, for example, an identifier that can identify the data FIS processed in step S154. Yes.

再送処理情報が有効状態である場合に(ステップS265にてYES)、ホスト装置202におけるDMAコントローラ205は、PRDインデックスレジスタに格納されている値と、FISインデックスレジスタに格納されている値との大小を比較する。   When the retransmission processing information is valid (YES in step S265), the DMA controller 205 in the host device 202 determines whether the value stored in the PRD index register is larger than the value stored in the FIS index register. Compare

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 DMA controller 205 in the host device 202 validates the DMA transfer information. (Step S270). The value stored in the PRD index register represents, for example, a number that can identify target data to be processed. Hereinafter, for convenience of explanation, it is assumed that the value stored in the PRD index register is a number that can identify the target data. The data stored in the FIS index register represents, for example, the number of the target data saved when processing the target data. Therefore, when the value stored in the PRD index register is larger than the value stored in the FIS index register, the target data to be processed by the transfer device 204 according to the present embodiment is still in the memory 103. Represents a state that is not stored (ie, unprocessed).

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 DMA controller 205 in the host device 202 determines whether the two values are equal. Is determined (step S267). If the two values are not equal (NO in step S267), the DMA controller 205 in the host device 202 sets an invalid state in the DMA transfer information (step S269). The state of NO in step S267 is a state in which the value stored in the PRD index register is less than the value stored in the FIS index register, that is, target data processed by the transfer device 204 according to the present embodiment. Represents a processed state (NO in step S267). For this reason, the DMA controller 205 in the host device 202 sets an invalid state in the DMA transfer information (step S269).

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 DMA controller 205 in the host device 202 uses the data stored in the Transfer count register. Is compared with the data stored in the FIS offset register (step S268).

ホスト装置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 DMA controller 205 in the host device 202 sets an invalid state in the DMA transfer information (step S269). If NO in step S268, the DMA controller 205 in the host device 202 sets a valid state in the DMA transfer information (step S270). That is, the DMA controller 205 in the host device 202 that executes the process of storing data in the memory 103 by the process shown in step S268 stores the target data based on the FIS index register that stores the position where the error has occurred. Specify the storage area.

ステップ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 DMA controller 205 in the host device 202 is target data that is being re-executed. Further, in the case of YES in step S268, when the data stored in the transfer count register is smaller, that is, regarding the first target data processed by the DMA controller 205 in the host device 202, the first target data is related. It represents that the data FIS is already stored. The state of NO in step S268 indicates that the data FIS related to the first target data is in an unprocessed state (not transferred).

デバイス207におけるDMAコントローラ210は、図15に示した処理を実行しない。デバイス207におけるDMAコントローラ210は、図14に示すステップS263の次に、図16に示すステップS154(後述)を実行する。   The DMA controller 210 in the device 207 does not execute the processing shown in FIG. The DMA controller 210 in the device 207 executes step S154 (described later) shown in FIG. 16 after step S263 shown in FIG.

ステップS154に示す処理において、デバイス207におけるDMAコントローラ210は、DMAベースアドレスレジスタに格納されている値と、Transferカウントレジスタに格納されている値とを足し算する。この処理によって、デバイス207におけるDMAコントローラ210は、転送データに関するデータFISを格納している記憶領域の先頭アドレスを表すDMAアドレスを算出する。   In the processing shown in step S154, the DMA controller 210 in the device 207 adds the value stored in the DMA base address register and the value stored in the Transfer count register. By this processing, the DMA controller 210 in the device 207 calculates a DMA address that represents the head address of the storage area that stores the data FIS relating to the transfer data.

デバイス207におけるDMAコントローラ210は、メモリ103のうち、算出したDMAアドレスを先頭アドレスとする記憶領域から、所定の大きさ(たとえば、FISのサイズ)分のデータを読み取り、読み取ったデータをデバイス207におけるSATAコントローラ211に対して出力する。この場合に、デバイス207におけるSATAコントローラ211は、入力したデータをホスト装置202におけるSATAコントローラ206に送信する。すなわち、デバイス207における転送装置204は、第I対象データを、ホスト装置202における転送装置204に送信するDMA転送処理を実行する(ステップS154)。   The DMA controller 210 in the device 207 reads data of a predetermined size (for example, FIS size) from the memory area of the memory 103 having the calculated DMA address as the head address, and reads the read data in the device 207. Output to the SATA controller 211. In this case, the SATA controller 211 in the device 207 transmits the input data to the SATA controller 206 in the host device 202. That is, the transfer device 204 in the device 207 executes DMA transfer processing for transmitting the first target data to the transfer device 204 in the host device 202 (step S154).

デバイス207におけるDMAコントローラ210は、Transferカウントレジスタに格納されている値を読み取り、転送処理にて転送したデータ数と、読み取った値とを足し算し、算出した値をTransferカウントレジスタに格納する。すなわち、デバイス207におけるDMAコントローラ210は、転送したデータFISのデータ数分だけ、Transferカウントレジスタに格納されている値を増やす(ステップS155)。   The DMA controller 210 in the device 207 reads the value stored in the Transfer count register, adds the number of data transferred in the transfer process, and the read value, and stores the calculated value in the Transfer count register. That is, the DMA controller 210 in the device 207 increases the value stored in the Transfer count register by the number of data of the transferred data FIS (step S155).

ホスト装置202におけるSATAコントローラ206は、デバイス207におけるSATAコントローラ211が送信したデータを受信し(ステップS154にて送信)、受信したデータをホスト装置202におけるDMAコントローラ205に対して出力する。   The SATA controller 206 in the host apparatus 202 receives the data transmitted by the SATA controller 211 in the device 207 (transmitted in step S154), and outputs the received data to the DMA controller 205 in the host apparatus 202.

ホスト装置202におけるDMAコントローラ205は、ホスト装置202におけるSATAコントローラ206が出力したデータを入力する。ホスト装置202におけるDMAコントローラ205は、ステップS269(図15)、または、ステップS270(図15)にて設定したDMA転送情報が有効状態であるか、または、無効状態であるかを判定する(ステップS271)。   The DMA controller 205 in the host device 202 inputs the data output from the SATA controller 206 in the host device 202. The DMA controller 205 in the host device 202 determines whether the DMA transfer information set in step S269 (FIG. 15) or step S270 (FIG. 15) is valid or invalid (step S271).

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 DMA controller 205 in the host device 202 uses the value stored in the DMA base address register and the value stored in the Transfer count register. Add. The DMA controller 205 in the host device 202 stores the input data in a storage area (that is, a part of the memory 103) having the calculated DMA address as the head address in the memory 103. That is, when the DMA transfer information is valid (YES in step S271), the DMA controller 205 in the host device 202 executes a DMA transfer process related to the data FIS (step S154). When the DMA transfer information is invalid (NO in step S271), the DMA controller 205 in the host device 202 does not execute the DMA transfer process related to the first target data.

言い換えると、ホスト装置202におけるDMAコントローラ205は、ステップS271、ステップS154、及び、ステップS155に示す処理によって、DMA転送情報に基づき、入力したデータFISをメモリ103に格納するか否かを制御する。すなわち、ホスト装置202におけるDMAコントローラ205は、対象データを再送する処理において、DMA転送情報が有効状態である場合に、入力したデータをメモリ103に格納する。ホスト装置202におけるDMAコントローラ205は、対象データを再送する処理において、DMA転送情報が無効状態である場合に、入力したデータをメモリ103に格納しない。   In other words, the DMA controller 205 in the host device 202 controls whether or not to store the input data FIS in the memory 103 based on the DMA transfer information by the processes shown in steps S271, S154, and S155. That is, the DMA controller 205 in the host device 202 stores the input data in the memory 103 when the DMA transfer information is valid in the process of retransmitting the target data. The DMA controller 205 in the host device 202 does not store the input data in the memory 103 when the DMA transfer information is invalid in the process of retransmitting the target data.

ホスト装置202におけるDMAコントローラ205は、Transferカウントレジスタに格納されている値を読み取り、転送処理にて転送したデータ数と、読み取った値とを足し算し、算出した値をTransferカウントレジスタに格納する。この処理によって、デバイス207におけるDMAコントローラ210は、たとえば、転送したデータFISのデータ数分だけ、Transferカウントレジスタに格納されている値を増やす(ステップS155)。言い換えると、ホスト装置202におけるDMAコントローラ205は、DMA転送情報が無効状態である場合であっても、Transferカウントレジスタに格納されている値を更新する。次に、ホスト装置202におけるDMAコントローラ205は、再送設定情報が有効状態であるか否かを判定する(ステップS157)。   The DMA controller 205 in the host device 202 reads the value stored in the Transfer count register, adds the number of data transferred in the transfer process, and the read value, and stores the calculated value in the Transfer count register. By this processing, the DMA controller 210 in the device 207 increases the value stored in the Transfer count register by the number of data of the transferred data FIS, for example (step S155). In other words, the DMA controller 205 in the host device 202 updates the value stored in the Transfer count register even when the DMA transfer information is invalid. Next, the DMA controller 205 in the host device 202 determines whether or not the retransmission setting information is in a valid state (step S157).

再送設定情報が有効状態である場合に(ステップ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 DMA controller 205 in the host device 202 instructs the instruction information output by the SATA controller 206 in the host device 202 (step S244 in FIG. 13 or step S245). ). The DMA controller 205 in the host device 202 determines whether or not the input instruction information is normal instruction information (step S272). When the received instruction information is normal instruction information (YES in step S272) and the DMA transfer information is valid (YES in step S274), the DMA controller 205 in the host device 202 is invalid in the retransmission processing information. A state is set (step S277). If the DMA transfer information is valid (YES in step S274), and if the transfer process for the target data is normal (that is, normal instruction information) (YES in step S272), the data in which the error has occurred Indicates the status of correctly received. In this case, the DMA controller 205 in the host device 202 sets an invalid state in the retransmission processing information (step S277).

ホスト装置202におけるDMAコントローラ205は、受信した指示情報が正常指示情報であり(ステップS272にてYES)、DMA転送情報に格納されている値が無効状態である場合に(ステップS274にてNO)、ステップS277に示す処理を実行しない。再送処理情報が有効状態であり(ステップS157にてYES)、DMA転送情報が無効状態であり(すなわち、メモリ103にデータFISを格納しない)、さらに、対象データに関する転送処理が正常(すなわち、正常指示情報)である場合(ステップS272にてYES)は、エラーが生じたデータFISをメモリ103が記憶している状態を表す。   The DMA controller 205 in the host device 202, when the received instruction information is normal instruction information (YES in step S272) and the value stored in the DMA transfer information is invalid (NO in step S274). The process shown in step S277 is not executed. The retransmission processing information is valid (YES in step S157), the DMA transfer information is invalid (that is, the data FIS is not stored in the memory 103), and the transfer processing related to the target data is normal (that is, normal) (Instruction information) (YES in step S272) represents a state in which the memory 103 stores data FIS in which an error has occurred.

ホスト装置202におけるSATAコントローラ206が出力した指示情報が異常指示情報である場合に(ステップS272にてNO)、ホスト装置202におけるDMAコントローラ205は、所定の条件を満たすか否かを判定する(ステップS273)。係る所定の条件は、以下に示す条件1及び条件2を満たすか否かである。すなわち、
条件1:DMA転送情報が無効状態であるか否か、
条件2:再送処理情報が有効状態であるか否か。
When the instruction information output from the SATA controller 206 in the host device 202 is abnormality instruction information (NO in step S272), the DMA controller 205 in the host device 202 determines whether or not a predetermined condition is satisfied (step S273). The predetermined condition is whether or not the following condition 1 and condition 2 are satisfied. That is,
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 DMA controller 205 in the host apparatus 202 is YES in Condition 1 and YES in Condition 2, the DMA controller 205 in the host apparatus 202 instructs the instruction signal to continue processing (that is, the continuation instruction). Signal). The DMA controller 205 in the host device 202 outputs the created continuation command signal to the SATA controller 206 in the host device 202 (step S275).

条件1及び条件2を満たす(ステップS273にてYES)の場合は、ステップS268(図15)にてYESの場合、または、ステップS267にてNOの場合を表す。この場合には、対象データに関する再転送処理を実行している処理において、エラーが生じる以前にメモリ103に格納済みのデータFISをメモリ103に格納しない場合を表す。すなわち、この場合には、受信したデータFISに関してエラーが生じていた場合であっても、ホスト装置202におけるDMAコントローラ205は、該データFISをメモリ103に格納しない。   When the conditions 1 and 2 are satisfied (YES in step S273), the case of YES in step S268 (FIG. 15) or the case of NO in step S267 is represented. This case represents a case where the data FIS stored in the memory 103 is not stored in the memory 103 before an error occurs in the process of executing the retransfer process for the target data. That is, in this case, even if an error has occurred with respect to the received data FIS, the DMA controller 205 in the host device 202 does not store the data FIS in the memory 103.

ホスト装置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 SATA controller 206 in the host apparatus 202 is abnormality instruction information (NO in step S272) and NO in step S273, the DMA controller 205 in the host apparatus 202 transmits retransmission processing information. The preparation state is set to (Step S276). Thereafter, the DMA controller 205 in the host apparatus 202 creates an instruction signal (that is, an abnormal instruction signal) instructing the abnormal termination of the processing, and transmits the created abnormal instruction signal to the SATA controller 206 in the host apparatus 202 ( Step S278).

ステップ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 DMA controller 205 in the host device 202 stores, in the memory 103, data FIS in which an error has occurred among the target data. Therefore, the memory 103 stores data FIS in which an error has occurred. In this case, the DMA controller 205 in the host device 202 sets a preparation state in the retransmission processing information (step S276). As a result, since YES is determined in step S264 included in the process of retransferring the data FIS, the transfer device 204 does not store the input information in the memory 103 in step S154. That is, the transfer device 204 does not store the data FIS subsequent to the data FIS in the memory 103 in the transfer process related to the target data. In other words, the transfer device 204 representing the receiving device that receives the target data stores, in the memory 103, the data FIS that follows the data FIS in which the error has occurred in response to an error occurring in the process of receiving the target data. Do not execute processing.

上述した受信側の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 DMA controller 210 in the device 207 does not execute the processing shown in steps S157 and S272 to S278 regarding the processing shown in FIG. That is, the DMA controller 210 in the device 207 executes the process shown in step S281 shown in FIG. 17 after executing the process shown in step S155.

ホスト装置202におけるDMAコントローラ205は、DMAバイトカウントレジスタに格納されているデータと、Transferカウントレジスタに格納されている値とを比較する。すなわち、この処理によって、ホスト装置202におけるDMAコントローラ205は、対象データに関するデータFISを転送する処理が完了したか否かを判定する(ステップS281)。DMAバイトカウントレジスタに格納されているデータと、Transferカウントレジスタに格納されている値とが異なる場合(すなわち、対象データに関する処理が終了していない場合)に、ホスト装置202におけるDMAコントローラ205は、ステップS264(図15)に示す処理を実行する。   The DMA controller 205 in the host device 202 compares the data stored in the DMA byte count register with the value stored in the Transfer count register. That is, by this processing, the DMA controller 205 in the host device 202 determines whether or not the processing for transferring the data FIS related to the target data has been completed (step S281). When the data stored in the DMA byte count register is different from the value stored in the Transfer count register (that is, when processing related to the target data is not completed), the DMA controller 205 in the host device 202 The process shown in step S264 (FIG. 15) is executed.

同様に、デバイス207におけるDMAコントローラ205は、ステップS281に示した処理と同様の処理を、デバイス207にて実行する。   Similarly, the DMA controller 205 in the device 207 executes processing similar to the processing shown in step S281 in the device 207.

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 DMA controller 205 in 202 determines whether or not all target data has been transferred (step S159).
For example, the DMA controller 205 in the host device 202 reads the data stored in the PRD index register in the process shown in step S159, and determines whether the most significant bit of the read data is 0 (step S159). ).

ホスト装置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 DMA controller 205 in the host device 202, for example, sets the value stored in the PRD index register to the size indicating the next target data Increase by the minute (for example, 1) (step S160). Thereafter, the DMA controller 205 in the host device 202 executes the processing shown in step S135 (FIG. 14). In this case, the DMA controller 205 in the host device 202 follows the processed target data by increasing the value stored in the PRD index register by a size (for example, 1) indicating the next target data. Processing related to the target data can be executed.

ホスト装置202におけるDMAコントローラ205は、すべての対象データに関する転送処理が終了した場合に(ステップS159にてYES)、処理を終了する。   The DMA controller 205 in the host device 202 ends the process when the transfer process for all target data is completed (YES in step S159).

これに対して、デバイス207におけるDMAコントローラ205は、図17に示した処理と同様の処理を、デバイス207にて実行する。   On the other hand, the DMA controller 205 in the device 207 executes the same processing as the processing shown in FIG.

次に、本実施形態に係る転送装置204が奏する効果について説明する。   Next, effects produced by the transfer device 204 according to the present embodiment will be described.

第2の実施形態に係る転送装置204によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することができる。この理由は、対象データに関する送受信にエラーが生じた場合であっても、該対象データに関するFISのうち、正常に送受信されているFISに関しては、転送装置204がメモリ103に格納する処理等を実行しないからである。   According to the transfer device 204 according to the second embodiment, even when an error occurs in the data transfer process, the data can be received in a short time. The reason for this is that even if an error occurs in transmission / reception related to the target data, among the FISs related to the target data, the processing that the transfer device 204 stores in the memory 103 is executed for the FIS that is normally transmitted / received Because it does not.

第2の実施形態に係る転送装置204によれば、そのデータを短期間に受信することができる理由について、本実施形態においても特許文献1と特許文献2と対比しながら、さらに、詳細に説明する。   According to the transfer apparatus 204 according to the second embodiment, the reason why the data can be received in a short period of time will be described in more detail in comparison with Patent Document 1 and Patent Document 2 in this embodiment. To do.

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 transfer device 204 according to the present embodiment executes a process of storing the data FIS that causes the error in the memory 103. As a result, according to the transfer apparatus 204 according to the present embodiment, it is possible to reduce the processing time for re-execution of the processing related to the data FIS.

たとえば、下記の状態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 states 1 to 3 are satisfied. For convenience of explanation, it is assumed that the target data includes N pieces of data FIS.

状態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 Patent Literature 1 and Patent Literature 2 transfer the target data again when an error occurs in the transfer processing related to the data FIS included in the target data. Execute the process. For example, in the case of an example satisfying the state 1 to the state 3, the apparatus, for the target data, is caused by the first E data FIS in the state 1 and the second and second F and C data FIS in the state 2. Times and in state 3, one re-transfer process caused by the C-th data FIS is executed. In other words, the apparatus executes a total of five transfer processes, including a transfer process that normally transfers the data after the state 3 with respect to the process of transferring the target data.

これに対して、本実施形態に係る転送装置204は、3回の転送処理を実行するのみで対象データを転送することができる。この理由について、転送装置204における処理に沿って説明する。   On the other hand, the transfer device 204 according to the present embodiment can transfer the target data only by executing the transfer process three times. The reason for this will be described along the processing in the transfer device 204.

本実施形態に係るSATAコントローラ206は、まず、対象データに関するデータFISを送信することにより、対象データに関する転送処理を実行する。DMAコントローラ205は、SATAコントローラ206が転送処理した対象データを、たとえば、FISの単位にてメモリ103に格納する。しかし、状態1によって、第EデータFISがエラーであるので、記憶領域は、第EデータFISに関するエラーを含む対象データを記憶している。   The SATA controller 206 according to the present embodiment first executes a transfer process related to target data by transmitting a data FIS related to the target data. The DMA controller 205 stores the target data transferred by the SATA controller 206 in the memory 103, for example, in units of FIS. However, since the E-th data FIS is in error due to the state 1, the storage area stores target data including an error related to the E-th data FIS.

次に、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 controller 206 executes a transfer process related to the target data by transmitting the data FIS related to the target data. The DMA controller 205 stores the data after the E-th data FIS in the memory 103 in accordance with the processing shown in FIGS. 15 and 16 among the target data transferred by the SATA controller 206. Therefore, even if the F-th data FIS is an error, the DMA controller 205 does not store the F-th data FIS existing before the E-th data FIS in the memory 103. On the other hand, the DMA controller 205 stores the C-th data FIS after the E-th data FIS in the memory 103. Therefore, the storage area stores target data including an error relating to the C-th data FIS.

次に、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 SATA controller 206 executes a transfer process related to the target data by transmitting the data FIS related to the target data. The DMA controller 205 stores the data after the C-th data FIS in the memory 103 according to the processing shown in FIGS. 15 and 16 among the target data transferred by the SATA controller 206. In the case of the state 3, an error occurs in the D data FIS existing before the C data FIS. The DMA controller 205 does not store the data FIS before the C-th data FIS in the memory 103 even if the SATA controller 206 transmits / receives an FIS including an error. Therefore, the storage area stores target data that does not include an error. As a result, the transfer device 204 can transfer the target data only by executing the transfer process three times.

尚、上述した説明においては、説明の便宜上、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 transfer apparatus 301 according to the third embodiment of the present invention and the processing flow in the transfer apparatus 301 will be described in detail with reference to FIGS. 18 and 19. FIG. 18 is a block diagram showing a configuration of the transfer apparatus 301 according to the third embodiment of the present invention. FIG. 19 is a sequence diagram illustrating a processing flow in the transfer apparatus 301 according to the third embodiment.

第3の実施形態に係る転送装置301は、送信部302と、受信部303とを有する。転送装置301は、さらに、送信部302がアクセス可能なメモリ304と、受信部303がアクセス可能なメモリ305とを有してもよい。   A transfer device 301 according to the third embodiment includes a transmission unit 302 and a reception unit 303. The transfer device 301 may further include a memory 304 accessible by the transmission unit 302 and a memory 305 accessible by the reception unit 303.

送信部302は、メモリ304のうち、第1識別子が表す記憶領域に記憶されている第1データに関して送信処理を実行するとする。また、受信部303は、メモリ305のうち、第2識別子が表す記憶領域に、受信した第1データを格納する受信処理を実行するとする。送受信処理したエラーがない場合に、送信処理に応じて、第1識別子は、メモリ304のうち、次の記憶領域を指し示す識別子に更新されるとする。同様に、送受信処理したエラーがない場合に、受信処理に応じて、第2識別子は、メモリ305のうち、次の記憶領域を指し示す識別子に更新されるとする。   Assume that the transmission unit 302 executes transmission processing on the first data stored in the storage area represented by the first identifier in the memory 304. In addition, it is assumed that the reception unit 303 executes reception processing for storing the received first data in the storage area represented by the second identifier in the memory 305. It is assumed that the first identifier is updated to an identifier indicating the next storage area in the memory 304 according to the transmission process when there is no error in the transmission / reception process. Similarly, it is assumed that the second identifier is updated to an identifier indicating the next storage area in the memory 305 in accordance with the reception process when there is no error in the transmission / reception process.

送信部302は、第1データが記憶された記憶領域を指し示す第1識別子を、たとえば、記憶装置(または、メモリ304)に格納する(ステップS301)。次に、送信部302は、第1識別子が表す記憶領域から第1データを読み取り(ステップS302)、読み取った第1データを受信部303に送信する(ステップS303)。   The transmitting unit 302 stores a first identifier indicating a storage area in which the first data is stored, for example, in a storage device (or memory 304) (step S301). Next, the transmitting unit 302 reads the first data from the storage area represented by the first identifier (step S302), and transmits the read first data to the receiving unit 303 (step S303).

受信部303は、受信した第1データを格納する記憶領域を指し示す第2識別子を、たとえば、記憶装置(または、メモリ305)に格納する(ステップS304)。次に、受信部303は、送信部302が送信した第1データを受信し(ステップS305)、受信した第1データを、第2識別子が表す記憶領域に格納する(ステップS306)。   The receiving unit 303 stores a second identifier indicating a storage area for storing the received first data, for example, in the storage device (or the memory 305) (step S304). Next, the reception unit 303 receives the first data transmitted by the transmission unit 302 (step S305), and stores the received first data in the storage area represented by the second identifier (step S306).

次に、受信部303は、受信した第1データがエラーを含むか否かを判定する(ステップS307)。たとえば、受信部303は、エラーを検知可能なCRCデータに基づいて、第1データがエラーを含むか否かを判定する。受信部303は、第1データがエラーを含む場合に(ステップS307にてYES)、第1データを再送する処理を要求する要求信号を、送信部302に送信する(ステップS308)。   Next, the receiving unit 303 determines whether or not the received first data includes an error (step S307). For example, the receiving unit 303 determines whether or not the first data includes an error based on CRC data that can detect an error. If the first data includes an error (YES in step S307), receiving section 303 transmits a request signal requesting processing for retransmitting the first data to transmitting section 302 (step S308).

送信部302は、該要求信号を受信し(ステップS309)、受信した要求信号に応じて、記憶装置に格納した第1識別子を読み取り(ステップS310)、読み取った第1識別子が表す記憶領域から、第2データを読み取る(ステップS311)。送信部302は、読み取った第2データを受信部303に送信する(ステップS312)。   The transmission unit 302 receives the request signal (step S309), reads the first identifier stored in the storage device in accordance with the received request signal (step S310), and from the storage area represented by the read first identifier, The second data is read (step S311). The transmission unit 302 transmits the read second data to the reception unit 303 (step S312).

受信部303は、該要求信号を送信した場合に、記憶装置から第2識別子を読み取る(ステップS313)。次に、受信部303は、送信部302が送信した第2データを受信し(ステップS314)、読み取った第2識別子が表す記憶領域に、受信した第2データを格納する(ステップS315)。   When receiving the request signal, the reception unit 303 reads the second identifier from the storage device (step S313). Next, the reception unit 303 receives the second data transmitted by the transmission unit 302 (step S314), and stores the received second data in the storage area indicated by the read second identifier (step S315).

送信部302、及び、受信部303は、たとえば、第1の実施形態に示したSATAコントローラ、及び、DMAコントローラを用いて実現することができる。   The transmission unit 302 and the reception unit 303 can be realized using, for example, the SATA controller and the DMA controller described in the first embodiment.

次に、本実施形態に係る転送装置301が奏する効果について説明する。   Next, effects produced by the transfer apparatus 301 according to the present embodiment will be described.

第3の実施形態に係る転送装置301によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができる。この理由は、対象データを転送する処理においてエラーが生じた場合に、転送処理に伴う記憶領域を確保する等の処理を実行することなく、該対象データを再送する処理を実行するからである。すなわち、対象データがエラーを含んでいる場合に、転送装置301は、確保されている記憶領域を再利用することにより、転送処理を再度実行する。   According to the transfer device 301 according to the third embodiment, even if an error occurs in the data transfer process, the data can be transferred in a short time. This is because, when an error occurs in the process of transferring the target data, the process of resending the target data is executed without executing a process such as securing a storage area associated with the transfer process. That is, when the target data includes an error, the transfer device 301 executes the transfer process again by reusing the reserved storage area.

これに対して、特許文献1に示された装置は、転送した対象データにエラーが生じた場合に、転送する処理をはじめから実行する。したがって、該装置は、対象データを転送する処理が実行される場合に、対象データに関する転送処理を実行するたびに、転送処理に伴う記憶領域を確保する処理を実行する。この結果、該装置を用いて転送処理する場合の処理量は、本実施形態に係る転送装置301を用いて転送処理する場合の処理量に比べて多い。   On the other hand, the apparatus disclosed in Patent Document 1 executes a process of transferring from the beginning when an error occurs in the transferred target data. Therefore, when a process for transferring target data is executed, the apparatus executes a process for securing a storage area associated with the transfer process each time the transfer process for the target data is executed. As a result, the amount of processing when performing transfer processing using the apparatus is larger than the amount of processing when performing transfer processing using the transfer apparatus 301 according to the present embodiment.

また、特許文献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 transfer apparatus 301 according to the third embodiment stores the first identifier and the second identifier in the storage device before the transmission / reception process regarding the first data, and performs the transmission / reception process regarding the second data. Before that, the process of reading the identifier stored in the storage device is executed. Therefore, in the present embodiment, processing relating to an identifier indicating a storage area is specifically described.

したがって、第3の実施形態に係る転送装置301によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に転送することができる。   Therefore, according to the transfer device 301 according to the third embodiment, even if an error occurs in the data transfer process, the data can be transferred in a short time.

<第4の実施形態>
図20及び図21を参照しながら、本発明の第4の実施形態に係る受信装置404が有する構成と、受信装置404における処理の流れについて詳細に説明する。図20は、本発明の第4の実施形態に係る受信装置404が有する構成を示すブロック図である。図19は、第4の実施形態に係る受信装置404における処理の流れを示すフローチャートである。
<Fourth Embodiment>
The configuration of the reception apparatus 404 according to the fourth embodiment of the present invention and the process flow in the reception apparatus 404 will be described in detail with reference to FIGS. FIG. 20 is a block diagram showing the configuration of the receiving apparatus 404 according to the fourth embodiment of the present invention. FIG. 19 is a flowchart showing the flow of processing in the receiving apparatus 404 according to the fourth embodiment.

第4の実施形態に係る受信装置404は、受信コントローラ401と、メモリ格納部402とを有する。受信装置404は、さらに、メモリ格納部402とは異なる記憶領域おして、たとえば、メモリ403を有してもよい。   A reception device 404 according to the fourth embodiment includes a reception controller 401 and a memory storage unit 402. The receiving device 404 may further include, for example, a memory 403 as a storage area different from the memory storage unit 402.

説明の便宜上、メモリ403は、転送された対象である対象データを記憶可能であるとする。対象データは、複数の要素データを含むとする。   For convenience of explanation, it is assumed that the memory 403 can store target data that is a transferred target. It is assumed that the target data includes a plurality of element data.

受信コントローラ401は、対象データにおける複数の要素データを受信する受信処理を実行する(ステップS401)。受信コントローラ401は、受信した要素データを、メモリ格納部402に対して出力する。   The reception controller 401 executes a reception process for receiving a plurality of element data in the target data (step S401). The reception controller 401 outputs the received element data to the memory storage unit 402.

メモリ格納部402は、受信コントローラ401が出力した要素データを入力し、入力した要素データをメモリ403に格納する(ステップS402)。尚、ステップS402にて、メモリ格納部402は、受信した対象データを、その対象データに含まれる受信した要素データの順序にて、メモリ403に格納するとする。   The memory storage unit 402 receives the element data output from the reception controller 401, and stores the input element data in the memory 403 (step S402). In step S402, the memory storage unit 402 stores the received target data in the memory 403 in the order of the received element data included in the target data.

受信コントローラ401は、受信した要素データにエラーが生じたか否かを判定する。受信コントローラ401は、受信した要素データがエラーを含んでいる場合に、エラーを含む要素データを格納した記憶領域を表す位置を保存する(ステップS403)。   The reception controller 401 determines whether an error has occurred in the received element data. When the received element data includes an error, the reception controller 401 stores a position representing a storage area in which the element data including the error is stored (step S403).

受信装置404は、エラーが生じた対象データを再度受信する再受信処理を実行する(ステップS404)。   The receiving device 404 executes a re-receiving process for receiving again the target data in which an error has occurred (step S404).

説明の便宜上、受信装置404は、再受信した対象データに含まれる各要素データに関して、ステップS402にて要素データを格納した位置に格納するとする。   For convenience of explanation, it is assumed that the receiving device 404 stores each element data included in the re-received target data at the position where the element data is stored in step S402.

次に、受信装置404は、再度受信した対象データにおける要素データに関して、ステップS403にて保存した位置を読み取り、読み取った位置以降に格納する要素データであるか否かを判定する(ステップS405)。受信装置404は、再度受信した要素データが、読み取った位置以降に格納する要素データである場合に、該要素データをメモリ403に格納する(ステップS406)。受信装置404は、再度受信した要素データが、読み取った位置以降に格納する要素データでない場合に、該要素データをメモリ403に格納しない(ステップS407)。   Next, the receiving device 404 reads the position saved in step S403 with respect to the element data in the target data received again, and determines whether the element data is stored after the read position (step S405). When the element data received again is element data to be stored after the read position, the receiving apparatus 404 stores the element data in the memory 403 (step S406). If the element data received again is not element data to be stored after the read position, the receiving device 404 does not store the element data in the memory 403 (step S407).

位置は、エラーが生じた要素データを表す識別番号であってもよい。   The position may be an identification number representing element data in which an error has occurred.

受信コントローラ401は、たとえば、第2の実施形態に示したSATAコントローラを用いて実現することができる。また、メモリ格納部402は、DMAコントローラを用いて実現することができる。また、対象データを転送する処理に必要な記憶領域は、たとえば、PRDテーブルを格納可能な記憶領域、または、対象データを一時的に格納可能な転送領域である。また、要素データは、たとえば、対象データに関するデータFISであってもよい。   The reception controller 401 can be realized by using, for example, the SATA controller shown in the second embodiment. The memory storage unit 402 can be realized using a DMA controller. The storage area necessary for the process of transferring the target data is, for example, a storage area that can store the PRD table or a transfer area that can temporarily store the target data. The element data may be data FIS related to the target data, for example.

次に、本実施形態に係る受信装置404が奏する効果について説明する。   Next, effects produced by the receiving apparatus 404 according to the present embodiment will be described.

第4の実施形態に係る受信装置404によれば、対象データを転送する処理においてエラーが生じた場合であっても、その対象データを短期間に受信することができる。この理由は、対象データを受信する処理においてエラーが生じた場合に、エラーが生じるまでに格納されていたデータを、再度、メモリ403に格納する処理を実行しないからである。   According to the receiving device 404 according to the fourth embodiment, even if an error occurs in the process of transferring the target data, the target data can be received in a short time. This is because when an error occurs in the process of receiving the target data, the process of storing the data stored until the error occurs in the memory 403 is not executed again.

これに対して、特許文献1に示された装置は、転送した対象データにエラーが生じた場合に、転送する処理をはじめから実行する。したがって、該装置は、対象データを転送する処理が実行される場合に、対象データに関する転送処理を実行するたびに、転送処理において、受信したデータをメモリに格納する処理を繰り返し実行する。この結果、該装置を用いて転送処理する場合の処理量は、本実施形態に係る受信装置404を用いて転送処理する場合の処理量に比べて多い。   On the other hand, the apparatus disclosed in Patent Document 1 executes a process of transferring from the beginning when an error occurs in the transferred target data. Therefore, when the process for transferring the target data is executed, the apparatus repeatedly executes the process for storing the received data in the memory in the transfer process every time the transfer process for the target data is executed. As a result, the amount of processing when transfer processing is performed using the device is larger than the amount of processing when transfer processing is performed using the receiving device 404 according to the present embodiment.

したがって、第4の実施形態に係る受信装置404によれば、データを転送する処理においてエラーが生じた場合であっても、そのデータを短期間に受信することができる。   Therefore, according to the receiving apparatus 404 according to the fourth embodiment, even if an error occurs in the data transfer process, the data can be received in a short time.

以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。   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 claim 1, wherein the memory controller does not store the element data received by the receiving controller after the element data in the memory when the receiving controller determines that the error is included.

(付記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 appendix 1 to appendix 3, wherein a normal state signal indicating that the receiving process has been normally completed is transmitted.

(付記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 appendix 1 to appendix 4 apparatus.

(付記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 appendix 1 to appendix 5, wherein the valid state is set in the transfer information when storage location information indicating a storage area for storing element data is a value greater than or equal to the location.

(付記7)
付記1乃至付記6のいずれかに記載の受信装置と、
前記対象データを記憶している記憶領域から、所定の単位にて対象データを読み取る読み取り手段と、
読み取った前記対象データを、前記受信コントローラに送信する送信コントローラと、
を備える転送装置。
(Appendix 7)
The receiving device according to any one of supplementary notes 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:

(付記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 受信装置
101 Computer System 102 Host Device 103 Memory 104 Transfer Device 105 DMA Controller 106 SATA Controller 107 Device 108 Memory 109 Transfer Device 110 DMA Controller 111 SATA Controller 112 SATA Interface 121 DMA Controller 122 PRD Table Pointer Register 123 PRD Index Register 124 DMA Base Address Register 125 DMA byte count register 201 Computer system 202 Host device 204 Transfer device 205 DMA controller 206 SATA controller 207 Device 209 Transfer device 210 DMA controller 211 SATA controller 301 Transfer device 302 Transmitter 303 Receiver 304 Mori 305 memory 401 receives controller 402 memory storage unit 403 memory 404 receiving device

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.
請求項1乃至請求項6のいずれかに記載の受信装置と、
前記対象データを記憶している記憶領域から、所定の単位にて対象データを読み取る読み取り手段と、
読み取った前記対象データを、前記受信コントローラに送信する送信コントローラと、
を備える転送装置。
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.
JP2015175689A 2015-09-07 2015-09-07 Receiving device, receiving method, and transfer device Active JP6641131B2 (en)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (5)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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