US7827463B2 - Semiconductor memory device - Google Patents
Semiconductor memory device Download PDFInfo
- Publication number
- US7827463B2 US7827463B2 US11/270,533 US27053305A US7827463B2 US 7827463 B2 US7827463 B2 US 7827463B2 US 27053305 A US27053305 A US 27053305A US 7827463 B2 US7827463 B2 US 7827463B2
- Authority
- US
- United States
- Prior art keywords
- write
- data
- bits
- parity
- parity bits
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related, expires
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1032—Simple parity
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1006—Data managing, e.g. manipulating data before writing or reading out, data bus switches or control circuits therefor
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11C—STATIC STORES
- G11C7/00—Arrangements for writing information into, or reading information out from, a digital store
- G11C7/10—Input/output [I/O] data interface arrangements, e.g. I/O data control circuits, I/O data buffers
- G11C7/1015—Read-write modes for single port memories, i.e. having either a random port or a serial port
- G11C7/1018—Serial bit line access mode, e.g. using bit line address shift registers, bit line address counters, bit line burst counters
- G11C7/1027—Static column decode serial bit line access mode, i.e. using an enabled row address stroke pulse with its associated word line address and a sequence of enabled bit line addresses
Definitions
- the present invention relates to a semiconductor memory device which has an error-correction function (for correcting defective bits) and a burst-mode function.
- the semiconductor memory devices having the burst-mode function are known (for example, as disclosed in Japanese Unexamined Patent Publication No. 4-291084). According to the burst-mode function, a plurality of data pieces are transferred together in response to one operation of designating addresses of a memory core so that the data transfer rate is increased.
- FIG. 15 is a timing diagram of signals in a burst-mode (write) operation performed in a conventional semiconductor memory device in the case where the start address is A( 1 ).
- the write latency (WL) is two
- the burst length (BL) is eight.
- the address is sequentially incremented as A( 1 ) ⁇ A( 2 ) ⁇ A( 3 ) ⁇ A( 4 ) ⁇ A( 5 ) ⁇ A( 6 ) ⁇ A( 7 ) ⁇ A( 8 ), although the addresses A( 2 ) to A( 8 ) are not indicated in FIG. 15 . While the address is changed as above, the word-line selection address w 1 is not changed.
- the data pieces to be written (hereinafter referred to as write-data pieces) are captured in the order of W 1 ( 1 ) ⁇ W 1 ( 2 ) ⁇ W 1 ( 3 ) ⁇ W 1 ( 4 ) ⁇ W 2 ( 1 ) ⁇ W 2 ( 2 ) ⁇ W 2 ( 3 ) ⁇ W 2 ( 4 ).
- each data piece is 16 bits unless otherwise specified.
- the data pieces to be written are respectively outputted onto data buses being arranged between input terminals DQ and memory cells and having the total width of 64 bits, and the data pieces on the data buses are changed one after another as W 1 ( 1 ) ⁇ W 2 ( 1 ), W 1 ( 2 ) ⁇ W 2 ( 2 ), W 1 ( 3 ) ⁇ W 2 ( 3 ), and W 1 ( 4 ) ⁇ W 2 ( 4 ).
- the data pieces outputted onto the data buses and constituted by 64 bits are written in the memory cells in each of the two write cycles in which the address is A( 4 ) and A( 8 ), respectively.
- the timings of the address increment and the data capture are synchronized with the clock signal CLK.
- the data pieces W 1 ( 1 ) to W 1 ( 4 ) are written in the memory cells in the first write cycle (in which the address is A( 4 )). At this time, the column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are active. In addition, the data pieces W 2 ( 1 ) to W 2 ( 4 ) are written in the memory cells in the second write cycle (in which the address is A( 8 )). At this time, the column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are active.
- the time interval (expressed by the number of clock cycles) from the clock timing in synchronization with which the final write cycle (the above write operation in the second write cycle in this example) is started, until the bit lines are equalized and the start of the next command (WR or RD) is enabled is called the write recovery time (tWRB).
- the burst-mode operation may be started from another address (A( 2 ), A( 3 ), or A( 4 )) instead of A( 1 ). Even in such a case, the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are concurrently activated, and the following control operations are performed.
- FIG. 16 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device in the case where the start address is A( 2 ).
- the address is sequentially incremented as A( 2 ) ⁇ A( 3 ) ⁇ A( 4 ) ⁇ A( 5 ) ⁇ A( 6 ) ⁇ A( 7 ) ⁇ A( 8 ) ⁇ A( 1 ). While the address is changed as above, the word-line selection address w 1 is not changed.
- the data pieces to be written are captured in the order of W 1 ( 2 ) ⁇ W 1 ( 3 ) ⁇ W 1 ( 4 ) ⁇ W 2 ( 1 ) ⁇ W 2 ( 2 ) ⁇ W 2 ( 3 ) ⁇ W 2 ( 4 ) ⁇ W 1 ( 1 ).
- the data pieces to be written are respectively outputted on data buses being arranged between the input terminals DQ and the memory cells and having the total width of 64 bits, and the data pieces on the data buses are changed one after another as W 1 ( 2 ) ⁇ W 2 ( 2 ), W 1 ( 3 ) ⁇ W 2 ( 3 ), W 1 ( 4 ) ⁇ W 2 ( 4 ), and W 1 ( 1 ) ⁇ W 2 ( 1 ).
- the data pieces outputted onto the data buses and constituted by 64 bits are written in the memory cells in each of the three write cycles in which the address is A( 4 ), A( 8 ), and A( 1 ), respectively.
- the timings of the address increment and the data capture are synchronized with the clock signal CLK.
- the data pieces W 1 ( 2 ) to W 1 ( 4 ) are written in the memory cells in the first write cycle (in which the address is A( 4 )). At this time, although the column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are active, the data piece W 1 ( 1 ) is masked and is not written in the memory cells. In addition, the data pieces W 2 ( 1 ) to W 2 ( 4 ) are written in the memory cells in the second write cycle (in which the address is A( 8 )). At this time, the column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are active. Further, the data piece W 1 ( 1 ) is written in the memory cells in the third write cycle (in which the address is A( 1 )).
- FIG. 17 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device in the case where the start address is A( 3 ).
- the address is sequentially incremented as A( 3 ) ⁇ A( 4 ) ⁇ A( 5 ) ⁇ A( 6 ) ⁇ A( 7 ) ⁇ A( 8 ) ⁇ A( 1 ) ⁇ A( 2 ). While the address is changed as above, the word-line selection address w 1 is not changed.
- the data pieces to be written are captured in the order of W 1 ( 3 ) ⁇ W 1 ( 4 ) ⁇ W 2 ( 1 ) ⁇ W 2 ( 2 ) ⁇ W 2 ( 3 ) ⁇ W 2 ( 4 ) ⁇ W 1 ( 1 ) ⁇ W 1 ( 2 ).
- the data pieces to be written are respectively outputted on data buses being arranged between the input terminals DQ and the memory cells and having the total width of 64 bits, and the data pieces on the data buses are changed one after another as W 1 ( 3 ) ⁇ W 2 ( 3 ), W 1 ( 4 ) ⁇ W 2 ( 4 ), W 1 ( 1 ) ⁇ W 2 ( 1 ), and W 1 ( 2 ) ⁇ W 2 ( 2 ).
- the data pieces outputted onto the data buses and constituted by 64 bits are written in the memory cells in each of the three write cycles in which the address is A( 4 ), A( 8 ), and A( 2 ), respectively.
- the timings of the address increment and the data capture are synchronized with the clock signal CLK.
- the data pieces W 1 ( 3 ) and W 1 ( 4 ) are written in the memory cells in the first write cycle (in which the address is A( 4 )). At this time, although the column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are active, the data pieces W 1 ( 1 ) and W 1 ( 2 ) are masked and are not written in the memory cells. In addition, the data pieces W 2 ( 1 ) to W 2 ( 4 ) are written in the memory cells in the second write cycle (in which the address is A( 8 )). At this time, the column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are active.
- the data pieces W 1 ( 1 ) and W 1 ( 2 ) are written in the memory cells in the third write cycle (in which the address is A( 2 )).
- the column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are active, the data pieces W 1 ( 2 ) to W 1 ( 4 ) are masked and are not written in the memory cells. That is, the same column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are activated in the first and third write cycles.
- the write recovery times (tWRB) in the burst-mode (write) operations in the case of FIGS. 15 , 16 , and 17 are identical.
- the conventional semiconductor memory device having a burst-mode function can perform a burst-mode operation without reducing the operation speed even when the start address is changed.
- the ECC (error checking and correcting) function is installed as a measure for coping with defects caused by abrupt variations in the holding times in the memory cells which require a refresh operation as in the memory cells in the DRAM (dynamic random access memory).
- ECC error checking and correcting
- ECC error-correction code
- the ECC function which can correct a single-bit error is widely used. In the case where such a function is used, even a single-bit error contained in data read out from the memory cells can be corrected.
- Hamming codes as ECC codes are produced by using 64 data bits and seven parity bits.
- FIG. 18 is a block diagram of first circuitry realizing an ECC function and a burst-mode function in a conventional semiconductor memory device.
- the conventional semiconductor memory device 800 of FIG. 18 comprises a syndrome generation circuit 801 , a decoder 802 , an error correction circuit 803 , a data selection circuit 804 , write-data holding circuits 805 - 1 , 805 - 2 , 805 - 3 , and 805 - 4 , write-status holding circuits 806 - 1 , 806 - 2 , 806 - 3 , and 806 - 4 , read/write data selection circuits 807 - 1 , 807 - 2 , 807 - 3 , and 807 - 4 , and a parity generation circuit 808 .
- the memory cells are not indicated.
- the syndrome generation circuit 801 generates a 7-bit syndrome signal S on the basis of data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) read out from the memory cells (hereinafter referred to as read-data pieces) and a set of seven parity bits P 0 , which are read out from the memory cells.
- Each of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) is constituted by 16 bits, and thus the total number of bits of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) is 64 .
- the decoder 802 decodes the syndrome signal S, and generates 64-bit error correction flags err.
- the error correction circuit 803 corrects (inverts) a bit of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) corresponding to one of the error correction flags err when the one of the error correction flags err is valid, and outputs corrected read-data pieces R( 1 ), R( 2 ), R( 3 ), and R( 4 ).
- the data selection circuit 804 performs parallel-to-serial conversion of 64-bit data outputted from the memory cells, into 16-bit form for outputting the converted data through 16-bit I/O ports, in response to an output enable signal.
- the write-data holding circuits 805 - 1 , 805 - 2 , 805 - 3 , and 805 - 4 capture 16-bit write-data pieces (i.e., data to be written in the memory cells) from the I/O ports in turn in response to write enable signals WE 1 , WE 2 , WE 3 , and WE 4 , respectively, and hold the captured write-data pieces as write-data pieces W( 1 ), W( 2 ), W( 3 ), and W( 4 ).
- the write-status holding circuits 806 - 1 , 806 - 2 , 806 - 3 , and 806 - 4 determine whether or not the captured write-data pieces is to be written in the memory cells, in response to a status initialization signal.
- Each read/write data selection circuit 807 - i determines one of the write-data piece W(i) and the corrected read-data piece R(i) as a data piece C (i) which is to be written in the memory cells, according to a signal outputted from the corresponding write-status holding circuit 806 - i , and the parity generation circuit 808 receives the data piece C(i) determined by the read/write data selection circuit 807 - i , generates a set of seven parity bits P on the basis of the received data piece C(i), and outputs the set of seven parity bits P, where 1 ⁇ i ⁇ 4.
- the burst length (BL) is eight, and the minimum unit of the write data (which is referred to as a write block or a word structure) is constituted by 16 bits.
- the addresses A( 1 ) to A( 8 ) are supplied to the semiconductor memory device for the burst-mode operation, the 64-bit data corresponding to the four successive addresses A( 1 ) to A( 4 ), or A( 5 ) to A( 8 ) constitute the ECC code.
- FIG. 19 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device 800 (having the ECC function) in the case where the start address is A( 1 ) and the write latency (WL) is two as in the case of FIG. 15 .
- the semiconductor memory device 800 having the ECC function when data are written in the memory cells, it is necessary to read out read-data pieces r( 1 ) to r( 4 ) from the memory cells for generation of a set of parity bits.
- this operation is referred to as an ECC-RD operation. It is assumed that the duration of the ECC-RD operation is shorter than the period of the clock signal.
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are maintained active.
- the write operations are performed in two write cycles in which the address is A( 4 ) and A( 8 ), respectively.
- the data pieces C( 1 ), C( 2 ), C( 3 ), and C( 4 ) selected by the read/write data selection circuits 807 - 1 , 807 - 2 , 807 - 3 , and 807 - 4 and the set of parity bits P generated by the parity generation circuit 808 are written in the memory cells.
- the write-data pieces W 1 ( 1 ) to W 1 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ) in the first write cycle, and the write-data pieces W 2 ( 1 ) to W 2 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ) in the second write cycle.
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) become inactive when the corresponding write operation is completed. In the case where the start address is A( 1 ), the write recovery time (tWRB) is not changed even when the ECC operation is performed.
- FIG. 20 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device 800 (having the ECC function) in the case where the start address is A( 2 ).
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are maintained active.
- the write operations are performed in each of three write cycles in which the address is A( 4 ), A( 8 ), and A( 1 ), respectively.
- the corrected read-data piece R( 1 ) (indicated in FIG.
- the write-data pieces W 1 ( 2 ) to W 2 ( 4 ) are selected and written as the data pieces C( 1 ) to C( 4 ), although the corrected read-data piece R( 1 ) is not indicated in FIG. 20 .
- the write-data pieces W 2 ( 1 ) to W 2 ( 4 ) are selected and written as the data pieces C( 1 ) to C( 4 ) in the second write cycle, and the write-data piece W 1 ( 1 ) is selected and written as the data piece C( 1 ) in the third write cycle.
- the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) are masked and are not written in the memory cells. Instead, in order to obtain data bits necessary for generation of a set of parity bits P by the parity generation circuit 808 , the corrected read-data pieces R( 2 ) to R( 4 ) read out and corrected by the ECC-RD operation are used as the write-data pieces W 1 ( 2 ) to W 1 ( 4 ). At this time, the read-data pieces R( 2 ) to R( 4 ) are the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) which have been written by the first write cycle.
- the read/write data selection circuit 807 - 1 selects and outputs the write-data piece W 1 ( 1 ), and the read/write data selection circuits 807 - 2 , 807 - 3 , and 807 - 4 select and output the corrected read-data pieces R( 2 ) to R( 4 ), according to the signals from the write-status holding circuits 806 - 1 , 806 - 2 , 806 - 3 , and 806 - 4 illustrated in FIG. 18 .
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) become inactive when the corresponding write operation is completed. Further, the same column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are activated in the first and third write cycles.
- the operations in FIG. 20 are greatly different from the operations in FIG. 16 in the write operation at the address A( 1 ) (i.e., in the third write cycle). That is, since, in the case where the start address is A( 2 ), the ECC-RD operation and the write operation are successively performed, the timing of the equalization of the bit lines is delayed by the duration of the ECC-RD operation. Therefore, the write recovery time (tWRB) in the burst-mode operation of FIG. 20 in the semiconductor memory device 10 a having the ECC function is greater than the write recovery time (tWRB) in the burst-mode operation of FIG. 16 in the semiconductor memory device without the ECC function by one cycle of the clock signal.
- FIG. 21 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device 800 (having the ECC function) in the case where the start address is A( 3 ).
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are maintained active.
- the write operations are performed in three write cycles in which the address is A( 4 ), A( 8 ), and A( 2 ), respectively.
- the corrected read-data pieces R( 1 ) and R( 2 ) illustrated in FIG. 18 ) read out and corrected by the ECC-RD operation, and the write-data pieces W 1 ( 3 ) and W 2 ( 4 ) are selected and written as the data pieces C( 1 ) to C( 4 ), although the corrected read-data piece R( 1 ) is not indicated in FIG.
- the write-data pieces W 2 ( 1 ) to W 2 ( 4 ) are selected and written as the data pieces C( 1 ) to C( 4 ) in the second write cycle, and the write-data pieces W 1 ( 1 ) and W 1 ( 2 ) are selected and written as the data pieces C( 1 ) and C( 2 ) in the third write cycle.
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are active in the third write cycle, the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) are masked and are not written in the memory cells.
- the read/write data selection circuits 807 - 1 and 807 - 2 select and output the write-data pieces W 1 ( 1 ) and W 1 ( 2 ) as the data pieces C( 1 ) and C( 2 ), and the read/write data selection circuits 807 - 3 and 807 - 4 select and output the corrected read-data pieces R( 3 ) and R( 4 ) as the data pieces C( 3 ) and C( 4 ), according to the signals from the write-status holding circuits 806 - 1 , 806 - 2 , 806 - 3 , and 806 - 4 illustrated in FIG. 18 .
- the read-data pieces R( 3 ) and R( 4 ) are the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) which have been written by the first write cycle.
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) become inactive when the corresponding write operation is completed. Further, the same column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) are activated in the first and third write cycles.
- the operations in FIG. 21 are greatly different from the operations in FIG. 17 in the write operation at the address A( 2 ) (i.e., in the third write cycle).
- the ECC-RD operation and the write operation are successively performed in a similar manner to the case of FIG. 20 where the start address is A( 2 )
- the ECC-RD operation in the case of FIG. 21 where the start address is A( 3 ) is completed before the write operation at the address A( 2 ). Therefore, the duration of the equalization of the bit lines does not trespass on the time for the subsequent operations.
- the write recovery time (tWRB) is unaffected by the existence or absence of the ECC function.
- the write recovery time (tWRB) is also unaffected by the existence or absence of the ECC function in the case where the start address is A( 4 ).
- the write recovery time increases depending on the start address (as in the case where the start address is A( 2 )).
- the present invention is made in view of the above problems, and the object of the present invention is to provide a semiconductor memory device which can suppress deterioration of the write recovery time regardless of the start address in the burst-mode operation.
- a semiconductor memory device having a function of correcting a defective bit by using a code which enables correction of a single-bit error and is constituted by data corresponding to successive addresses in an address range designated for a burst-mode operation is provided.
- the semiconductor memory device comprises memory cells; and a holding circuit which is arranged outside the memory cells, and holds one or both of at least a portion of a first set of data bits and a set of parity bits, where the first set of data bits and the set of parity bits constitute the code and are written in the memory cells in the leading one of a plurality of write cycles included in a burst write operation so that the portion is written at an address of the memory cells, the set of parity bits is generated on the basis of the first set of data bits, and data bits and parity bits constituting the code are written in the memory cells in each of the plurality of write cycles.
- the semiconductor memory device also comprises a parity updating circuit which updates, in the final one of the plurality of write cycles in the burst write operation, the set of parity bits written in the memory cells in the leading one of the plurality of write cycles, on the basis of the one or both of the portion of the first set of data bits and the set of parity bits held by the holding circuit and a second set of data bits required to be written at the above address of the memory cells in the final one of the plurality of write cycles.
- a parity updating circuit which updates, in the final one of the plurality of write cycles in the burst write operation, the set of parity bits written in the memory cells in the leading one of the plurality of write cycles, on the basis of the one or both of the portion of the first set of data bits and the set of parity bits held by the holding circuit and a second set of data bits required to be written at the above address of the memory cells in the final one of the plurality of write cycles.
- FIG. 1 is a block diagram of circuitry in a semiconductor memory device according to a first embodiment of the present invention.
- FIG. 2 is a timing diagram of signals in a burst write operation performed in the semiconductor memory device according to the first embodiment in the case where the start address is A( 2 ).
- FIG. 3 is a timing diagram of signals in operations performed in the semiconductor memory device according to the first embodiment for generating a set of parity bits in the case where the start address is A( 1 ).
- FIG. 4 is a timing diagram of signals in operations performed in the semiconductor memory device according to the first embodiment for generating a set of parity bits in the case where the start address is A( 2 ).
- FIG. 5 is a timing diagram of signals in operations performed in the semiconductor memory device according to the first embodiment for generating a set of parity bits in the case where the start address is A( 3 ).
- FIG. 6 is a block diagram of circuitry in a semiconductor memory device according to a second embodiment of the present invention.
- FIG. 7 is a block diagram of circuitry in a semiconductor memory device according to a third embodiment of the present invention.
- FIG. 8 is a timing diagram of signals in operations performed in the semiconductor memory device according to the third embodiment for generating a set of parity bits in the case where the start address is A( 2 ).
- FIG. 9 is a block diagram of circuitry in a semiconductor memory device according to a fourth embodiment of the present invention.
- FIG. 10 is a block diagram of circuitry in a semiconductor memory device according to a fifth embodiment of the present invention.
- FIG. 11 is a diagram illustrating data bits used for generation of parity bits in an example of an ECC code in which seven parity bits are generated for 64 data bits.
- FIGS. 12A , 12 B, 12 C, 12 D, 12 E, 12 F, and 12 G are diagrams of circuits for generating parity bits in the ECC code indicated in FIG. 11 .
- FIG. 13 is a diagram illustrating data bits used for generation of block-based parity bits in an example of an ECC code in which seven block-based parity bits are generated for 16 data bits.
- FIGS. 14A , 14 B, 14 C, 14 D, and 14 E are diagrams of circuits for generating parity bits in the ECC code indicated in FIG. 13 .
- FIG. 15 is a timing diagram of signals in a burst-mode (write) operation performed in a conventional semiconductor memory device in the case where the start address is A( 1 ).
- FIG. 16 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device in the case where the start address is A( 2 ).
- FIG. 17 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device in the case where the start address is A( 3 ).
- FIG. 18 is a block diagram of first circuitry realizing an ECC function and a burst-mode function in a conventional semiconductor memory device.
- FIG. 19 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device of FIG. 18 in the case where the start address is A( 1 ).
- FIG. 20 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device of FIG. 18 in the case where the start address is A( 2 ).
- FIG. 21 is a timing diagram of signals in a burst-mode (write) operation performed in the conventional semiconductor memory device of FIG. 18 in the case where the start address is A( 3 ).
- the semiconductor memory devices have an ECC function.
- ECC code for one-bit-error correction
- 4 parity bits for 8 data bits 5 parity bits for 16 data bits, 7 parity bits for 64 data bits, and 8 parity bits for 128 data bits are necessary.
- the ECC code is composed of 64 data bits and seven parity bits.
- FIG. 1 is a block diagram of circuitry in a semiconductor memory device according to the first embodiment of the present invention.
- the semiconductor memory device 10 a illustrated in FIG. 1 comprises a syndrome generation circuit 11 , a decoder 12 , an error correction circuit 13 , a data selection circuit 14 , write-data holding circuits 15 - 1 , 15 - 2 , 15 - 3 , and 15 - 4 , write-status holding circuits 16 - 1 , 16 - 2 , 16 - 3 , and 16 - 4 , read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , and a parity generation circuit 18 .
- the semiconductor memory device 10 a is characterized in comprising selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 , and selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 .
- the syndrome generation circuit 11 generates a 7-bit syndrome signal S on the basis of an ECC code constituted by read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) and a set of seven parity bits P 0 corresponding to the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ).
- the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) and the set of seven parity bits P 0 are read out from memory cells.
- Each of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) is constituted by 16 bits, and thus the total number of bits of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) is 64.
- the decoder 12 decodes the syndrome signal S, and generates 64-bit error correction flags err.
- the error correction circuit 13 is constituted by, for example, ExOR (exclusive OR) circuits, receives the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) and the error correction flags err, corrects (inverts) a bit of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) corresponding to one of the error correction flags err when the one of the error correction flags err is valid, and outputs corrected read-data pieces R( 1 ), R( 2 ), R( 3 ), and R( 4 ).
- ExOR exclusive OR
- the data selection circuit 14 performs parallel-to-serial conversion of 64-bit data outputted from the memory cells, into 16-bit form for outputting the converted data through 16-bit I/O ports, in response to an output enable signal, which is designated by an input address.
- the write-data holding circuits 15 - 1 , 15 - 2 , 15 - 3 , and 15 - 4 capture 16-bit write-data pieces (i.e., data to be written in the memory cells) inputted from the I/O ports in turn in response to write enable signals WE 1 , WE 2 , WE 3 , and WE 4 , respectively, and hold the captured write-data pieces as write-data pieces W( 1 ), W( 2 ), W( 3 ), and W( 4 ).
- the write-status holding circuits 16 - 1 , 16 - 2 , 16 - 3 , and 16 - 4 determine whether or not the captured write-data pieces are to be written in the memory cells, in response to a status initialization signal.
- Each read/write data selection circuit 17 - i determines one of the write-data piece W(i) and the corrected read-data piece R(i) as a data piece C (i) which is to be written in the memory cells, according to a signal outputted from the corresponding write-status holding circuit 16 - i , and the parity generation circuit 18 receives the data piece C(i) determined by the read/write data selection circuit 17 - i , generates a set of seven parity bits P on the basis of the received data piece C(i), and outputs the set of seven parity bits P, where 1 ⁇ i ⁇ 4.
- the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 hold the data pieces C( 1 ) to C( 4 ) written in the memory cells, in response to a data-hold enable signal.
- Each selection circuit 20 - i selects one of the data piece outputted from the corresponding selected-data holding circuit 19 - i and the corrected read-data piece R(i), in response to a data selection signal, and supplies the selected one to the corresponding read/write data selection circuit 17 - i , where 1 ⁇ i ⁇ 4.
- each of the read-data pieces r( 1 ) to r( 4 ) is read out from the memory cells in one clock cycle, where each of the read-data pieces r( 1 ) to r( 4 ) is constituted by 16 bits.
- the syndrome generation circuit 11 generates a 7-bit syndrome signal S on the basis of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) and a set of seven parity bits P 0 corresponding to the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ).
- the decoder 12 decodes the syndrome signal S, and generates the 64-bit error correction flags err.
- the error correction circuit 13 receives the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) and the error correction flags err generated on the basis of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ), corrects (inverts) a bit of the read-data pieces r( 1 ), r( 2 ), r( 3 ), and r( 4 ) corresponding to one of the error correction flags err when the one of the error correction flags err is valid, and outputs corrected read-data pieces R( 1 ), R( 2 ), R( 3 ), and R( 4 ), where each of the corrected read-data pieces R( 1 ) to R( 4 ) is constituted by 16 bits.
- the data selection circuit 14 performs parallel-to-serial conversion of 64-bit data outputted from the memory cells, into 16-bit form, in response to the output enable signal, so that the converted data are outputted in turn through the 16-bit I/O ports.
- the burst length BL is eight
- the burst read operations as above are performed in two burst read cycles.
- data stored in the addresses following the address of the above read-data pieces r( 1 ) to r( 4 ) read out in the first burst read cycle are similarly read out as the next read-data pieces r( 1 ) to r( 4 ). Then, error correction is made, and the corrected read data are outputted.
- the burst length (BL) is eight, and the size of the write block is 16 bits.
- the 64-bit data corresponding to the successive addresses A( 1 ) to A( 4 ), or A( 5 ) to A( 8 ) constitute the ECC code.
- the ECC code is composed by writing the data pieces C( 1 ) to C( 4 ) in the addresses A( 1 ) to A( 4 ), or A( 5 ) to A( 8 ).
- the write recovery time (tWRB) increases (deteriorates) little as explained before with reference to FIGS. 19 and 21 .
- the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 do not hold the data C( 1 ) to C( 4 ) to be written in the memory cells, and the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 select the corrected read-data pieces R( 1 ) to R( 4 ), and supplies the corrected read-data pieces R( 1 ) to R( 4 ) to the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , respectively.
- the burst write operations performed in the semiconductor memory device 10 a in the case where the start address in the burst write operation is A( 1 ), A( 5 ), A( 3 ), A( 4 ), A( 7 ), or A( 8 ) are similar to the operations of FIGS. 19 and 21 performed in the conventional semiconductor memory device 800 .
- the burst write operation is performed as explained below. Since the burst write operations in the cases where the start address is A( 2 ) and A( 6 ) are basically similar, only the case where the start address is A( 2 ) are explained below.
- FIG. 2 is a timing diagram of signals in a burst write operation performed in the semiconductor memory device 10 a according to the first embodiment in the case where the start address is A( 2 ).
- the data pieces to be written are captured in the order of W 1 ( 2 ) ⁇ W 1 ( 3 ) ⁇ W 1 ( 4 ) ⁇ W 2 ( 1 ) ⁇ W 2 ( 2 ) ⁇ W 2 ( 3 ) ⁇ W 2 ( 4 ) ⁇ W 1 ( 1 ).
- the data pieces to be written are respectively outputted on data buses being arranged between input terminals DQ and the memory cells and having the total width of 64 bits, and the data pieces on the data buses are changed one after another as W 1 ( 2 ) ⁇ W 2 ( 2 ), W 1 ( 3 ) ⁇ W 2 ( 3 ), W 1 ( 4 ) ⁇ W 2 ( 4 ), and W 2 ( 1 ) ⁇ W 1 ( 1 ).
- the four column-selection signals CL 1 ( 1 ) to CL 1 ( 4 ) or the four column-selection signals CL 2 ( 1 ) to CL 2 ( 4 ) are maintained active, and the data pieces outputted onto the data buses and constituted by 64 bits are written in the memory cells in each of the three write cycles in which the address is A( 4 ), A( 8 ), and A( 1 ), respectively.
- the corrected read-data piece R( 1 ) illustrated in FIG.
- the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) and the corrected read-data piece R( 1 ) which are written in the memory cells in the first write cycle are held as the data pieces C( 1 ) to C( 4 ) in the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 .
- the write-data pieces W 2 ( 1 ) to W 2 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ) and written in the memory cells after the ECC-RD operation, as in the conventional semiconductor memory device.
- each selection circuit 20 - i selects the data piece held by the corresponding selected-data holding circuit 19 - i (instead of the corrected read-data piece R(i)), and supplies the selected data piece to the corresponding read/write data selection circuit 17 - i , where 1 ⁇ i ⁇ 4.
- the read/write data selection circuit 17 - 1 selects as the data piece C( 1 ) the write-data piece W 1 ( 1 ) corresponding to the address A( 1 ) which is to be newly written, according to a signal outputted from the write-status holding circuit 16 - 1 , and the other read/write data selection circuits 17 - 2 , 17 - 3 , and 17 - 4 select as the data pieces C( 2 ) to C( 4 ) the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) held by the selected-data holding circuits 19 - 2 , 19 - 3 , and 19 - 4 , according to signals outputted from the write-status holding circuits 16 - 2 , 16 - 3 , and 16 - 4 .
- the data pieces C( 1 ) to C( 4 ) selected by the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 are inputted into the parity generation circuit 18 , and are also written at the addresses A( 1 ) to A( 4 ) in the memory cells.
- FIG. 3 is a timing diagram of signals in operations performed in the semiconductor memory device 10 a according to the first embodiment for generating a set of parity bits in the case where the start address is A( 1 ).
- the write operations are performed in two write cycles.
- the ECC-RD operation is performed before the first write cycle.
- the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) (each constituted by 16 bits) are read out from the memory cells onto read-data buses, and are then selected by the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 and the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 .
- the parity generation circuit 18 generates a set of parity bits P 0 (constituted by 7 bits) on the basis of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ), so that the generated set of parity bits P 0 is outputted on a parity-write bus.
- the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 newly generates a set of parity bits.
- the write-data piece W 1 ( 1 ) (constituted by 16 bits) is inputted onto a write-data bus
- the data piece C( 1 ) used for generation of parity bits is changed from the read-data piece R 1 ( 1 ) to the write-data piece W 1 ( 1 ), and the parity generation circuit 18 generates a set of parity bits P 1 on the basis of the write-data piece W 1 ( 1 ) and the read-data pieces R 1 ( 2 ) to R 1 ( 4 ), so that the generated set of parity bits P 1 is outputted on the parity-write bus.
- the parity generation circuit 18 successively generates a new set of parity bits in the order of P 1 ⁇ P 12 ⁇ P 123 ⁇ P 1234 .
- the set of parity bits P 1234 is finally outputted on the parity-write bus, so that the write-data pieces W 1 ( 1 ) to W 1 ( 4 ) and the set of parity bits P 1234 are written in the memory cells.
- the write operation in the second write cycle is performed in a similar manner to the first write cycle, so that write-data pieces and a set of parity bits generated on the basis of the write-data pieces are written in the memory cells.
- the burst write operation with the burst length (BL) of eight is completed.
- FIG. 4 is a timing diagram of signals in operations performed in the semiconductor memory device 10 a according to the first embodiment for generating a set of parity bits in the case where the start address is A( 2 ).
- the write operations are performed in three write cycles.
- the ECC-RD operation is performed.
- the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) (each constituted by 16 bits) are read out from the memory cells onto read-data buses, and are then selected by the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 and the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 .
- the parity generation circuit 18 generates a set of parity bits P 0 (constituted by 7 bits) on the basis of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ), so that the generated set of parity bits P 0 is outputted on the parity-write bus.
- the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 newly generates a set of parity bits.
- the write-data piece W 1 ( 2 ) (constituted by 16 bits) is inputted onto a write-data bus
- the data piece C( 2 ) used for generation of a set of parity bits is changed from the read-data piece R 1 ( 2 ) to the write-data piece W 1 ( 2 ), and the parity generation circuit 18 generates a set of parity bits P 2 on the basis of the write-data piece W 1 ( 2 ) and the corrected read-data pieces R 1 ( 1 ), R 1 ( 3 ), and R 1 ( 4 ), so that the generated set of parity bits P 2 is outputted on the parity-write bus.
- the parity generation circuit 18 successively generates a new set of parity bits in the order of P 2 ⁇ P 23 ⁇ P 234 .
- the set of parity bits P 234 is finally outputted on the parity-write bus, so that the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ), and written in the memory cells together with the set of parity bits P 234 .
- the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 temporarily hold the data pieces C( 1 ) to C( 4 ) which are written in the memory cells (i.e., the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 )) in the first write cycle.
- the operations in the second write cycle are performed while the data pieces C( 1 ) to C( 4 ) written in the first write cycle are held by the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 .
- the ECC-RD operation is performed as in the first write cycle, so that the corrected read-data pieces R 2 ( 1 ) to R 2 ( 4 ) are read out from the memory cells onto the read-data buses. Then, the corrected read-data pieces R 2 ( 1 ) to R 2 ( 4 ) are selected by the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 and the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , and the parity generation circuit 18 generates a set of parity bits P 0 a on the basis of the corrected read-data pieces R 2 ( 1 ) to R 2 ( 4 ), so that the generated set of parity bits P 0 a is outputted on the parity-write bus.
- the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 2 ( 1 ) to R 2 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 successively generates a new set of parity bits in the order of P 1 a ⁇ P 12 a ⁇ P 123 a ⁇ P 1234 a .
- the set of parity bits P 1234 a is finally outputted on the parity-write bus, and the write-data pieces W 2 ( 1 ) to W 2 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ), so that the selected write-data pieces W 2 ( 1 ) to W 2 ( 4 ) and the set of parity bits P 1234 a are written in the memory cells.
- the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 select the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) which are held by the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 , and supply the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) to the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , which also select the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ).
- the parity generation circuit 18 generates a set of parity bits P 234 on the basis of the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ).
- the write-data holding circuit 15 - 1 captures the write-data piece W 1 ( 1 ), and supplies the write-data piece W 1 ( 1 ) to the read/write data selection circuit 17 - 1 .
- the read/write data selection circuit 17 - 1 selects the write-data piece W 1 ( 1 ) instead of the read-data piece R 1 ( 1 ) held by the selected-data holding circuit 19 - 1 , and supplies the write-data piece W 1 ( 1 ) to the parity generation circuit 18 .
- the parity generation circuit 18 generates a set of parity bits P 1234 on the basis of the write-data piece W 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) held by the selected-data holding circuits 19 - 2 , 19 - 3 , and 19 - 4 so that the generated set of parity bits P 1234 is outputted on the parity-write bus, which is written in the memory cells together with the write-data pieces W 1 ( 1 ) to W 1 ( 4 ).
- the burst write operation with the burst length (BL) of eight is completed.
- FIG. 5 is a timing diagram of signals in operations performed in the semiconductor memory device according to the first embodiment for generating a set of parity bits in the case where the start address is A( 3 ).
- the write operations are performed in three write cycles.
- the ECC-RD operation is performed.
- the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) (each constituted by 16 bits) are read out from the memory cells onto read-data buses, and are then selected by the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 and the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 .
- the parity generation circuit 18 generates a set of parity bits P 0 (constituted by 7 bits) on the basis of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ), so that the generated set of parity bits P 0 is outputted on the parity-write bus.
- the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 newly generates a set of parity bits.
- the write-data piece W 1 ( 3 ) (constituted by 16 bits) is inputted onto a write-data bus
- the data piece C( 3 ) used for generation of a set of parity bits is changed from the read-data piece R 1 ( 3 ) to the write-data piece W 1 ( 3 ), and the parity generation circuit 18 generates a set of parity bits P 3 on the basis of the write-data piece W 1 ( 3 ) and the corrected read-data pieces R 1 ( 1 ), R 1 ( 2 ), and R 1 ( 4 ), so that the generated set of parity bits P 3 is outputted on the parity-write bus.
- the parity generation circuit 18 newly generates a set of parity bits P 34 .
- the set of parity bits P 34 is finally outputted on the parity-write bus, so that the corrected read-data pieces R 1 ( 1 ) and R 1 ( 2 ) and the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ), and written in the memory cells together with the set of parity bits P 34 .
- the write operation in the second write cycle is performed in a similar manner to the first write cycle, so that write-data pieces W 2 ( 1 ) to W 2 ( 4 ) and a set of parity bits P 1234 a generated on the basis of the write-data pieces are written in the memory cells.
- the ECC-RD operation is performed as in the first write cycle, so that the corrected read-data pieces R 1 ( 1 ) and R 1 ( 2 ) and the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) (each constituted by 16 bits) are read out from the memory cells onto the read-data buses, where the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) are written in the memory cells in the first write cycle.
- the corrected read-data pieces R 1 ( 1 ) and R 1 ( 2 ) and the write-data pieces W 1 ( 3 ) and W 1 ( 4 ) are selected by the selection circuits 20 - 1 , 20 - 2 , 20 - 3 , and 20 - 4 and the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , and the parity generation circuit 18 generates a set of parity bits P 34 on the basis of the corrected read-data pieces R 1 ( 1 ) and R 1 ( 2 ) and the write-data pieces W 1 ( 3 ) and W 1 ( 4 ), so that the generated set of parity bits P 34 is outputted on the parity-write bus.
- the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 newly generates a set of parity bits.
- the data piece C( 1 ) is switched from the corrected read-data piece R 1 ( 1 ) to R 1 ( 4 ) to the inputted write-data piece W 1 ( 1 ), and the parity generation circuit 18 newly generates a set of parity bits P 134 .
- the parity generation circuit 18 newly generates a set of parity bits P 1234 , so that the generated set of parity bits P 1234 is finally outputted on the parity-write bus.
- the write-data pieces W 1 ( 1 ) to W 1 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ), and the write-data pieces W 1 ( 1 ) to W 1 ( 4 ) and the set of parity bits P 1234 are written in the memory cells.
- the burst write operation with the burst length (BL) of eight is completed.
- the data pieces C( 1 ) to C( 4 ) which have the total bit length of 64 bits and are first written in the memory cells are held by the selected-data holding circuits 19 - 1 , 19 - 2 , 19 - 3 , and 19 - 4 in the first write cycle, and are thereafter used in the final write cycle for generation of a set of parity bits.
- the semiconductor memory device 10 a access to the memory core for the ECC-RD operation is unnecessary in the final write cycle, and thus increase in the write recovery time (tWRB) can be prevented, although, in the conventional semiconductor memory device, the ECC-RD operation in the final write cycle is necessary in the case where the start address is A( 2 ), and increases the write recovery time (tWRB).
- FIG. 6 is a block diagram of circuitry in a semiconductor memory device according to the second embodiment of the present invention.
- the semiconductor memory device 10 b illustrated in FIG. 6 is different from the semiconductor memory device 10 a according to the first embodiment in comprising block-parity generation circuits 21 - 1 , 21 - 2 , 21 - 3 , and 21 - 4 , block-parity holding circuits 22 - 1 , 22 - 2 , 22 - 3 , and 22 - 4 , comparison circuits 23 - 1 , 23 - 2 , 23 - 3 , and 23 - 4 , and a parity synthesis circuit 24 .
- the block-parity generation circuits 21 - 1 , 21 - 2 , 21 - 3 , and 21 - 4 respectively generate sets of block-based parity bits p 1 , p 2 , p 3 , and p 4 on the basis of 16-bit data pieces C( 1 ) to C( 4 ), where each of the 16-bit data pieces C( 1 ) to C( 4 ) corresponds to the minimum unit of data written in the memory cells (which are not shown).
- each of the sets of block-based parity bits p 1 , p 2 , p 3 , and p 4 is constituted by seven bits.
- the block-parity holding circuits 22 - 1 , 22 - 2 , 22 - 3 , and 22 - 4 respectively capture and hold the sets of block-based parity bits p 1 , p 2 , p 3 , and p 4 in response to a data-hold enable signal.
- Each of the comparison circuits 23 - i is constituted by, for example, at least one ExOR (exclusive OR) circuit, compares the corresponding set of block-based parity bits pi generated by the corresponding block-parity generation circuit 21 - i , with the corresponding set of block-based parity bits held by the corresponding block-parity holding circuit 22 - i , inverts one or more bits of the set of block-based parity bits held by the corresponding block-parity holding circuit 22 - i when the one or more bits in the corresponding block-parity holding circuit 22 - i are different from one or more corresponding bits of the set of block-based parity bits pi generated by the corresponding block-parity generation circuit 21 - i , selects and outputs the above set of block-based parity bits which are originated from the block-parity holding circuit 22 - i , after the inversion of the one or more bits as above when the inversion is performed, or the corresponding set of block-based parity bits pi generated by the corresponding
- the parity synthesis circuit 24 generates a set of parity bits P by synthesizing the sets of block-based parity bits outputted from the comparison circuits 23 - 1 , 23 - 2 , 23 - 3 , and 23 - 4 .
- the operations of the semiconductor memory device 10 b according to the second embodiment are explained.
- the burst length (BL) is eight, and the size of the write block is 16 bits, as in the semiconductor memory device 10 a according to the first embodiment.
- the 64-bit data corresponding to the successive addresses A( 1 ) to A( 4 ), or A( 5 ) to A( 8 ) constitute an ECC code.
- the write recovery time (tWRB) increases (deteriorates) little as explained before with reference to FIGS. 19 and 21 .
- the block-parity holding circuits 22 - 1 , 22 - 2 , 22 - 3 , and 22 - 4 do not hold the sets of block-based parity bits p 1 , p 2 , p 3 , and p 4
- the comparison circuits 23 - 1 , 23 - 2 , 23 - 3 , and 23 - 4 respectively select the sets of block-based parity bits supplied from the block-parity generation circuits 21 - 1 , 21 - 2 , 21 - 3 , and 21 - 4 , and supply the selected sets of block-based parity bits to the parity synthesis circuit 24 .
- the semiconductor memory device 10 b operates in a similar manner to the conventional semiconductor memory device 800 as explained before with reference to FIGS. 19 and 21 .
- the burst write operation is performed as explained below.
- the data pieces C( 1 ) to C( 4 ) which are written in the first write cycle in the memory cells and have the total length of 64 bits are held, and a set of parity bits is generated in the third write cycle by using the data pieces C( 1 ) to C( 4 ) held in the first write cycle.
- the sets of block-based parity bits respectively generated on the basis of the data pieces C( 1 ) to C( 4 ) which are written in the memory cells in the first write cycle are held, and a set of parity bit P to be written in the memory cells is updated by using the difference between the sets of block-based parity bits held in the first write cycle and sets of block-based parity bits generated on the basis of a write-data piece W( 1 ).
- the block-parity generation circuits 21 - 1 , 21 - 2 , 21 - 3 , and 21 - 4 are generated by the block-parity generation circuits 21 - 1 , 21 - 2 , 21 - 3 , and 21 - 4 on the basis of the 16-bit data pieces C( 1 ) to C( 4 ) selected by the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 , respectively.
- the four sets of block-based parity bits p 1 , p 2 , p 3 , and p 4 generated in the first write cycle are denoted by the references p 1 - 1 , p 2 - 1 , p 3 - 1 , and p 4 - 1 .
- the sets of block-based parity bits p 1 - 1 , p 2 - 1 , p 3 - 1 , and p 4 - 1 are respectively held by the block-parity holding circuits 22 - 1 , 22 - 2 , 22 - 3 , and 22 - 4 .
- the ECC-RD operation is not performed, and new sets of block-based parity bits p 1 - 2 , p 2 - 2 , p 3 - 2 , and p 4 - 2 are generated by using the write-data piece W( 1 ) which is newly captured.
- the comparison circuits 23 - 1 , 23 - 2 , 23 - 3 , and 23 - 4 compare the sets of block-based parity bits p 1 - 2 , p 2 - 2 , p 3 - 2 , and p 4 - 2 with the sets of block-based parity bits p 1 - 1 , p 2 - 1 , p 3 - 1 , and p 4 - 1 , respectively.
- Each comparison circuit 23 - i inverts one or more bits of the corresponding set of block-based parity bits pi- 1 when the one or more bits of the corresponding set of block-based parity bits pi- 1 are different from one or more corresponding bits of the set of block-based parity bits pi- 2 , and outputs the above set of block-based parity bits pi- 1 , after the inversion of the one or more bits as above: when the inversion is performed, where 1 ⁇ i ⁇ 4.
- the parity synthesis circuit 24 synthesizes the sets of block-based parity bits outputted from the comparison circuits 23 - 1 , 23 - 2 , 23 - 3 , and 23 - 4 , into a set of seven parity bits P, so that the set of seven parity bits P are written in the memory cells together with the data pieces C( 1 ) to C( 4 ).
- FIG. 7 is a block diagram of circuitry in a semiconductor memory device according to the third embodiment of the present invention.
- the semiconductor memory device 10 c illustrated in FIG. 7 is different from the semiconductor memory device 10 a according to the first embodiment in comprising a parity holding circuit 25 , a data holding circuit 26 , a comparison circuit 27 , a block-parity generation circuit 28 , a data inversion circuit 29 , and a selection circuit 30 .
- the parity holding circuit 25 captures and holds a set of seven parity bits generated by the parity generation circuit 18 , in response to a data-hold enable signal, and the data holding circuit 26 holds a data piece C( 1 ) selected by the read/write data selection circuit 17 - 1 , in response to the data-hold enable signal.
- the data-hold enable signal makes the parity holding circuit 25 and the data holding circuit 26 hold the set of parity bits and the data piece C( 1 ) in the first write cycle in each burst write operation.
- the comparison circuit 27 is constituted by, for example, at least one ExOR circuit, compares the data piece held by the data holding circuit 26 , with the data piece C( 1 ) selected by the read/write data selection circuit 17 - 1 . When one or more bits of the data piece held by the data holding circuit 26 are different from one or more corresponding bits of the data piece C( 1 ) selected by the read/write data selection circuit 17 - 1 , the comparison circuit 27 inverts one or more corresponding bits in the output of the comparison circuit 27 .
- the block-parity generation circuit 28 generates a set of block-based parity bits on the basis of the 16-bit output of the comparison circuit 27 , and the data inversion circuit 29 compares the seven parity bits held by the parity holding circuit 25 , with the seven block-based parity bits generated by the block-parity generation circuit 28 .
- the data inversion circuit 29 inverts one or more corresponding bits in the output of the data inversion circuit 29 , after the inversion of the one or more bits as above when the inversion is performed.
- the selection circuit 30 selects and outputs the set of seven parity bits outputted from the parity generation circuit 18 , or the set of seven parity bits outputted from the data inversion circuit 29 , according to a selection signal, so that the set of seven parity bits selected by the selection circuit 30 is written in the memory cells. Specifically, the selection circuit 30 selects the set of seven parity bits outputted from the data inversion circuit 29 in the case where the start address is A( 2 ) or A( 6 ), or the set of seven parity bits outputted from the parity generation circuit 18 in the other cases.
- the burst length (BL) is eight, and the size of the write block is 16 bits, as in the semiconductor memory device 10 a according to the first embodiment.
- the 64-bit data corresponding to the successive addresses A( 1 ) to A( 4 ), or A( 5 ) to A( 8 ) constitute an ECC code.
- the selection signal makes the selection circuit 30 select the set of seven parity bits outputted from the parity generation circuit 18 , and outputs the selected set of seven parity bits P so as to be written in the memory cells.
- the semiconductor memory device 10 c operates in a similar manner to the conventional semiconductor memory device 800 as explained before with reference to FIGS. 19 and 21 .
- the write operations in each burst write operation are performed in three write cycles.
- a set of parity bits P is generated by using the data pieces C( 1 ) to C( 4 ) which are selected by the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 and have the total length of 64 bits, and held by the parity holding circuit 25 .
- the data pieces C( 1 ) to C( 4 ) which are selected by the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 in the first write cycle are respectively denoted by C 1 ( 1 ) to C 1 ( 4 ), and the set of parity bits P generated in the first write cycle is denoted by P- 1 .
- the data holding circuit 26 holds only the data piece C 1 ( 1 ) which is written at the leading address A( 1 ).
- the ECC-RD operation is not performed, and the parity generation circuit 18 generates a set of seven parity bits P- 3 by using a captured write-data piece W( 1 ).
- each parity bit constituting parity data indicates whether the number of H (high) bits or L (low) bits in all the data bits corresponding to the parity bit is even or odd. Therefore, when the parity of data bits corresponding to each block-based parity bit is changed, the block-based parity bit is inverted. Since each parity bit constituting the finally obtained set indicates the parity of all the data bits corresponding to the parity bit, the parity bit constituting the finally obtained set indicates whether or not the number of H (or L) bits in the block-based parity bits corresponding to the data bits is even or odd. When an even number of block-based parity bits corresponding to each parity bit which constitutes the finally obtained set are inverted, the parity bit is not inverted.
- the parity bit is inverted. Therefore, when the data piece C 1 ( 1 ) which is held by the data holding circuit 26 in the first write cycle is different from the data piece C 3 ( 1 ) which is selected in the third write cycle for writing only the write-data piece W( 1 ), the set of parity bits can be finally obtained by inverting one or more bits in the set of parity bits P- 1 .
- the comparison circuit 27 compares the data piece C 1 ( 1 ) held by the data holding circuit 26 in the first write cycle, with the data piece C 3 ( 1 ) selected by the read/write data selection circuit 17 - 1 in the third write cycle (in which only the write data piece W( 1 ) is written).
- the comparison circuit 27 inverts one or more corresponding bits in the output of the comparison circuit 27 .
- the block-parity generation circuit 28 generates, on the basis of the output of the comparison circuit 27 , a set of seven block-based parity bits which indicates the difference between the data piece C 1 ( 1 ) and the data piece C 3 ( 1 ) (i.e., the difference between the set of parity bits P- 1 and the set of parity bits P- 3 ).
- the data inversion circuit 29 inverts one or more bits of the seven parity bits P- 1 held by the parity holding circuit 25 so as to generate a set of parity bits for the 64 data bits containing the data piece C 3 ( 1 ).
- the selection circuit 30 selects as the set of parity bits P the output of the data inversion circuit 29 .
- the set of parity bits P generated by the data inversion circuit 29 is written in the memory cells together with the data pieces C 3 ( 1 ) to C 3 ( 4 ).
- FIG. 8 is a timing diagram of signals in the operations performed in the semiconductor memory device 10 c according to the third embodiment for generating the set of parity bits P in the case where the start address is A( 2 ).
- the write operations in each burst write operation are performed in three write cycles.
- the ECC-RD operation is performed before the first write cycle.
- the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) (each constituted by 16 bits) are read out from the memory cells onto read-data buses, and are then selected by the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 .
- the parity generation circuit 18 generates a set of parity bits P 0 on the basis of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ), so that the generated set of parity bits P 0 is outputted on a parity-write bus. Thereafter, every time a new write-data piece is inputted, the selection by one of the read/write data selection circuits 17 - 1 , 17 - 2 , 17 - 3 , and 17 - 4 corresponding to the inputted write-data piece is switched from one of the corrected read-data pieces R 1 ( 1 ) to R 1 ( 4 ) corresponding to the inputted write-data piece to the inputted write-data piece, and the parity generation circuit 18 newly generates a set of parity bits.
- the write-data piece W 1 ( 2 ) (constituted by 16 bits) is inputted onto a write-data bus
- the data piece C( 2 ) used for generation of a set of parity bits is changed from the read-data piece R 1 ( 2 ) to the write-data piece W 1 ( 2 ), and the parity generation circuit 18 generates a set of parity bits P 2 on the basis of the write-data piece W 1 ( 2 ) and the corrected read-data pieces R 1 ( 1 ), R 1 ( 3 ), and R 1 ( 4 ), so that the generated set of parity bits P 2 is outputted onto the parity-write bus.
- the parity generation circuit 18 successively generates a new set of parity bits in the order of P 2 ⁇ P 23 ⁇ P 234 .
- the set of parity bits P 234 is finally outputted onto the parity-write bus, so that the corrected read-data piece R 1 ( 1 ) and the write-data pieces W 1 ( 2 ) to W 1 ( 4 ) are selected as the data pieces C( 1 ) to C( 4 ), and written in the memory cells together with the set of parity bits P 234 .
- the data holding circuit 26 holds the data piece C( 1 ) (i.e., the corrected read-data piece R 1 ( 1 )) in the first write cycle.
- the parity holding circuit 25 holds the set of parity bits P 234 , which is generated by the parity generation circuit 18 and corresponds to the aforementioned set of parity bits P- 1 . Since the operation in the second write cycle in the semiconductor memory device 10 c according to the third embodiment is similar to the operation in the second write cycle in the semiconductor memory device 10 a according to the first embodiment (which is explained before with reference to FIG. 4 ), the explanation on the operation in the second write cycle is not repeated.
- the set of parity bits P 234 held by the parity holding circuit 25 is read out onto the parity-write bus, and then the read data R 1 ( 1 ) held by the data holding circuit 26 and a write-data piece W 1 ( 1 ) which is to be written in the third write cycle are compared by the comparison circuit 27 .
- a set of block-based parity bits corresponding to the difference is generated by the block-parity generation circuit 28 , and the set of parity bits P 234 corresponding to the different data bits are updated on the basis of the set of block-based parity bits generated by the block-parity generation circuit 28 , so as to generate the set of parity bits P 1234 for the 64 data bits (the data pieces C( 1 ) to C( 4 )) to be written in the memory cells).
- the set of parity bits P 1234 is outputted through the selection circuit 30 , and written in the memory cells together with the data pieces C( 1 ) to C( 4 ).
- the ECC-RD operation is not performed in the third write cycle in the burst-mode operation, and therefore the write recovery time (tWRB) is not increased.
- the circuit size can be reduced.
- FIG. 9 is a block diagram of circuitry in a semiconductor memory device according to the fourth embodiment of the present invention.
- the semiconductor memory device 10 d illustrated in FIG. 9 is different from the semiconductor memory device 10 c according to the third embodiment in comprising first and second block-parity generation circuits 31 and 32 and a comparison circuit 33 .
- the first block-parity generation circuit 31 generates a first set of block-based parity bits on the basis of the (16-bit) data piece C( 1 ) selected by the read/write data selection circuit 17 - 1
- the second block-parity generation circuit 32 generates a second set of block-based parity bits on the basis of the (16-bit) data piece held by the data holding circuit 26 .
- the comparison circuit 33 compares the first and second sets of block-based parity bits generated by the first and second block-parity generation circuits 31 and 32 .
- the semiconductor memory device 10 c compares the read-data piece R 1 ( 1 ) held by the data holding circuit 26 in the first write cycle and the write-data piece W 1 ( 1 ) selected in the third write cycle, and generates a set of block-based parity bits on the basis of the comparison result.
- the comparison circuit 33 compares the first set of block-based parity bits generated by the first block-parity generation circuit 31 on the basis of the data piece C 3 ( 1 ) selected in the third write cycle (i.e., the write-data piece W 1 ( 1 )), with the second set of block-based parity bits generated by the second block-parity generation circuit 32 on the basis of the data piece C 1 ( 1 ) held by the data holding circuit 26 in the first write cycle (i.e., the read-data piece R 1 ( 1 )).
- the comparison circuit 33 inverts one or more corresponding bits in the output of the comparison circuit 33 .
- the other operations of the semiconductor memory device 10 d according to the fourth embodiment are similar to the semiconductor memory device 10 c according to the third embodiment.
- FIG. 10 is a block diagram of circuitry in a semiconductor memory device according to the fifth embodiment of the present invention.
- the semiconductor memory device 10 e illustrated in FIG. 10 is different from the semiconductor memory device 10 d according to the fourth embodiment in comprising a block-parity holding circuit 34 instead of the data holding circuit 26 , and the block-parity holding circuit 34 holds the set of block-based parity bits generated by the first block-parity generation circuit 31 .
- the data piece C( 1 ) for which a set of block-based parity bits is to be generated is held by the data holding circuit 26 .
- the set of block-based parity bits generated by the first block-parity generation circuit 31 in the first write cycle is held by the block-parity holding circuit 34 , and compared by the comparison circuit 33 with a set of block-based parity bits generated on the basis of the data piece C 3 ( 1 ) which is selected in the third write cycle.
- the other operations of the semiconductor memory device 10 e according to the fifth embodiment are similar to the semiconductor memory device 10 d according to the fourth embodiment.
- the circuit size of the semiconductor memory device 10 e according to the fifth embodiment can be small compared with the semiconductor memory devices 10 a to 10 e according to the first to fourth embodiments.
- FIG. 11 is a diagram illustrating data bits used for generation of parity bits in an example of an ECC code in which seven parity bits are generated for 64 data bits
- FIGS. 12A , 12 B, 12 C, 12 D, 12 E, 12 F, and 12 G are diagrams of circuits for generating parity bits in the ECC code indicated in FIG. 11 .
- the 16 bits C 0 to C 15 constitute the data piece C( 1 )
- the 16 bits C 16 to C 31 constitute the data piece C( 2 )
- the 16 bits C 32 to C 47 constitute the data piece C( 3 )
- the 16 bits C 48 to C 63 constitute the data piece C( 4 ).
- the parity generation circuits illustrated in FIGS. 12A , 12 B, 12 C, 12 D, 12 E, 12 F, and 12 G are circuits for obtaining the parity bits P 1 to P 7 , respectively. That is, the aforementioned parity generation circuit can be realized by the circuits illustrated in FIGS. 12A , 12 B, 12 C, 12 D, 12 E, 12 F, and 12 G.
- Each of the circuits for obtaining the parity bits P 1 to P 6 is constituted by the ExOR circuits 101 a , 101 b , 101 c , 101 d , and 102
- the circuit for obtaining the parity bit P 7 is constituted by the ExOR circuits 101 b , 101 c , 101 d , and 102
- the ExOR circuit 101 a calculates the ExOR of the data bits in the 16-bit write block C( 1 ) indicated by x in FIG. 11 .
- the ExOR circuit 101 b calculates the ExOR of the data bits in the 16-bit write block C( 2 ) indicated by x in FIG. 11
- the ExOR circuit 101 c calculates the ExOR of the data bits in the 16-bit write block C( 3 ) indicated by x in FIG. 11
- the ExOR circuit 101 d calculates the ExOR of the data bits in the 16-bit write block C( 4 ) indicated by x in FIG. 11
- the ExOR circuit 102 calculates the ExOR of the outputs of the ExOR circuits 101 a , 101 b , 101 c , and 101 d .
- the ExOR circuit 102 calculates the ExOR of the outputs of the ExOR circuits 101 b , 101 c , and 101 d.
- the ExOR circuits 101 a , 101 b , 101 c , and 101 d realize the aforementioned block-parity generation circuits for generating the sets of block-based parity bits of the 16-bit data pieces (write blocks) C( 1 ), C( 2 ), C( 3 ), and C( 4 ), respectively, and the ExOR circuit 102 realizes the aforementioned parity synthesis circuit, which synthesizes the sets of block-based parity bits.
- the parity bit P 1 is obtained by performing the first ExOR operation of the data bits C 1 , C 3 , C 5 , C 7 , C 9 , C 11 , C 13 , and C 15 , the second ExOR operation of the data bits C 17 , C 19 , C 21 , C 23 , C 25 , C 27 , C 29 , and C 31 , the third ExOR operation of the data bits C 33 , C 35 , C 37 , C 39 , C 41 , C 43 , C 45 , and C 47 , and the four ExOR operation of the data bits C 49 , C 51 , C 53 , C 55 , C 57 , C 59 , C 61 , and C 63 , and further calculating the ExOR of the results of the first to four ExOR operations.
- the ECC function enables correction of a one-bit error by generating the parity bits P 1 to P 7 in the ECC code indicated in FIG. 11 .
- each write block (word structure) is constituted by 2 n bits.
- the number of parity bits is m
- each data bit constituting each write block can be identified by n parity bits out of the m parity bits
- each write block can be identified by the (m-n) other parity bits.
- FIG. 13 is a diagram illustrating data bits used for generation of block-based parity bits in an example of the above type of ECC code.
- each dashed block corresponds to a write block, and the data bits used in generation of the seven parity bits P 1 to P 7 are indicated by x.
- the data bits used for generation of block-based parity bits are assigned in such a manner that each data bit in a write block can be identified by the four parity bits P 1 to P 4 (corresponding to the block-based parity bits) out of the seven parity bits P 1 to P 7 , and each write block can be identified by the three other parity bits P 5 to P 7 .
- FIGS. 14A , 14 B, 14 C, 14 D, and 14 E are diagrams of circuits for generating parity bits in the ECC code indicated in FIG. 13 .
- the parity generation circuits illustrated in FIGS. 14A , 14 B, 14 C, and 14 D are circuits for obtaining the parity bits P 1 to P 4 , respectively.
- each of the circuits for obtaining the parity bits P 1 to P 4 (illustrated in FIGS. 14A , 14 B, 14 C, and 14 D) is constituted by ExOR circuits 111 a , 111 b , 111 c , 111 d , and 112 .
- the circuit for obtaining the parity bits P 5 to P 7 (illustrated in FIG.
- each of the aforementioned parity generation circuits 18 can be realized by the circuits illustrated in FIGS. 14A , 14 B, 14 C, 14 D, and 14 E.
- the ExOR circuit 111 a calculates the ExOR of the data bits indicated by x in the first 16-bit write block in FIG. 13
- the ExOR circuit 111 b calculates the ExOR of the data bits indicated by x in the second 16-bit write block in FIG. 13
- the ExOR circuit 111 c calculates the ExOR of the data bits indicated by x in the third 16-bit write block in FIG. 13
- the ExOR circuit 111 d calculates the ExOR of the data bits indicated by x in the fourth 16-bit write block in FIG. 13 .
- the ExOR circuit 112 calculates the ExOR of the outputs of the ExOR circuits 111 a , 111 b , 111 c , and 111 d.
- each of the ExOR circuits 112 a , 112 b , and 112 c calculates the ExOR of the outputs of a different combination of three of the ExOR circuits 111 a , 111 b , 111 c , and 111 d , so that the ExOR circuits 112 a , 112 b , and 112 c output the parity bits P 5 to P 7 , respectively.
- the parity generation circuit realized by the circuits illustrated in FIGS. 14A , 14 B, 14 C, 14 D, and 14 E is used in the semiconductor memory devices 10 b , 10 c , 10 d , and 10 e according to the second to fifth embodiments (in which parity bits are held)
- the number of parity bits necessary to be held can be reduced to four, so that the circuit size can be further reduced, and the circuit load can also be reduced.
- the ECC code is composed of 64 data bits and 7 parity bits.
- an ECC code composed of 32 data bits and parity bits can be used as well as the ECC code composed of 64 data bits and 7 parity bits.
- an ECC code composed of 128 data bits and 8 parity bits can be used.
- the ECC code is constituted by data pieces corresponding to a plurality of successive addresses in an address range designated when each burst-mode operation is requested.
- the ECC code is constituted by 32 data bits corresponding to the addresses A( 1 ) and A( 2 ), A( 3 ) and A( 4 ), A( 5 ) and A( 6 ), or A( 7 ) and A( 8 ).
- the ECC code is constituted by 128 data bits corresponding to the addresses A( 1 ) to A( 8 ), or A( 9 ) and A( 16 ).
- a first set of data bits constituting a code (which enables correction of a single-bit error) and being written at a plurality of addresses of the memory cells in the leading write cycle in a burst write operation (which includes a plurality of write cycles in each of which data bits and parity bits constituting the code are written in the memory cells), or a set of parity bits constituting the code and being generated on the basis of the first set of data bits is held, and the set of parity bits written in the memory cells in the leading write cycle is updated in the final write cycle in the burst write operation on the basis of the first set of data bits or the set of parity bits held in the leading write cycle and a second set of data bits required to be written at one of the plurality of addresses of the memory cells in the final write cycle, when the one of the plurality of addresses is designated for the final write cycle.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Dram (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Abstract
Description
Claims (10)
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2005-102459 | 2005-03-31 | ||
| JP2005102459A JP4643334B2 (en) | 2005-03-31 | 2005-03-31 | Semiconductor memory device |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20060236206A1 US20060236206A1 (en) | 2006-10-19 |
| US7827463B2 true US7827463B2 (en) | 2010-11-02 |
Family
ID=37109999
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US11/270,533 Expired - Fee Related US7827463B2 (en) | 2005-03-31 | 2005-11-10 | Semiconductor memory device |
Country Status (2)
| Country | Link |
|---|---|
| US (1) | US7827463B2 (en) |
| JP (1) | JP4643334B2 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140136920A1 (en) * | 2012-11-15 | 2014-05-15 | Kijun Lee | Memory controller changing partial data in memory device and method for changing partial data thereof |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4745169B2 (en) * | 2005-09-16 | 2011-08-10 | 株式会社東芝 | Semiconductor memory device |
| US8281216B2 (en) * | 2009-03-31 | 2012-10-02 | Motorola Solutions, Inc. | Method for assigning and utilizing forward error correcting (FEC) codes |
| JP2018182429A (en) * | 2017-04-06 | 2018-11-15 | 株式会社村田製作所 | Data conversion device |
| US11036578B2 (en) * | 2018-04-12 | 2021-06-15 | Samsung Electronics Co., Ltd. | Semiconductor memory devices and memory systems including the same |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4291406A (en) * | 1979-08-06 | 1981-09-22 | International Business Machines Corporation | Error correction on burst channels by sequential decoding |
| US4321704A (en) * | 1980-02-01 | 1982-03-23 | Ampex Corporation | Parity checking circuitry for use in multi-bit cell PCM recording and reproducing apparatus |
| JPH04291084A (en) | 1991-03-20 | 1992-10-15 | Hitachi Ltd | Data processing system |
| US5353423A (en) * | 1991-06-21 | 1994-10-04 | Compaq Computer Corporation | Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses |
| US5781918A (en) * | 1991-08-16 | 1998-07-14 | Cypress Semiconductor Corp. | Memory system and method for selecting a different number of data channels depending on bus size |
| JP2002056671A (en) | 2000-08-14 | 2002-02-22 | Hitachi Ltd | Data holding method of dynamic RAM and semiconductor integrated circuit device |
Family Cites Families (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5729797B2 (en) * | 1975-01-16 | 1982-06-24 | ||
| JPS62242258A (en) * | 1986-04-14 | 1987-10-22 | Iwaki Denshi Kk | Storage device |
| JPH01194046A (en) * | 1988-01-29 | 1989-08-04 | Hitachi Ltd | Memory access system |
| JP4050091B2 (en) * | 2001-06-04 | 2008-02-20 | 株式会社東芝 | Semiconductor memory device |
-
2005
- 2005-03-31 JP JP2005102459A patent/JP4643334B2/en not_active Expired - Fee Related
- 2005-11-10 US US11/270,533 patent/US7827463B2/en not_active Expired - Fee Related
Patent Citations (7)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4291406A (en) * | 1979-08-06 | 1981-09-22 | International Business Machines Corporation | Error correction on burst channels by sequential decoding |
| US4321704A (en) * | 1980-02-01 | 1982-03-23 | Ampex Corporation | Parity checking circuitry for use in multi-bit cell PCM recording and reproducing apparatus |
| JPH04291084A (en) | 1991-03-20 | 1992-10-15 | Hitachi Ltd | Data processing system |
| US5353423A (en) * | 1991-06-21 | 1994-10-04 | Compaq Computer Corporation | Memory controller for use with write-back cache system and multiple bus masters coupled to multiple buses |
| US5781918A (en) * | 1991-08-16 | 1998-07-14 | Cypress Semiconductor Corp. | Memory system and method for selecting a different number of data channels depending on bus size |
| JP2002056671A (en) | 2000-08-14 | 2002-02-22 | Hitachi Ltd | Data holding method of dynamic RAM and semiconductor integrated circuit device |
| US6697992B2 (en) | 2000-08-14 | 2004-02-24 | Hitachi, Ltd. | Data storing method of dynamic RAM and semiconductor memory device |
Cited By (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20140136920A1 (en) * | 2012-11-15 | 2014-05-15 | Kijun Lee | Memory controller changing partial data in memory device and method for changing partial data thereof |
| US9311181B2 (en) * | 2012-11-15 | 2016-04-12 | Samsung Electronics Co., Ltd. | Memory controller changing partial data in memory device and method for changing partial data thereof |
Also Published As
| Publication number | Publication date |
|---|---|
| US20060236206A1 (en) | 2006-10-19 |
| JP2006286059A (en) | 2006-10-19 |
| JP4643334B2 (en) | 2011-03-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11327838B2 (en) | Memory device having error correction function and operating method thereof | |
| US9632856B2 (en) | Semiconductor memory devices including error correction circuits and methods of operating the semiconductor memory devices | |
| JP4664208B2 (en) | Semiconductor memory and operation method of semiconductor memory | |
| TWI786707B (en) | Apparatuses and methods for error correction coding and data bus inversion for semiconductor memories | |
| JP2005327437A (en) | Semiconductor storage device | |
| US8837241B2 (en) | Semiconductor memory device | |
| US12205661B2 (en) | Memory device and memory system including the same | |
| KR20020032038A (en) | Memory device for applying to high speed block pipelined reed-solomon decoder and method of memory access and reed-solomon decoder having the memory device | |
| US7464320B2 (en) | Synchronous semiconductor storage device having error correction function | |
| JP2005025827A (en) | Semiconductor integrated circuit device and error detection correction method thereof | |
| US7712007B2 (en) | Semiconductor memory device having data holding mode using ECC function | |
| US10445176B2 (en) | Memory system, memory device and operating method thereof | |
| US7827463B2 (en) | Semiconductor memory device | |
| US7075851B2 (en) | Semiconductor memory device inputting/outputting data and parity data in burst operation | |
| US20080183916A1 (en) | Using Extreme Data Rate Memory Commands to Scrub and Refresh Double Data Rate Memory | |
| US7317629B2 (en) | Semiconductor memory device with simplified data control signals | |
| US12282388B2 (en) | Memory module for detecting and correcting a row direction error and a column direction error | |
| JP2008027296A (en) | Memory device | |
| JP2006012360A (en) | Semiconductor memory device | |
| JP2005182942A (en) | Semiconductor memory device and control method thereof |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: FUJITSU LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:OTSUKA, SHUZO;KAWABATA, KUNINORI;NAKAMURA, TOSHIKAZU;AND OTHERS;REEL/FRAME:017300/0091 Effective date: 20051011 |
|
| AS | Assignment |
Owner name: FUJITSU MICROELECTRONICS LIMITED, JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:021977/0219 Effective date: 20081104 Owner name: FUJITSU MICROELECTRONICS LIMITED,JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU LIMITED;REEL/FRAME:021977/0219 Effective date: 20081104 |
|
| AS | Assignment |
Owner name: FUJITSU SEMICONDUCTOR LIMITED, JAPAN Free format text: CHANGE OF NAME;ASSIGNOR:FUJITSU MICROELECTRONICS LIMITED;REEL/FRAME:025046/0478 Effective date: 20100401 |
|
| FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| FPAY | Fee payment |
Year of fee payment: 4 |
|
| AS | Assignment |
Owner name: SOCIONEXT INC., JAPAN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:FUJITSU SEMICONDUCTOR LIMITED;REEL/FRAME:035508/0469 Effective date: 20150302 |
|
| FEPP | Fee payment procedure |
Free format text: MAINTENANCE FEE REMINDER MAILED (ORIGINAL EVENT CODE: REM.) |
|
| LAPS | Lapse for failure to pay maintenance fees |
Free format text: PATENT EXPIRED FOR FAILURE TO PAY MAINTENANCE FEES (ORIGINAL EVENT CODE: EXP.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STCH | Information on status: patent discontinuation |
Free format text: PATENT EXPIRED DUE TO NONPAYMENT OF MAINTENANCE FEES UNDER 37 CFR 1.362 |
|
| FP | Lapsed due to failure to pay maintenance fee |
Effective date: 20181102 |