JP5570477B2 - Memory control device - Google Patents
Memory control device Download PDFInfo
- Publication number
- JP5570477B2 JP5570477B2 JP2011166949A JP2011166949A JP5570477B2 JP 5570477 B2 JP5570477 B2 JP 5570477B2 JP 2011166949 A JP2011166949 A JP 2011166949A JP 2011166949 A JP2011166949 A JP 2011166949A JP 5570477 B2 JP5570477 B2 JP 5570477B2
- Authority
- JP
- Japan
- Prior art keywords
- payload
- parity
- address
- memory
- data
- 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.)
- Active
Links
- 238000004364 calculation method Methods 0.000 claims description 45
- 230000004044 response Effects 0.000 claims description 2
- 238000000034 method Methods 0.000 description 8
- 239000002699 waste material Substances 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 208000011580 syndromic disease Diseases 0.000 description 3
- 238000004193 electrokinetic chromatography Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
Images
Landscapes
- Techniques For Improving Reliability Of Storages (AREA)
- Error Detection And Correction (AREA)
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,
背景技術で記載したように、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
Further, in
従来技術では以上のように構成しているので、特許文献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
In addition, when configured with hardware (hereinafter also referred to as H / W) as in
この発明は、上記のような課題を解決することを主な目的の一つとしており、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.
本実施の形態は、単一のメモリ装置内にペイロードとパリティデータを格納するためのアドレス計算を行うアドレス計算部と、メモリに対してリード/ライトするための制御信号の制御を行うシーケンス制御部とを備えたメモリ制御装置を説明する。
より詳細には、全ての制御をH/Wによって行うことで高速に処理可能とし、また、アドレス計算をメモリアドレス長と分割比とペイロード/パリティ比という3つのパラメータで行い、単一のメモリ領域に対して、分割比が表現できる最大の自然数の範囲内で任意の割合で2つの領域に分割し、ペイロードとパリティデータを別々に単一メモリ内に格納できるため、H/W的な無駄が生じることのないメモリ制御装置を説明する。
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.
The
メモリ制御装置1000において、ペイロード/パリティ領域アドレス計算部001は、メモリアドレス101と、メモリアドレス長102、分割比103、ペイロード/パリティ比104、ペイロード/パリティ選択信号105を入力とし、ペイロード/パリティデータを格納する実メモリ004のアドレス106を出力する。
シーケンス制御部002は、アドレス106、コマンド107、ライトデータ108、パリティデータ109を入力とし、実メモリ004への制御信号、実メモリアドレス111、実メモリコマンド112、実メモリライトデータ113を出力する。
また、実メモリリードデータ110を入力とし、内部でこれをペイロードとパリティデータを別々にバッファリングして、リードデータ(ペイロード)114とリードデータ(パリティ)115を出力する。
In the
The
Also, the real memory read
ECC計算部003は、ライトデータ108を入力とし、パリティデータ109を生成する。
また、リードデータ(ペイロード)114とリードデータ(パリティ)115を入力とし、ECC実施後のリードデータ116を出力する。
The
Also, read data (payload) 114 and read data (parity) 115 are input, and read
実メモリ004は、図4に例示するように、ペイロード領域とパリティ領域に区分されており、ペイロードをペイロード領域に格納し、パリティデータをパリティ領域に格納する。
As illustrated in FIG. 4, the
なお、メモリアドレス長102、分割比103、ペイロード/パリティ比104は、基本的に固定値である。
これらパラメータ値は、ECCアルゴリズムや、実メモリ004の容量に併せて変更するものであり、ECCアルゴリズム、メモリ容量が変更されない限り、変更されない。
例えば、システムの起動時に一度設定され、その後は変更されない。
The
These parameter values are changed in accordance with the ECC algorithm and the capacity of the
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
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
The
メモリアドレス長入力部122は、メモリアドレス長102を表すビット列を入力する。
メモリアドレス長102は実メモリ004のアドレス長である。
The memory address
The
分割比入力部123は、分割比103を表すビット列を入力する。
なお、分割比103の詳細は後述する。
The division
Details of the
ペイロード/パリティ比入力部124は、ペイロード/パリティ比104を入力する。
ペイロード/パリティ比104は、ペイロードのデータ長のパリティデータのデータ長に対する比を2を底とする対数をとって表現したものである。
例えば、データ長32ビットのペイロードに対し、データ長8ビットのパリティデータであれば、ペイロード/パリティ比104はlog232/8=「2」となる。
The payload / parity
The payload /
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 /
第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
More specifically, if the data length of the payload is longer than the data length of the parity data (payload> parity), the
If the data length of the payload is shorter than the data length of the parity data (payload <parity), the bit string representing the
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 /
Conversely, if the parity data is 32 bits with respect to the 8-bit payload, the payload /
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 /
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
Note that m and n are both natural numbers.
第2のシフト部126は、分割比103を表すビット列を、シフト量計算部127により算出された(m−n)ビット分左方向にシフトする。
The
加算器128は、第1のシフト部125によりシフト演算された後のメモリアドレス101を表すビット列と、第2のシフト部126によりシフト演算された後の分割比103を表すビット列とを加算する。
第2のシフト部126による加算結果が、メモリアドレス101で特定されるペイロードに対応するパリティデータのアドレス(実メモリ004のパリティ領域内のアドレス)である。
つまり、第一のシフト部125より出力される値はパリティデータを格納するメモリアドレスの下位部分を、第二のシフト部126から出力される値はパリティデータを格納するアドレスのメモリ先頭アドレスからのオフセットを表している。よって、これらを加算すれば、パリティデータのアドレスを算出できる事となる。
The
The addition result by the
That is, the value output from the
セレクタ129は、ペイロード/パリティ選択信号105に基づいて、シーケンス制御部002に出力するアドレス106を選択する。
つまり、ペイロード/パリティ選択信号105でペイロードが指定されている場合は、メモリアドレス101をそのままアドレス106として出力する。
一方、ペイロード/パリティ選択信号105でパリティが指定されている場合は、加算器128により生成されたパリティデータのアドレスをアドレス106として出力する。
The
That is, when a payload is specified by the payload /
On the other hand, when the parity is designated by the payload /
アドレス106は、メモリアドレス101と同じサイズ(実施の形態1では32ビット)である。
アドレス106の32ビットのうち、メモリアドレス長(実施の形態1では20ビット)の中にパリティデータを収めるアドレスが含まれる。
実メモリアドレス111は、アドレス106の32ビットのうち有効な20ビット(実メモリアドレス)を示したもので、実使用上ではこの20ビットが実メモリのアドレス線につながる。
残りの12ビットは接続しない。
The
Of the 32 bits of the
The real memory address 111 indicates valid 20 bits (real memory address) out of 32 bits of the
The remaining 12 bits are not connected.
なお、図2の構成において、第1のシフト部125、第2のシフト部126、シフト量計算部及び127加算器128は、パリティアドレス算出部に相当し、セレクタ129はアドレス通知部に相当する。
In the configuration of FIG. 2, the
次に、分割比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
The
In other words, the
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ビット)が表現可能最大の自然数、26=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
The payload /
If this signal instructs to output the payload address, the
If an instruction to output a parity address is given, a parity address is generated from the
本実施の形態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
メモリアドレス長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
Then, the n-bit bit string indicating the
That is, the n-bit bit string indicating the
In this embodiment, since m = 20 and n = 6, the shift amount is 14 bits, and the bit string indicating the
Further, as described above, the bit string representing the
シーケンス制御部002は、アドレス106、コマンド107、ライトデータ108を入力とし、実メモリ004を制御するための制御信号実メモリアドレス111、実メモリコマンド112、実メモリライトデータ113を出力する。
実メモリコマンド112は、本実施の形態ではメモリ制御の一般的な制御信号を含むものとする。
メモリ制御信号としては、例えば、メモリに対するコマンドが有効であることを示すチップセレクト信号、リード/ライトを指示するリード/ライト信号、リード/ライト位置を指示するバイトコントロールなどである。
これら制御信号を、接続されるメモリの性能や規格/仕様に合わせて、各信号のアサート/ネゲート期間、および順序を制御し、メモリへのリード/ライトを可能する。
また、本実施の形態ではペイロードとパリティデータを同一メモリに格納するため、少なくとも2回のメモリアクセス(ペイロードのリード/ライト、パリティのリード/ライト)が必要である。
本実施の形態では、1回目のアクセスでペイロードのリード/ライトを行い、2回目のアクセスでパリティデータのリード/ライトを行う。
この一連のシーケンス制御をシーケンス制御部002で行う。
なお、本実施の形態ではペイロードのリード/ライトを1回目、パリティデータのリード/ライトを2回目としたが、この順序を逆にしてもよい。
The
In this embodiment, the
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
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
ECC計算部003は、ライトデータ108を入力とし、ECCのアルゴリズムに従ってパリティデータ109を算出する。
また、シーケンス制御部002から、リードデータ(ペイロード)114と、リードデータ(パリティ)115を入力し、リードデータ(パリティ)115を用いて、リードデータ(ペイロード)114に誤りがある場合は、訂正し、リードデータ116として出力する。
The
Also, read data (payload) 114 and read data (parity) 115 are input from
以上のような構成をとれば、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
When recognizing that it is a write, the
Upon receiving this notification, the payload / parity area
In accordance with this
(2) When the write of (1) is completed, the
Upon receiving this notification, the payload / parity area
In accordance with this
次に、リード時のタイミングチャートを、図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
When the
Upon receiving this notification, the payload / parity area
In accordance with this
(2) When the reading of (1) above is completed, the
Upon receiving this notification, the payload / parity area
In accordance with this
(3) Finally, the
次に、リードモディファイライト時のタイミングチャートを、図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
(2) Similarly, the
(3) The
(4) Next, the
(5) Similarly, the
以上、本実施の形態では、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.
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 JP2013030072A (en) | 2013-02-07 |
JP5570477B2 true 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) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016051599A1 (en) * | 2014-10-03 | 2016-04-07 | 株式会社日立製作所 | Memory controller and data control method |
Family Cites Families (4)
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 |
JP4936271B2 (en) * | 2006-01-20 | 2012-05-23 | 株式会社メガチップス | Semiconductor memory device |
-
2011
- 2011-07-29 JP JP2011166949A patent/JP5570477B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
JP2013030072A (en) | 2013-02-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3082046B1 (en) | Data error correcting method and device, and computer storage medium | |
KR20090028507A (en) | Non-volatile memory error correction system and method | |
JPH10200418A (en) | Error correcting method, error correcting device, data reader and data mapping method | |
CN110858128A (en) | Data storage device and method for sharing memory in controller | |
KR20150090414A (en) | Semicondcutor device performing error correction | |
JP5570477B2 (en) | Memory control device | |
JP2009259113A (en) | Nonvolatile memory management device | |
JP6090489B1 (en) | Error detection device, storage device, and error correction method | |
US12081237B2 (en) | Processing-in-memory (PIM) devices | |
JP2007174312A (en) | Encoding circuit and digital signal processing circuit | |
JP6054753B2 (en) | Semiconductor device and data access method | |
JPS6326418B2 (en) | ||
JP5446931B2 (en) | Error detection and correction device and memory device | |
US6625717B2 (en) | Single cycle linear address calculation for relative branch addressing | |
KR20200140074A (en) | Volatile memory device and operating method thereof | |
JP2008112522A (en) | Device and method for detecting error | |
US8484437B2 (en) | Data processing apparatus using pre-fetched data | |
KR102466551B1 (en) | Data writing method, device, and electronic equipment | |
US20140245101A1 (en) | Semiconductor memory | |
JP2800598B2 (en) | Error correction decoding device | |
JP5217570B2 (en) | Memory device and memory control method | |
JPH0834439B2 (en) | Galois field arithmetic unit | |
JP2017054303A (en) | Disk array device, disk array system, control method, and control program | |
JP2013201503A (en) | Chien search circuit, decoder, storage device and chien search method | |
JP3685634B2 (en) | Address calculation device and address calculation 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 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |