JP2010140127A - Data transfer processing apparatus and method - Google Patents

Data transfer processing apparatus and method Download PDF

Info

Publication number
JP2010140127A
JP2010140127A JP2008313917A JP2008313917A JP2010140127A JP 2010140127 A JP2010140127 A JP 2010140127A JP 2008313917 A JP2008313917 A JP 2008313917A JP 2008313917 A JP2008313917 A JP 2008313917A JP 2010140127 A JP2010140127 A JP 2010140127A
Authority
JP
Japan
Prior art keywords
data
transfer
unit
input
processing circuit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2008313917A
Other languages
Japanese (ja)
Other versions
JP5107880B2 (en
Inventor
Takashi Todaka
貴司 戸▲高▼
Takashi Tamura
崇 田村
Toshiaki Miyakoshi
利晋 宮越
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2008313917A priority Critical patent/JP5107880B2/en
Publication of JP2010140127A publication Critical patent/JP2010140127A/en
Application granted granted Critical
Publication of JP5107880B2 publication Critical patent/JP5107880B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Bus Control (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To prevent a logical scale from being increased in performing specific data processing by a hardware circuit in parallel with the data transfer of a non-aligned data unit. <P>SOLUTION: A data processing circuit and an aligner for the data processing circuit are installed at a position different from the transfer path of a data unit. The aligner for the data processing circuit is configured to align the address of the data unit input to the aligner so that non-transfer object data is prevented from being included in the leading section of the aligned data unit. The transferred data unit is input to the aligner for the data processing circuit in parallel with the data transfer, and the address of the data in the input data unit is aligned, and the aligned data unit is input to the data processing circuit by the input data width unit of the data processing circuit, and the aligned data unit input to the data processing circuit is processed. <P>COPYRIGHT: (C)2010,JPO&INPIT

Description

本発明は、データの転送処理に関し、具体的には、例えば、サーバ等の情報処理装置に備えられるホストバスアダプタ(HBA)等の通信インタフェース装置におけるデータ転送処理に関する。   The present invention relates to data transfer processing, and specifically relates to data transfer processing in a communication interface device such as a host bus adapter (HBA) provided in an information processing device such as a server.

サーバ等の情報処理装置には、例えば特許文献1に開示されているような、通信インタフェース装置が搭載される。情報処理装置は、通信インタフェース装置を介して、外部記憶装置等の外部の装置と通信する。   An information processing apparatus such as a server is equipped with a communication interface apparatus as disclosed in Patent Document 1, for example. The information processing device communicates with an external device such as an external storage device via the communication interface device.

特開2002−183072号公報JP 2002-183072 A

情報処理装置には、情報処理装置全体の性能向上の観点から、ダイレクトメモリアクセスコントローラ(DMAC)と呼ばれるデータ転送処理装置が備えられることがある。DMACでは、CPU(Central Processing Unit)に代わってデータ転送が行われる。   The information processing apparatus may be provided with a data transfer processing apparatus called a direct memory access controller (DMAC) from the viewpoint of improving the performance of the entire information processing apparatus. In the DMAC, data transfer is performed in place of a CPU (Central Processing Unit).

図10に、DMACの構成の一例を示す。   FIG. 10 shows an example of the configuration of the DMAC.

DMAC10は、例えば、外部記憶装置(例えばディスクアレイ装置)20と通信するための通信インタフェース装置(例えばホストバスアダプタ(HBA))である。DMAC10は、外部記憶装置20と通信し、且つ、CPU31及びメインメモリ22を含んだ情報処理資源と内部バス32を介して通信する。   The DMAC 10 is, for example, a communication interface device (for example, a host bus adapter (HBA)) for communicating with an external storage device (for example, a disk array device) 20. The DMAC 10 communicates with the external storage device 20 and communicates with information processing resources including the CPU 31 and the main memory 22 via the internal bus 32.

DMAC10は、例えば、下記構成要素(1)乃至(5)、
(1)外部記憶装置20から読み出されたデータブロックを一時的に記憶するための受信バッファ11;
(2)受信バッファ11に格納されているデータブロックを所定の転送単位で情報処理資源(例えばメインメモリ22)に転送するDMA制御部21;
(3)外部記憶装置20に書き込まれるデータブロックを一時的に記憶するための送信バッファ12;
(4)情報処理資源(例えばメインメモリ22)に格納されているデータブロックを所定の転送単位で送信バッファ12に転送するDMA制御部22;
(5)DMAC10の動作を制御するマイクロプログラム制御部13;
を備える。受信バッファ11及び送信バッファ12のうちの一方又は両方が、送受信の多重度をあげてデータ転送性能の向上を図る観点から、複数個備えられる。マイクロプログラム制御部13は、CPUやローカルメモリ等を備えている。マイクロプログラム制御部13は、データ転送起動コマンドをDMA制御部21又は22に設定する。これにより、DMA制御部21又は22が、その起動コマンドを解釈しデータ転送を行う。このため、マイクロプログラム制御部13は別の処理を行うことが可能となり、情報処理装置30全体の性能が向上する。
The DMAC 10 includes, for example, the following components (1) to (5),
(1) a reception buffer 11 for temporarily storing data blocks read from the external storage device 20;
(2) a DMA control unit 21 that transfers a data block stored in the reception buffer 11 to an information processing resource (for example, main memory 22) in a predetermined transfer unit;
(3) a transmission buffer 12 for temporarily storing data blocks to be written to the external storage device 20;
(4) DMA control unit 22 for transferring data blocks stored in information processing resources (for example, main memory 22) to transmission buffer 12 in a predetermined transfer unit;
(5) a microprogram control unit 13 for controlling the operation of the DMAC 10;
Is provided. One or both of the reception buffer 11 and the transmission buffer 12 are provided from the viewpoint of improving the data transfer performance by increasing the multiplicity of transmission and reception. The microprogram control unit 13 includes a CPU, a local memory, and the like. The microprogram control unit 13 sets a data transfer start command in the DMA control unit 21 or 22. Thereby, the DMA control unit 21 or 22 interprets the start command and performs data transfer. For this reason, the microprogram control unit 13 can perform another process, and the performance of the information processing apparatus 30 as a whole is improved.

送受信バッファ11及び12は、外部記憶装置20とデータをやり取りするため、各種インタフェース規格ごとにデータ以外にも制御用の情報が付加されることになる。このため、送受信バッファ11及び12内のデータはアラインされているとは限らない。   Since the transmission / reception buffers 11 and 12 exchange data with the external storage device 20, information for control is added in addition to data for each interface standard. For this reason, the data in the transmission / reception buffers 11 and 12 are not necessarily aligned.

また、データの転送先または転送元となる情報処理装置30内のメモリアドレスは、情報処理資源におけるアプリケーションプログラムによって指定される。このため、送受信バッファ11及び12と転送先または転送元となる情報処理資源内のメモリアドレスがずれて、アラインされない可能性がある。   Also, the memory address in the information processing apparatus 30 that is the data transfer destination or transfer source is specified by an application program in the information processing resource. For this reason, there is a possibility that the memory addresses in the information processing resource serving as the transfer destination or transfer source are shifted from the transmission / reception buffers 11 and 12 and are not aligned.

以上の理由から、アラインされない場合に対応したデータ転送を行う必要がある。そこで、図10のDMA制御部21(22)に示すように、データの転送経路上にアライナ14(15)が設けられ、転送元から転送先へのデータユニットがアライナ14(15)を経由する。これにより、データユニットにおけるデータのアドレスが、転送先が指定するアドレスにアラインされて、アライン後のデータユニットが転送先へ転送されることになる。具体的には、例えば、図2に示すように、転送元から「 AB」、「CDEF」、「GHIJ」、「KLMN」、「OP 」の順にデータユニットが読み出され、アライナ14(15)を通して、転送先へアライン後のデータユニット「 ABC」、「DEFG」、「HIJK」、「LMNO」、「P 」が転送されることになる。なお、ここで言う「データユニット」とは、転送単位のサイズのデータのことであり、具体的には、4つの4Byteのデータの集合であり、故に、データユニットのサイズは16Byteである。また、前述したA〜Pのそれぞれ4Byteのデータ(図2で灰色のブロックで表示されているデータ)は、転送先で必要とされるデータ(転送対象データ)であり、一つのデータユニットにおける転送対象データ以外のデータ(図2で白色のブロックで表示されているデータ)は、転送先で必要とされないデータ(非転送対象データ)である。   For the above reasons, it is necessary to perform data transfer corresponding to the case where alignment is not performed. Therefore, as shown in the DMA control unit 21 (22) in FIG. 10, the aligner 14 (15) is provided on the data transfer path, and the data unit from the transfer source to the transfer destination passes through the aligner 14 (15). . As a result, the data address in the data unit is aligned with the address designated by the transfer destination, and the aligned data unit is transferred to the transfer destination. Specifically, for example, as shown in FIG. 2, data units are read from the transfer source in the order of “AB”, “CDEF”, “GHIJ”, “KLMN”, “OP”, and the aligner 14 (15). Then, the aligned data units “ABC”, “DEFG”, “HIJK”, “LMNO”, “P” are transferred to the transfer destination. The “data unit” referred to here is data having a transfer unit size, specifically, a set of four 4-byte data, and thus the size of the data unit is 16 bytes. Further, the above-mentioned 4 bytes of data A to P (data displayed in gray blocks in FIG. 2) are data (data to be transferred) required at the transfer destination, and transfer in one data unit. Data other than the target data (data displayed in white blocks in FIG. 2) is data that is not required at the transfer destination (non-transfer target data).

また、データ転送においては、データの検査を行うことが信頼性向上のために求められている。データの検査の代表的な手法の一つに、巡回冗長検査がある。巡回冗長検査では、所定サイズのデータブロックに対して生成多項式を適用し、チェックコードが生成される。例えば、転送元で、所定サイズのデータブロックに別の所定サイズのチェックコードが付加され、データブロックとチェックコードとのセット(以下、データ/コードセット)が転送先に送られる。転送先では、送られて来たデータ/コードセットにおけるデータブロックに対して生成多項式が適用され、それ故、再度チェックコードが生成され、生成されたチェックコードが、データ/コードセットにおけるチェックコードと一致するか否かが判定される。このようにして、データの完全性が保証される。   In data transfer, data inspection is required to improve reliability. One of the typical data inspection methods is a cyclic redundancy check. In the cyclic redundancy check, a check code is generated by applying a generator polynomial to a data block of a predetermined size. For example, at the transfer source, a check code of another predetermined size is added to a data block of a predetermined size, and a set of data blocks and check codes (hereinafter, data / code set) is sent to the transfer destination. At the transfer destination, the generator polynomial is applied to the data block in the data / code set that is sent, so that the check code is generated again, and the generated check code is the check code in the data / code set. It is determined whether or not they match. In this way, data integrity is guaranteed.

巡回冗長検査は、各種インタフェース規格において定められており、チェックコード生成のための生成多項式や計算方法がそれぞれ定められている。   The cyclic redundancy check is defined in various interface standards, and a generator polynomial and a calculation method for generating a check code are respectively determined.

巡回冗長検査の一例として、SCSI(Small Computer System Interface)インタフェースのDIF(Data Integrity Field)がある。DIFでは、例えば、512Byteごとのデータブロックに対して8Byteのチェックコードが付加される。8Byteのチェックコードは、6Byteの任意のタグ情報と、2Byteの巡回冗長検査符号で構成され、巡回冗長検査符号は、512Byteのデータブロックに対して次の生成多項式を適用することで生成可能である(x16+x15+x11+x9+x8+x7+x5+x4+x2+x+1)。   As an example of the cyclic redundancy check, there is a DIF (Data Integrity Field) of a SCSI (Small Computer System Interface) interface. In DIF, for example, an 8-byte check code is added to a data block for every 512 bytes. The 8-byte check code is composed of arbitrary 6-byte tag information and a 2-byte cyclic redundancy check code, and the cyclic redundancy check code can be generated by applying the following generator polynomial to a 512-byte data block. (X16 + x15 + x11 + x9 + x8 + x7 + x5 + x4 + x2 + x + 1).

図10に示したDMAC10では、バッファ11(12)にデータ/コードセットが一時的に格納されているため、データ転送の前にマイクロプログラム制御部13がバッファ11(12)からデータ/コードセットを読み出すことで、DIFによるチェックコードの検査または生成を行うことが可能である。   In the DMAC 10 shown in FIG. 10, since the data / code set is temporarily stored in the buffer 11 (12), the microprogram control unit 13 receives the data / code set from the buffer 11 (12) before data transfer. By reading, it is possible to check or generate a check code by DIF.

しかし、マイクロプログラム制御部13でDIFによるチェックコードの検査または生成を実施すると、その処理の間、バッファ11(12)を占有してしまい、送受信の多重度を下げてしまうことと、これまで行わなかったマイクロプログラム処理を実施することによるDMAC10の性能低下が想定される。   However, if the microprogram control unit 13 inspects or generates the check code by the DIF, the buffer 11 (12) is occupied during the processing, and the multiplicity of transmission / reception is lowered. It is assumed that the performance of the DMAC 10 is degraded due to the execution of the microprogram processing that has not been performed.

DMAC10の性能低下を防ぐための方法として、データ転送とチェックコードの検査または生成を並行して行うことが考えられる。   As a method for preventing the performance degradation of the DMAC 10, it is conceivable to perform data transfer and check code inspection or generation in parallel.

データ転送と並行してDIFのチェックコードの検査または生成を行うためには、チェックコードの検査または生成を行うハードウェア回路(以下、DIF回路)を設け、転送元からデータユニットを読み出す際、または転送先にデータユニットを書き込む際に、それと同じタイミングでDIF回路にデータユニットを入力する方法が考えられる。言い換えれば、データ転送経路上の、図10に示すアライナ14(15)の上流側(転送元側)又は下流側(転送先側)に、DIF回路を設ける方法が考えられる。   In order to inspect or generate a DIF check code in parallel with data transfer, a hardware circuit (hereinafter referred to as DIF circuit) for inspecting or generating a check code is provided, and when a data unit is read from a transfer source, or A method of inputting the data unit to the DIF circuit at the same timing when writing the data unit to the transfer destination can be considered. In other words, a method of providing a DIF circuit on the upstream side (transfer source side) or the downstream side (transfer destination side) of the aligner 14 (15) shown in FIG. 10 on the data transfer path can be considered.

図3に、転送先へデータユニットを書き込む際にそのデータユニットをDIF回路に入力する例を示す。最初のデータユニット「 ABC」に対しては、12Byte幅のデータに対するDIF回路が必要となる。なぜなら、転送対象データの数は3つであるため3×4Byte=12Byteが転送対象データ群のサイズであるからである。同様の理由から、続くデータユニット「DEFG」、「HIJK」、「LMNO」のデータユニットに対しては、16Byte幅のデータに対するDIF回路が必要となり、最後の「P 」のデータユニットについては4Byteのデータ幅のDIF回路が必要となる。   FIG. 3 shows an example of inputting the data unit to the DIF circuit when writing the data unit to the transfer destination. For the first data unit “ABC”, a DIF circuit for 12-byte data is required. This is because the number of transfer target data is 3, and 3 × 4 bytes = 12 bytes is the size of the transfer target data group. For the same reason, a DIF circuit for 16-byte data is required for the following data units “DEFG”, “HIJK”, and “LMNO”, and 4 bytes for the last “P” data unit. A DIF circuit having a data width is required.

このように、アラインされていないデータユニットに対してチェックコードの検査または生成をデータ転送と同じタイミングで行おうとすると、各データブロックにつき、転送の最初のデータユニットと最後のデータユニットに端数データ(非転送対象データ)が現れる場合がある。このため、図6に示すように、複数種類の端数データ幅(端数データ群のサイズ、言い換えれば端数データの数)に応じた複数種類のDIF回路を用意する必要が生じ、回路実現のための論理規模の増大が課題となる。   In this way, if the check code is inspected or generated for an unaligned data unit at the same timing as the data transfer, the fractional data (in the first data unit and the last data unit of the transfer is included in each data block). (Non-transfer target data) may appear. For this reason, as shown in FIG. 6, it is necessary to prepare a plurality of types of DIF circuits corresponding to a plurality of types of fraction data width (the size of the fraction data group, in other words, the number of fraction data). Increasing the logical scale is an issue.

以上の課題は、DIF回路以外のチェックコード生成回路、或いは、チェックコード生成回路以外のデータ処理回路(例えば、暗号化処理を行うためのハードウェア回路)での処理を、転送元から転送先へのデータ転送と同じタイミングで行おうとした場合に生じ得る課題である。   The above problem is that the processing in the check code generation circuit other than the DIF circuit or the data processing circuit other than the check code generation circuit (for example, a hardware circuit for performing encryption processing) is transferred from the transfer source to the transfer destination. This is a problem that may occur when an attempt is made at the same timing as the data transfer.

従って、本発明の目的は、アラインされていないデータユニットのデータ転送と並行して特定のデータ処理をハードウェア回路にて行うにあたり論理規模が増大しないようにすることにある。   Accordingly, an object of the present invention is to prevent the logical scale from increasing when specific data processing is performed by a hardware circuit in parallel with data transfer of unaligned data units.

転送元から転送先へ所定の転送単位で転送されるデータユニットの転送経路とは別の位置に、入力されたデータユニットを処理するデータ処理回路と、このデータ処理回路用のアライナとが備えられる。データ処理回路用のアライナは、アライン後のデータユニットの先頭部分に非転送対象のデータが含まれることが無いように、このアライナに入力されたデータユニットのアドレスをアラインするよう構成されている。データ転送に並行して、データ処理回路用のアライナに、転送されるデータユニットが入力され、入力されたデータユニットにおけるデータのアドレスがアラインされ、アライン後のデータユニットがデータ処理回路の入力データ幅単位でデータ処理回路に入力され、データ処理回路に入力されたアライン後のデータユニットが処理される。   A data processing circuit for processing the input data unit and an aligner for the data processing circuit are provided at a position different from the transfer path of the data unit transferred from the transfer source to the transfer destination in a predetermined transfer unit. . The aligner for the data processing circuit is configured to align the address of the data unit input to the aligner so that the non-transfer target data is not included in the head portion of the aligned data unit. In parallel with the data transfer, the data unit to be transferred is input to the aligner for the data processing circuit, the address of the data in the input data unit is aligned, and the aligned data unit is the input data width of the data processing circuit The unit is input to the data processing circuit, and the aligned data unit input to the data processing circuit is processed.

データ処理回路としては、誤り検出回路や、暗号化処理回路など、種々の回路を採用可能である。暗号化処理回路としては、例えば、CFB(Cipher FeedBack)で暗号化する回路を採用することができる。   As the data processing circuit, various circuits such as an error detection circuit and an encryption processing circuit can be employed. As the encryption processing circuit, for example, a circuit that performs encryption using CFB (Cipher FeedBack) can be employed.

以下、図面を参照して、本発明の一実施形態を説明する。   Hereinafter, an embodiment of the present invention will be described with reference to the drawings.

図1は、本発明の一実施形態に係る情報処理装置を示す。   FIG. 1 shows an information processing apparatus according to an embodiment of the present invention.

情報処理装置300に、内部バス320に接続されている情報処理資源(CPU310及びメインメモリ220等)と、外部記憶装置200と情報処理装置300とを接続しデータ転送を実施するDMAC100を備える。外部記憶装置200は、例えば、複数の物理記憶媒体(例えばハードディスク或いはフラッシュメモリ)を備えたストレージシステム(一例としてディスクアレイ装置)である。情報処理装置300は、例えば、外部記憶装置200から提供される論理ボリュームにブロック単位でデータを読み書きするホスト装置(例えばサーバ)である。DMAC100は、例えば、ホストバスアダプタ(HBA)である。   The information processing apparatus 300 includes a DMAC 100 that connects information processing resources (such as the CPU 310 and the main memory 220) connected to the internal bus 320, the external storage device 200, and the information processing apparatus 300 to perform data transfer. The external storage device 200 is, for example, a storage system (for example, a disk array device) including a plurality of physical storage media (for example, a hard disk or a flash memory). The information processing device 300 is, for example, a host device (for example, a server) that reads / writes data in block units from / to a logical volume provided from the external storage device 200. The DMAC 100 is, for example, a host bus adapter (HBA).

DMAC100は、受信バッファ110と、送信バッファ120と、DIF回路152と、マイクロプログラム制御部130と、DMA制御部210及び211とを備える。   The DMAC 100 includes a reception buffer 110, a transmission buffer 120, a DIF circuit 152, a microprogram control unit 130, and DMA control units 210 and 211.

受信バッファ110は、外部記憶装置200から読み出されたデータを受信し、受信したデータを記憶し、データをすべて受信し記憶したところでマイクロプログラム制御部130に受信の完了報告を行う機能を持つ。一方、送信バッファ120は、外部記憶装置200に書き込まれるデータを記憶し、バッファ120内のデータをすべて送信したところでマイクロプログラム制御部130に送信の完了報告を行う機能を持つ。受信バッファ110及び送信バッファ120の少なくとも一方が、複数個備えられ、それにより、送信及び/又は受信においてバッファ不足のため送信/受信が不能とならないようになっている。なお、本実施形態では、受信バッファ110には、512Byte単位のデータブロックに8Byteのチェックコードが付加されたデータ/コードセットが格納されるとする。   The reception buffer 110 has a function of receiving the data read from the external storage device 200, storing the received data, and receiving and storing all the data, and reporting the reception completion to the microprogram control unit 130. On the other hand, the transmission buffer 120 has a function of storing data to be written in the external storage device 200 and reporting the completion of transmission to the microprogram control unit 130 when all the data in the buffer 120 has been transmitted. A plurality of at least one of the reception buffer 110 and the transmission buffer 120 are provided, so that transmission / reception is not disabled due to a buffer shortage in transmission and / or reception. In the present embodiment, it is assumed that a data / code set in which an 8-byte check code is added to a 512-byte data block is stored in the reception buffer 110.

マイクロプログラム制御部130は、CPUやローカルメモリ等を含んでおり、DMAC100を制御するマイクロプログラムをCPUで実行する。マイクロプログラムの機能の一つとして、受信や送信の完了報告を受けたところで、送受信バッファ110、120とメインメモリ220との間のデータ転送指示を行う機能がある。   The microprogram control unit 130 includes a CPU, a local memory, and the like, and executes a microprogram for controlling the DMAC 100 by the CPU. As one of the functions of the microprogram, there is a function of issuing a data transfer instruction between the transmission / reception buffers 110 and 120 and the main memory 220 when receiving a reception or transmission completion report.

DIF回路152は、送信されるデータブロックにチェックコードを付加するための回路である。DIF回路152は、送信バッファ120から読み出されたデータブロックを基にチェックコードを生成する。生成されたチェックコードは、送信バッファ120から読み出されデータ転送経路を流れるデータブロックに付加されて、外部記憶装置200に送信される。DIF回路152は、データ転送経路と別の位置に設けられている。送信バッファ120から読み出されたデータブロックが、データ転送経路に加えてDIF回路152を並行して経由するか否かは、マイクロプログラム制御部120によって制御される。   The DIF circuit 152 is a circuit for adding a check code to the transmitted data block. The DIF circuit 152 generates a check code based on the data block read from the transmission buffer 120. The generated check code is read from the transmission buffer 120, added to the data block flowing through the data transfer path, and transmitted to the external storage device 200. The DIF circuit 152 is provided at a position different from the data transfer path. Whether the data block read from the transmission buffer 120 passes through the DIF circuit 152 in addition to the data transfer path is controlled by the microprogram control unit 120.

本実施形態の一つの特徴として、DMA制御部210(211)の構成にある。すなわち、DMA制御部210(211)には、データ転送経路上に設けられたデータ転送用のアライナ140(142)の他に、データ転送経路とは別の位置に、DIF回路150(151)と、DIF回路用のアライナ141(143)が設けられている。このような構成は、受信系のDMA制御部210と送信系のDMA制御部211の一方にだけ採用されて良く他方は例えば図10に示したDMA制御部21又は22の構成であっても良い。なお、以下、データ転送用のアライナを「第一のアライナ」と言い、DIF回路用のアライナを「第二のアライナ」と言う。データブロックが、第一のアライナ140(142)と第二のアライナ141(143)の両方に並行して入力されるか否かは、マイクロプログラム制御部120によって制御される。   One feature of this embodiment is the configuration of the DMA control unit 210 (211). That is, in addition to the data transfer aligner 140 (142) provided on the data transfer path, the DMA control unit 210 (211) has a DIF circuit 150 (151) at a position different from the data transfer path. , An aligner 141 (143) for the DIF circuit is provided. Such a configuration may be employed only in one of the reception-system DMA control unit 210 and the transmission-system DMA control unit 211, and the other may be, for example, the configuration of the DMA control unit 21 or 22 shown in FIG. . Hereinafter, the aligner for data transfer is referred to as “first aligner”, and the aligner for DIF circuit is referred to as “second aligner”. Whether the data block is input to both the first aligner 140 (142) and the second aligner 141 (143) in parallel is controlled by the microprogram control unit 120.

第一のアライナ140(142)は、転送先に合わせたアラインを実施する。本実施形態では、転送単位のサイズは、16Byteである。   The first aligner 140 (142) performs alignment according to the transfer destination. In this embodiment, the size of the transfer unit is 16 bytes.

DIF回路150(151)は、チェックコードを検査又は生成するためのハードウェア回路である。DIF回路150(151)の入力データ幅は、固定長、且つ、固定長のデータブロックのサイズの約数である。本実施形態では、データブロックのサイズは512Byteであり、入力データ幅としては、転送単位のサイズと同じ16Byteが採用されている。つまり、転送単位のサイズと同じである。   The DIF circuit 150 (151) is a hardware circuit for inspecting or generating a check code. The input data width of the DIF circuit 150 (151) is a fixed length and a divisor of the size of the fixed length data block. In this embodiment, the size of the data block is 512 bytes, and the input data width is 16 bytes which is the same as the size of the transfer unit. That is, it is the same as the size of the transfer unit.

第二のアライナ141(143)は、転送先ではなくDIF回路150(151)に合わせたアラインを実施する。具体的には、第二のアライナ141(143)は、DIF回路150(151)の入力データ幅に合わせたアラインを実施する。第二のアライナ141(143)は、DIF回路150(151)の上流側(例えば直前)に設けられている。すなわち、受信系のDMA制御部210では、第二のアライナ141は、DIF回路150よりも受信バッファ110側に存在し、送信系のDMA制御部211では、第二のアライナ143は、DIF回路151よりもメインメモリ220側に存在する。   The second aligner 141 (143) performs alignment in accordance with the DIF circuit 150 (151), not the transfer destination. Specifically, the second aligner 141 (143) performs alignment according to the input data width of the DIF circuit 150 (151). The second aligner 141 (143) is provided on the upstream side (for example, immediately before) of the DIF circuit 150 (151). In other words, in the DMA controller 210 for the reception system, the second aligner 141 is located closer to the reception buffer 110 than the DIF circuit 150. In the DMA controller 211 for the transmission system, the second aligner 143 is connected to the DIF circuit 151. Rather than the main memory 220 side.

図4に、第一のアライナ140(142)と第二のアライナ141(143)が同時に使用される例を示す。   FIG. 4 shows an example in which the first aligner 140 (142) and the second aligner 141 (143) are used simultaneously.

すなわち、転送元(受信バッファ110又はメインメモリ220)から転送先(メインメモリ220又は送信バッファ120)へのデータ転送では、転送元から転送先へ転送単位でデータユニットが転送され、そのデータユニットは、第一のアライナ140(142)を経由するため、転送先に合わせたアラインが実施される。すなわち、転送元から「 AB」、「CDEF」、「GHIJ」、「KLMN」、「OP 」の順に読み出されたデータユニットが、「 ABC」、「DEFG」、「HIJK」、「LMNO」、「P 」のようにアラインされる。   That is, in the data transfer from the transfer source (reception buffer 110 or main memory 220) to the transfer destination (main memory 220 or transmission buffer 120), the data unit is transferred in units of transfer from the transfer source to the transfer destination. In order to pass through the first aligner 140 (142), alignment according to the transfer destination is performed. That is, data units read in the order of “AB”, “CDEF”, “GHIJ”, “KLMN”, “OP” from the transfer source are “ABC”, “DEFG”, “HIJK”, “LMNO”, “LMNO”, Aligned as “P”.

転送元から転送先へのデータ転送に並行して、下記(A)乃至(D)の処理、
(A)第二のアライナ141(143)に、転送元から読み出されたデータユニットが入力される;
(B)第二のアライナ141(143)によって、第二のアライナ141(143)に入力されたデータユニットにおけるデータのアドレスがアラインされる;
(C)第二のアライナ141(143)によるアライン後のデータユニットがDIF回路150(151)の入力データ幅単位でDIF回路150(151)に入力される;
(D)DIF回路150(151)に入力されたアライン後のデータユニットが処理される;
が行われる。すなわち、同時期に発生したクロックに同期して、データ転送と、前述の(A)乃至(D)の処理が行われる。
In parallel with the data transfer from the transfer source to the transfer destination, the following processes (A) to (D):
(A) The data unit read from the transfer source is input to the second aligner 141 (143);
(B) The second aligner 141 (143) aligns the address of the data in the data unit input to the second aligner 141 (143);
(C) The data unit after alignment by the second aligner 141 (143) is input to the DIF circuit 150 (151) in units of the input data width of the DIF circuit 150 (151);
(D) The aligned data unit input to the DIF circuit 150 (151) is processed;
Is done. That is, data transfer and the processes (A) to (D) described above are performed in synchronization with the clocks generated at the same time.

第二のアライナ141(143)は、転送元から「 AB」、「CDEF」、「GHIJ」、「KLMN」、「OP 」の順に読み出されたデータユニットを、「ABCD」、「EFGH」、「IJKL」、「MNOP」のようにアラインする。すなわち、第二のアライナ141(143)は、アライン後のデータユニットの先頭部分に端数データ(非転送対象データ)が含まれることが無いように、このアライナ141(143)に入力されたデータユニットのアドレスをアラインするよう構成されている。端数データとしては、例えば、フレームのヘッダ情報などがある。   The second aligner 141 (143) reads the data units read from the transfer source in the order of “AB”, “CDEF”, “GHIJ”, “KLMN”, “OP” in the order of “ABCD”, “EFGH”, Align like “IJKL”, “MNOP”. That is, the second aligner 141 (143) is a data unit input to the aligner 141 (143) so that fraction data (non-transfer target data) is not included in the head portion of the aligned data unit. It is configured to align the addresses. Examples of the fraction data include frame header information.

DIFでは、512Byte単位のデータブロックに対して、8Byteのチェックコードが付加される。従って、16Byteの入力データ幅のDIF回路150(151)に合わせて、本実施形態のように、データユニットの先頭部分に端数データが含まれることが無いようにアラインされれば、512Byte÷16Byte=32個のデータユニットの全てに、端数データが含まれることが無い。また、512Byteのデータブロックに8Byteのチェックコードが付加されているが、8Byteのチェックコードは、本実施形態では、必ず、33個目の16Byteのデータユニットの前半部分(上位半分)に存在する。このため、DIF回路150(151)は、32個のデータユニットが入力される都度に、その次に入力されるデータユニットの前半部分に、それら32個のデータユニットで構成されるデータブロックに付属しているチェックコードが存在していることが分かる。これらの理由から、本実施形態では、複数種類の端数データ幅に対応した複数種類のDIF回路を用意する必要は無く、図5及び図7に示すように、一種類のDIF回路150(151)、つまり、入力データ幅が16ByteのDIF回路150(151)があれば足りる。   In DIF, an 8-byte check code is added to a 512-byte data block. Therefore, in accordance with the DIF circuit 150 (151) having an input data width of 16 bytes, if alignment is performed so that fraction data is not included in the head portion of the data unit as in the present embodiment, 512 bytes ÷ 16 bytes = All 32 data units do not contain fractional data. Further, although an 8-byte check code is added to the 512-byte data block, the 8-byte check code is always present in the first half (upper half) of the 33rd 16-byte data unit in this embodiment. For this reason, every time 32 data units are input, the DIF circuit 150 (151) is attached to the first half of the data unit to be input next to a data block composed of these 32 data units. You can see that there is a check code. For these reasons, in this embodiment, it is not necessary to prepare a plurality of types of DIF circuits corresponding to a plurality of types of fraction data widths, and one type of DIF circuit 150 (151) as shown in FIGS. That is, the DIF circuit 150 (151) having an input data width of 16 bytes is sufficient.

図7によれば、レジスタ701に、DIF計算の初期値sが記憶されており、一つのデータブロックについて、アライン後の先頭のデータユニット(実施例で言う「ABCD」)が入力された場合、そのデータユニットと初期値sとを基に計算され、その計算結果を表す値が、レジスタ701に格納される。次に、その値と、次のアライン後のデータユニット(実施例で言う「EFGH」)とを基に計算され、その計算結果を表す値が、レジスタ701に格納される。以上の処理が、32個のデータユニットについて行われ、33個目のデータユニットについては、比較器703で、レジスタ301に記憶されている値(すなわち、512Byteのデータブロックを基に生成されたチェックコード)と、33個目のデータユニットの前半部分に存在する値(つまり、512Byteのデータブロックに付加されているチェックコード)とが比較される。前述したように、8Byteのチェックコードは、本実施形態では、必ず、33個目の16Byteのデータユニットの前半部分(上位半分)に存在するので、チェックコードの位置の判定が容易である。   According to FIG. 7, when the initial value s of the DIF calculation is stored in the register 701 and the first data unit after alignment (“ABCD” in the embodiment) is input for one data block, A value calculated based on the data unit and the initial value s is stored in the register 701. Next, it is calculated based on the value and the data unit after the next alignment (“EFGH” in the embodiment), and a value representing the calculation result is stored in the register 701. The above processing is performed for 32 data units, and for the 33rd data unit, the comparator 703 checks the value stored in the register 301 (that is, the check generated based on the 512-byte data block). Code) and a value (that is, a check code added to the 512-byte data block) existing in the first half of the 33rd data unit. As described above, since the 8-byte check code is always present in the first half (upper half) of the 33rd 16-byte data unit in this embodiment, the check code position can be easily determined.

以上のことから、アラインされていないデータユニットのデータ転送と並行してチェックコードの検査又は生成をDIF回路にて行うにあたり論理規模が増大しないようにすることができる。   From the above, it is possible to prevent the logical scale from increasing when the check code is inspected or generated by the DIF circuit in parallel with the data transfer of the unaligned data units.

図8は、外部記憶装置200から受信バッファ110に格納されたデータ/コードセットを情報処理装置300へ転送するフローを示す。   FIG. 8 shows a flow of transferring the data / code set stored in the reception buffer 110 from the external storage device 200 to the information processing device 300.

受信バッファ110は、データ格納完了をマイクロプログラム制御部130に報告し(ステップ801)、マイクロプログラム制御部130は、その報告を受けて、DMAの起動指示並びにチェックコードの検査指示をDMA制御部210に対して行う(ステップ802)。これにより、受信バッファ110からメインメモリ220へのデータ転送と、そのデータ転送に並行して、前述した(A)乃至(D)の処理(チェックコードの検査)が行われる(ステップ803)。それらの処理が終わると、DMA制御部210からマイクロプログラム制御部130に完了報告が入力され(ステップ804)、マイクロプログラム制御部130は、DMA終了処理を行う(ステップ805)。   The reception buffer 110 reports the completion of data storage to the microprogram control unit 130 (step 801), and the microprogram control unit 130 receives the report and issues a DMA activation instruction and a check code check instruction to the DMA control unit 210. (Step 802). As a result, the above-described processing (A) to (D) (check code inspection) is performed in parallel with the data transfer from the reception buffer 110 to the main memory 220 (step 803). When these processes are completed, a completion report is input from the DMA control unit 210 to the microprogram control unit 130 (step 804), and the microprogram control unit 130 performs a DMA end process (step 805).

図9は、情報処理装置300から外部記憶装置200へデータを送出するために送信バッファ120へデータを転送するフローを示す。   FIG. 9 shows a flow of transferring data to the transmission buffer 120 in order to send data from the information processing device 300 to the external storage device 200.

マイクロプログラム制御部130は、送信バッファ120に対してバッファの確保を依頼し(ステップ901)、バッファの確保の完了を受け(ステップ902)、DMA起動指示を行う(ステップ903)。これにより、メインメモリ220から送信バッファ120へのデータ転送と、そのデータ転送に並行して、前述した(A)乃至(D)の処理(チェックコードの検査)が行われる(ステップ904)。それらの処理が終わると、DMA制御部211からマイクロプログラム制御部130に完了報告が入力され(ステップ905)、マイクロプログラム制御部130は、DMA終了処理を行う(ステップ906)。   The microprogram control unit 130 requests the transmission buffer 120 to secure the buffer (step 901), receives the completion of securing the buffer (step 902), and issues a DMA activation instruction (step 903). As a result, the data transfer from the main memory 220 to the transmission buffer 120 and the processes (A) to (D) described above (check code check) are performed in parallel with the data transfer (step 904). When these processes are completed, a completion report is input from the DMA control unit 211 to the microprogram control unit 130 (step 905), and the microprogram control unit 130 performs a DMA end process (step 906).

なお、ステップ803及び904の少なくともいずれかでは、必ずしもチェックコードの検査が行われなくても良い。換言すれば、チェックコードの検査を行うか否かは、マイクロプログラム制御部130からDMA制御部210(211)への指示で制御される。   Note that at least one of steps 803 and 904 does not necessarily require the check code to be inspected. In other words, whether or not to check the check code is controlled by an instruction from the microprogram control unit 130 to the DMA control unit 210 (211).

例えば、転送元からのデータブロックにチェックコードが付加されていない場合、マイクロプログラム制御部130は、送信元からのデータユニットを、第二のアライナ141又は143に入力しないように制御しても良い。   For example, when the check code is not added to the data block from the transfer source, the microprogram control unit 130 may control the data unit from the transmission source not to be input to the second aligner 141 or 143. .

また、例えば、転送元からのデータブロックにチェックコードが付加されていない場合、マイクロプログラム制御部130は、送信元からのデータユニットを、第二のアライナ141又は143に入力し、且つ、DIF回路151で生成されたチェックコードを第一のアライナ140又は142を経由したデータブロックに付加するようDMA制御部210又は211を制御しても良い。   Further, for example, when the check code is not added to the data block from the transfer source, the microprogram control unit 130 inputs the data unit from the transmission source to the second aligner 141 or 143, and the DIF circuit The DMA control unit 210 or 211 may be controlled to add the check code generated in 151 to the data block via the first aligner 140 or 142.

また、例えば、転送元からのデータブロックにチェックコードが付加されている場合、マイクロプログラム制御部130は、送信元からのデータユニットを、第二のアライナ141又は143に入力し、且つ、DIF回路151で検査されたチェックコードを転送対象のデータブロックから削除するようDMA制御部210又は211を制御しても良い。なお、このケースでは、DIF回路151でチェックコードの検査は行われなくても良い。
DIFチェックは不要ならしない。
Also, for example, when a check code is added to the data block from the transfer source, the microprogram control unit 130 inputs the data unit from the transmission source to the second aligner 141 or 143, and the DIF circuit The DMA control unit 210 or 211 may be controlled to delete the check code checked in 151 from the data block to be transferred. In this case, the DIF circuit 151 does not have to check the check code.
The DIF check is not unnecessary.

以上、本発明の好適な実施形態を説明したが、本発明は、この実施形態に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。   As mentioned above, although preferred embodiment of this invention was described, it cannot be overemphasized that this invention can be variously changed in the range which is not limited to this embodiment and does not deviate from the summary.

例えば、転送単位のサイズが入力データ幅のN倍(Nは自然数)であれば、データ転送のためのクロックサイクルは、上記(C)の処理(第二のアライナ141(143)によるアライン後のデータユニットがDIF回路150(151)の入力データ幅単位でDIF回路150(151)に入力される処理)のためのクロックサイクルの1/N倍である。このため、例えば、転送単位のサイズが入力データ幅の2倍であれば、データ転送のためのクロックサイクルは、上記(C)の処理のためのクロックサイクルの1/2倍である。一方、入力データ幅が前記転送単位のサイズのM倍(Mは自然数)であれば、上記(C)の処理のためのクロックサイクルは、データ転送のためのクロックサイクルの1/M倍である。このため、例えば、入力データ幅が転送単位のサイズの2倍であれば、上記(C)の処理のためのクロックサイクルは、データ転送のためのクロックサイクルの1/2倍である。   For example, if the size of the transfer unit is N times the input data width (N is a natural number), the clock cycle for data transfer is performed after the process (C) (after alignment by the second aligner 141 (143)). The data unit is 1 / N times the clock cycle for the input data width unit of the DIF circuit 150 (151) to the DIF circuit 150 (151). Therefore, for example, if the size of the transfer unit is twice the input data width, the clock cycle for data transfer is ½ times the clock cycle for the process (C). On the other hand, if the input data width is M times the size of the transfer unit (M is a natural number), the clock cycle for the process (C) is 1 / M times the clock cycle for data transfer. . Therefore, for example, if the input data width is twice the size of the transfer unit, the clock cycle for the process (C) is ½ times the clock cycle for data transfer.

本発明の一実施形態に係る情報処理装置を示す。1 shows an information processing apparatus according to an embodiment of the present invention. アラインされていないデータユニットの転送の例を示した図である。It is the figure which showed the example of transfer of the data unit which is not aligned. 図2のデータ転送において転送先に書き込む際にDIF回路にデータを入力する例を示した図である。FIG. 3 is a diagram showing an example of inputting data to a DIF circuit when writing to a transfer destination in the data transfer of FIG. 2. 本発明の一実施形態でDIF回路用のアラインを実施した場合のデータ転送の例を示した図である。It is the figure which showed the example of the data transfer at the time of implementing the alignment for DIF circuits in one Embodiment of this invention. 図4に示したアラインを実施した際のDIF計算を行う例を示した図である。It is the figure which showed the example which performs DIF calculation at the time of implementing the alignment shown in FIG. 図3に示したDIF計算に関わるハードウェア構成を示した図である。FIG. 4 is a diagram illustrating a hardware configuration related to the DIF calculation illustrated in FIG. 3. 図5に示したDIF計算に関わるハードウェア構成を示した図である。FIG. 6 is a diagram illustrating a hardware configuration related to the DIF calculation illustrated in FIG. 5. 受信バッファからメインメモリへのデータ転送フローを示した図である。It is the figure which showed the data transfer flow from a receiving buffer to main memory. メインメモリから送信バッファへのデータ転送フローを示した図である。It is the figure which showed the data transfer flow from the main memory to the transmission buffer. マイクロプログラム制御部がDIF計算を行なうDMACを備えた情報処理装置を示す。1 shows an information processing apparatus including a DMAC in which a microprogram control unit performs DIF calculation.

符号の説明Explanation of symbols

100・・・DMAC(ダイレクトメモリアクセスコントローラ)、110・・・受信バッファ、120・・・送信バッファ、130・・・マイクロプログラム制御部、140・・・アライナ、141・・・アライナ、142・・・アライナ、143・・・アライナ、150・・・DIF回路、151・・・DIF回路、152・・・DIF回路、200・・・外部記憶装置、300・・・情報処理装置、310・・・中央処理装置、320・・・メインメモリ DESCRIPTION OF SYMBOLS 100 ... DMAC (direct memory access controller), 110 ... Reception buffer, 120 ... Transmission buffer, 130 ... Microprogram control part, 140 ... Aligner, 141 ... Aligner, 142 ... Aligner 143 Aligner 150 DIF circuit 151 DIF circuit 152 DIF circuit 200 External storage device 300 Information processing device 310 Central processing unit, 320 ... main memory

Claims (6)

転送元から転送先へ所定の転送単位で転送されるデータユニットの転送経路とは別の位置に、入力されたデータユニットを処理するデータ処理回路と、このデータ処理回路用のアライナとを備え、
前記データ処理回路用のアライナは、アライン後のデータユニットの先頭部分に非転送対象のデータが含まれることが無いように、このアライナに入力されたデータユニットのアドレスをアラインするよう構成されており、
前記転送元から前記転送先へのデータ転送に並行して、
(A)前記データ処理回路用のアライナに、転送されるデータユニットが入力され、
(B)前記データ処理回路用のアライナに入力されたデータユニットにおけるデータのアドレスがアラインされ、
(C)前記データ処理回路用のアライナによるアライン後のデータユニットが前記データ処理回路の入力データ幅単位で前記データ処理回路に入力され、
(D)前記データ処理回路に入力されたアライン後のデータユニットが処理される、
データ転送処理装置。
A data processing circuit for processing the input data unit and an aligner for the data processing circuit are provided at a position different from the transfer path of the data unit transferred from the transfer source to the transfer destination in a predetermined transfer unit,
The aligner for the data processing circuit is configured to align the address of the data unit input to the aligner so that the non-transfer target data is not included in the head portion of the aligned data unit. ,
In parallel with the data transfer from the transfer source to the transfer destination,
(A) The data unit to be transferred is input to the aligner for the data processing circuit,
(B) The address of the data in the data unit input to the aligner for the data processing circuit is aligned,
(C) A data unit after alignment by the aligner for the data processing circuit is input to the data processing circuit in units of input data width of the data processing circuit;
(D) The aligned data unit input to the data processing circuit is processed.
Data transfer processing device.
前記転送経路上に、データ転送用のアライナが設けられており、
前記データ転送用のアライナと前記データ処理回路用のアライナとの両方に、アラインされていないデータユニットが所定の転送単位で入力され、
前記データ処理回路は、DIF(Data Integrity Field)回路であり、
前記DIF回路の入力データ幅は、固定長、且つ、前記固定長のデータブロックのサイズの約数であり、
前記転送単位のサイズが前記入力データ幅のN倍(Nは自然数)、或いは、前記入力データ幅が前記転送単位のサイズのM倍(Mは自然数)であり、
前記データ転送と、前記(A)乃至(D)の処理が、同時期に発せられたクロックに同期して行われ、
前記転送単位のサイズが前記入力データ幅のN倍の場合、前記データ転送のためのクロックサイクルは、前記(C)の処理のためのクロックサイクルの1/N倍であり、
前記入力データ幅が前記転送単位のサイズのM倍の場合、前記(C)の処理のためのクロックサイクルは、前記データ転送のためのクロックサイクルの1/M倍である、
請求項1記載のデータ転送処理装置。
An aligner for data transfer is provided on the transfer path,
An unaligned data unit is input in a predetermined transfer unit to both the data transfer aligner and the data processing circuit aligner,
The data processing circuit is a DIF (Data Integrity Field) circuit,
The input data width of the DIF circuit is a fixed length and a divisor of the size of the fixed length data block,
The size of the transfer unit is N times the input data width (N is a natural number), or the input data width is M times the size of the transfer unit (M is a natural number),
The data transfer and the processes (A) to (D) are performed in synchronization with a clock generated at the same time,
When the size of the transfer unit is N times the input data width, the clock cycle for the data transfer is 1 / N times the clock cycle for the processing of (C),
When the input data width is M times the size of the transfer unit, the clock cycle for the process (C) is 1 / M times the clock cycle for the data transfer.
The data transfer processing device according to claim 1.
前記データ転送処理装置は、外部記憶装置と通信するために情報処理装置に備えられるホストバスアダプタである、
請求項2記載のデータ転送処理装置。
The data transfer processing device is a host bus adapter provided in an information processing device for communicating with an external storage device.
The data transfer processing device according to claim 2.
前記データ処理回路は、固定長のデータブロックのサイズ毎に対応したチェックコードを生成するチェックコード生成回路であり、
前記チェックコード生成回路の入力データ幅は、固定長、且つ、前記固定長のデータブロックのサイズの約数である、
請求項1記載のデータ転送処理装置。
The data processing circuit is a check code generation circuit that generates a check code corresponding to each size of a fixed-length data block,
The input data width of the check code generation circuit is a fixed length, and is a divisor of the size of the fixed length data block.
The data transfer processing device according to claim 1.
転送元から転送先への所定の転送単位でのデータ転送に並行して、
(A)転送されるデータユニットをデータ処理回路用にアラインし、
(B)データ処理回路用にアラインされた後のデータユニットを、前記データ処理回路の入力データ幅単位で前記データ処理回路に入力し、
(C)前記データ処理回路が、入力されたアライン後のデータユニットを処理する、
データ転送処理方法。
In parallel with the data transfer in a predetermined transfer unit from the transfer source to the transfer destination,
(A) align the data unit to be transferred for the data processing circuit;
(B) The data unit after being aligned for the data processing circuit is input to the data processing circuit in units of input data width of the data processing circuit;
(C) The data processing circuit processes the input data unit after alignment.
Data transfer processing method.
CPU及びメモリを含んだ情報処理部と、
前記情報処理部が外部記憶装置と通信するための通信インタフェース装置と
を備え、
前記通信インタフェース装置が、前記外部記憶装置から読み出されたデータブロックが流れる読出し部と、前記外部記憶装置に書き込まれるデータブロックが流れる書込み部との少なくともいずれかにおいて、所定の転送単位で転送されるデータユニットが流れる経路とは別の位置に、入力されたデータユニットを処理するデータ処理回路と、このデータ処理回路用のアライナとを備え、
前記データ処理回路用のアライナは、アライン後のデータユニットの先頭部分に非転送対象のデータが含まれることが無いように、このアライナに入力されたデータユニットのアドレスをアラインするよう構成されており、
前記転送元から前記転送先へのデータ転送に並行して、
(A)前記データ処理回路用のアライナに、転送されるデータユニットが入力され、
(B)前記データ処理回路用のアライナに入力されたデータユニットにおけるデータのアドレスがアラインされ、
(C)前記データ処理回路用のアライナによるアライン後のデータユニットが前記データ処理回路の入力データ幅単位で前記データ処理回路に入力され、
(D)前記データ処理回路に入力されたアライン後のデータユニットが処理される、
情報処理装置。
An information processing unit including a CPU and a memory;
A communication interface device for the information processing unit to communicate with an external storage device;
The communication interface device transfers data in a predetermined transfer unit in at least one of a reading unit in which a data block read from the external storage device flows and a writing unit in which a data block written to the external storage device flows. A data processing circuit for processing the input data unit, and an aligner for the data processing circuit, at a position different from the path through which the data unit flows.
The aligner for the data processing circuit is configured to align the address of the data unit input to the aligner so that the non-transfer target data is not included in the head portion of the aligned data unit. ,
In parallel with the data transfer from the transfer source to the transfer destination,
(A) The data unit to be transferred is input to the aligner for the data processing circuit,
(B) The address of the data in the data unit input to the aligner for the data processing circuit is aligned,
(C) A data unit after alignment by the aligner for the data processing circuit is input to the data processing circuit in units of input data width of the data processing circuit;
(D) The aligned data unit input to the data processing circuit is processed.
Information processing device.
JP2008313917A 2008-12-10 2008-12-10 Data transfer processing apparatus and method Expired - Fee Related JP5107880B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008313917A JP5107880B2 (en) 2008-12-10 2008-12-10 Data transfer processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008313917A JP5107880B2 (en) 2008-12-10 2008-12-10 Data transfer processing apparatus and method

Publications (2)

Publication Number Publication Date
JP2010140127A true JP2010140127A (en) 2010-06-24
JP5107880B2 JP5107880B2 (en) 2012-12-26

Family

ID=42350237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008313917A Expired - Fee Related JP5107880B2 (en) 2008-12-10 2008-12-10 Data transfer processing apparatus and method

Country Status (1)

Country Link
JP (1) JP5107880B2 (en)

Cited By (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8055807B2 (en) 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8095847B2 (en) 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8140713B2 (en) 2006-10-10 2012-03-20 International Business Machines Corporation System and program products for facilitating input/output processing by using transport control words to reduce input/output communications
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8392619B2 (en) 2008-02-14 2013-03-05 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8495253B2 (en) 2008-02-14 2013-07-23 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8683083B2 (en) 2011-06-01 2014-03-25 International Business Machines Corporation Fibre channel input/output data routing system and method
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159075B (en) * 2019-12-31 2021-11-05 成都海光微电子技术有限公司 Data transmission method and data transmission device

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5977558A (en) * 1982-10-27 1984-05-04 Toshiba Corp Data transfer system
JPH05342090A (en) * 1992-06-11 1993-12-24 Fujitsu Ltd Data processor
JPH07210471A (en) * 1994-01-20 1995-08-11 Fujitsu Ltd Information processor
JP2002183072A (en) * 2000-12-13 2002-06-28 Hitachi Ltd Interface controller
JP2004094685A (en) * 2002-08-30 2004-03-25 Fuji Xerox Co Ltd Signal transmission system
JP2007188357A (en) * 2006-01-13 2007-07-26 Fujitsu Ltd Data transfer device

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5977558A (en) * 1982-10-27 1984-05-04 Toshiba Corp Data transfer system
JPH05342090A (en) * 1992-06-11 1993-12-24 Fujitsu Ltd Data processor
JPH07210471A (en) * 1994-01-20 1995-08-11 Fujitsu Ltd Information processor
JP2002183072A (en) * 2000-12-13 2002-06-28 Hitachi Ltd Interface controller
JP2004094685A (en) * 2002-08-30 2004-03-25 Fuji Xerox Co Ltd Signal transmission system
JP2007188357A (en) * 2006-01-13 2007-07-26 Fujitsu Ltd Data transfer device

Cited By (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8140713B2 (en) 2006-10-10 2012-03-20 International Business Machines Corporation System and program products for facilitating input/output processing by using transport control words to reduce input/output communications
US8478915B2 (en) 2008-02-14 2013-07-02 International Business Machines Corporation Determining extended capability of a channel path
US8108570B2 (en) 2008-02-14 2012-01-31 International Business Machines Corporation Determining the state of an I/O operation
US9330042B2 (en) 2008-02-14 2016-05-03 International Business Machines Corporation Determining extended capability of a channel path
US9298379B2 (en) 2008-02-14 2016-03-29 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8082481B2 (en) 2008-02-14 2011-12-20 International Business Machines Corporation Multiple CRC insertion in an output data stream
US8166206B2 (en) 2008-02-14 2012-04-24 International Business Machines Corporation Cancel instruction and command for determining the state of an I/O operation
US8176222B2 (en) 2008-02-14 2012-05-08 International Business Machines Corporation Early termination of an I/O operation in an I/O processing system
US8196149B2 (en) 2008-02-14 2012-06-05 International Business Machines Corporation Processing of data to determine compatability in an input/output processing system
US8214562B2 (en) 2008-02-14 2012-07-03 International Business Machines Corporation Processing of data to perform system changes in an input/output processing system
US9483433B2 (en) 2008-02-14 2016-11-01 International Business Machines Corporation Processing communication data in a ships passing condition
US8312189B2 (en) 2008-02-14 2012-11-13 International Business Machines Corporation Processing of data to monitor input/output operations
US9436272B2 (en) 2008-02-14 2016-09-06 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8838860B2 (en) 2008-02-14 2014-09-16 International Business Machines Corporation Determining extended capability of a channel path
US8095847B2 (en) 2008-02-14 2012-01-10 International Business Machines Corporation Exception condition handling at a channel subsystem in an I/O processing system
US8117347B2 (en) 2008-02-14 2012-02-14 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8392619B2 (en) 2008-02-14 2013-03-05 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US9052837B2 (en) 2008-02-14 2015-06-09 International Business Machines Corporation Processing communication data in a ships passing condition
US8806069B2 (en) 2008-02-14 2014-08-12 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US8495253B2 (en) 2008-02-14 2013-07-23 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8516161B2 (en) 2008-02-14 2013-08-20 International Business Machines Corporation Providing indirect data addressing for a control block at a channel subsystem of an I/O processing system
US9043494B2 (en) 2008-02-14 2015-05-26 International Business Machines Corporation Providing indirect data addressing in an input/output processing system where the indirect data address list is non-contiguous
US8892781B2 (en) 2008-02-14 2014-11-18 International Business Machines Corporation Bi-directional data transfer within a single I/O operation
US8977793B2 (en) 2008-02-14 2015-03-10 International Business Machines Corporation Determining extended capability of a channel path
US8055807B2 (en) 2008-07-31 2011-11-08 International Business Machines Corporation Transport control channel program chain linking including determining sequence order
US8972615B2 (en) 2009-11-12 2015-03-03 International Business Machines Corporation Communication with input/output system devices
US8332542B2 (en) 2009-11-12 2012-12-11 International Business Machines Corporation Communication with input/output system devices
US8583988B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US9021155B2 (en) 2011-06-01 2015-04-28 International Business Machines Corporation Fibre channel input/output data routing including discarding of data transfer requests in response to error detection
US8769253B2 (en) 2011-06-01 2014-07-01 International Business Machines Corporation Fibre channel input/output data routing system and method
US8683084B2 (en) 2011-06-01 2014-03-25 International Business Machines Corporation Fibre channel input/output data routing system and method
US8683083B2 (en) 2011-06-01 2014-03-25 International Business Machines Corporation Fibre channel input/output data routing system and method
US8677027B2 (en) 2011-06-01 2014-03-18 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364853B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8364854B2 (en) 2011-06-01 2013-01-29 International Business Machines Corporation Fibre channel input/output data routing system and method
US8583989B2 (en) 2011-06-01 2013-11-12 International Business Machines Corporation Fibre channel input/output data routing system and method
US8738811B2 (en) 2011-06-01 2014-05-27 International Business Machines Corporation Fibre channel input/output data routing system and method
US8346978B1 (en) 2011-06-30 2013-01-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8549185B2 (en) 2011-06-30 2013-10-01 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8473641B2 (en) 2011-06-30 2013-06-25 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8312176B1 (en) 2011-06-30 2012-11-13 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8631175B2 (en) 2011-06-30 2014-01-14 International Business Machines Corporation Facilitating transport mode input/output operations between a channel subsystem and input/output devices
US8918542B2 (en) 2013-03-15 2014-12-23 International Business Machines Corporation Facilitating transport mode data transfer between a channel subsystem and input/output devices
US8990439B2 (en) 2013-05-29 2015-03-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices
US9195394B2 (en) 2013-05-29 2015-11-24 International Business Machines Corporation Transport mode data transfer between a channel subsystem and input/output devices

Also Published As

Publication number Publication date
JP5107880B2 (en) 2012-12-26

Similar Documents

Publication Publication Date Title
JP5107880B2 (en) Data transfer processing apparatus and method
EP3542276B1 (en) Flow control in remote direct memory access data communications with mirroring of ring buffers
CN106575206B (en) Memory write management in a computer system
TWI430085B (en) Method, integrated circuit, and system for efficient in-band reliability with separate cyclic redundancy code frames and dynamic random access memory device
JP5010271B2 (en) Error correction code generation method and memory control device
US20070271468A1 (en) Method and Apparatus for Maintaining Data Integrity When Switching Between Different Data Protection Methods
US20050289253A1 (en) Apparatus and method for a multi-function direct memory access core
JP2013137708A (en) Memory controller, data storage device, and memory control method
US20160092123A1 (en) Memory write management in a computer system
US6496878B1 (en) Transfer progress alert module
JP2005078596A (en) Control method for data transfer device, data transfer device, channel controller, and storage device controller
JP2008217214A (en) Computer system and host computer
US9753876B1 (en) Processing of inbound back-to-back completions in a communication system
JP4839364B2 (en) Combined command and data code
US8291270B2 (en) Request processing device, request processing system, and access testing method
US7213180B2 (en) Bus bridge circuit, bus connection system, and data error notification method for bus bridge circuit
US10277533B2 (en) Cut-through bridge error isolation
US8589735B2 (en) Creating randomly ordered fields while maintaining the temporal ordering based on the value of the fields
US12105658B2 (en) Intra-chip and inter-chip data protection
JP2008033657A (en) Memory control device, information processor and memory control method
JP2007179084A (en) Disk device, and method of transferring data written in disk
CN113454611A (en) Method for verifying the integrity of address and control signals in functional security applications, related products, and related products
JP2007080183A (en) Data processor and its control method
JP2006065394A (en) Failure detection device
WO2016151774A1 (en) Information processing device, information processing system, and control program of information processing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101006

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120313

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120403

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120601

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: 20121002

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121004

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20151012

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees