PCM memory line multiplexing method based on grouping redirection writing

文档序号:719675 发布日期:2021-04-16 浏览:16次 中文

阅读说明:本技术 基于分组重定向写的pcm内存行复用方法 (PCM memory line multiplexing method based on grouping redirection writing ) 是由 章铁飞 于 2021-01-12 设计创作,主要内容包括:本发明提出一种基于分组重定向写的PCM内存行复用方法。写数据到PCM内存行时,通过数据写后读校验技术,统计出错数据位数及位置;根据出错数据位信息,记录卡死存储单元数量与位置,将卡死存储单元对应的数据划分到同一数据分组中,并且执行重定向写操作,避免因卡死存储单元而导致的数据错误,实现包含卡死存储单元的PCM内存行的复用。与现有技术相比,本发明设计合理,不消耗额外的存储空间,不存在现有ECC校验码技术的计算代价,而且本方法可以适配内存行后续出现的新的增量卡死存储单元,从而有效地增加PCM内存行的复用性。(The invention provides a PCM memory line multiplexing method based on packet redirection writing. When data is written into a PCM memory line, counting the number and the position of error data bits by a data write-after-read verification technology; according to the error data bit information, the number and the position of the dead card storage units are recorded, the data corresponding to the dead card storage units are divided into the same data packet, and the redirection write operation is executed, so that the data error caused by the dead card storage units is avoided, and the multiplexing of the PCM memory lines containing the dead card storage units is realized. Compared with the prior art, the method has reasonable design, does not consume extra storage space, does not have the calculation cost of the prior ECC (error correction code) check code technology, and can adapt to new increment dead-lock storage units which are subsequently generated in the memory line, thereby effectively increasing the reusability of the PCM memory line.)

1. The PCM memory line multiplexing method based on the grouping redirection writing is characterized in that: for the error data bit caused by the dead memory cell, the traditional Error Check Code (ECC) correction method is abandoned, and the memory space occupied by the ECC code corresponding to the memory Block is released for storing the packet redirection writing information, which comprises the following steps: flag bit F for packet writingbitCounter K for dead memory cellnumGroup mask FmaskPacket number FindexAnd packet data FB.

2. A packet redirection write message according to claim 1, wherein: fbit1 bit is occupied, a value of 0 is adopted to indicate that packet redirection writing is not adopted, and 1 indicates that a packet redirection writing method is adopted; knumOccupying 4 bits, recording the number of dead memory cells by the current occurrence; fmaskOccupies 9 bits, representing the binary data index for the packet, where a value of 1 represents an index bit and a value of 0 is a non-index bit; findexOccupying 9 bits and indicating the packet sequence number containing data corresponding to the dead memory cell; FB occupies one byte and is used for storing a data packet corresponding to a dead card storage unit in the current data Block, and the size of the packet is set to be one byte.

3. The PCM memory line multiplexing method based on the grouping redirection writing is characterized in that:

counting to obtain the number of error data bits, and performing case division processing:

case 1: if the error data bit number is less than or equal to the current counter value KnumAccording to the current packet mask FmaskChecking whether a new dead memory cell appears;

if no new card memory location appears, the last packet redirection write operation is continued;

if a new dead memory cell appears, searching a new grouping method;

case 2: if the number of erroneous data bits is greater than the current counter value KnumAnd is not more than8, searching a new grouping method according to the position information of the new dead card storage unit;

case 3: if the number of bits of the current error data is more than 8, the packet redirection writing method is invalid;

after finding out a new group, writing the data group corresponding to the dead card storage unit into the FB, and updating the FmaskAnd FindexWill FbitSetting as 1; if the current error data digit is more than KnumThen update KnumIs the current number of erroneous data bits.

4. A verification as claimed in claim 3 that a new stuck memory cell is present, wherein: obtaining error data bit n according to the read-after-write verification technology, wherein n is less than or equal to KnumObtaining the position of the dead memory cell according to the error data bit, and making the dead memory cell set as K ═ K (K)1,k2,...,kn) Since the memory Block size is 512 bits, each kiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]](ii) a Each loc (k)i) And a packet mask FmaskOperate according to the bit sum, and then operate with the packet sequence number FindexPerforming exclusive or operation to obtain a result ret; for integer i epsilon [1, n]Repeating the operation, and if one ret value is nonzero, indicating that a new stuck memory cell appears; otherwise, no new stuck memory cell appears.

5. A method of finding new packets according to claim 3, characterized in that: and if any one of the following conditions is satisfied, starting to find a new packet: case 1, element n in the stuck memory cell set is less than or equal to KnumAnd a new stuck memory cell appears; case 2, number of elements n in stuck memory cell set K>KnumAnd n is less than or equal to 8.

6. A method of finding new packets according to claim 3, characterized in that:

the current memory Block has a stuck memory cell set K ═ (K)1,k2,...,kn) Each k ofiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]]The steps of finding a packet are as follows:

step 1: taking an integer i as 1, initializing and resetting two 9-bit binary numbers m and res;

step 2: taking the integer j as i +1, and adding loc (k)i) And loc (k)j) Performing exclusive or operation according to the bit, and storing the result to m;

and step 3: m is inverted and then bitwise AND-operated with res, and the result is stored in res;

and 4, step 4: j is increased by 1, and the step 2 and the step 3 are repeated until the value of j is n;

and 5: i is increased by 1, and the steps 2,3 and 4 are repeated until the value of i is n-1;

step 6: if the number of binary values 1 in the final res is greater than or equal to 6, a method for dividing all the stuck bits into the same small group exists, and the step 7 is executed; otherwise, fail;

and 7: randomly selecting 6 data bits with binary value of 1 in res, and clearing the rest res data bits to obtain a group mask FmaskAnd updating original Fmask

And 8: card-dead memory cell k of arbitrary memory BlockiWill be loc (k)i) And FmaskThe 9-bit binary number obtained by bitwise AND calculation is a grouping sequence number FindexAnd updating original Findex

A redirected write operation can only be performed if a new packet is found.

7. The redirected write operation of claim 6, wherein:

after finding out a new grouping method, grouping the data blocks according to bytes, and then redirecting and writing the data packets corresponding to the dead card storage unit into the FB, specifically comprising the following steps:

step 1: taking an integer i as 1;

step 2: obtaining FmaskSubscript of data bit with median value of zero, from high to lowPosition (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,db2,bd3) The value range is [0,7 ]];

And 4, step 4: k in the memory BlockiThe corresponding data bit is written into the (b) th bit of the FBd1,bd2,bd3) A bit;

and 5: the integer i is incremented by 1 and the above steps 2,3 and 4 are repeated until i is 8.

8. The redirected write operation of claim 6, wherein: when reading data, simultaneously reading the memory Block and the corresponding FbitIf F isbitIf the value is 0, the data reading operation is completed; if FbitAnd if the value is 1, performing packet reading operation, and replacing and updating the read data Block by the packet data in the FB.

9. The packet read operation of claim 8, wherein: packet data F ═ F read in FB0,f1,…,f7) Replacing the corresponding data bit of the read data Block with the data bit of F, which comprises the following steps:

step 1: taking an integer i as 1;

step 2: acquiring subscripts of data bits with values of zero in the group masks from high order to low order (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,bd2,bd3) The value range is [0,7 ]];

And 4, step 4: the (b) of Fd1,bd2,bd3) Write to data Block kiA corresponding data bit;

and 5: the integer i is incremented by 1 and the above steps 2,3 and 4 are repeated until i has a value of 8.

Technical Field

The invention relates to a PCM memory line multiplexing method based on packet redirection writing.

Background

The memory in current computers uses DRAM storage technology. With the progress of technology, the storage capacity of DRAM is larger and the unit storage cost is lower, but the problems are that the storage unit is smaller and smaller, the stability of data storage is worse, and the static energy consumption is too high. In response to these problems, it is proposed to use a nonvolatile phase change memory, typically pcm (phase change memory), instead of DRAM, as the main memory of a computer. The PCM has the advantages of higher storage density, low static energy consumption and lower unit storage cost. Unlike DRAM which uses capacitors to store data, PCM uses phase change materials to store and represent data because there is no leakage current effect of DRAM, PCM can store data for a long time without consuming power.

PCM has the advantages of high density, no leakage current, etc., but PCM has its own disadvantages. Firstly, the PCM memory is slower in data reading and slower in data writing than the DRAM. In addition, PCM memories have a short data write life, i.e., the number of data writes, is typically 108Next, the process is carried out. Each PCM memory cell includes a mixed metal layer, which may be formed onSwitching between a crystalline state of high resistance and an amorphous state of low resistance, i.e. representing logic values 0 and 1, respectively. Due to repeated data writing, the mixed metal layer in the PCM memory cell frequently changes state, and finally the mixed metal layer is damaged due to fatigue, so that the memory cell permanently falls into a certain state, such as a high-resistance crystalline state or a low-resistance amorphous state, and a logic value cannot be changed through a writing operation, that is, new data cannot be written, which is called PCM memory cell sticking. The dead memory cell cannot write new data, but can read the logic value represented by the dead state.

Similar to DRAM memory architecture, PCM cells form memory blocks in a two-dimensional array, with a common configuration of 512 by 512, and 512 memory cells in the horizontal direction form memory rows (blocks), referred to as columns in the vertical direction. When data is read and written into the storage Block, the data takes the Block size as a basic unit, and one data Block corresponds to one storage Block. The number of writes that a memory cell can withstand before entering a stuck state is referred to as the write threshold. Due to the randomness of the manufacturing process technology, the writing thresholds of different memory cells in the same Block are different, so that all the memory cells in the Block do not enter a stuck state at the same time, but the memory cell with the minimum writing threshold first enters the stuck state. When the first memory cell is stuck in Block, the rest other memory cells need a long time to enter the stuck state. In order to avoid that the entire Block is unusable due to individual stuck memory cells, the conventional technique is to use ECC check codes to correct data errors caused by the stuck memory cells, so that PCM memory lines including the stuck memory cells are multiplexed. However, the ECC check code technology can bring the problems of calculation cost and energy consumption, and in addition, the ECC check code cannot be adapted to the subsequent incremental card dead memory unit of the Block.

Disclosure of Invention

The invention aims to improve the reusability of PCM memory lines, overcome the defects of the existing ECC data checking technology and provide a PCM memory line multiplexing method based on packet redirection writing. When data is written, counting the number and the position of error data bits by a data write-after-read verification technology; according to the error data bit information, the number and the position of the dead card storage units are recorded, the data corresponding to the dead card storage units are divided into the same data packet, and the redirection write operation is executed, so that the data error caused by the dead card storage units is avoided, and the multiplexing of the PCM memory lines containing the dead card storage units is realized.

The technical scheme adopted by the invention for solving the problems is as follows: the PCM memory line multiplexing method based on grouping redirection writing is characterized by comprising the following steps:

for the error data bit caused by the dead memory cell, the traditional Error Check Code (ECC) correction method is abandoned, and the memory space occupied by the ECC code of the memory Block is released for storing the packet redirection writing information, which comprises the following steps: flag bit F for packet writingbitCounter K for dead memory cellnumGroup mask FmaskPacket number FindexAnd packet data FB. Wherein, Fbit1 bit is occupied, a value of 0 is adopted to indicate that packet redirection writing is not adopted, and 1 indicates that a packet redirection writing method is adopted. KnumOccupying 4 bits, the number of dead memory cells by now present is recorded. FmaskOccupying 9 bits, representing the binary data index for the packet, with a value of 1 representing an index bit and a value of 0 not an index bit. FindexOccupying 9 bits and indicating the packet sequence number containing data corresponding to the dead memory cell. FB occupies one byte for holding the dead card data packet in the current data Block, and the size of the packet is set to one byte.

When data is written, counting and obtaining the number of error data bits through a read-after-write technology, and then processing according to the conditions:

case 1: if the error data bit number is less than or equal to the current counter value KnumAccording to the current packet mask FmaskChecking whether a new dead memory cell appears;

if no new card memory location appears, the last packet redirection write operation is continued;

if a new dead card storage unit appears, searching a new grouping method according to the current dead card storage unit set;

case 2: if the number of erroneous data bits is greater than the current countCounter value KnumIf the number is less than or equal to 8, searching a new grouping method according to the position information of the new dead-card storage unit;

case 3: if the number of bits of the current error data is more than 8, the packet redirection writing method is invalid;

after finding out a new group, writing the data group corresponding to the dead card storage unit into the FB, and updating the FmaskAnd FindexWill FbitSetting as 1; if the current error data digit is more than KnumThen update KnumIs the current number of erroneous data bits.

Whether a new stuck memory cell appears is checked, and the main process comprises the following steps: obtaining error data bit n according to the read-after-write verification technology, wherein n is less than or equal to KnumObtaining the position of the dead memory cell according to the error data bit, and making the dead memory cell set as K ═ K (K)1,k2,...,kn) Since the memory Block size is 512 bits, each kiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]]. Each loc (k)i) And a packet mask FmaskOperate according to the bit sum, and then operate with the packet sequence number FindexAnd performing exclusive-or operation to obtain a result ret. For integer i epsilon [1, n]Repeating the operation, and if one ret value is nonzero, indicating that a new stuck memory cell appears; otherwise, no new stuck memory cell appears.

The following two cases are satisfied and a new packet needs to be found: case 1, element n in the stuck memory cell set is less than or equal to KnumAnd a new stuck memory cell appears; case 2, number of elements n in stuck memory cell set K>KnumAnd n is less than or equal to 8.

When a new grouping method is searched, the set K of the dead storage units of the current memory Block is equal to (K)1,k2,...,kn) Each k ofiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]]The steps of finding a packet are as follows:

step 1: taking an integer i as 1, initializing and resetting two 9-bit binary numbers m and res;

step 2: taking the integer j as i +1, and adding loc (k)i) And loc (k)j) Performing exclusive or operation according to the bit, and storing the result to m;

and step 3: m is inverted and then bitwise AND-operated with res, and the result is stored in res;

and 4, step 4: j is increased by 1, and the step 2 and the step 3 are repeated until the value of j is n;

and 5: i is increased by 1, and the steps 2,3 and 4 are repeated until the value of i is n-1;

step 6: if the number of binary values 1 in the final res is greater than or equal to 6, a method for dividing all the stuck bits into the same small group exists, and the step 7 is executed; otherwise, fail;

and 7: randomly selecting 6 data bits with binary value of 1 in res, and clearing the rest res data bits to obtain a group mask FmaskAnd updating original Fmask

And 8: card-dead memory cell k of arbitrary memory BlockiWill be loc (k)i) And FmaskThe 9-bit binary number obtained by bitwise AND calculation is a grouping sequence number FindexAnd updating original Findex

A redirected write operation can only be performed if a new packet is found.

After finding out a new grouping method, grouping the data Block according to bytes, and then redirecting and writing the grouping corresponding to the dead card storage unit into the FB, the specific steps are as follows:

step 1: taking an integer i as 1;

step 2: obtaining FmaskSubscripts of data bits with a median value of zero, high to low (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,db2,bd3) The value range is [0,7 ]];

And 4, step 4: k in data BlockiThe corresponding data bit is written into the (b) th bit of the FBd1,bd2,bd3) A bit;

and 5: the integer i is incremented by 1 and the above steps 2,3 and 4 are repeated until i is 8.

When reading data, simultaneously reading a memory Block and a corresponding grouping zone bit, and if the grouping zone bit value is 0, finishing the data reading operation; if the bit value of the packet flag is 1, packet reading operation is carried out, and the read data Block is updated by the packet data in the FB. Assume that the packet data F read in B is (F)0,f1,…,f7) A 1 is to f0To f7Each data bit replaces the corresponding data bit of the read data Block, and the specific steps are as follows:

step 1: taking an integer i as 1;

step 2: acquiring subscripts of data bits with values of zero in the group masks from high order to low order (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,bd2,bd3) The value range is [0,7 ]];

And 4, step 4: the (b) of Fd1,bd2,bd3) Write to data Block kiA corresponding data bit;

and 5: the integer i is incremented by 1 and the above steps 2,3 and 4 are repeated until i has a value of 8.

Compared with the prior art, the invention has the following advantages and effects: the invention has reasonable design, does not consume extra storage space, does not have the calculation cost of the prior ECC (error correction code) check code technology, and can adapt to new increment dead memory cells which are subsequently generated in the memory line, thereby effectively increasing the reusability of the PCM memory line.

Drawings

FIG. 1 is an overall flow of the invention implementing a packet-redirected write operation.

Detailed Description

The present invention will be described in further detail below by way of examples with reference to the accompanying drawings, which are illustrative of the present invention and are not to be construed as limiting the present invention.

The PCM memory line multiplexing method based on packet redirection writing in the embodiment includes the following steps:

for the error data bit caused by the dead memory cell, the traditional method adopts Error Check Code (ECC) correction, and the method abandons ECC and releases the memory space occupied by the ECC for storing the packet redirection writing information, and includes: flag bit F for packet writingbitCounter K for dead memory cellnumGroup mask FmaskPacket number FindexAnd packet data FB. Wherein Fbit1 bit is occupied, a value of 0 is adopted to indicate that packet redirection writing is not adopted, and 1 indicates that a packet redirection writing method is adopted. KnumOccupying 4 bits, the number of dead memory cells by now present is recorded. FmaskOccupying 9 bits, representing the binary data index for the packet, with a value of 1 representing an index bit and a value of 0 being a non-index bit. FindexOccupying 9 bits and indicating the packet sequence number containing data corresponding to the dead memory cell. FB occupies one byte for holding the dead card data packet in the current data Block, and the size of the packet is set to one byte.

After data is written into the memory Block, the data is immediately read out and verified with the original data, if the read data is consistent with the original data, the data is successfully written, and F corresponding to the memory Block is usedbitSet to 0, indicating that no packet redirect write operation is employed; if the read data bit is inconsistent with the original data, the data which is currently written is influenced by the dead memory cell and has errors, and the packet redirection writing operation is needed. As shown in fig. 1, the main flow of the packet redirection write operation is as follows:

counting the number of error data bits according to a read-after-write data verification technology;

case 1: if the error data bit number is less than or equal to the current counter value KnumAccording to the current packet mask FmaskChecking whether a new dead memory cell appears;

if no new card memory location appears, the last packet redirection write operation is continued;

if a new dead memory cell appears, searching a new grouping method;

case 2:if the number of erroneous data bits is greater than the current counter value KnumIf the number is less than or equal to 8, searching a new grouping method according to the position information of the new dead-card storage unit;

case 3: if the number of bits of the current error data is more than 8, the packet redirection writing method is invalid;

after finding out a new group, writing the data group corresponding to the dead card storage unit into the FB, and updating the FmaskAnd FindexWill FbitSetting as 1; if the current error data digit is more than KnumThen update KnumIs the current number of erroneous data bits.

If the number of current error data bits is less than or equal to the current record value KnumThen, according to the current packet mask, whether a new stuck memory cell appears is checked, which specifically includes the following steps:

obtaining error data bit n according to the read-after-write verification technology, wherein n is less than or equal to KnumObtaining the position of the dead memory cell according to the error data bit, and making the dead memory cell set as K ═ K (K)1,k2,...,kn) Since the memory Block size is 512 bits, each kiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]]. Each loc (k)i) And a packet mask FmaskOperate according to the bit sum, and then operate with the packet sequence number FindexAnd performing exclusive-or operation to obtain a result ret. For integer i epsilon [1, n]Repeating the operation, and if one ret value is nonzero, indicating that a new stuck memory cell appears; otherwise, no new stuck memory cell appears.

Either of the following occurs, and a new grouping method needs to be found: case 1, element n in the stuck memory cell set is less than or equal to KnumAnd a new stuck memory cell appears; case 2, number of elements n in stuck memory cell set K>KnumAnd n is less than or equal to 8. If a grouping method meeting the condition is found, then performing redirection writing operation; otherwise, the packet redirect write operation fails. The current memory Block has a stuck memory cell set K ═ (K)1,k2,...,kn) Each k ofiThe position in Block is represented by a 9-bit binary number: loc (k)i)=(bi1,bi2,…,bi9) Where the integer i ∈ [1, n ]]。

The specific process of finding a packet is as follows:

step 1: taking an integer i as 1, initializing and resetting two 9-bit binary numbers m and res;

step 2: taking the integer j as i +1, and adding loc (k)i) And loc (k)j) Performing exclusive or operation according to the bit, and storing the result to m;

and step 3: m is inverted and then bitwise AND-operated with res, and the result is stored in res;

and 4, step 4: j is increased by 1, and the step 2 and the step 3 are repeated until the value of j is n;

and 5: i is increased by 1, and the steps 2,3 and 4 are repeated until the value of i is n-1;

step 6: if the number of binary values 1 in the final res is greater than or equal to 6, a method for dividing all the stuck bits into the same small group exists, and the step 7 is executed; otherwise, fail;

and 7: randomly selecting 6 data bits with binary value of 1 in res, and clearing the rest res data bits to obtain a group mask FmaskAnd updating original Fmask

And 8: arbitrarily take kiWill be loc (k)i) And FmaskThe 9-bit binary number obtained by bitwise AND calculation is a grouping sequence number FindexAnd updating original Findex

And after finding out a new grouping method, grouping the data blocks according to bytes, and redirecting and writing the data packets corresponding to the dead card storage unit into the FB. The specific process is as follows:

step 1: taking an integer i as 1;

step 2: acquiring subscripts of data bits with values of zero in the group masks from high order to low order (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,db2,bd3) The value range is [0,7 ]];

And 4, step 4: k in Block will be storediThe corresponding data bit is written into the (b) th bit of the FBd1,bd2,bd3) A bit;

and 5: increasing the integer i by 1, and repeating the steps 2,3 and 4 until i is 8;

when reading data, simultaneously reading the memory Block and the corresponding FbitIf F isbitIf the value is 0, the data reading operation is completed; if FbitIf the value is 1, a packet reading operation is carried out, the read data Block is updated by the packet data in the FB, and the packet data F read in the FB is equal to (F)0,f1,…,f7) And replacing the corresponding data bit of the read data Block with data F, which comprises the following steps:

step 1: taking an integer i as 1;

step 2: acquiring subscripts of data bits with values of zero in the group masks from high order to low order (d1, d2, d 3);

and step 3: to loc (k)i) The data bits of d1, d2 and d3 are combined into a 3-bit binary number (b)d1,bd2,bd3) The value range is [0,7 ]];

And 4, step 4: the (b) of Fd1,bd2,bd3) Write to data Block kiA corresponding data bit;

and 5: the integer i is increased by 1, and the steps 2,3 and 4 are repeated until the value of i is 8;

in addition, it should be noted that the specific embodiments described in the present specification may be different in the components, the shapes of the components, the names of the components, and the like, and the above description is only an illustration of the structure of the present invention. Equivalent or simple changes in the structure, characteristics and principles of the invention are included in the protection scope of the patent. Various modifications, additions and substitutions for the specific embodiments described may be made by those skilled in the art without departing from the scope of the invention as defined in the accompanying claims.

9页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:一种老化测试装置

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!