Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5223629B2 - Storage device and storage system - Google Patents
[go: Go Back, main page]

JP5223629B2 - Storage device and storage system - Google Patents

Storage device and storage system Download PDF

Info

Publication number
JP5223629B2
JP5223629B2 JP2008304777A JP2008304777A JP5223629B2 JP 5223629 B2 JP5223629 B2 JP 5223629B2 JP 2008304777 A JP2008304777 A JP 2008304777A JP 2008304777 A JP2008304777 A JP 2008304777A JP 5223629 B2 JP5223629 B2 JP 5223629B2
Authority
JP
Japan
Prior art keywords
data
unit
control unit
storage
parity
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.)
Expired - Fee Related
Application number
JP2008304777A
Other languages
Japanese (ja)
Other versions
JP2010128940A (en
Inventor
勉 浜田
忍 小関
久佳 森
岳洋 新津
純二 岡田
勝 木島
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.)
Fujifilm Business Innovation Corp
Original Assignee
Fuji Xerox Co Ltd
Fujifilm Business Innovation Corp
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 Fuji Xerox Co Ltd, Fujifilm Business Innovation Corp filed Critical Fuji Xerox Co Ltd
Priority to JP2008304777A priority Critical patent/JP5223629B2/en
Publication of JP2010128940A publication Critical patent/JP2010128940A/en
Application granted granted Critical
Publication of JP5223629B2 publication Critical patent/JP5223629B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、記憶装置及び記憶システムに関する。   The present invention relates to a storage device and a storage system.

従来、入力されたデータのパリティを演算し、そのデータ及びパリティを異なる記憶手段に記憶させるディスクアレイ装置が知られている(例えば、特許文献1参照)。   2. Description of the Related Art Conventionally, a disk array device is known that calculates the parity of input data and stores the data and parity in different storage means (see, for example, Patent Document 1).

このディスクアレイ装置は、入力されたデータを受信して一旦記憶すると共に、記憶したデータをデータ伝送手段に入力する複数のメモリと、複数のメモリの各々に対となるように設けられ、対となるメモリが記憶したデータと同一のデータからエラー訂正情報を生成すると共に、生成したエラー訂正情報をデータ伝送手段に入力する複数のエラー訂正情報生成手段と、メモリからのデータ、及び該メモリと対となるエラー訂正情報生成手段からのエラー訂正情報をデータ伝送手段を介して受信し、メモリからのデータ、及び該メモリと対となるエラー訂正情報生成手段からのエラー訂正情報をそれぞれ異なる記憶手段に振り分けて記憶させる記憶制御手段とを備える。   The disk array device is provided to receive and temporarily store input data, and to provide a plurality of memories for inputting the stored data to the data transmission means, and to be paired with each of the plurality of memories. The error correction information is generated from the same data as the data stored in the memory, and a plurality of error correction information generation means for inputting the generated error correction information to the data transmission means, the data from the memory, and the memory The error correction information from the error correction information generating means is received via the data transmission means, and the data from the memory and the error correction information from the error correction information generating means paired with the memory are stored in different storage means. Storage control means for sorting and storing.

また、一般的にRAID5を採用する記憶装置では、データの書き込み時に記憶済みのパリティ及びデータを読み出し、その読み出したパリティ及びデータに基づいてパリティの演算を行ってからデータを書き込む必要があるため、書き込み速度が遅くなる。
特開2001−337759号公報
In addition, in a storage device that employs RAID 5 in general, it is necessary to read stored parity and data at the time of data writing, and write data after performing parity calculation based on the read parity and data. Writing speed becomes slow.
JP 2001-337759 A

本発明の目的は、本構成を有していない場合に比較して、上位装置に負荷をかけることなく、データの書き込み速度を向上することができる記憶装置及び記憶システムを提供することにある。   An object of the present invention is to provide a storage device and a storage system capable of improving the data writing speed without imposing a load on the host device as compared with the case where the present configuration is not provided.

本発明は、上記目的を達成するため、以下の記憶装置及び記憶システムを提供する。   In order to achieve the above object, the present invention provides the following storage device and storage system.

[1]上位装置との間でデータの送受信を行う第1の制御部と、前記第1の制御部から下り方向にデータの一括伝送が可能な光伝送路を介して前記第1の制御部に接続された複数の第2の制御部と、前記複数の第2の制御部に各々接続され、前記データを記憶する複数の記憶部とを備え、前記第1の制御部は、前記上位装置から受信したデータをデータ列に分割し、前記データ列を前記複数の第2の制御部に前記光伝送路を介して一括伝送し、前記複数の第2の制御部は、前記第1の制御部から一括伝送された前記データ列を受信したとき、前記データ列に基づいてパリティ情報を算出するパリティ算出部と、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に前記記憶部にパリティ情報を書き込むか否かを決定する決定部とを有し、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されたとき、前記パリティ算出部により算出されたパリティ情報を対応する前記記憶部に書き込み、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されなかったとき、前記データ列を対応する前記記憶部に書き込む記憶装置。 [1] A first control unit that transmits and receives data to and from a higher-level device, and the first control unit via an optical transmission line that allows collective transmission of data in the downstream direction from the first control unit. A plurality of second control units connected to the plurality of second control units, and a plurality of storage units connected to the plurality of second control units and storing the data, wherein the first control unit The data received from is divided into data strings, and the data strings are collectively transmitted to the plurality of second control units via the optical transmission path, and the plurality of second control units are configured to perform the first control. A parity calculation unit that calculates parity information based on the data sequence and at least one second control unit writes the parity information in the corresponding storage unit As shown in FIG. A determination unit that determines whether or not to write information, and when the determination unit determines to write parity information to the storage unit, the storage unit corresponding to the parity information calculated by the parity calculation unit A storage device that writes the data string to the corresponding storage unit when it is not determined that the parity information is written to the storage unit by the determination unit.

[2]前記決定部は、前記データ列に含まれる情報に基づいて、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に決定する前記[1]に記載の記憶装置。 [2] The determination unit determines, for each data string, based on information included in the data string, so that at least one second control unit writes the parity information in the corresponding storage unit . 1].

[3]前記決定部は、前記データ列の書き込み先として指定された番地情報に基づいて、少なくとも1つの第2の制御部が前記パリティ情報を書き込むように前記データ列毎に決定する前記[1]に記載の記憶装置。 [3] The determination unit determines, for each data string, at least one second control unit to write the parity information based on address information specified as a write destination of the data string. ] The memory | storage device as described in.

[4]前記第1の制御部は、前記複数の第2の制御部から前記複数の記憶部に記憶された前記パリティ情報及び前記データ列を受信したとき、前記パリティ情報を用いて前記データ列の誤り検出を行う前記[1]に記載の記憶装置。 [4] When the first control unit receives the parity information and the data sequence stored in the plurality of storage units from the plurality of second control units, the first control unit uses the parity information to generate the data sequence. The storage device according to [1], wherein error detection is performed.

[5]前記第1の制御部は、前記複数の分割データのうち誤りのある分割データを検出する検出手段を有し、前記検出手段により前記誤りのある分割データを検出した場合には、前記パリティ情報及び誤りのない分割データを用いて前記誤りのある分割データの誤り訂正を行う請求項1に記載の記憶装置。 [5] The first control unit has detection means for detecting divided data having errors among the plurality of divided data, and when the detected divided data is detected by the detecting means, The storage device according to claim 1, wherein error correction is performed on the erroneous divided data by using parity information and error-free divided data.

[6]さらに、前記複数の記憶部と、前記複数の記憶部に各々接続された前記複数の第2の制御部とを対にして電源をそれぞれ供給する複数の電源供給部を備えた前記[1]に記載の記憶装置。 [6] The above apparatus further includes a plurality of power supply units that respectively supply power by pairing the plurality of storage units and the plurality of second control units connected to the plurality of storage units. 1].

[7]上位装置と、前記上位装置との間でデータの送受信を行う第1の制御部、前記第1の制御部から下り方向にデータの一括伝送が可能な光伝送路を介して前記第1の制御部に接続された複数の第2の制御部、及び前記複数の第2の制御部に各々接続され、前記データを記憶する複数の記憶部とを有し、前記第1の制御部は、前記上位装置から受信したデータをデータ列に分割し、前記データ列を前記複数の第2の制御部に前記光伝送路を介して一括伝送し、前記複数の第2の制御部は、前記第1の制御部から一括伝送された前記データ列を受信したとき、前記データ列に基づいてパリティ情報を算出するパリティ算出部と、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に前記記憶部にパリティ情報を書き込むか否かを決定する決定部とを有し、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されたとき、前記パリティ算出部により算出されたパリティ情報を対応する前記記憶部に書き込み、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されなかったとき、前記データ列を対応する前記複数の記憶部に書き込む記憶装置とを備えた記憶システム。 [7] A first control unit that transmits and receives data between the host device and the host device, and the first control unit via the optical transmission path capable of batch transmission of data in the downstream direction from the first control unit. A plurality of second control units connected to one control unit, and a plurality of storage units connected to the plurality of second control units, respectively, for storing the data, the first control unit Divides the data received from the higher-level device into data strings, and transmits the data strings to the plurality of second control units through the optical transmission line, and the plurality of second control units includes: When the data sequence transmitted in batch from the first control unit is received, a parity calculation unit that calculates parity information based on the data sequence and at least one second control unit correspond to the parity information. For each data string, the data is written in the storage unit. A determination unit that determines whether or not to write parity information in the storage unit, and corresponds to the parity information calculated by the parity calculation unit when the determination unit determines to write the parity information to the storage unit. And a storage device that writes the data string to the corresponding storage units when it is not determined to write parity information to the storage unit by the determination unit .

請求項1,7に係る発明によれば、本構成を有していない場合に比較して、上位装置に負荷をかけることなく、データの書き込み速度を向上することができる。   According to the first and seventh aspects of the invention, the data writing speed can be improved without imposing a load on the host device, as compared with the case where the present configuration is not provided.

請求項2に係る発明によれば、パリティ情報を分散して記憶部に記憶することができる。   According to the invention of claim 2, parity information can be distributed and stored in the storage unit.

請求項3に係る発明によれば、本構成を有していない場合に比較して、複数の第2の制御部を簡便な構成で実現することができる。   According to the invention which concerns on Claim 3, compared with the case where it does not have this structure, a some 2nd control part is realizable with a simple structure.

請求項4に係る発明によれば、本構成を有していない場合に比較して、誤り検出に伴う上位装置の負荷を低減することができる。   According to the invention which concerns on Claim 4, compared with the case where it does not have this structure, the load of the high-order apparatus accompanying an error detection can be reduced.

請求項5に係る発明によれば、パリティ情報により分割データの誤り訂正を可能にすることができる。   According to the invention which concerns on Claim 5, the error correction of division | segmentation data can be enabled by parity information.

請求項6に係る発明によれば、1つの電源供給部が故障した場合でも、他の記憶部に記憶されたデータから元のデータを復元することができる。   According to the invention which concerns on Claim 6, even when one power supply part fails, the original data can be decompress | restored from the data memorize | stored in the other memory | storage part.

本実施の形態に係る記憶装置は、上位装置との間でデータの送受信を行う第1の制御部と、前記第1の制御部から下り方向にデータの一括伝送が可能な光伝送路を介して前記第1の制御部に接続された複数の第2の制御部と、前記複数の第2の制御部に各々接続され、前記データを記憶する複数の記憶部とを備え、前記第1の制御部は、前記上位装置から受信したデータをデータ列に分割し、前記データ列を前記複数の第2の制御部に前記光伝送路を介して一括伝送し、前記複数の第2の制御部は、前記第1の制御部から一括伝送された前記データ列を受信したとき、前記データ列に基づいてパリティ情報を算出するパリティ算出部と、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に前記記憶部にパリティ情報を書き込むか否かを決定する決定部とを有し、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されたとき、前記パリティ算出部により算出されたパリティ情報を対応する前記記憶部に書き込み、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されなかったとき、前記データ列を対応する前記複数の記憶部に書き込む。 The storage device according to the present embodiment includes a first control unit that transmits and receives data to and from a higher-level device, and an optical transmission path that can perform batch transmission of data from the first control unit in the downlink direction. A plurality of second control units connected to the first control unit, and a plurality of storage units respectively connected to the plurality of second control units and storing the data , The control unit divides the data received from the higher-level device into data strings, and transmits the data string to the plurality of second control units through the optical transmission line, and the plurality of second control units A parity calculation unit that calculates parity information based on the data sequence when receiving the data sequence that is collectively transmitted from the first control unit, and at least one second control unit receives the parity information. The data string to be written to the corresponding storage unit The parity information calculated by the parity calculation unit when the determination unit determines to write the parity information to the storage unit. Is written in the corresponding storage unit, and when the determination unit does not determine that the parity information is written in the storage unit, the data string is written in the corresponding storage unit.

上記構成において、複数の第2の制御部の各々は、光伝送路を介して一括伝送されたデータ列を受信すると、パリティ及びデータのいずれかを選択し、自己に接続された記憶部に並列的に書き込む。すなわち、パリティの算出、データの選択、パリティ又はデータの記憶部への書き込み等の処理が、データ列の受信側である複数の第2の制御部によって並列的に行われる。また、第2の制御部によりパリティが算出されるので、上位装置でパリティを算出する必要がなく、上位装置の負荷が低減される。   In the above configuration, when each of the plurality of second control units receives a data string that is collectively transmitted via the optical transmission path, it selects either parity or data and is parallel to the storage unit connected to itself. To write. That is, processing such as calculation of parity, selection of data, and writing of parity or data to the storage unit is performed in parallel by a plurality of second control units on the data string receiving side. Further, since the parity is calculated by the second control unit, it is not necessary to calculate the parity in the host device, and the load on the host device is reduced.

[第1の実施の形態]
図1は、本発明の第1の実施の形態に係る記憶システムの概略構成の一例を示すブロック図である。この記憶システム100は、記憶装置1がホスト装置(上位装置)2に接続されて構成されている。
[First Embodiment]
FIG. 1 is a block diagram showing an example of a schematic configuration of a storage system according to the first embodiment of the present invention. The storage system 100 is configured by connecting a storage device 1 to a host device (higher level device) 2.

(ホスト装置)
ホスト装置2は、データの書き込みや読み出し等を記憶装置1に要求する。このようなホスト装置2は、例えば、サーバ、コンピュータ(PC)、ワークステーション(WS)等で構成されている。
(Host device)
The host device 2 requests the storage device 1 to write or read data. Such a host device 2 includes, for example, a server, a computer (PC), a workstation (WS), and the like.

ホスト装置2は、ケーブル101を介して記憶装置1に接続されており、ホスト装置2と記憶装置1との間は、例えば、シリアルATA、SAS、ファイバーチャネル、インフィニバンド、PCI Express、IDE、SCSI等のインターフェース規格に則っている。なお、ケーブル101は、光線路でもよいし、電気線路でもよい。また、ホスト装置2は、ローカルエリアネットワーク(LAN)やインターネット等の通信網に接続されるポートを備え、そのポートを介して他のホスト装置や端末装置に接続されていてもよい。   The host device 2 is connected to the storage device 1 via the cable 101. Between the host device 2 and the storage device 1, for example, serial ATA, SAS, Fiber Channel, InfiniBand, PCI Express, IDE, SCSI It conforms to interface standards such as. The cable 101 may be an optical line or an electric line. The host device 2 may include a port connected to a communication network such as a local area network (LAN) or the Internet, and may be connected to another host device or terminal device via the port.

(記憶装置)
記憶装置1は、ホスト装置2との間でデータの送受信を行うホストブリッジ部(第1の制御部)11と、ホストブリッジ部11に後述する光分岐伝送路15及び光合波伝送路17等を介して接続された第1乃至第5のメモリコントローラ(第2の制御部)12A〜12Eと、第1乃至第5のメモリコントローラ12A〜12Eの各々に接続されて、512バイト等の所定のサイズを有するブロックデータ(データ列)単位でデータの書き込み及び読み出しが行われる第1乃至第5のメモリ(記憶部)13A〜13Eとを備える。
(Storage device)
The storage device 1 includes a host bridge unit (first control unit) 11 that transmits and receives data to and from the host device 2, and an optical branching transmission line 15 and an optical multiplexing transmission line 17 that are described later in the host bridge unit 11. Connected to each of the first to fifth memory controllers (second control units) 12A to 12E and the first to fifth memory controllers 12A to 12E connected to each other through a predetermined size such as 512 bytes. And first to fifth memories (storage units) 13A to 13E in which data is written and read in units of block data (data string).

また、記憶装置1は、ホストブリッジ部11から送られるデータとしての電気信号を光信号に変換するE/O14と、E/O14からの光信号を分岐して下り方向に一括伝送する光分岐伝送路15と、光分岐伝送路15により伝送された光信号を電気信号にそれぞれ変換し、その電気信号をデータとして第1乃至第5のメモリコントローラ12A〜12Eにそれぞれ送るO/E16A〜16Eと、第1乃至第5のメモリコントローラ12A〜12Eからそれぞれ送られるデータとしての電気信号を光信号に変換するE/O14A〜14Eと、E/O14A〜14Eからの複数の光信号を1つの光信号に合波して上り方向に一括伝送する光合波伝送路17と、光合波伝送路17により伝送された光信号を電気信号に変換し、その電気信号をデータとしてホストブリッジ部11に送るO/E16とを備える。   The storage device 1 also converts an electrical signal as data sent from the host bridge unit 11 into an optical signal, and an optical branch transmission that branches the optical signal from the E / O 14 and transmits the optical signal collectively in the downstream direction. O / E 16A to 16E which respectively convert the optical signal transmitted by the path 15 and the optical branch transmission path 15 into an electrical signal and send the electrical signal to the first to fifth memory controllers 12A to 12E as data, E / Os 14A to 14E that convert electrical signals as data sent from the first to fifth memory controllers 12A to 12E, respectively, and a plurality of optical signals from the E / Os 14A to 14E into one optical signal. An optical multiplexing transmission line 17 that multiplexes and transmits in the upstream direction, and an optical signal transmitted through the optical multiplexing transmission line 17 is converted into an electric signal, and the electric signal is converted into data. And an O / E16 to send to the host bridge 11 as.

(E/O)
E/O14,14A〜14Eは、例えば、半導体レーザや発光ダイオード等により実現された発光素子と、発光素子を駆動する駆動回路とを備える。
(E / O)
The E / O 14, 14A to 14E include, for example, a light emitting element realized by a semiconductor laser, a light emitting diode, or the like, and a drive circuit that drives the light emitting element.

(O/E)
O/E16,16A〜16Eは、半導体フォトダイオード等により実現された受光素子と、受光素子により受光した光信号から変換さされた電流を増幅する増幅回路とを備える。
(O / E)
Each of the O / Es 16 and 16A to 16E includes a light receiving element realized by a semiconductor photodiode or the like and an amplifier circuit that amplifies a current converted from an optical signal received by the light receiving element.

(光分岐伝送路)
光分岐伝送路15は、E/O14からの光信号を伝送する光ファイバ150Aと、光ファイバ150Aから入射された1つの光信号を5つの光信号に分岐する光分岐部151と、光分岐部151により分岐された5つの光信号をO/E16A〜16Eにそれぞれ伝送する光ファイバ150Bとから構成されている。
(Optical branch transmission line)
The optical branching transmission line 15 includes an optical fiber 150A for transmitting an optical signal from the E / O 14, an optical branching unit 151 for branching one optical signal incident from the optical fiber 150A into five optical signals, and an optical branching unit. The optical fiber 150B transmits the five optical signals branched by 151 to the O / Es 16A to 16E, respectively.

光分岐部151は、例えば、シート状光導波路(光シートバス)、光カプラ等により構成されている。シート状光導波路は、厚さが一様のシート状の透明媒質からなり、例えば、ポリメチルメタクリレート,ポリカーボネート,アモルファスポリオレフィン等のプラスチック材料や、無機ガラス等から形成されている。シート状光導波路は、光ファイバ150Aより入射された光を均一に拡散させて、5つの光ファイバ150Bに出射する。   The optical branching unit 151 is configured by, for example, a sheet-like optical waveguide (optical sheet bus), an optical coupler, and the like. The sheet-like optical waveguide is made of a sheet-like transparent medium having a uniform thickness, and is made of, for example, a plastic material such as polymethyl methacrylate, polycarbonate, amorphous polyolefin, or inorganic glass. The sheet-like optical waveguide uniformly diffuses the light incident from the optical fiber 150A and emits it to the five optical fibers 150B.

(光合波伝送路)
光合波伝送路17は、E/O14A〜14Eからの5つの光信号をそれぞれ伝送する光ファイバ170Aと、光ファイバ170Aから入射された5つの光信号を1つの光信号に合波する光合波部171と、光合波部171により合波された1つの光信号をO/E16に伝送する光ファイバ170Bとから構成されている。
(Optical multiplexing transmission line)
The optical multiplexing transmission path 17 includes an optical fiber 170A that transmits five optical signals from the E / Os 14A to 14E, and an optical multiplexing unit that combines the five optical signals incident from the optical fiber 170A into one optical signal. 171 and an optical fiber 170B that transmits one optical signal multiplexed by the optical multiplexing unit 171 to the O / E 16.

光合波部171は、光分岐部151の入射側と出射側を入れ替えたものであり、光分岐部151と同様に構成されている。   The optical multiplexing unit 171 is obtained by switching the incident side and the emission side of the optical branching unit 151, and is configured in the same manner as the optical branching unit 151.

(メモリ)
第1乃至第5のメモリ13A〜13Eは、第1乃至第5のメモリコントローラ12A〜12Eを介してデータの書き込み及び読み出しが行われる記憶部である。このメモリ13A〜13Eには、例えば、DRAM等の揮発性の半導体メモリ、又はフラッシュメモリ等の不揮発性の半導体メモリが用いられる。また、第1乃至第5のメモリ13A〜13Eには、図示しない電源供給部より駆動電圧が供給されている。
(memory)
The first to fifth memories 13A to 13E are storage units in which data is written and read via the first to fifth memory controllers 12A to 12E. For the memories 13A to 13E, for example, a volatile semiconductor memory such as a DRAM or a nonvolatile semiconductor memory such as a flash memory is used. The first to fifth memories 13A to 13E are supplied with a driving voltage from a power supply unit (not shown).

なお、メモリ13A〜13Eには、磁気によるハードディスクを用いてよいし、DVD等の光ディスクを用いてもよいし、他の記憶方式を用いてもよい。メモリ13A〜13Eとして半導体メモリを用いた場合には、ハードディスク等に比べてアクセス速度、故障耐性、消費電力等の面で有利である。   The memories 13A to 13E may be magnetic hard disks, optical disks such as DVDs, or other storage methods. When a semiconductor memory is used as the memories 13A to 13E, it is advantageous in terms of access speed, fault tolerance, power consumption, etc., compared to a hard disk or the like.

(ホストブリッジ部)
図2は、ホストブリッジ部の概略構成の一例を示すブロック図である。このホストブリッジ部11は、ホスト装置2に接続されて、ホスト装置2からの要求を受け付けるホストI/F(インターフェース)部110と、下り方向に順に設けられたパケットエンコーダ111、8B10Bエンコーダ112、ECCエンコーダ113及びトランスミッタ114と、上り方向に順に設けられたレシーバ115、ECCデコーダ116、8B10Bデコーダ117及びパケットデコーダ118とを備える。
(Host bridge part)
FIG. 2 is a block diagram illustrating an example of a schematic configuration of the host bridge unit. The host bridge unit 11 is connected to the host device 2 and receives a request from the host device 2. The host I / F (interface) unit 110, packet encoders 111, 8B10B encoders 112, ECC, It includes an encoder 113 and a transmitter 114, and a receiver 115, an ECC decoder 116, an 8B10B decoder 117, and a packet decoder 118 that are provided in order in the upstream direction.

ホストブリッジ部11は、論理回路プログラムにより内部の論理回路を再構成可能な、例えば、FPGA(Field Programmable Gate Array)等から構成されている。   The host bridge unit 11 is configured by, for example, an FPGA (Field Programmable Gate Array) that can reconfigure an internal logic circuit by a logic circuit program.

パケットエンコーダ111は、ホストI/F部110を介して受け付けたホスト装置2からの要求に応じて、下り方向に送信するパケットを生成する。ホスト装置2からの要求が書き込み要求の場合には、パケットは、例えば、書き込み先アドレスを含むヘッダと、ブロックデータ(データ列)とからなる。また、ホスト装置2からの要求が読み出し要求の場合には、パケットは、例えば、読み出し先アドレスを含むヘッダと、ダミーデータとからなる。   The packet encoder 111 generates a packet to be transmitted in the downlink direction in response to a request from the host apparatus 2 received via the host I / F unit 110. When the request from the host device 2 is a write request, the packet includes, for example, a header including a write destination address and block data (data string). When the request from the host device 2 is a read request, the packet is composed of, for example, a header including a read destination address and dummy data.

8B10Bエンコーダ112は、パケットエンコーダ111により生成されたパケットを予め定められたサイズで分割し、複数の固定長フレームを生成する。そして、8B10Bエンコーダ112は、各固定長フレームに対して8B10B変換によるエンコード処理(DCバランス変換)を行う。なお、8B10Bの他に、4B5B変換、64B66B変換等のDCバランス変換を用いてもよい。   The 8B10B encoder 112 divides the packet generated by the packet encoder 111 with a predetermined size, and generates a plurality of fixed-length frames. Then, the 8B10B encoder 112 performs an encoding process (DC balance conversion) by 8B10B conversion on each fixed-length frame. In addition to 8B10B, DC balance conversion such as 4B5B conversion and 64B66B conversion may be used.

ECCエンコーダ113は、エンコード処理が行われた固定長フレームに基づいて誤り訂正符号(Error Correcting Code、以下「ECC」と略す。)を算出し、そのECCを固定長フレームに付加することにより、ECCフレームを生成する。ECCとしては、例えば、ハミング符号、マンチェスタ符号、リードソロモン符号等の各種の誤り訂正符号を用いることができる。   The ECC encoder 113 calculates an error correcting code (Error Correcting Code, hereinafter abbreviated as “ECC”) based on the fixed-length frame on which the encoding process has been performed, and adds the ECC to the fixed-length frame to thereby generate the ECC. Generate a frame. As the ECC, for example, various error correction codes such as a Hamming code, a Manchester code, and a Reed-Solomon code can be used.

トランスミッタ114は、パラレルデータとしてのECCフレームをシリアルデータに変換し、E/O14に出力する。   The transmitter 114 converts the ECC frame as parallel data into serial data and outputs the serial data to the E / O 14.

レシーバ115は、O/E16から送られたシリアルデータとしてのECCフレームをパラレルデータに変換し、ECCデコーダ116に出力する。   The receiver 115 converts the ECC frame as serial data sent from the O / E 16 into parallel data and outputs the parallel data to the ECC decoder 116.

ECCデコーダ116は、ECCフレーム内のECCに基づいて、ECCフレーム内の固定長フレームのエラー検出/訂正処理を行う検出手段として機能する。ECCデコーダ116は、エラー検出/訂正処理により訂正不可能なエラー、すなわち、2ビット以上のエラーを検出した場合には、そのエラー位置を示す誤りフレーム位置情報をパケットデコーダ118に送信する。   The ECC decoder 116 functions as a detection unit that performs error detection / correction processing of a fixed-length frame in an ECC frame based on the ECC in the ECC frame. When the ECC decoder 116 detects an error that cannot be corrected by the error detection / correction process, that is, an error of 2 bits or more, the ECC decoder 116 transmits error frame position information indicating the error position to the packet decoder 118.

8B10Bデコーダ117は、エラー検出/訂正処理が行われた固定長フレームに対して、8B10B変換によるデコード処理を行う。また、8B10Bデコーダは、デコード処理により8B10B変換の変換規則にないデータが固定長フレームに存在する等のエラーを検出する検出手段として機能し、エラーを検出した場合には、ECCデコーダ116と同様に誤りフレーム位置情報をパケットデコーダ118に送信する。   The 8B10B decoder 117 performs a decoding process by 8B10B conversion on the fixed-length frame on which the error detection / correction process has been performed. In addition, the 8B10B decoder functions as a detection unit that detects errors such as the presence of data that is not in the conversion rule of the 8B10B conversion in a fixed-length frame by decoding processing. The error frame position information is transmitted to the packet decoder 118.

パケットデコーダ118は、デコード処理が行われた複数の固定長フレームから1つのパケットを復元する。また、パケットデコーダ118は、そのパケット内のパリティに基づいて、そのパケット内のブロックデータを構成する複数の分割データの誤り検出を行うパリティチェック部118aを備える。   The packet decoder 118 restores one packet from a plurality of fixed-length frames that have been decoded. Further, the packet decoder 118 includes a parity check unit 118a that performs error detection of a plurality of divided data constituting the block data in the packet based on the parity in the packet.

パリティチェック部118aは、ECCデコーダ116又は8B10Bデコーダ117から誤りフレーム位置情報を受信した場合には、その誤りフレーム位置情報が示すエラー位置を含む分割データ(誤りのある分割データ)に対して、パリティ及び誤りのない他の分割データを用いて誤り訂正を行う。なお、ECCデコーダ116及び8B10Bデコーダ117は、パケットデコーダ118に誤りフレーム位置情報を送信しない構成としてもよく、その場合には、パリティチェック部118aは、分割データの誤り検出のみを行うこととなる。   When the parity check unit 118a receives error frame position information from the ECC decoder 116 or the 8B10B decoder 117, the parity check unit 118a applies parity to the divided data (errored divided data) including the error position indicated by the error frame position information. In addition, error correction is performed using other divided data having no error. The ECC decoder 116 and the 8B10B decoder 117 may not be configured to transmit error frame position information to the packet decoder 118. In this case, the parity check unit 118a only performs error detection on the divided data.

(メモリコントローラ)
図3は、メモリコントローラの概略構成の一例を示すブロック図である。この第1のメモリコントローラ12Aは、第1のメモリ13Aに接続されたメモリI/F部120と、上り方向に順に設けられたパケットエンコーダ121、8B10Bエンコーダ122、ECCエンコーダ123及びトランスミッタ124と、下り方向に順に設けられたレシーバ125、ECCデコーダ126、8B10Bデコーダ127及びパケットデコーダ128とを備える。
(Memory controller)
FIG. 3 is a block diagram illustrating an example of a schematic configuration of the memory controller. The first memory controller 12A includes a memory I / F unit 120 connected to the first memory 13A, a packet encoder 121, an 8B10B encoder 122, an ECC encoder 123, and a transmitter 124 that are sequentially provided in the upstream direction. A receiver 125, an ECC decoder 126, an 8B10B decoder 127, and a packet decoder 128 are provided in order in the direction.

ここでは、第1乃至第5のメモリコントローラ12A〜12Eは、同一の構成を有するため、第1のメモリコントローラ12Aについて説明する。また、第1のメモリコントローラ12Aが有するパケットエンコーダ121、8B10Bエンコーダ122、ECCエンコーダ123、トランスミッタ124、レシーバ125、ECCデコーダ126、8B10Bデコーダ127及びパケットデコーダ128は、ホストブリッジ部11が有するパケットエンコーダ111、8B10Bエンコーダ112、ECCエンコーダ113、トランスミッタ114、レシーバ115、ECCデコーダ116、8B10Bデコーダ117及びパケットデコーダ118と基本的な機能は同様のため、両者の相違点について説明する。   Here, since the first to fifth memory controllers 12A to 12E have the same configuration, the first memory controller 12A will be described. The packet encoder 121, 8B10B encoder 122, ECC encoder 123, transmitter 124, receiver 125, ECC decoder 126, 8B10B decoder 127, and packet decoder 128 included in the first memory controller 12A are packet encoders 111 included in the host bridge unit 11. , 8B10B encoder 112, ECC encoder 113, transmitter 114, receiver 115, ECC decoder 116, 8B10B decoder 117, and packet decoder 118 have the same basic functions, and differences between them will be described.

パケットデコーダ128は、書き込み要求のパケットを受信した場合には、そのパケットから書き込み先アドレスとブロックデータとを抽出する。そして、パケットデコーダ128は、そのブロックデータ毎に、第1のメモリコントローラ12Aに接続された第1のメモリ13Aに書き込むデータを決定する書き込みデータ決定部128aと、そのブロックデータに基づいてパリティを算出するパリティ算出部128bとを備える。   When receiving a write request packet, the packet decoder 128 extracts a write destination address and block data from the packet. The packet decoder 128 calculates a parity for each block data based on the block data and a write data determination unit 128a that determines data to be written to the first memory 13A connected to the first memory controller 12A. And a parity calculation unit 128b.

書き込みデータ決定部128aは、例えば、書き込み先アドレス(番地情報)に基づいて、パリティ算出部128bにより算出したパリティを書き込むか、ブロックデータを書き込むかを決定する。   For example, the write data determination unit 128a determines whether to write the parity calculated by the parity calculation unit 128b or the block data based on the write destination address (address information).

具体的には、書き込みデータ決定部128aは、書き込み先アドレスを記憶装置1が有するメモリ13A〜13Eのメモリ総数で除算したときの剰余を算出し、その剰余が自己のコントローラ番号に一致するときには、第1のメモリ13Aにパリティを書き込むと決定し、一致しないときには、ブロックデータを書き込むと決定する。ここで、コントローラ番号は、第1乃至第5のメモリコントローラ12A〜12Eに対して「0」〜「4」がそれぞれ割り当てられている。なお、書き込みデータ決定部128aは、書き込み対象を決定する際に書き込み先アドレスを用いる代わりに、第1乃至第5のメモリコントローラ12A〜12Eにおいて共通の基準となる情報として、例えば、現在の時刻を用いるようにしてもよいし、ホストブリッジ部11で発生させた乱数をパケットに付加し、その乱数を用いるようにしてもよい。その際には、パリティであるか、ブロックデータであるかを識別可能な情報を合わせて記憶しておく。   Specifically, the write data determination unit 128a calculates a remainder when the write destination address is divided by the total number of memories 13A to 13E included in the storage device 1, and when the remainder matches the own controller number, It is determined that the parity is written in the first memory 13A, and when it does not match, it is determined that the block data is written. Here, “0” to “4” are assigned to the first to fifth memory controllers 12A to 12E as the controller numbers. The write data determination unit 128a uses, for example, the current time as information serving as a common reference in the first to fifth memory controllers 12A to 12E, instead of using the write destination address when determining the write target. The random number generated by the host bridge unit 11 may be added to the packet, and the random number may be used. At that time, information that can identify whether the data is parity or block data is stored together.

また、書き込みデータ決定部128aは、ブロックデータを書き込むと決定した場合には、そのブロックデータをメモリ総数から1を減算したデータ分散数(ここでは、「4」)で分割した複数の分割データから1つのデータを選択し、その選択した分割データを第1のメモリ13Aに書き込むと決定する。   When the write data determination unit 128a determines to write block data, the write data determination unit 128a uses a plurality of divided data obtained by dividing the block data by a data distribution number obtained by subtracting 1 from the total number of memories (here, “4”). It is determined that one piece of data is selected and the selected divided data is written to the first memory 13A.

そして、パケットデコーダ128は、パリティ算出部128bにより算出したパリティか、書き込みデータ決定部128aにより選択した分割データを書き込み先アドレスとともにメモリI/F部120に送る。なお、パケットデコーダ128は、読み出し要求のパケットを受信した場合には、そのパケットから読み出し先アドレスを抽出し、その読み出し先アドレスをメモリI/F部120に送る。   Then, the packet decoder 128 sends the parity calculated by the parity calculation unit 128b or the divided data selected by the write data determination unit 128a to the memory I / F unit 120 together with the write destination address. When the packet decoder 128 receives a read request packet, the packet decoder 128 extracts a read destination address from the packet and sends the read destination address to the memory I / F unit 120.

メモリI/F部120は、パケットデコーダ128から分割データ及びパリティのいずれかが送られた場合には、その分割データ及びパリティのいずれかを第1のメモリ13Aの書き込み先アドレスに書き込む。また、メモリI/F部120は、パケットデコーダ128から読み出し先アドレスが送られた場合には、その読み出し先アドレスに記憶されたデータを第1のメモリ13Aから読み出し、その読み出したデータをパケットエンコーダ121に送る。   When either the divided data or the parity is sent from the packet decoder 128, the memory I / F unit 120 writes either the divided data or the parity to the write destination address of the first memory 13A. In addition, when a read destination address is sent from the packet decoder 128, the memory I / F unit 120 reads data stored in the read destination address from the first memory 13A, and reads the read data to the packet encoder. 121.

上記のように、パリティ算出部128bは、メモリ13A〜13Eに記憶されたパリティ及び分割データを読み出すことなくパリティを算出するので、例えば、RAID5等を採用する場合に比べて、その読み出し処理を省略した分書き込み速度が速くなる。なお、ホストブリッジ部11及びメモリコントローラ12は、ECCによるエラー検出/訂正処理を行わない場合には、ECCエンコーダ、ECCデコーダを省略してもよく、8B10B変換を行わない場合には、8B10Bエンコーダ及び8B10Bデコーダを省略してもよい。   As described above, since the parity calculation unit 128b calculates the parity without reading the parity and the divided data stored in the memories 13A to 13E, for example, the reading process is omitted as compared with the case of using RAID5 or the like. As a result, the writing speed becomes faster. The host bridge unit 11 and the memory controller 12 may omit the ECC encoder and the ECC decoder when the error detection / correction processing by ECC is not performed. When the 8B10B conversion is not performed, the host bridge unit 11 and the memory controller 12 The 8B10B decoder may be omitted.

(第1の実施の形態の動作)
次に、記憶システム100の全体の動作の一例を、データの書き込み動作と読み出し動作とに分けてそれぞれ説明する。
(Operation of the first embodiment)
Next, an example of the overall operation of the storage system 100 will be described separately for a data write operation and a read operation.

(1)データの書き込み動作
データの書き込み動作の一例を、図4〜図6を参照して説明する。
(1) Data Write Operation An example of a data write operation will be described with reference to FIGS.

図4は、ホストブリッジ部におけるフレーム化の流れの一例を示す図である。まず、ホストブリッジ部11のパケットエンコーダ111は、ホストI/F部110を介してホスト装置2からの書き込み要求を、書き込み先アドレス及び書き込みデータとともに受け付けると、書き込み要求に応じたパケットを生成する。   FIG. 4 is a diagram illustrating an example of a framing flow in the host bridge unit. First, when the packet encoder 111 of the host bridge unit 11 receives a write request from the host apparatus 2 together with a write destination address and write data via the host I / F unit 110, the packet encoder 111 generates a packet corresponding to the write request.

具体的には、パケットエンコーダ111は、書き込みデータを、例えば、512バイト単位で分割し、複数のブロックデータ200bを生成する。そして、パケットエンコーダ111は、各ブロックデータに、書き込み先アドレスを含む8バイトのヘッダ200aを付加して、図4(a)に示すように、520バイトのパケット200を生成する。なお、1つのブロックデータ200bをデータ分散数で分割したときの4つのデータが、分割データ200cである。   Specifically, the packet encoder 111 divides the write data, for example, in units of 512 bytes, and generates a plurality of block data 200b. Then, the packet encoder 111 adds an 8-byte header 200a including a write destination address to each block data, and generates a 520-byte packet 200 as shown in FIG. Note that four data when one block data 200b is divided by the number of data distributions is the divided data 200c.

次に、8B10Bエンコーダ112は、その520バイトのパケット200を40バイト(320ビット)単位で分割し、図4(b)に示すように、40バイトの固定長フレーム201を13個生成する。そして、8B10Bエンコーダ112は、各固定長フレーム201に対して8B10B変換によるエンコード処理を行い、図4(c)に示すように、
8B10Bエンコード済みの400ビットの固定長フレーム202を生成する。
Next, the 8B10B encoder 112 divides the 520-byte packet 200 in units of 40 bytes (320 bits), and generates 13 fixed-length frames 201 of 40 bytes as shown in FIG. 4B. Then, the 8B10B encoder 112 performs an encoding process by 8B10B conversion on each fixed-length frame 201, and as shown in FIG.
A 400-bit fixed-length frame 202 encoded with 8B10B is generated.

次に、ECCエンコーダ113は、その400ビットの固定長フレーム202に基づいて、20ビットのECC203aを算出する。そして、ECCエンコーダ113は、400ビットの固定長フレーム202にその算出した20ビットのECC203aを付加し、図4(d)に示すように、420ビットのECCフレーム203を生成する。   Next, the ECC encoder 113 calculates a 20-bit ECC 203a based on the 400-bit fixed length frame 202. Then, the ECC encoder 113 adds the calculated 20-bit ECC 203a to the 400-bit fixed-length frame 202, and generates a 420-bit ECC frame 203 as shown in FIG.

そして、ECCエンコーダ113は、その420ビットのECCフレーム203を、例えば、20ビット毎に分けてトランスミッタ114に順次送ると、トランスミッタ114は、20ビット毎にパラレル/シリアル変換を行い、その変換後のシリアルデータをE/O14に出力する。   Then, the ECC encoder 113 divides the 420-bit ECC frame 203 into, for example, every 20 bits and sequentially sends them to the transmitter 114. The transmitter 114 performs parallel / serial conversion every 20 bits, and after the conversion, Serial data is output to the E / O 14.

次に、E/O14は、トランスミッタ114からのシリアルデータを光信号に変換し、その変換された光信号は、光ファイバ150Aを介して光分岐部151に送られ、光分岐部151により5つの方向に分岐される。   Next, the E / O 14 converts the serial data from the transmitter 114 into an optical signal, and the converted optical signal is sent to the optical branching unit 151 via the optical fiber 150A. Branch in the direction.

光分岐部151により分岐された光信号は、光ファイバ150Bを介してO/E16A〜16Eにて電気信号にそれぞれ変換され、第1乃至第5のメモリコントローラ12A〜12Eの各レシーバ125にシリアルデータとして送られる。なお、以降の処理は、第1乃至第5のメモリコントローラ12A〜12Eの各々が有する各部により並列的に実行される。   The optical signals branched by the optical branching unit 151 are converted into electrical signals by the O / Es 16A to 16E via the optical fiber 150B, and serial data is sent to the receivers 125 of the first to fifth memory controllers 12A to 12E. Sent as. Note that the subsequent processing is executed in parallel by each unit included in each of the first to fifth memory controllers 12A to 12E.

レシーバ125は、そのシリアルデータを20ビット毎にシリアル/パラレル変換を行い、その変換後のパラレルデータをECCデコーダ126に出力する。   The receiver 125 performs serial / parallel conversion on the serial data every 20 bits, and outputs the converted parallel data to the ECC decoder 126.

次に、ECCデコーダ126は、20ビットのパラレルデータを受け取ると、それを21サイクル分まとめて420ビットとし、これを1つのECCフレーム203とする。ここでは、各メモリコントローラ12A〜12Eによる処理の一例を図5のフローチャートに従って説明する。   Next, when the ECC decoder 126 receives the 20-bit parallel data, the ECC decoder 126 collects the data for 21 cycles into 420 bits, which is used as one ECC frame 203. Here, an example of processing by each of the memory controllers 12A to 12E will be described with reference to the flowchart of FIG.

図5は、メモリコントローラの動作の一例を示すフローチャートである。まず、ECCデコーダ126は、そのECCフレーム203内のECCに基づいて、そのパケットの固定フレームに対してエラー検出処理を行う(S1)。その結果、ECCデコーダ126は、2ビット以上のエラーを検出した場合には(S2:2ビット以上)、エラー終了し、例えば、ホストブリッジ部11にデータの再送を要求する。一方、ECCデコーダ126は、1ビットのエラーを検出した場合には(S2:1ビット)、エラー訂正処理を行う(S3)。   FIG. 5 is a flowchart showing an example of the operation of the memory controller. First, the ECC decoder 126 performs an error detection process on the fixed frame of the packet based on the ECC in the ECC frame 203 (S1). As a result, when detecting an error of 2 bits or more (S2: 2 bits or more), the ECC decoder 126 ends the error and requests, for example, the host bridge unit 11 to retransmit the data. On the other hand, when the ECC decoder 126 detects a 1-bit error (S2: 1 bit), it performs error correction processing (S3).

そして、ECCデコーダ126は、エラー訂正処理後のECCフレーム203からECCを除去して、40ビットの固定長フレーム202を生成する。また、ECCデコーダ126は、エラーを検出しなかった場合には(S2:0ビット)、ECCフレーム203から400ビットの固定長フレーム202を生成する。   Then, the ECC decoder 126 removes the ECC from the ECC frame 203 after the error correction process, and generates a 40-bit fixed length frame 202. When no error is detected (S2: 0 bit), the ECC decoder 126 generates a 400-bit fixed-length frame 202 from the ECC frame 203.

次に、8B10Bデコーダ127は、その400ビットの固定長フレーム202に対して10B8B変換によるデコード処理を施し、40バイト(320ビット)の固定長フレーム201を生成する(S10)。   Next, the 8B10B decoder 127 performs a decoding process by 10B8B conversion on the 400-bit fixed-length frame 202 to generate a 40-byte (320-bit) fixed-length frame 201 (S10).

次に、パケットデコーダ128は、その40バイトの固定長フレーム201を13個順次受け取ると、それら13個の固定長フレーム201から520バイトのパケット200を復元する。パケットデコーダ128は、そのパケット200内のヘッダを解析し、そのパケット200が書き込み要求のパケットか、読み出し要求のパケットかを判定する(S20)、   Next, when the packet decoder 128 sequentially receives the 13 fixed-length frames 201 of 40 bytes, the packet decoder 128 restores the packet 200 of 520 bytes from the 13 fixed-length frames 201. The packet decoder 128 analyzes the header in the packet 200 and determines whether the packet 200 is a write request packet or a read request packet (S20).

そして、そのパケット200が書き込み要求のパケットの場合には(S20:書き込み)、書き込みデータ決定部128aは、ヘッダ内の書き込み先アドレスを参照し、その書き込み先アドレスをメモリ総数で除算したときの剰余を算出する。そして、書き込みデータ決定部128aは、その剰余が自己のコントローラ番号に一致するか否かを判定する(S30)。   When the packet 200 is a write request packet (S20: write), the write data determination unit 128a refers to the write destination address in the header, and the remainder when the write destination address is divided by the total number of memories. Is calculated. Then, the write data determination unit 128a determines whether or not the remainder matches the own controller number (S30).

そして、書き込みデータ決定部128aが、その剰余が自己のコントローラ番号に一致すると判定した場合には(S30:Yes)、パリティ算出部128bにパリティを算出するように指示を送る。パリティ算出部128bは、その指示を受け付けると、そのパケット内のブロックデータに基づいてパリティを算出する(S31)。   If the write data determination unit 128a determines that the remainder matches the controller number of its own (S30: Yes), it sends an instruction to the parity calculation unit 128b to calculate the parity. When receiving the instruction, the parity calculation unit 128b calculates the parity based on the block data in the packet (S31).

そして、パケットデコーダ128は、そのパリティ算出部128bにより算出したパリティをメモリI/F部120に送ると、メモリI/F部120は、そのパリティをメモリ13Aの書き込み先アドレスに書き込む(S32)。   When the packet decoder 128 sends the parity calculated by the parity calculation unit 128b to the memory I / F unit 120, the memory I / F unit 120 writes the parity to the write destination address of the memory 13A (S32).

一方、書き込みデータ決定部128aが、その剰余が自己のコントローラ番号に一致しないと判定した場合には(S30:No)、ブロックデータをデータ分散数で分割した4つの分割データのうち、1つの分割データを書き込み対象として選択する(S40)。   On the other hand, when the write data determination unit 128a determines that the remainder does not match the own controller number (S30: No), one of the four divided data obtained by dividing the block data by the data distribution number is divided. Data is selected as a write target (S40).

そして、パケットデコーダ128は、書き込みデータ決定部128aにより選択した分割データをメモリI/F部120に送ると、メモリI/F部120は、その分割データをメモリ13Aに書き込む(S50)。   Then, when the packet decoder 128 sends the divided data selected by the write data determining unit 128a to the memory I / F unit 120, the memory I / F unit 120 writes the divided data into the memory 13A (S50).

(書き込み動作におけるデータの流れ)
図6は、データの書き込み動作におけるホストブリッジ部から各メモリコントローラ間のデータの流れの一例を示す図である。ここでは、ホスト装置2からの書き込みデータDとすると、書き込みデータDを512バイト単位で分割した場合のデータをブロックデータD0〜D2と表し、各ブロックデータD0〜D2を、データ分散数(ここでは、「4」)で分割した場合のデータを分割データD01〜D04、D11〜D14、D21〜D24と表す。
(Data flow in write operation)
FIG. 6 is a diagram illustrating an example of a data flow between the host bridge unit and each memory controller in a data write operation. Here, when the write data D from the host device 2 is assumed, the data when the write data D is divided in units of 512 bytes is represented as block data D0 to D2, and each block data D0 to D2 is represented by a data distribution number (here, , “4”), the divided data is represented as divided data D01 to D04, D11 to D14, and D21 to D24.

ホストブリッジ部11は、書き込みデータDを3つのブロックデータD0〜D2に分割し、それらブロックデータD0〜D2を構成する分割データD01〜D04、D10〜D14、D20〜D24のフレーム化を行い、E/O14を介して光分岐伝送路15に送信する。   The host bridge unit 11 divides the write data D into three block data D0 to D2, and frames the divided data D01 to D04, D10 to D14, and D20 to D24 constituting the block data D0 to D2. It transmits to the optical branch transmission line 15 via / O14.

次に、光分岐伝送路15には、分割データD01〜D04、D10〜D14、D20〜D24が光信号としてシリアル伝送される。   Next, the divided data D01 to D04, D10 to D14, and D20 to D24 are serially transmitted as optical signals to the optical branch transmission path 15.

そして、光信号は、O/E16A〜16Eを介して第1乃至第5のメモリコントローラ12A〜12EによりブロックデータD0〜D2としてそれぞれ受信される。   The optical signals are received as block data D0 to D2 by the first to fifth memory controllers 12A to 12E via the O / Es 16A to 16E, respectively.

第1乃至第5のメモリコントローラ12A〜12Eの各々は、各ブロックデータD0〜D3の書き込み先アドレスをメモリ総数で除算したときの剰余が自己のコントローラ番号に一致するときは、パリティを算出し、その算出したパリティを書き込み、一致しないときは、分割データを1つ選択し、その選択した分割データを書き込む。   Each of the first to fifth memory controllers 12A to 12E calculates a parity when the remainder when the write destination address of each block data D0 to D3 is divided by the total number of memories coincides with its own controller number, The calculated parity is written, and when the data does not match, one divided data is selected and the selected divided data is written.

例えば、ブロックデータD0の書き込み先アドレスが「0x0005」である場合には、書き込み先アドレス「0x0005」をメモリ総数「5」で除算したときの剰余は「0」である。従って、コントローラ番号が「0」の第1のメモリコントローラ12Aは、分割データD01〜D04に基づいてパリティP0を算出し、そのパリティP0を第1のメモリ13Aに書き込む。   For example, when the write destination address of the block data D0 is “0x0005”, the remainder when the write destination address “0x0005” is divided by the total number of memories “5” is “0”. Accordingly, the first memory controller 12A with the controller number “0” calculates the parity P0 based on the divided data D01 to D04, and writes the parity P0 in the first memory 13A.

第2乃至第5のメモリコントローラ12B〜12Eは、書き込み先アドレス「0x0005」から自己のコントローラ番号を減算し、その減算した減算値をメモリ総数「5」で除算したときの剰余を算出する。そして、第2乃至第5のメモリコントローラ12B〜12Eは、その剰余に対応する分割データを書き込み対象として選択する。   The second to fifth memory controllers 12B to 12E subtract the own controller number from the write destination address “0x0005”, and calculate a remainder when the subtracted value is divided by the total number of memories “5”. Then, the second to fifth memory controllers 12B to 12E select the divided data corresponding to the remainder as a writing target.

例えば、コントローラ番号が「1」の第2のメモリコントローラ12Bにおいては、書き込み先アドレス「0x0005」から自己のコントローラ番号「1」を減算した減算値「0x0004」をメモリ総数「5」で除算したときの剰余を「4」と算出する。そして、第2のメモリコントローラ12Bは、その剰余「4」に対応する分割データとして、分割データD01〜D04の中から「4」番目の分割データD04を選択し、その分割データD04を第2のメモリ13Bに書き込む。同様にして、第3乃至第5のメモリコントローラ12C〜12Eは、分割データD03,D02,D01をそれぞれ選択し、第3乃至第5のメモリ13C〜13Eにそれぞれ書き込む。   For example, in the second memory controller 12B with the controller number “1”, the subtraction value “0x0004” obtained by subtracting the controller number “1” from the write destination address “0x0005” is divided by the total memory number “5”. Is calculated as “4”. Then, the second memory controller 12B selects the “4” -th divided data D04 from the divided data D01 to D04 as the divided data corresponding to the remainder “4”, and uses the divided data D04 as the second divided data D04. Write to memory 13B. Similarly, the third to fifth memory controllers 12C to 12E select the divided data D03, D02, and D01, respectively, and write them to the third to fifth memories 13C to 13E, respectively.

(2)データの読み出し動作
データの読み出し動作の一例を、図7を参照して説明する。
(2) Data Read Operation An example of the data read operation will be described with reference to FIG.

まず、ホストブリッジ部11のパケットエンコーダ111は、ホストI/F部110を介してホスト装置2からの読み出し要求を読み出し先アドレスとともに受け付けると、その読み出し要求に応じたパケットを生成する。   First, when the packet encoder 111 of the host bridge unit 11 receives a read request from the host device 2 together with a read destination address via the host I / F unit 110, the packet encoder 111 generates a packet corresponding to the read request.

次に、その生成されたパケットは、書き込み動作と同様に、8B10Bエンコーダ112によるエンコード処理後、ECCエンコーダ113によりECCが付加されたECCフレームとして、トランスミッタ114を介してE/O14から光信号として光分岐伝送路15に送信される。   Next, the generated packet is encoded as an optical signal from the E / O 14 via the transmitter 114 as an ECC frame to which the ECC is added by the ECC encoder 113 after the encoding process by the 8B10B encoder 112, similarly to the writing operation. It is transmitted to the branch transmission line 15.

次に、その光信号は、光分岐伝送路15により分岐されて、O/E16A〜16Eにより電気信号に変換された後、第1乃至第5のメモリコントローラ12A〜12Eの各レシーバ125により受信され、レシーバ125でシリアル/パラレル変換が行われ、ECCデコーダ126によりECCフレームとして受信される。   Next, the optical signal is branched by the optical branch transmission line 15 and converted into electrical signals by the O / Es 16A to 16E, and then received by the receivers 125 of the first to fifth memory controllers 12A to 12E. The receiver 125 performs serial / parallel conversion, and the ECC decoder 126 receives it as an ECC frame.

そして、そのECCフレームは、書き込み動作と同様に、ECCデコーダ126によるエラー検出/訂正処理(S1〜S3)、8B10Bデコーダ127によるデコード処理(S10)が行われ、パケットデコーダ128によりパケットとして復元され、そのパケットが書き込み要求のパケットか、読み出し要求のパケットかが判定される(S20)。   The ECC frame is subjected to error detection / correction processing (S1 to S3) by the ECC decoder 126 and decoding processing (S10) by the 8B10B decoder 127, and is restored as a packet by the packet decoder 128, as in the write operation. It is determined whether the packet is a write request packet or a read request packet (S20).

そして、そのパケットが読み出し要求のパケットと判定された場合には(S20:読み出し)、パケットデコーダ128は、そのパケット内の読み出し先アドレスをメモリI/F部120に送り、メモリI/F部120は、その読み出し先アドレスに対応する分割データ及びパリティのいずれかを第1のメモリ13Aから読み出す(S60)。   If the packet is determined to be a read request packet (S20: Read), the packet decoder 128 sends the read destination address in the packet to the memory I / F unit 120, and the memory I / F unit 120 Reads either the divided data or the parity corresponding to the read destination address from the first memory 13A (S60).

次に、その読み出した分割データ又はパリティは、パケットエンコーダ121、8B10Bエンコーダ122、ECCエンコーダ123及びトランスミッタ124を介してECCフレームとしてE/O14Aに送られ、E/O14Aから光信号として光合波伝送路17に送信される。   Next, the read divided data or parity is sent to the E / O 14A as an ECC frame via the packet encoder 121, 8B10B encoder 122, ECC encoder 123, and transmitter 124, and an optical multiplexing transmission path as an optical signal from the E / O 14A. 17 is transmitted.

次に、その光信号は、光合波伝送路17の光合波部171により合波され、O/E16により電気信号に変換された後、ホストブリッジ部11のレシーバ115により受信され、レシーバ115でシリアル/パラレル変換が行われ、ECCデコーダ116によりECCフレームとして受信される。   Next, the optical signal is multiplexed by the optical multiplexing unit 171 of the optical multiplexing transmission line 17, converted into an electric signal by the O / E 16, received by the receiver 115 of the host bridge unit 11, and serially received by the receiver 115. / Parallel conversion is performed, and the ECC decoder 116 receives it as an ECC frame.

次に、ECCデコーダ116は、そのECCフレーム内のECCに基づいて、ECCフレームのエラー検出/訂正処理を行い、その際訂正不可能なエラーな検出した場合には、そのエラー位置を示す誤りフレーム位置情報をパケットデコーダ118に送信する。そして、ECCデコーダ116は、ECCフレームからECCを除去した固定長フレームを8B10Bデコーダ117に送る。   Next, the ECC decoder 116 performs error detection / correction processing of the ECC frame based on the ECC in the ECC frame, and when an uncorrectable error is detected at that time, an error frame indicating the error position is detected. The position information is transmitted to the packet decoder 118. Then, the ECC decoder 116 sends a fixed-length frame obtained by removing the ECC from the ECC frame to the 8B10B decoder 117.

次に、8B10Bデコーダ117は、その固定長フレームに対して10B8B変換によるデコード処理を施し、デコード処理においてエラーを検出した場合には、そのエラー位置を示す誤りフレーム位置情報をパケットデコーダ118に送信する。そして、8B10Bデコーダ117は、デコード処理後の固定長フレームをパケットデコーダ118に送る。   Next, the 8B10B decoder 117 performs decoding processing by 10B8B conversion on the fixed-length frame and, when an error is detected in the decoding processing, transmits error frame position information indicating the error position to the packet decoder 118. . Then, the 8B10B decoder 117 sends the fixed-length frame after the decoding process to the packet decoder 118.

そして、パケットデコーダ118は、複数の固定長フレームからパケットを復元し、そのパケットから4つの分割データとパリティとを抽出する。   Then, the packet decoder 118 restores a packet from a plurality of fixed-length frames, and extracts four divided data and parity from the packet.

次に、パリティチェック部118aは、ECCデコーダ116又は8B10Bデコーダ117から誤りフレーム位置情報を受信している場合には、その誤りフレーム位置情報から誤りのある分割データの数を計数する。なお、誤りフレーム位置情報を受信していない場合については、誤りのある分割データの数が「0」の場合と同様に処理される。   Next, when receiving the error frame position information from the ECC decoder 116 or the 8B10B decoder 117, the parity check unit 118a counts the number of divided data having an error from the error frame position information. In the case where error frame position information has not been received, processing is performed in the same manner as in the case where the number of divided data with errors is “0”.

誤りのある分割データの数が「0」の場合には、パリティチェック部118aは、そのパケットから抽出したパリティに基づいて、その抽出した4つの分割データの誤り検出を行う。その結果、パリティチェック部118aは、誤りを検出しなかった場合には、そのまま4つの分割データからなるブロックデータをホストI/F部110に送り、誤りを検出した場合には、パリティチェックによりエラーが検出された旨を示すエラー通知をホストI/F部110に送る。   When the number of divided data with errors is “0”, the parity check unit 118a performs error detection of the four divided data extracted based on the parity extracted from the packet. As a result, if no error is detected, the parity check unit 118a sends block data consisting of four divided data to the host I / F unit 110 as it is. If an error is detected, an error is detected by parity check. An error notification indicating that has been detected is sent to the host I / F unit 110.

誤りのある分割データの数が「1」の場合には、パリティチェック部118aは、そのパケット内のパリティ及び誤りのない分割データを用いてその誤りのある分割データの誤り訂正を行い、その誤り訂正後の4つの分割データからなるブロックデータをホストI/F部110に送る。   When the number of divided data with errors is “1”, the parity check unit 118a performs error correction of the divided data with errors using the parity and the divided data without errors in the packet, and the error Block data composed of the four divided data after correction is sent to the host I / F unit 110.

誤りのある分割データの数が「2」以上の場合には、パリティチェック部118aは、ECC又は8B10Bデコード処理によりエラーが検出された旨を示すエラー通知をホストI/F部110に送る。   When the number of divided data with errors is “2” or more, the parity check unit 118a sends an error notification indicating that an error has been detected by ECC or 8B10B decoding processing to the host I / F unit 110.

そして、ホストI/F部110は、パリティチェック部118aからブロックデータを受信した場合には、そのブロックデータを読み出しデータとして、ケーブル101を介してホスト装置2に送信する。また、ホストI/F部110は、パリティチェック部118aからエラー通知を受信した場合には、そのエラー通知をホスト装置2に送る。   When the host I / F unit 110 receives block data from the parity check unit 118a, the host I / F unit 110 transmits the block data to the host device 2 via the cable 101 as read data. When the host I / F unit 110 receives an error notification from the parity check unit 118 a, the host I / F unit 110 sends the error notification to the host device 2.

(読み出し動作におけるデータの流れ)
図7は、データの読み出し動作における各メモリコントローラからホストブリッジ部間のデータの流れの一例を示す図である。ここでは、読み出しデータDとすると、読み出しデータDを512バイト単位で分割した場合のデータをブロックデータD0〜D2と表し、各ブロックデータD0〜D2をデータ分散数(ここでは、4つ)に分割した場合のデータを分割データD01〜D04、D11〜D14、D21〜D24と表す。
(Data flow in read operation)
FIG. 7 is a diagram illustrating an example of a data flow between each memory controller and the host bridge unit in a data read operation. Here, assuming that the read data D is divided, the data when the read data D is divided in units of 512 bytes is expressed as block data D0 to D2, and each block data D0 to D2 is divided into the number of data distributions (here, four). The data in this case is expressed as divided data D01 to D04, D11 to D14, and D21 to D24.

第1乃至第5のメモリコントローラ12A〜12Eは、読み出し要求パケットで指定された読み出し先アドレスに対応するデータを第1乃至第5のメモリ13A〜13Eからそれぞれ読み出す。   The first to fifth memory controllers 12A to 12E read data corresponding to the read destination address specified by the read request packet from the first to fifth memories 13A to 13E, respectively.

例えば、読み出し先アドレスが「0x0005」の場合には、第1のメモリコントローラ12Aは、パリティP0を読み出し、第2乃至第5のメモリコントローラ12B〜12Eは、分割データD04〜D01をそれぞれ読み出す。   For example, when the read destination address is “0x0005”, the first memory controller 12A reads the parity P0, and the second to fifth memory controllers 12B to 12E read the divided data D04 to D01, respectively.

そして、第1乃至第5のメモリコントローラ12A〜12Eは、その読み出したパリティP0及び分割データD01〜D04のフレーム化を行い、E/O14A〜14Eを介して光合波伝送路17に送信する。その際、E/O14A〜14Eからの5つの光信号は、光合波伝送路17において時分割多重化が行われる。   Then, the first to fifth memory controllers 12A to 12E frame the read parity P0 and the divided data D01 to D04 and transmit them to the optical multiplexing transmission line 17 via the E / Os 14A to 14E. At this time, the five optical signals from the E / Os 14A to 14E are time-division multiplexed in the optical multiplexing transmission line 17.

次に、光合波伝送路17には、パリティP0及び分割データD01〜D04が光信号としてシリアル伝送され、その光信号は、O/E16を介してホストブリッジ部11により受信される。   Next, the parity P0 and the divided data D01 to D04 are serially transmitted as optical signals to the optical multiplexing transmission path 17, and the optical signals are received by the host bridge unit 11 via the O / E 16.

次に、ホストブリッジ部11のパリティチェック部118aは、パリティP0に基づいて、分割データD01〜D04の誤り検出を行った結果誤りを検出し、誤りフレーム位置情報により誤りのある分割データが特定されている場合には、その分割データの誤り訂正を行う。そして、ホストブリッジ部11は、分割データD01〜D04からブロックデータD0を生成し、同様にしてブロックデータD1,D2を順次生成し、それらブロックデータD0〜D2からなる読み出しデータDをホスト装置2に送る。   Next, the parity check unit 118a of the host bridge unit 11 detects an error as a result of performing error detection of the divided data D01 to D04 based on the parity P0, and the divided data having an error is specified by the error frame position information. If so, error correction of the divided data is performed. Then, the host bridge unit 11 generates block data D0 from the divided data D01 to D04, sequentially generates block data D1 and D2, and reads the read data D including the block data D0 to D2 to the host device 2. send.

[第2の実施の形態]
図8は、本発明の第2の実施の形態に係る記憶システムの概略構成の一例を示すブロック図である。この記憶システム100は、第1の実施の形態と同様に、記憶装置1がホスト装置2に接続されて構成されている。
[Second Embodiment]
FIG. 8 is a block diagram showing an example of a schematic configuration of the storage system according to the second embodiment of the present invention. The storage system 100 is configured by connecting the storage device 1 to the host device 2 as in the first embodiment.

本実施の形態に係る記憶装置1は、第1の実施の形態と比較して、第1乃至第5の電源供給範囲180A〜180E毎に独立して設けられた第1乃至第5の電源供給部18A〜18Eを備える点が異なり、その他は同様に構成されている。   Compared with the first embodiment, the storage device 1 according to the present embodiment has first to fifth power supply provided independently for each of the first to fifth power supply ranges 180A to 180E. The point provided with the parts 18A-18E differs, and others are comprised similarly.

第1乃至第5の電源供給部18A〜18Eは、自己に接続された第1及び第5の電源供給範囲180A〜180Eに含まれる各部に駆動電圧を供給する。例えば、第1の電源供給部18Aは、第1の電源供給範囲180Aに含まれる第1のメモリコントローラ12A、第1のメモリ13A、E/O14A及びO/E16Aに駆動電圧を供給する。   The first to fifth power supply units 18A to 18E supply drive voltages to the respective units included in the first and fifth power supply ranges 180A to 180E connected to the first to fifth power supply units 18A to 18E. For example, the first power supply unit 18A supplies a drive voltage to the first memory controller 12A, the first memory 13A, the E / O 14A, and the O / E 16A included in the first power supply range 180A.

ホストブリッジ部11は、第1乃至第5の電源供給部18A〜18Eのいずれかに異常が発生した場合には、その異常が発生した電源供給部に接続されたメモリからのデータの読み出しができないため、他のメモリから読み出したデータに基づいて、データを復元する。   When an abnormality occurs in any of the first to fifth power supply units 18A to 18E, the host bridge unit 11 cannot read data from the memory connected to the power supply unit in which the abnormality has occurred. Therefore, the data is restored based on the data read from the other memory.

[他の実施の形態]
なお、本発明は、上記各実施の形態に限定されず、本発明の趣旨を逸脱しない範囲内で種々な変形が可能である。例えば、上記各実施の形態では、メモリコントローラ及びメモリの数は、それぞれ5つであるが、パリティ及びデータを分散して記憶できればよく、3つ以上であれば、5つに限られない。
[Other embodiments]
The present invention is not limited to the above-described embodiments, and various modifications can be made without departing from the spirit of the present invention. For example, in each of the above embodiments, the number of memory controllers and memories is five, but it is sufficient that the parity and data can be distributed and stored, and the number is not limited to five as long as it is three or more.

また、上記各実施の形態では、メモリコントローラの各々は、パリティ及びデータのいずれかを選択してメモリに書き込んだが、1つのメモリコントローラが固定的にパリティを書き込み、他のメモリコントローラがデータを書き込むようにしてもよい。   In each of the above embodiments, each of the memory controllers selects either parity or data and writes it to the memory. However, one memory controller writes the parity in a fixed manner, and the other memory controller writes the data. You may do it.

また、上記各実施の形態では、ホストブリッジ部とメモリコントローラとの間を下り方向と上り方向とで別々の光伝送路で接続したが、1つの光伝送路を下り方向と上り方向の光伝送に共用してもよいし、上り方向を電気伝送路で接続してもよい。   In each of the above embodiments, the host bridge unit and the memory controller are connected by separate optical transmission paths in the downlink direction and the uplink direction, but one optical transmission path is transmitted in the downlink and uplink directions. Or may be connected by an electric transmission line in the upstream direction.

また、上記各実施の形態では、光合波伝送路において複数の光信号に対して時分割多重を行って伝送したが、波長分割多重等の他の多重化方式を適用してもよい。   In each of the above-described embodiments, time division multiplexing is performed on a plurality of optical signals in the optical multiplexing transmission line for transmission, but other multiplexing methods such as wavelength division multiplexing may be applied.

図1は、本発明の第1の実施の形態に係る記憶システムの概略構成の一例を示すブロック図である。FIG. 1 is a block diagram showing an example of a schematic configuration of a storage system according to the first embodiment of the present invention. 図2は、ホストブリッジ部の概略構成の一例を示すブロック図である。FIG. 2 is a block diagram illustrating an example of a schematic configuration of the host bridge unit. 図3は、メモリコントローラの概略構成の一例を示すブロック図である。FIG. 3 is a block diagram illustrating an example of a schematic configuration of the memory controller. 図4は、ホストブリッジ部におけるフレーム化の流れの一例を示す図である。FIG. 4 is a diagram illustrating an example of a framing flow in the host bridge unit. 図5は、メモリコントローラの動作の一例を示すフローチャートである。FIG. 5 is a flowchart showing an example of the operation of the memory controller. 図6は、データの書き込み動作におけるホストブリッジ部から各メモリコントローラ間のデータの流れの一例を示す図である。FIG. 6 is a diagram illustrating an example of a data flow between the host bridge unit and each memory controller in a data write operation. 図7は、データの読み出し動作における各メモリコントローラからホストブリッジ部間のデータの流れの一例を示す図である。FIG. 7 is a diagram illustrating an example of a data flow between each memory controller and the host bridge unit in a data read operation. 図8は、本発明の第2の実施の形態に係る記憶システムの概略構成の一例を示すブロック図である。FIG. 8 is a block diagram showing an example of a schematic configuration of the storage system according to the second embodiment of the present invention.

符号の説明Explanation of symbols

1…記憶装置、2…ホスト装置、11…ホストブリッジ部、12A〜12E…メモリコントローラ、13A〜13E…メモリ、14,14A〜14E…E/O、15…光分岐伝送路、16,16A〜164E…O/E、17…光合波伝送路、18A〜18E…電源供給部、100…記憶システム、101…ケーブル、110…ホストI/F部、111…パケットエンコーダ、112…8B10Bエンコーダ、113…ECCエンコーダ、114…トランスミッタ、115…レシーバ、116…ECCデコーダ、117…8B10Bデコーダ、118…パケットデコーダ、118a…パリティチェック部、120…メモリI/F部、121…パケットエンコーダ、122…8B10Bエンコーダ、123…ECCエンコーダ、124…トランスミッタ、125…レシーバ、126…ECCデコーダ、127…8B10Bデコーダ、128…パケットデコーダ、128a…書き込みデータ決定部、128b…パリティ算出部、150A,150B…光ファイバ、151…光分岐部、170A,170B…光ファイバ、171…光合波部、180A〜180E…電源供給範囲、200…パケット、200a…ヘッダ、200b…ブロックデータ、200c…分割データ、201,202…固定長フレーム、203…ECCフレーム、203a…ECC DESCRIPTION OF SYMBOLS 1 ... Memory | storage device, 2 ... Host apparatus, 11 ... Host bridge part, 12A-12E ... Memory controller, 13A-13E ... Memory, 14, 14A-14E ... E / O, 15 ... Optical branching transmission path, 16, 16A- 164E ... O / E, 17 ... Optical multiplexing transmission line, 18A to 18E ... Power supply unit, 100 ... Storage system, 101 ... Cable, 110 ... Host I / F unit, 111 ... Packet encoder, 112 ... 8B10B encoder, 113 ... ECC encoder 114 ... transmitter 115 ... receiver 116 ... ECC decoder 117 ... 8B10B decoder 118 ... packet decoder 118a ... parity check unit 120 ... memory I / F unit 121 ... packet encoder 122 ... 8B10B encoder 123 ... ECC encoder, 124 ... Transformer , 125 ... receiver, 126 ... ECC decoder, 127 ... 8B10B decoder, 128 ... packet decoder, 128a ... write data determination unit, 128b ... parity calculation unit, 150A, 150B ... optical fiber, 151 ... optical branching unit, 170A, 170B: Optical fiber, 171: Optical multiplexing unit, 180A to 180E ... Power supply range, 200 ... Packet, 200a ... Header, 200b ... Block data, 200c ... Divided data, 201, 202 ... Fixed length frame, 203 ... ECC frame, 203a ... ECC

Claims (7)

上位装置との間でデータの送受信を行う第1の制御部と、
前記第1の制御部から下り方向にデータの一括伝送が可能な光伝送路を介して前記第1の制御部に接続された複数の第2の制御部と、
前記複数の第2の制御部に各々接続され、前記データを記憶する複数の記憶部とを備え、
前記第1の制御部は、前記上位装置から受信したデータをデータ列に分割して前記データ列を前記複数の第2の制御部に前記光伝送路を介して一括伝送し、
前記複数の第2の制御部は、前記第1の制御部から一括伝送された前記データ列を受信したとき、前記データ列に基づいてパリティ情報を算出するパリティ算出部と、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に前記記憶部にパリティ情報を書き込むか否かを決定する決定部とを有し、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されたとき、前記パリティ算出部により算出されたパリティ情報を対応する前記記憶部に書き込み、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されなかったとき、前記データ列を対応する前記記憶部に書き込む記憶装置。
A first control unit that transmits and receives data to and from a host device;
A plurality of second control units connected to the first control unit via an optical transmission line capable of batch transmission of data in the downstream direction from the first control unit;
A plurality of storage units each connected to the plurality of second control units and storing the data;
The first control unit divides data received from the host device into data strings, and transmits the data strings to the plurality of second control units via the optical transmission path,
The plurality of second control units, when receiving the data sequence collectively transmitted from the first control unit, calculate a parity information based on the data sequence, and at least one second control unit A control unit that determines whether to write parity information to the storage unit for each data string so that the control unit writes the parity information to the corresponding storage unit. When it is determined to write to the storage unit, the parity information calculated by the parity calculation unit is written to the corresponding storage unit, and when the parity information is not determined to be written to the storage unit by the determination unit, A storage device that writes a data string to the corresponding storage unit.
前記決定部は、前記データ列に含まれる情報に基づいて、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に決定する請求項1に記載の記憶装置。 2. The determination unit according to claim 1, wherein, based on information included in the data sequence, the determination unit determines for each data sequence such that at least one second control unit writes the parity information in the corresponding storage unit. Storage device. 前記決定部は、前記データ列の書き込み先として指定された番地情報に基づいて、少なくとも1つの第2の制御部が前記パリティ情報を書き込むように前記データ列毎に決定する請求項1に記載の記憶装置。 2. The determination unit according to claim 1, wherein the determination unit determines , based on address information specified as a writing destination of the data string, for each data string such that at least one second control unit writes the parity information . Storage device. 前記第1の制御部は、前記複数の第2の制御部から前記複数の記憶部に記憶された前記パリティ情報及び前記データ列を受信したとき、前記パリティ情報を用いて前記データ列の誤り検出を行う請求項1に記載の記憶装置。   When the first control unit receives the parity information and the data sequence stored in the plurality of storage units from the plurality of second control units, the error detection of the data sequence is performed using the parity information. The storage device according to claim 1, wherein: 前記第1の制御部は、前記複数の分割データのうち誤りのある分割データを検出する検出手段を有し、前記検出手段により前記誤りのある分割データを検出した場合には、前記パリティ情報及び誤りのない分割データを用いて前記誤りのある分割データの誤り訂正を行う請求項1に記載の記憶装置。   The first control unit includes a detecting unit that detects erroneous divided data among the plurality of divided data, and when the detecting unit detects the erroneous divided data, the parity information and The storage device according to claim 1, wherein error correction is performed on the divided data having an error using divided data having no error. さらに、前記複数の記憶部と、前記複数の記憶部に各々接続された前記複数の第2の制御部とを対にして電源をそれぞれ供給する複数の電源供給部を備えた請求項1に記載の記憶装置。   2. The apparatus according to claim 1, further comprising a plurality of power supply units that respectively supply power by pairing the plurality of storage units and the plurality of second control units respectively connected to the plurality of storage units. Storage device. 上位装置と、
前記上位装置との間でデータの送受信を行う第1の制御部、前記第1の制御部から下り方向にデータの一括伝送が可能な光伝送路を介して前記第1の制御部に接続された複数の第2の制御部、及び前記複数の第2の制御部に各々接続され、前記データを記憶する複数の記憶部とを有し、
前記第1の制御部は、前記上位装置から受信したデータをデータ列に分割して前記データ列を前記複数の第2の制御部に前記光伝送路を介して一括伝送し、
前記複数の第2の制御部は、前記第1の制御部から一括伝送された前記データ列を受信したとき、前記データ列に基づいてパリティ情報を算出するパリティ算出部と、少なくとも1つの第2の制御部が前記パリティ情報を対応する前記記憶部に書き込むように前記データ列毎に前記記憶部にパリティ情報を書き込むか否かを決定する決定部とを有し、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されたとき、前記パリティ算出部により算出されたパリティ情報を対応する前記記憶部に書き込み、前記決定部によりパリティ情報を前記記憶部に書き込むと決定されなかったとき、前記データ列を対応する前記複数の記憶部に書き込む記憶装置とを備えた記憶システム。
A host device;
A first control unit that transmits / receives data to / from the host device, and is connected to the first control unit via an optical transmission line capable of batch transmission of data from the first control unit in the downstream direction. A plurality of second control units, and a plurality of storage units connected to the plurality of second control units and storing the data,
The first control unit divides data received from the host device into data strings, and transmits the data strings to the plurality of second control units via the optical transmission path,
The plurality of second control units, when receiving the data sequence collectively transmitted from the first control unit, calculate a parity information based on the data sequence, and at least one second control unit A control unit that determines whether to write parity information to the storage unit for each data string so that the control unit writes the parity information to the corresponding storage unit. When it is determined to write to the storage unit, the parity information calculated by the parity calculation unit is written to the corresponding storage unit, and when the parity information is not determined to be written to the storage unit by the determination unit, A storage system comprising: a storage device that writes a data string to the corresponding storage units.
JP2008304777A 2008-11-28 2008-11-28 Storage device and storage system Expired - Fee Related JP5223629B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008304777A JP5223629B2 (en) 2008-11-28 2008-11-28 Storage device and storage system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008304777A JP5223629B2 (en) 2008-11-28 2008-11-28 Storage device and storage system

Publications (2)

Publication Number Publication Date
JP2010128940A JP2010128940A (en) 2010-06-10
JP5223629B2 true JP5223629B2 (en) 2013-06-26

Family

ID=42329269

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008304777A Expired - Fee Related JP5223629B2 (en) 2008-11-28 2008-11-28 Storage device and storage system

Country Status (1)

Country Link
JP (1) JP5223629B2 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012060097A1 (en) * 2010-11-02 2012-05-10 日本電気株式会社 Memory module and memory system
KR101990856B1 (en) 2012-05-21 2019-06-19 삼성전자주식회사 Optical memory system including an optically connected memory module and computing system including the same

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07219718A (en) * 1994-01-28 1995-08-18 Nec Eng Ltd Information processor
JPH08202505A (en) * 1995-01-30 1996-08-09 Fuji Xerox Co Ltd Array type storage device
JP2001159958A (en) * 1999-12-03 2001-06-12 Hitachi Ltd Parity data writing method in disk array device
JP2001337759A (en) * 2000-05-24 2001-12-07 Fuji Xerox Co Ltd Disk array unit

Also Published As

Publication number Publication date
JP2010128940A (en) 2010-06-10

Similar Documents

Publication Publication Date Title
CN102567134B (en) Error checking and correcting system and method for memory module
US10348334B2 (en) Reducing a decoding error floor by post-processing codewords encoded by binary symmetry-invariant product codes
US9218240B2 (en) Error detection and isolation
US20070271468A1 (en) Method and Apparatus for Maintaining Data Integrity When Switching Between Different Data Protection Methods
TWI859231B (en) Memory systems and writing methods of the memory systems
US8612842B2 (en) Apparatus for generating a checksum
US20190138390A1 (en) Data protection techniques for a non-volatile memory array
US9647766B2 (en) Method, communication apparatus, and communication system
JP5223629B2 (en) Storage device and storage system
US20100199146A1 (en) Storage system, storage controller and method for controlling storage system
KR20200011488A (en) How To Debug SerDes Link Parameters, Devices, and Computer Storage
JP2007052714A (en) Information processing system
US8683308B2 (en) Semiconductor device, information processing apparatus, and method of detecting error
US9923669B2 (en) Distributed Reed-Solomon codes for simple multiple access networks
US20160126980A1 (en) Removing error patterns in binary data
JP2016014972A (en) COMMUNICATION CONTROL DEVICE, STORAGE DEVICE, AND COMMUNICATION CONTROL PROGRAM
JP2017097942A (en) System for track dependent decoding that suits time variation signal quality
US11871166B2 (en) Sensor system
CN108415403B (en) A safety processing method for computer interlocking data acquisition control
JP6041976B2 (en) Data transmission system
US9660882B2 (en) Selective convolution encoding of data transmitted over degraded links
TWI645683B (en) Partial concatenated coding system using algebraic code and ldpc code
JP5239252B2 (en) Data transmission device and semiconductor storage device
WO2010035316A1 (en) Memory control device and memory control method
US11175978B2 (en) Detection of an error generated within an electronic device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120905

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121119

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130225

R150 Certificate of patent or registration of utility model

Ref document number: 5223629

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20160322

Year of fee payment: 3

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees