JP2013030072A - Memory controller - Google Patents

Memory controller Download PDF

Info

Publication number
JP2013030072A
JP2013030072A JP2011166949A JP2011166949A JP2013030072A JP 2013030072 A JP2013030072 A JP 2013030072A JP 2011166949 A JP2011166949 A JP 2011166949A JP 2011166949 A JP2011166949 A JP 2011166949A JP 2013030072 A JP2013030072 A JP 2013030072A
Authority
JP
Japan
Prior art keywords
payload
parity
address
memory
ratio
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
JP2011166949A
Other languages
Japanese (ja)
Other versions
JP5570477B2 (en
Inventor
Osamu Toyama
治 遠山
Yasuto Omiya
康人 近江谷
Daisuke Ogawa
大佑 小川
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2011166949A priority Critical patent/JP5570477B2/en
Publication of JP2013030072A publication Critical patent/JP2013030072A/en
Application granted granted Critical
Publication of JP5570477B2 publication Critical patent/JP5570477B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)

Abstract

PROBLEM TO BE SOLVED: To provide a memory controller enabling processing at high-speed without any waste of H/W.SOLUTION: A memory controller 1000 controls a real memory 004 which stores a payload in a payload area and parity data in a parity area. A payload/parity area address calculation part 001 receives the ratio of the payload and the number of bits of parity data as a payload/parity ratio 104, receives the number of areas classified into the payload area as a result of classification into the payload area and parity area by approximating areas of the real memory 004 to the payload/penalty ratio as a division ratio 103, receives a memory address length 102 of the real memory 004, receives a memory address 101 of the payload, and calculates a memory address of the parity data corresponding to the payload in a parity area using them.

Description

本発明は、ペイロードをペイロード領域に格納し、パリティデータをパリティ領域に格納するメモリ装置を制御する技術に関する。   The present invention relates to a technique for controlling a memory device that stores a payload in a payload area and stores parity data in the parity area.

ECC(Error Correcting Code)のコード長を可変とし、対象アプリケーションに最適なエラー訂正方法が採用できるシステムが開示されている(例えば、特許文献1及び特許文献2)。   A system is disclosed in which an ECC (Error Correcting Code) code length is variable and an error correction method optimal for a target application can be adopted (for example, Patent Document 1 and Patent Document 2).

特開2003−131954号公報JP 2003-131954 A 特開2008−41171号公報JP 2008-41171 A

背景技術で記載したように、ECCコード長を可変長とし、ECCによって保護されるペイロード(ECCによって訂正されるデータ)と、保護に必要なコスト(冗長/パリティデータの量)のトレードオフに対し柔軟に対応可能とし、同じシステム構成であっても、入力されるデータや条件に従って最適なトレードオフポイントを設定できるシステムが提案されている。   As described in the background art, the ECC code length is variable, and the tradeoff between the payload protected by ECC (data corrected by ECC) and the cost (redundant / parity data amount) required for protection There has been proposed a system that can be flexibly adapted and can set an optimal trade-off point according to input data and conditions even in the same system configuration.

特許文献1では、単一のメモリをソフトウェア(以下、S/Wとも表記する)で仮想的に2つの領域に分け、選択したECCアルゴリズムに従って、単一のメモリ内におけるペイロード領域とパリティ領域の割合を可変にする方法が開示されている。
また、特許文献2では、メモリセルアレイ内のデータメモリセルアレイとパリティメモリセルアレイを、複数のECCのコード長に対応した構成にし、書き込みデータからパリティを生成する入力側パリティ生成回路と、読み出しデータからパリティを生成する出力側パリティ生成回路と、読み出しパリティビットと生成パリティビットから誤りビットを示すシンドロームビットを生成するシンドローム生成回路とを、複数のECCのコード長に応じて切り替え可能な構成とすることが開示されている。
In Patent Document 1, a single memory is virtually divided into two areas by software (hereinafter also referred to as S / W), and the ratio of the payload area and the parity area in the single memory according to the selected ECC algorithm A method of making the variable is disclosed.
Further, in Patent Document 2, a data memory cell array and a parity memory cell array in a memory cell array are configured to correspond to a plurality of ECC code lengths, an input-side parity generation circuit that generates parity from write data, and parity from read data. The output-side parity generation circuit that generates a syndrome and the syndrome generation circuit that generates a syndrome bit indicating an error bit from the read parity bit and the generated parity bit can be switched according to the code lengths of a plurality of ECCs. It is disclosed.

従来技術では以上のように構成しているので、特許文献1のように一連の処理をS/Wで行う場合は、ECC計算、およびペイロードとパリティを格納するアドレス計算など、複雑な計算をS/Wで行う必要があるため処理に時間がかかる。
また、特許文献2のようにハードウェア(以下、H/Wとも表記する)で構成する場合、S/Wと比較して高速に処理できるものの、ペイロード、パリティを配置する領域はH/Wで固定となるため、例えば、ペイロードに対して、パリティが極端に少なくてもよい場合にパリティ領域として準備したメモリが全て使われることは無く、H/W的な無駄が生じていた。
Since the conventional technology is configured as described above, when performing a series of processes in S / W as in Patent Document 1, complicated calculations such as ECC calculation and address calculation for storing payload and parity are performed in S. Since it is necessary to perform the processing at / W, processing takes time.
In addition, when configured with hardware (hereinafter also referred to as H / W) as in Patent Document 2, although it can be processed at a higher speed than S / W, the area where the payload and parity are arranged is H / W. For example, when the parity may be extremely small with respect to the payload, all the memory prepared as the parity area is not used, resulting in H / W waste.

この発明は、上記のような課題を解決することを主な目的の一つとしており、H/Wの無駄が生じることがなく、高速に処理可能なメモリ制御装置を実現することを主な目的とする。   One of the main objects of the present invention is to solve the above-mentioned problems, and it is a main object of the present invention to realize a memory control device capable of processing at high speed without waste of H / W. And

本発明に係るメモリ制御装置は、
誤り訂正の対象となるペイロードをペイロード領域に格納し、ペイロードの誤り訂正に用いられるパリティデータをパリティ領域に格納するメモリ装置を制御するメモリ制御装置であって、
ペイロードのビット数のパリティデータのビット数に対する比をペイロード/パリティ比として入力するペイロード/パリティ比入力部と、
ペイロードのビット数とパリティデータのビット数との合計値以上の所定数で前記メモリ装置の領域を分割して得られる複数の分割領域を前記ペイロード/パリティ比に近似させてペイロード領域とパリティ領域とに分類した結果ペイロード領域に分類された分割領域の数を、分割比として入力する分割比入力部と、
前記メモリ装置のメモリアドレス長を入力するメモリアドレス長入力部と、
前記ペイロード領域内のメモリアドレスをペイロードアドレスとして入力するペイロードアドレス入力部と、
前記ペイロード/パリティ比入力部により入力されたペイロード/パリティ比と、前記分割比入力部により入力された分割比と、前記メモリアドレス長入力部により入力されたメモリアドレス長と、前記ペイロードアドレス入力部により入力されたペイロードアドレスとを用いて、前記ペイロードアドレスに格納されるペイロードに対応するパリティデータの前記パリティ領域内のメモリアドレスをパリティアドレスとして算出するパリティアドレス算出部とを有することを特徴とする。
The memory control device according to the present invention includes:
A memory control device that controls a memory device that stores a payload to be error corrected in a payload area and stores parity data used for error correction of the payload in a parity area,
A payload / parity ratio input section for inputting a ratio of the number of bits of the payload to the number of bits of parity data as a payload / parity ratio;
A plurality of divided areas obtained by dividing the area of the memory device by a predetermined number equal to or greater than the total value of the number of bits of the payload and the number of bits of parity data are approximated to the payload / parity ratio, A division ratio input unit that inputs the number of divided areas classified into the payload area as a division ratio,
A memory address length input unit for inputting a memory address length of the memory device;
A payload address input unit for inputting a memory address in the payload area as a payload address;
The payload / parity ratio input by the payload / parity ratio input unit, the division ratio input by the division ratio input unit, the memory address length input by the memory address length input unit, and the payload address input unit And a parity address calculation unit that calculates a memory address in the parity area of the parity data corresponding to the payload stored in the payload address as a parity address using the payload address input by .

本発明によれば、ペイロードとパリティデータとのデータ長比の変化や、メモリ装置のサイズの変化に対して、3つのパラメータ(ペイロード/パリティ比、メモリアドレス長、分割比)を変更することで対応可能であり、分割比の設定を適切に行えば、H/Wの無駄が生じることがない。また、制御は全てH/Wで行うことができるので、高速な処理を実現できる。   According to the present invention, three parameters (payload / parity ratio, memory address length, division ratio) are changed in response to a change in the data length ratio between the payload and the parity data and a change in the size of the memory device. If the division ratio is set appropriately, H / W is not wasted. Further, since all control can be performed by H / W, high-speed processing can be realized.

実施の形態1に係るメモリ制御装置の構成例を示す図。FIG. 3 is a diagram illustrating a configuration example of a memory control device according to the first embodiment. 実施の形態1に係るペイロード/パリティ領域アドレス計算部の構成例を示す図。FIG. 3 is a diagram showing a configuration example of a payload / parity area address calculation unit according to the first embodiment. 実施の形態1に係る6ビットで表現できるペイロード領域とパリティ領域の分割比を示す図。The figure which shows the division | segmentation ratio of the payload area | region and parity area which can be expressed by 6 bits which concern on Embodiment 1. FIG. 実施の形態1に係るペイロード領域とパリティ領域の例を示す図。FIG. 3 shows an example of a payload area and a parity area according to the first embodiment. 実施の形態1に係るライト時タイミングチャート図。FIG. 3 is a timing chart at the time of writing according to the first embodiment. 実施の形態1に係るリード時タイミングチャート図。FIG. 4 is a timing chart at the time of reading according to the first embodiment. 実施の形態1に係るリードモディファイライト時タイミングチャート図。FIG. 3 is a timing chart at the time of read-modify-write according to the first embodiment. 実施の形態1に係るリードモディファイライトの概要を示す図。FIG. 3 is a diagram showing an outline of a read modify write according to the first embodiment.

実施の形態1.
本実施の形態は、単一のメモリ装置内にペイロードとパリティデータを格納するためのアドレス計算を行うアドレス計算部と、メモリに対してリード/ライトするための制御信号の制御を行うシーケンス制御部とを備えたメモリ制御装置を説明する。
より詳細には、全ての制御をH/Wによって行うことで高速に処理可能とし、また、アドレス計算をメモリアドレス長と分割比とペイロード/パリティ比という3つのパラメータで行い、単一のメモリ領域に対して、分割比が表現できる最大の自然数の範囲内で任意の割合で2つの領域に分割し、ペイロードとパリティデータを別々に単一メモリ内に格納できるため、H/W的な無駄が生じることのないメモリ制御装置を説明する。
Embodiment 1 FIG.
In the present embodiment, an address calculation unit for performing address calculation for storing payload and parity data in a single memory device, and a sequence control unit for controlling a control signal for reading / writing to / from the memory A memory control device including the above will be described.
More specifically, all control can be performed at high speed by performing H / W, and address calculation is performed with three parameters of memory address length, division ratio, and payload / parity ratio. On the other hand, since it can be divided into two areas at an arbitrary ratio within the range of the maximum natural number that can represent the division ratio, and payload and parity data can be stored separately in a single memory, there is no waste in H / W A memory controller that does not occur will be described.

図1は、本実施の形態1に係るメモリ制御装置等の構成例を示す。
1000は、本実施の形態に係るメモリ制御装置である。
メモリ制御装置1000は、メモリ装置である実メモリ004とECCを計算するECC計算部003に接続されている。
FIG. 1 shows a configuration example of a memory control device and the like according to the first embodiment.
Reference numeral 1000 denotes a memory control device according to the present embodiment.
The memory control device 1000 is connected to an actual memory 004 that is a memory device and an ECC calculation unit 003 that calculates ECC.

メモリ制御装置1000において、ペイロード/パリティ領域アドレス計算部001は、メモリアドレス101と、メモリアドレス長102、分割比103、ペイロード/パリティ比104、ペイロード/パリティ選択信号105を入力とし、ペイロード/パリティデータを格納する実メモリ004のアドレス106を出力する。
シーケンス制御部002は、アドレス106、コマンド107、ライトデータ108、パリティデータ109を入力とし、実メモリ004への制御信号、実メモリアドレス111、実メモリコマンド112、実メモリライトデータ113を出力する。
また、実メモリリードデータ110を入力とし、内部でこれをペイロードとパリティデータを別々にバッファリングして、リードデータ(ペイロード)114とリードデータ(パリティ)115を出力する。
In the memory control device 1000, the payload / parity area address calculation unit 001 receives the memory address 101, the memory address length 102, the division ratio 103, the payload / parity ratio 104, and the payload / parity selection signal 105 as input. Output the address 106 of the real memory 004.
The sequence control unit 002 receives the address 106, the command 107, the write data 108, and the parity data 109, and outputs a control signal, a real memory address 111, a real memory command 112, and a real memory write data 113 to the real memory 004.
Also, the real memory read data 110 is input, and the payload and parity data are buffered separately in the inside, and read data (payload) 114 and read data (parity) 115 are output.

ECC計算部003は、ライトデータ108を入力とし、パリティデータ109を生成する。
また、リードデータ(ペイロード)114とリードデータ(パリティ)115を入力とし、ECC実施後のリードデータ116を出力する。
The ECC calculation unit 003 receives the write data 108 and generates parity data 109.
Also, read data (payload) 114 and read data (parity) 115 are input, and read data 116 after ECC is output.

実メモリ004は、図4に例示するように、ペイロード領域とパリティ領域に区分されており、ペイロードをペイロード領域に格納し、パリティデータをパリティ領域に格納する。   As illustrated in FIG. 4, the real memory 004 is divided into a payload area and a parity area, stores the payload in the payload area, and stores parity data in the parity area.

なお、メモリアドレス長102、分割比103、ペイロード/パリティ比104は、基本的に固定値である。
これらパラメータ値は、ECCアルゴリズムや、実メモリ004の容量に併せて変更するものであり、ECCアルゴリズム、メモリ容量が変更されない限り、変更されない。
例えば、システムの起動時に一度設定され、その後は変更されない。
The memory address length 102, the division ratio 103, and the payload / parity ratio 104 are basically fixed values.
These parameter values are changed in accordance with the ECC algorithm and the capacity of the real memory 004, and are not changed unless the ECC algorithm and the memory capacity are changed.
For example, it is set once when the system is started and is not changed thereafter.

次に、ペイロード/パリティ領域アドレス計算部001の詳細な構成を図2に示す。
以降説明を簡単にするため、本実施の形態では、メモリアドレスを32ビットの信号線で入力し、分割比を6ビットの信号線で入力し、メモリアドレス長を20ビットの信号線で入力する。
これは説明を簡単にするためであり、構成を限定するものではない。
Next, the detailed configuration of the payload / parity area address calculation unit 001 is shown in FIG.
In the following description, in order to simplify the description, the memory address is input by a 32-bit signal line, the division ratio is input by a 6-bit signal line, and the memory address length is input by a 20-bit signal line. .
This is for simplifying the description and does not limit the configuration.

ペイロードアドレス入力部121は、メモリアドレス101を表すビット列とメモリアドレス長102を入力し、メモリアドレス101をメモリアドレス長102が示すビット数分だけ有効にし、残りを“0”にマスクする。即ち、本実施の形態を例とすれば、メモリアドレス32ビットのうち、下位20ビットが有効になり、上位12ビットは“0”にマスクされる。
メモリアドレス101は、リード対象又はライト対象のペイロードのアドレス(実メモリ004のペイロード領域内のアドレス)である。
The payload address input unit 121 inputs a bit string representing the memory address 101 and the memory address length 102, validates the memory address 101 by the number of bits indicated by the memory address length 102, and masks the rest to “0”. In other words, taking this embodiment as an example, the lower 20 bits of the 32 memory addresses are valid and the upper 12 bits are masked to “0”.
The memory address 101 is the address of the payload to be read or written (the address in the payload area of the real memory 004).

メモリアドレス長入力部122は、メモリアドレス長102を表すビット列を入力する。
メモリアドレス長102は実メモリ004のアドレス長である。
The memory address length input unit 122 inputs a bit string representing the memory address length 102.
The memory address length 102 is the address length of the real memory 004.

分割比入力部123は、分割比103を表すビット列を入力する。
なお、分割比103の詳細は後述する。
The division ratio input unit 123 inputs a bit string representing the division ratio 103.
Details of the division ratio 103 will be described later.

ペイロード/パリティ比入力部124は、ペイロード/パリティ比104を入力する。
ペイロード/パリティ比104は、ペイロードのデータ長のパリティデータのデータ長に対する比を2を底とする対数をとって表現したものである。
例えば、データ長32ビットのペイロードに対し、データ長8ビットのパリティデータであれば、ペイロード/パリティ比104はlog32/8=「2」となる。
The payload / parity ratio input unit 124 inputs the payload / parity ratio 104.
The payload / parity ratio 104 represents the ratio of the data length of the payload to the data length of the parity data as a logarithm with 2 as the base.
For example, for a payload with a data length of 32 bits, if the parity data has a data length of 8 bits, the payload / parity ratio 104 is log 2 32/8 = “2”.

第1のシフト部125は、メモリアドレス101を表すビット列をペイロード/パリティ比104に応じて右シフト又は左シフトする。
より具体的には、第1のシフト部125は、ペイロードのデータ長がパリティデータのデータ長より長ければ(ペイロード>パリティ)、ペイロード/パリティ比104の値に対応するビット数分、メモリアドレス101を表すビット列を右方向にシフトする。
また、ペイロードのデータ長がパリティデータのデータ長より短かければ(ペイロード<パリティ)、ペイロード/パリティ比104の値に対応するビット数分、メモリアドレス101を表すビット列を左方向にシフトする。
例えば、データ長32ビットのペイロードに対し、データ長8ビットのパリティデータであれば、ペイロード/パリティ比104は「2」であり、第1のシフト部125は、メモリアドレス101を表すビット列を2ビット分右シフトする。
逆に、8ビットのペイロードに対し、32ビットのパリティデータであれば、ペイロード/パリティ比104は「−2」であり、第1のシフト部125は、メモリアドレス101を表すビット列を2ビット分左シフトする。
なお、ペイロード/パリティが「2.2」のように整数でない場合は、整数部分のビット数分のシフトを行う。
つまり、ペイロード/パリティ比104が「2.2」の場合は、2ビット分右シフトする。
また、ペイロードのデータ長とパリティデータのデータ長が同数であれば(ペイロード=パリティ)、いずれの方向にもシフトしない。
The first shift unit 125 shifts the bit string representing the memory address 101 to the right or left according to the payload / parity ratio 104.
More specifically, if the data length of the payload is longer than the data length of the parity data (payload> parity), the first shift unit 125 increases the memory address 101 by the number of bits corresponding to the value of the payload / parity ratio 104. The bit string representing is shifted to the right.
If the data length of the payload is shorter than the data length of the parity data (payload <parity), the bit string representing the memory address 101 is shifted leftward by the number of bits corresponding to the value of the payload / parity ratio 104.
For example, for a payload with a data length of 32 bits, if the parity data has a data length of 8 bits, the payload / parity ratio 104 is “2”, and the first shift unit 125 sets the bit string representing the memory address 101 to 2 Shift right by bits.
Conversely, if the parity data is 32 bits with respect to the 8-bit payload, the payload / parity ratio 104 is “−2”, and the first shift unit 125 converts the bit string representing the memory address 101 into 2 bits. Shift left.
If the payload / parity is not an integer such as “2.2”, a shift corresponding to the number of bits of the integer portion is performed.
That is, when the payload / parity ratio 104 is “2.2”, the data is shifted to the right by 2 bits.
Further, if the data length of the payload and the data length of the parity data are the same number (payload = parity), the data is not shifted in either direction.

シフト量計算部127は、メモリアドレス長102のビット列のビット数(mビットとする)と分割比103を表すビット列のビット数(nビットとする)との差((m−n)ビット)を求める。
なお、m及びnはともに自然数である。
The shift amount calculation unit 127 calculates a difference ((mn) bits) between the number of bits of the bit string having the memory address length 102 (m bits) and the number of bits of the bit string representing the division ratio 103 (n bits). Ask.
Note that m and n are both natural numbers.

第2のシフト部126は、分割比103を表すビット列を、シフト量計算部127により算出された(m−n)ビット分左方向にシフトする。   The second shift unit 126 shifts the bit string representing the division ratio 103 to the left by (mn) bits calculated by the shift amount calculation unit 127.

加算器128は、第1のシフト部125によりシフト演算された後のメモリアドレス101を表すビット列と、第2のシフト部126によりシフト演算された後の分割比103を表すビット列とを加算する。
第2のシフト部126による加算結果が、メモリアドレス101で特定されるペイロードに対応するパリティデータのアドレス(実メモリ004のパリティ領域内のアドレス)である。
つまり、第一のシフト部125より出力される値はパリティデータを格納するメモリアドレスの下位部分を、第二のシフト部126から出力される値はパリティデータを格納するアドレスのメモリ先頭アドレスからのオフセットを表している。よって、これらを加算すれば、パリティデータのアドレスを算出できる事となる。
The adder 128 adds the bit string representing the memory address 101 after the shift calculation by the first shift unit 125 and the bit string representing the division ratio 103 after the shift calculation by the second shift unit 126.
The addition result by the second shift unit 126 is the address of the parity data corresponding to the payload specified by the memory address 101 (the address in the parity area of the real memory 004).
That is, the value output from the first shift unit 125 is the lower part of the memory address storing the parity data, and the value output from the second shift unit 126 is from the memory start address of the address storing the parity data. Indicates an offset. Therefore, by adding these, the address of the parity data can be calculated.

セレクタ129は、ペイロード/パリティ選択信号105に基づいて、シーケンス制御部002に出力するアドレス106を選択する。
つまり、ペイロード/パリティ選択信号105でペイロードが指定されている場合は、メモリアドレス101をそのままアドレス106として出力する。
一方、ペイロード/パリティ選択信号105でパリティが指定されている場合は、加算器128により生成されたパリティデータのアドレスをアドレス106として出力する。
The selector 129 selects the address 106 to be output to the sequence control unit 002 based on the payload / parity selection signal 105.
That is, when a payload is specified by the payload / parity selection signal 105, the memory address 101 is output as the address 106 as it is.
On the other hand, when the parity is designated by the payload / parity selection signal 105, the address of the parity data generated by the adder 128 is output as the address 106.

アドレス106は、メモリアドレス101と同じサイズ(実施の形態1では32ビット)である。
アドレス106の32ビットのうち、メモリアドレス長(実施の形態1では20ビット)の中にパリティデータを収めるアドレスが含まれる。
実メモリアドレス111は、アドレス106の32ビットのうち有効な20ビット(実メモリアドレス)を示したもので、実使用上ではこの20ビットが実メモリのアドレス線につながる。
残りの12ビットは接続しない。
The address 106 is the same size as the memory address 101 (32 bits in the first embodiment).
Of the 32 bits of the address 106, the address for storing the parity data is included in the memory address length (20 bits in the first embodiment).
The real memory address 111 indicates valid 20 bits (real memory address) out of 32 bits of the address 106, and in actual use, these 20 bits are connected to the address line of the real memory.
The remaining 12 bits are not connected.

なお、図2の構成において、第1のシフト部125、第2のシフト部126、シフト量計算部及び127加算器128は、パリティアドレス算出部に相当し、セレクタ129はアドレス通知部に相当する。   In the configuration of FIG. 2, the first shift unit 125, the second shift unit 126, the shift amount calculation unit, and the 127 adder 128 correspond to a parity address calculation unit, and the selector 129 corresponds to an address notification unit. .

次に、分割比103について説明する。
分割比103はペイロード/パリティデータを実メモリ004上でどのような割合で格納するかを表す。
換言すると、分割比103は、ペイロードのビット数とパリティデータのビット数との合計値以上の所定数で実メモリ004の領域を分割して得られる複数の分割領域をペイロード/パリティ比に近似させてペイロード領域とパリティ領域とに分類した結果ペイロード領域に分類された分割領域の数である。
具体的な表現方法としては、分割比が2進数で表現可能な最大の自然数、6ビットであれば11_1111(2進)=64(10進)、でメモリを分割し、分割した領域のうちペイロードが使用する領域の数を表現する。
この表現方法によれば、実メモリ内のペイロード領域とパリティ領域の比は、次の式(1)で表される。
ペイロード領域:パリティ領域=ペイロード使用領域数:64−ペイロード使用領域数・・・(1)
従って、例えばECCのアルゴリズムが32ビットのペイロードに対し、8ビットのパリティを必要とする場合、この比に最も近くなる分割比51:13=3.92:1となるように分割比を11_0011(2進数)=51(10進数)に設定する。
Next, the division ratio 103 will be described.
The division ratio 103 represents the ratio at which the payload / parity data is stored on the real memory 004.
In other words, the division ratio 103 is obtained by approximating a plurality of divided areas obtained by dividing an area of the real memory 004 by a predetermined number equal to or greater than the sum of the number of payload bits and the number of parity data bits to the payload / parity ratio. The number of divided areas classified into the payload area as a result of the classification into the payload area and the parity area.
As a specific expression method, the memory is divided by the maximum natural number that can be expressed by a binary number, or 11_1111 (binary) = 64 (decimal) if the division ratio is 6 bits. Represents the number of regions used by.
According to this expression method, the ratio between the payload area and the parity area in the real memory is expressed by the following equation (1).
Payload area: Parity area = Payload use area number: 64-Payload use area number (1)
Therefore, for example, when the ECC algorithm requires 8-bit parity for a 32-bit payload, the division ratio is set to 11_0011 () so that the division ratio 51: 13 = 3.92: 1 is closest to this ratio. Binary number) = 51 (decimal number).

以上のように構成しているため、本実施の形態の場合、分割比は0から、分割比(6ビット)が表現可能最大の自然数、2=64の間を自由に動かすことができ、ECCのアルゴリズムが変わりペイロードとパリティの比率が変わっても柔軟に対応でき、H/W的な無駄を削減することができる。
図3に分割比6ビットで表現できるペイロード領域とパリティ領域の分割比率を示す。
Since it is configured as described above, in the case of the present embodiment, the division ratio can be freely moved from 0 to the maximum natural number that can be expressed by the division ratio (6 bits), 2 6 = 64, Even if the ECC algorithm changes and the ratio between the payload and the parity changes, it is possible to flexibly cope with it and reduce H / W waste.
FIG. 3 shows the division ratio between the payload area and the parity area that can be expressed by a division ratio of 6 bits.

次にアドレス計算の方法について説明する。   Next, an address calculation method will be described.

計算に用いるメモリアドレス長102は、本メモリ制御装置1000に繋がる実メモリ004のアドレス長を表したものであり、例えば容量512kBのメモリであれば、19(10進表記)、1MBのメモリであれば20(10進表記)である。
また、ペイロード/パリティ選択信号105は、ペイロード/パリティデータどちらの領域を示すアドレスを出力するかを示す信号である。
この信号がペイロードアドレスを出力するように指示していれば、メモリアドレス101をそのまま出力する。
パリティアドレスを出力するよう指示していれば、メモリアドレス101から、ペイロード/パリティ比104、分割比103、メモリアドレス長102を計算のパラメータとし、パリティアドレスを生成する。
The memory address length 102 used for the calculation represents the address length of the real memory 004 connected to the memory control apparatus 1000. For example, if the memory has a capacity of 512 kB, it may be 19 (decimal notation), 1 MB memory. 20 (decimal notation).
The payload / parity selection signal 105 is a signal indicating which address indicating the payload / parity data area is output.
If this signal instructs to output the payload address, the memory address 101 is output as it is.
If an instruction to output a parity address is given, a parity address is generated from the memory address 101 using the payload / parity ratio 104, the division ratio 103, and the memory address length 102 as calculation parameters.

本実施の形態1におけるパリティアドレスの計算は、図2に示すように、メモリアドレス101、メモリアドレス長102、分割比103、ペイロード/パリティ比104を用い、論理シフトと加算器のみで構成でき、小回路規模で実現可能である。   As shown in FIG. 2, the calculation of the parity address in the first embodiment can be configured with only a logical shift and an adder using a memory address 101, a memory address length 102, a division ratio 103, and a payload / parity ratio 104. It can be realized on a small circuit scale.

メモリアドレス長102から計算される分割比103のシフト量は、前述したように、分割比103を示すnビットのビット列と、mビットで示されるメモリアドレス長102との差である(m−n)ビットとなる。
そして、分割比103を示すnビットのビット列を(m−n)ビット分左シフトする。
つまり、分割比103を示すnビットのビット列を、mビットで示されるメモリアドレス長102から計算される入力メモリアドレス101の最上位ビット位置にシフトする。
本実施の形態では、m=20、n=6であるから、シフト量は14ビットとなり、分割比103を示すビット列を14ビット左シフトする。
また、前述したように、メモリアドレス101を表すビット列をペイロード/パリティ比104に応じて右シフト又は左シフトした結果と、左シフト後の分割比103を表すビット列とを加算して、パリティアドレスを得る。
As described above, the shift amount of the division ratio 103 calculated from the memory address length 102 is the difference between the n-bit bit string indicating the division ratio 103 and the memory address length 102 indicated by m bits (mn). ) Bit.
Then, the n-bit bit string indicating the division ratio 103 is shifted left by (mn) bits.
That is, the n-bit bit string indicating the division ratio 103 is shifted to the most significant bit position of the input memory address 101 calculated from the memory address length 102 indicated by m bits.
In this embodiment, since m = 20 and n = 6, the shift amount is 14 bits, and the bit string indicating the division ratio 103 is shifted left by 14 bits.
Further, as described above, the bit string representing the memory address 101 is right-shifted or left-shifted according to the payload / parity ratio 104 and the bit string representing the division ratio 103 after the left shift is added to obtain the parity address. obtain.

シーケンス制御部002は、アドレス106、コマンド107、ライトデータ108を入力とし、実メモリ004を制御するための制御信号実メモリアドレス111、実メモリコマンド112、実メモリライトデータ113を出力する。
実メモリコマンド112は、本実施の形態ではメモリ制御の一般的な制御信号を含むものとする。
メモリ制御信号としては、例えば、メモリに対するコマンドが有効であることを示すチップセレクト信号、リード/ライトを指示するリード/ライト信号、リード/ライト位置を指示するバイトコントロールなどである。
これら制御信号を、接続されるメモリの性能や規格/仕様に合わせて、各信号のアサート/ネゲート期間、および順序を制御し、メモリへのリード/ライトを可能する。
また、本実施の形態ではペイロードとパリティデータを同一メモリに格納するため、少なくとも2回のメモリアクセス(ペイロードのリード/ライト、パリティのリード/ライト)が必要である。
本実施の形態では、1回目のアクセスでペイロードのリード/ライトを行い、2回目のアクセスでパリティデータのリード/ライトを行う。
この一連のシーケンス制御をシーケンス制御部002で行う。
なお、本実施の形態ではペイロードのリード/ライトを1回目、パリティデータのリード/ライトを2回目としたが、この順序を逆にしてもよい。
The sequence control unit 002 receives the address 106, the command 107, and the write data 108, and outputs a control signal real memory address 111, a real memory command 112, and a real memory write data 113 for controlling the real memory 004.
In this embodiment, the real memory command 112 includes a general control signal for memory control.
Examples of the memory control signal include a chip select signal indicating that a command to the memory is valid, a read / write signal instructing read / write, and a byte control instructing a read / write position.
These control signals can be read / written to the memory by controlling the assertion / negotiation period and order of each signal in accordance with the performance and standard / specification of the connected memory.
In this embodiment, since the payload and parity data are stored in the same memory, at least two memory accesses (payload read / write, parity read / write) are required.
In this embodiment, the payload is read / written in the first access, and the parity data is read / written in the second access.
This series of sequence control is performed by the sequence control unit 002.
In this embodiment, the payload read / write is performed for the first time and the parity data read / write is performed for the second time. However, this order may be reversed.

また、ECCの計算は適用するアルゴリズムに従って、決まった長さのペイロードに対して、決まった長さのパリティが必要となる。
従って、決まった長さより短い、または長いペイロードをメモリに書き込みたい場合、特別な処理が必要となる。
例えば、32ビット(4バイト)のペイロードに対して8ビット(1バイト)のパリティが必要となるECCアルゴリズムを適用している場合において、図8に示すように、あるアドレスに最初4バイトで書き込みを行った後、同じアドレスの1バイトのペイロードだけ書き換える場合を考える。
最初のアクセス(図8(a))では4バイトのペイロードが有るので、パリティは問題なく生成できる。
2番目のアクセス(図8(b))では、同じアドレスの1バイト分だけ書き換えたいが、パリティはすでに残り3バイトの冗長データを含む形で生成されているので、残りの3バイトのペイロードが無いと正しいパリティを生成できない。
そこで、この残りの3バイトのペイロード(とパリティ)をライトに先んじて読み出す。
そして、リードした3バイトのペイロードを8ビットのライトデータ(ペイロード)とマージして32ビットとしてからECCを計算する。
このようなリードモディファイライト処理も、シーケンス制御部002で行う。
In addition, ECC calculation requires a fixed length of parity for a fixed length of payload according to an algorithm to be applied.
Therefore, special processing is required when it is desired to write a payload shorter or longer than a predetermined length to the memory.
For example, when an ECC algorithm that requires 8-bit (1-byte) parity is applied to a 32-bit (4-byte) payload, the first 4 bytes are written to an address as shown in FIG. After performing the above, consider the case where only the 1-byte payload at the same address is rewritten.
Since the first access (FIG. 8A) has a 4-byte payload, parity can be generated without any problem.
In the second access (FIG. 8 (b)), we want to rewrite only 1 byte of the same address, but since the parity has already been generated in a form including the remaining 3 bytes of redundant data, the remaining 3 bytes of payload is Without it, correct parity cannot be generated.
Therefore, the remaining 3-byte payload (and parity) is read prior to writing.
Then, the read 3-byte payload is merged with 8-bit write data (payload) to obtain 32 bits, and then the ECC is calculated.
Such read-modify-write processing is also performed by the sequence control unit 002.

ECC計算部003は、ライトデータ108を入力とし、ECCのアルゴリズムに従ってパリティデータ109を算出する。
また、シーケンス制御部002から、リードデータ(ペイロード)114と、リードデータ(パリティ)115を入力し、リードデータ(パリティ)115を用いて、リードデータ(ペイロード)114に誤りがある場合は、訂正し、リードデータ116として出力する。
The ECC calculation unit 003 receives the write data 108 and calculates the parity data 109 according to the ECC algorithm.
Also, read data (payload) 114 and read data (parity) 115 are input from sequence control unit 002, and if there is an error in read data (payload) 114 using read data (parity) 115, correction is performed. And output as read data 116.

以上のような構成をとれば、ECCのアルゴリズムが変わったことによるペイロードやパリティデータの割合の変化や、実メモリのサイズが変化しても、3つのパラメータ(メモリアドレス長と分割比、ペイロード/パリティ比)をこれに合わせて変更するだけでよく、また、ペイロード、パリティデータの格納は同一のメモリ内を領域分割して格納し、また分割の割合は分割比が表現できる最大の自然数の範囲内で任意に設定できるため、分割比の設定を適切に行えば、H/Wの無駄が生じることがない。
また、制御は全てH/Wで行うため、高速に処理可能である。
さらに、ペイロード/パリティ領域アドレス計算は、図2で示したように、論理演算とシフタだけで構成できるため、回路規模を小さくできる。
With the above configuration, even if the payload algorithm or parity data ratio changes due to a change in the ECC algorithm or the actual memory size changes, three parameters (memory address length and division ratio, payload / (Parity ratio) only needs to be changed accordingly. Payload and parity data are stored in the same memory by dividing the area, and the division ratio is the maximum natural number range that can be expressed by the division ratio. Therefore, if the division ratio is set appropriately, H / W is not wasted.
Moreover, since all control is performed by H / W, it can process at high speed.
Furthermore, since the payload / parity area address calculation can be configured with only logical operations and shifters as shown in FIG. 2, the circuit scale can be reduced.

次に、ライト時の動作、リード時の動作、リードモディファイライト時の動作を説明する。   Next, the operation at the time of writing, the operation at the time of reading, and the operation at the time of read modify writing will be described.

ライト時のタイミングチャートを、図5に示す。
ライト時の動作は、以下の(1)と(2)で構成される。
FIG. 5 shows a timing chart at the time of writing.
The operation at the time of writing is composed of the following (1) and (2).

(1)まず、メモリ制御装置1000に対するライトリクエスト(コマンド107)がシーケンス制御部002に入力される。
シーケンス制御部002は、ライトであることを認識したら、まずは、ペイロードデータをメモリに書きこむため、ペイロード/パリティ領域アドレス計算部001に対して、ペイロード/パリティ選択信号105を出力してペイロードを選択することを知らせる。
ペイロード/パリティ領域アドレス計算部001は、この知らせを受け取ると、ペイロードデータの書き込みアドレス(メモリアドレス101そのもの)をアドレス106としてシーケンス制御部002に返す。
このアドレス106に従って、シーケンス制御部002は実メモリ004にペイロードデータのライト動作を行う。
(2)上記の(1)のライトが完了したら、次にシーケンス制御部002はペイロード/パリティ領域アドレス計算部001にペイロード/パリティ選択信号105を出力してパリティデータを選択することを知らせる。
ペイロード/パリティ領域アドレス計算部001は、この知らせを受け取ると、上記した手順にてパリティデータの書き込みアドレスを生成し、パリティデータの書き込みアドレスをアドレス106としてシーケンス制御部002に返す。
このアドレス106に従って、シーケンス制御部002は実メモリ004にパリティデータ109のライト動作を行う。
(1) First, a write request (command 107) to the memory control device 1000 is input to the sequence control unit 002.
When recognizing that it is a write, the sequence control unit 002 first outputs the payload / parity selection signal 105 to the payload / parity area address calculation unit 001 to select the payload in order to write the payload data into the memory. Let them know.
Upon receiving this notification, the payload / parity area address calculation unit 001 returns the payload data write address (memory address 101 itself) to the sequence control unit 002 as the address 106.
In accordance with this address 106, the sequence control unit 002 performs a payload data write operation to the real memory 004.
(2) When the write of (1) is completed, the sequence control unit 002 next outputs a payload / parity selection signal 105 to the payload / parity area address calculation unit 001 to inform the selection of parity data.
Upon receiving this notification, the payload / parity area address calculation unit 001 generates a parity data write address according to the above-described procedure, and returns the parity data write address as the address 106 to the sequence control unit 002.
In accordance with this address 106, the sequence control unit 002 performs a parity data 109 write operation to the real memory 004.

次に、リード時のタイミングチャートを、図6に示す。
ライト時の動作は、以下の(1)と(2)と(3)で構成される。
Next, FIG. 6 shows a timing chart at the time of reading.
The operation at the time of writing is composed of the following (1), (2) and (3).

(1)まず、メモリ制御装置1000に対するリードリクエスト(コマンド107)がシーケンス制御部002に入力される。
シーケンス制御部002は、リードであることを認識したら、まずは、ペイロードデータを実メモリ004から読み出すため、ペイロード/パリティ領域アドレス計算部001に対して、ペイロード/パリティ選択信号105を出力してペイロードを選択することを知らせる。
ペイロード/パリティ領域アドレス計算部001は、この知らせを受け取ると、ペイロードデータの読み出しアドレス(メモリアドレス101そのもの)をアドレス106としてシーケンス制御部002に返す。
このアドレス106に従って、シーケンス制御部002は実メモリ004にペイロードデータのリード動作を行う。
(2)上記(1)のリードが完了したら、次にシーケンス制御部002はペイロード/パリティ領域アドレス計算部001にペイロード/パリティ選択信号105を出力してパリティを選択することを知らせる。
ペイロード/パリティ領域アドレス計算部001は、この知らせを受け取ると、上記した手順にてパリティデータの読み出しアドレスを生成し、パリティデータの読み出しアドレスをアドレス106としてシーケンス制御部002に返す。
このアドレス106に従って、シーケンス制御部002は実メモリ004にパリティデータのリード動作を行う。
(3)最後に、ECC計算部003が、リードデータ(ペイロード)114とリードデータ(パリティ)115からECC計算を行って、計算結果をリードデータ116として出力する。
(1) First, a read request (command 107) for the memory control device 1000 is input to the sequence control unit 002.
When the sequence control unit 002 recognizes that it is a read, first, in order to read the payload data from the real memory 004, it outputs a payload / parity selection signal 105 to the payload / parity area address calculation unit 001 and outputs the payload. Tell them to choose.
Upon receiving this notification, the payload / parity area address calculating unit 001 returns the payload data read address (memory address 101 itself) to the sequence control unit 002 as the address 106.
In accordance with this address 106, the sequence control unit 002 performs a payload data read operation on the real memory 004.
(2) When the reading of (1) above is completed, the sequence control unit 002 next outputs a payload / parity selection signal 105 to the payload / parity area address calculation unit 001 to inform it to select a parity.
Upon receiving this notification, the payload / parity area address calculation unit 001 generates a parity data read address by the above-described procedure, and returns the parity data read address as the address 106 to the sequence control unit 002.
In accordance with this address 106, the sequence control unit 002 performs a parity data read operation on the real memory 004.
(3) Finally, the ECC calculation unit 003 performs ECC calculation from the read data (payload) 114 and the read data (parity) 115 and outputs the calculation result as read data 116.

次に、リードモディファイライト時のタイミングチャートを、図7に示す。
リードモディファイライト時の動作は、以下の(1)〜(5)で構成される。
Next, FIG. 7 shows a timing chart at the time of read-modify-write.
The operation during read-modify-write is composed of the following (1) to (5).

(1)シーケンス制御部002は、図6を参照して説明したペイロードのリード動作をマージ対象のペイロードに対して行う。
(2)同様に、シーケンス制御部002は、図6を参照して説明したパリティデータのリード動作をマージ対象のペイロードのパリティデータに対して行う。
(3)ECC計算部003が、ライトデータ108と上記の(1)で読み出したペイロードとをマージし、上記の(2)で読み出したパリティデータを用いて、新たなパリティデータを生成する。
(4)次に、シーケンス制御部002は、図5を参照して説明したペイロードのライト動作をマージ後のペイロードに対して行う。
(5)同様に、シーケンス制御部002は、図5を参照して説明したパリティのライト動作を新たなパリティデータに対して行う。
(1) The sequence control unit 002 performs the payload read operation described with reference to FIG. 6 on the payload to be merged.
(2) Similarly, the sequence control unit 002 performs the parity data read operation described with reference to FIG. 6 on the parity data of the payload to be merged.
(3) The ECC calculation unit 003 merges the write data 108 and the payload read in (1) above, and generates new parity data using the parity data read in (2) above.
(4) Next, the sequence control unit 002 performs the payload write operation described with reference to FIG. 5 on the merged payload.
(5) Similarly, the sequence control unit 002 performs the parity write operation described with reference to FIG. 5 on new parity data.

以上、本実施の形態では、ECC(Error Check and Correct memory)を計算するECC計算部と、ECCのペイロードとパリティビットを格納するメモリアドレスを計算するアドレス計算部と、メモリに対してリード/ライトするための制御信号の制御を行うシーケンス制御部を備えたメモリ制御装置を説明した。   As described above, in this embodiment, an ECC calculation unit that calculates ECC (Error Check and Correct memory), an address calculation unit that calculates a memory address for storing an ECC payload and a parity bit, and read / write to the memory A memory control device including a sequence control unit that controls a control signal for performing the above-described operation has been described.

また、前記アドレス計算部が、メモリアドレス長と分割比をパラメータとし、ペイロードとパリティデータを格納するメモリアドレスを計算することを説明した。   In addition, it has been described that the address calculation unit calculates a memory address for storing payload and parity data using the memory address length and the division ratio as parameters.

また、前記アドレス計算部が、メモリアドレスと、ペイロード/パリティ領域のどちらのアドレスを出力するかを指示するペイロード/パリティ選択信号と、分割比を示すn(nは自然数)ビットのビット列と、m(mは自然数)ビットで示されるメモリアドレス長とペイロード/パリティ比を入力とし、ペイロード/パリティ選択信号がペイロード領域のアドレス出力を指示する場合は入力されたメモリアドレスをそのまま出力し、パリティ領域のアドレス出力を指示する場合は、分割比を示すnビットのビット列を、mビットで示されるメモリアドレス長から計算される入力メモリアドレスの最上位ビット位置にシフトし、このシフトしたnビットのビット列と、ペイロード/パリティ比で示されるビット数分右シフトしたメモリアドレスとを加算することでパリティ領域のメモリアドレスを計算することを説明した。   The address calculation unit outputs a memory address, a payload / parity selection signal indicating which address of the payload / parity area is output, a bit string of n (n is a natural number) bits indicating a division ratio, and m (M is a natural number) When the memory address length indicated in bits and the payload / parity ratio are input, and the payload / parity selection signal indicates the output of the address of the payload area, the input memory address is output as it is, and the parity area When instructing the address output, the n-bit bit string indicating the division ratio is shifted to the most significant bit position of the input memory address calculated from the memory address length indicated by m bits, and the shifted n-bit bit string and , The memory address shifted right by the number of bits indicated by the payload / parity ratio. It has been described to calculate a memory address of the parity area by adding and.

001 ペイロード/パリティ領域アドレス計算部、002 シーケンス制御部、003 ECC計算部、004 実メモリ、101 メモリアドレス、102 メモリアドレス長、103 分割比、104 ペイロード/パリティ比、105 ペイロード/パリティ選択信号、106 アドレス、107 コマンド、108 ライトデータ、109 パリティデータ、110 実メモリリードデータ、111 実メモリアドレス、112 実メモリコマンド、113 実メモリライトデータ、114 リードデータ(ペイロード)、115 リードデータ(パリティ)、116 リードデータ、121 ペイロードアドレス入力部、122 メモリアドレス長入力部、123 分割比入力部、124 ペイロード/パリティ比入力部、125 第1のシフト部、126 第2のシフト部、127 シフト量計算部、128 加算器、129 セレクタ、1000 メモリ制御装置。   001 Payload / parity area address calculation unit, 002 sequence control unit, 003 ECC calculation unit, 004 real memory, 101 memory address, 102 memory address length, 103 division ratio, 104 payload / parity ratio, 105 payload / parity selection signal, 106 Address, 107 command, 108 write data, 109 parity data, 110 real memory read data, 111 real memory address, 112 real memory command, 113 real memory write data, 114 read data (payload), 115 read data (parity), 116 Read data, 121 Payload address input section, 122 Memory address length input section, 123 Division ratio input section, 124 Payload / parity ratio input section, 125 First shift , 126 second shift section, 127 a shift amount calculation portion, 128 an adder, 129 a selector, 1000 memory controller.

Claims (3)

誤り訂正の対象となるペイロードをペイロード領域に格納し、ペイロードの誤り訂正に用いられるパリティデータをパリティ領域に格納するメモリ装置を制御するメモリ制御装置であって、
ペイロードのビット数のパリティデータのビット数に対する比をペイロード/パリティ比として入力するペイロード/パリティ比入力部と、
ペイロードのビット数とパリティデータのビット数との合計値以上の所定数で前記メモリ装置の領域を分割して得られる複数の分割領域を前記ペイロード/パリティ比に近似させてペイロード領域とパリティ領域とに分類した結果ペイロード領域に分類された分割領域の数を、分割比として入力する分割比入力部と、
前記メモリ装置のメモリアドレス長を入力するメモリアドレス長入力部と、
前記ペイロード領域内のメモリアドレスをペイロードアドレスとして入力するペイロードアドレス入力部と、
前記ペイロード/パリティ比入力部により入力されたペイロード/パリティ比と、前記分割比入力部により入力された分割比と、前記メモリアドレス長入力部により入力されたメモリアドレス長と、前記ペイロードアドレス入力部により入力されたペイロードアドレスとを用いて、前記ペイロードアドレスに格納されるペイロードに対応するパリティデータの前記パリティ領域内のメモリアドレスをパリティアドレスとして算出するパリティアドレス算出部とを有することを特徴とするメモリ制御装置。
A memory control device that controls a memory device that stores a payload to be error corrected in a payload area and stores parity data used for error correction of the payload in a parity area,
A payload / parity ratio input section for inputting a ratio of the number of bits of the payload to the number of bits of parity data as a payload / parity ratio;
A plurality of divided areas obtained by dividing the area of the memory device by a predetermined number equal to or greater than the total value of the number of bits of the payload and the number of bits of parity data are approximated to the payload / parity ratio, A division ratio input unit that inputs the number of divided areas classified into the payload area as a division ratio,
A memory address length input unit for inputting a memory address length of the memory device;
A payload address input unit for inputting a memory address in the payload area as a payload address;
The payload / parity ratio input by the payload / parity ratio input unit, the division ratio input by the division ratio input unit, the memory address length input by the memory address length input unit, and the payload address input unit And a parity address calculation unit that calculates a memory address in the parity area of the parity data corresponding to the payload stored in the payload address as a parity address using the payload address input by Memory controller.
前記分割比入力部は、
前記分割比を表すn(nは自然数)ビットのビット列を分割比ビット列として入力し、
前記メモリアドレス長入力部は、
前記メモリアドレス長を表すm(mは自然数)ビットのビット列をメモリアドレス長ビット列として入力し、
前記パリティアドレス算出部は、
前記メモリアドレス長ビット列のビット数と前記分割比ビット列のビット数との差である(m−n)ビット分、前記分割比ビット列を左方向にシフトし、
前記ペイロードのビット数が前記パリティデータのデータ長より長ければ前記ペイロード/パリティ比の値に対応するビット数分、前記ペイロードアドレスを右方向にシフトし、前記ペイロードのビット数が前記パリティデータのデータ長より短ければ前記ペイロード/パリティ比の値に対応するビット数分、前記ペイロードアドレスを左方向にシフトし、
シフト後の前記分割比ビット列とシフト後の前記ペイロードアドレスとを加算して、前記パリティアドレスを算出することを特徴とする請求項1に記載のメモリ制御装置。
The split ratio input unit is
A bit string of n (n is a natural number) bits representing the division ratio is input as a division ratio bit string,
The memory address length input unit is:
A bit string of m (m is a natural number) bits representing the memory address length is input as a memory address length bit string,
The parity address calculation unit
Shifting the division ratio bit string to the left by (mn) bits, which is the difference between the bit number of the memory address length bit string and the bit number of the division ratio bit string,
If the number of bits of the payload is longer than the data length of the parity data, the payload address is shifted to the right by the number of bits corresponding to the value of the payload / parity ratio, and the number of bits of the payload is the data of the parity data. If shorter than the length, the payload address is shifted leftward by the number of bits corresponding to the value of the payload / parity ratio,
The memory control device according to claim 1, wherein the parity address is calculated by adding the shifted division ratio bit string and the shifted payload address.
前記メモリ制御装置は、更に、
ペイロードのメモリアドレスとパリティデータのメモリアドレスを問い合わせ、問い合わせに対して通知されたメモリアドレスに基づき、前記メモリ装置からのペイロード及びパリティデータの読出し及び前記メモリ装置へのペイロード及びパリティデータの書込みの少なくともいずれかを行うシーケンス制御部と、
前記シーケンス制御部からの問い合わせを入力し、前記シーケンス制御部からペイロードのメモリアドレスの問い合わせがあった場合に、前記ペイロードアドレス入力部により入力されたペイロードアドレスを前記シーケンス制御部に通知し、前記シーケンス制御部からパリティデータのメモリアドレスの問い合わせがあった場合に、前記パリティアドレス算出部により算出されたパリティアドレスを前記シーケンス制御部に通知するアドレス通知部とを有することを特徴とする請求項1又は2に記載のメモリ制御装置。
The memory control device further includes:
Inquires about the memory address of the payload and the memory address of the parity data, and based on the memory address notified in response to the inquiry, at least reading of the payload and parity data from the memory device and writing of the payload and parity data to the memory device A sequence controller that performs one of the following:
When the inquiry from the sequence control unit is input, and when there is an inquiry about the memory address of the payload from the sequence control unit, the payload address input by the payload address input unit is notified to the sequence control unit, and the sequence An address notifying unit for notifying the sequence control unit of a parity address calculated by the parity address calculating unit when an inquiry about a memory address of parity data is received from the control unit. 3. The memory control device according to 2.
JP2011166949A 2011-07-29 2011-07-29 Memory control device Active JP5570477B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011166949A JP5570477B2 (en) 2011-07-29 2011-07-29 Memory control device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011166949A JP5570477B2 (en) 2011-07-29 2011-07-29 Memory control device

Publications (2)

Publication Number Publication Date
JP2013030072A true JP2013030072A (en) 2013-02-07
JP5570477B2 JP5570477B2 (en) 2014-08-13

Family

ID=47787042

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011166949A Active JP5570477B2 (en) 2011-07-29 2011-07-29 Memory control device

Country Status (1)

Country Link
JP (1) JP5570477B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016051599A1 (en) * 2014-10-03 2016-04-07 株式会社日立製作所 Memory controller and data control method

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255112A (en) * 1995-03-17 1996-10-01 Nec Corp Memory control system
JPH09244820A (en) * 1996-03-11 1997-09-19 Oki Electric Ind Co Ltd Disk array device
JPH10126826A (en) * 1996-10-11 1998-05-15 Oki Tsushin Syst Kk User data storing method for radio call receiver
US20070171737A1 (en) * 2006-01-20 2007-07-26 Megachips Lsi Solutions Inc. Semiconductor storage device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08255112A (en) * 1995-03-17 1996-10-01 Nec Corp Memory control system
JPH09244820A (en) * 1996-03-11 1997-09-19 Oki Electric Ind Co Ltd Disk array device
JPH10126826A (en) * 1996-10-11 1998-05-15 Oki Tsushin Syst Kk User data storing method for radio call receiver
US20070171737A1 (en) * 2006-01-20 2007-07-26 Megachips Lsi Solutions Inc. Semiconductor storage device

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2016051599A1 (en) * 2014-10-03 2016-04-07 株式会社日立製作所 Memory controller and data control method
US10067828B2 (en) 2014-10-03 2018-09-04 Hitachi, Ltd. Memory controller and data control method

Also Published As

Publication number Publication date
JP5570477B2 (en) 2014-08-13

Similar Documents

Publication Publication Date Title
US11720441B2 (en) Processing-in-memory (PIM) devices
JP4935367B2 (en) RAID device and Galois field product operation processing method
KR20090028507A (en) Non-volatile memory error correction system and method
JP2010237822A (en) Memory controller and semiconductor storage device
US10141954B2 (en) Data error correcting method and device, and computer storage medium
US20200065190A1 (en) Data storage device and method for sharing memory of controller thereof
CN105450224A (en) Direct digital frequency synthesis method and direct digital frequency synthesizer
JP5570477B2 (en) Memory control device
JP2009259113A (en) Nonvolatile memory management device
JP2004159333A (en) Configuration for exchanging data using cyclic redundancy check (crc) code, method and apparatus for automatically generating crc code from data exchanged on data bus
JP2007174312A (en) Encoding circuit and digital signal processing circuit
JP6054753B2 (en) Semiconductor device and data access method
US20210344359A1 (en) Processing-in-memory (pim) devices
CN112053736A (en) Volatile memory device and method of operating the same
JP2008112522A (en) Device and method for detecting error
CN113595552B (en) Nonlinear calibration method and device applied to digital-to-analog converter
US11914895B2 (en) Method for updating stored information and apparatus
KR102466551B1 (en) Data writing method, device, and electronic equipment
US8484437B2 (en) Data processing apparatus using pre-fetched data
JPH0834439B2 (en) Galois field arithmetic unit
JP2800598B2 (en) Error correction decoding device
JPH10308675A (en) Reed-solomon decoding device
JP2017054303A (en) Disk array device, disk array system, control method, and control program
JP3685634B2 (en) Address calculation device and address calculation method
JP2013201503A (en) Chien search circuit, decoder, storage device and chien search method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20131204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20140514

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140624

R150 Certificate of patent or registration of utility model

Ref document number: 5570477

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250