Memory devices are widely used to store information in various electronic devices such as computers, wireless communication devices, cameras, digital displays, and the like. Information is stored by programing different states of a memory device. For example, binary devices have two states, often denoted by a logic “1” or a logic “0.” In other systems, more than two states may be stored. To access the stored information, the electronic device may read, or sense, the stored information in the memory device. To store information, the electronic device may write, or program, the state in the memory device.
Various types of memory devices exist, including random access memory (RAM), read only memory (ROM), dynamic RAM (DRAM), synchronous dynamic RAM (SDRAM), ferroelectric RAM (FeRAM), magnetic RAM (MRAM), resistive RAM (RRAM), flash memory, and others. Memory devices may be volatile or non-volatile. Non-volatile memory, e.g., flash memory, can store data for extended periods of time even in the absence of an external power source. Volatile memory devices, e.g., DRAM, may lose their stored state over time unless they are periodically refreshed by an external power source. A binary memory device may, for example, include a charged or discharged capacitor.
A memory device may include hierarchical data lines that may be pre-charged in some instances. In a typical memory operation, a pre-charge operation may be executed within the time frame specified by memory timing requirements. A read-modify-write (RMW) operation, by way of contrast, includes multiple stages that may prevent a pre-charge operation from being executed within specified memory timing requirements. More specifically, a RMW operation includes a read operation and a write operation, both of which have to be executed within the specified timing. Because both operations cause an increased amount of current to flow, it may not be possible to pre-charge the hierarchical data lines, and, at the same time, meet the specified timing requirements. Thus, in order to meet the timing requirements, some memory devices perform read and write operations without pre-charging the hierarchical data lines during a RMW operation.
Even with a pre-charging operation omitted for a read-modify-write operation, problems may still arise with meeting timing requirements. For example, when a pre-charging operation is omitted, read data may be present on the hierarchical data lines. When write data calls for an inversion of a particular bit of read data, lines capacitances or other circuit elements may impede a fast transition of the data line.
Accordingly, there is a need in the art for fast data line transitions. These and other issues are addressed in following disclosure.
A semiconductor memory device in accordance with the present disclosure may include connections between hierarchical data lines that facilitate faster write times. Connections between hierarchical data lines in accordance with the present disclosure may be reversed at a point where lower level hierarchical data lines intersect with higher level hierarchical data lines. This intersection may occur at a sub-amplifier that is arranged between one or more sense amplifiers and a main amplifier. The sub-amplifier may be generally configured to transfer data between the lower level hierarchical data lines coupled to the sense amplifiers and the higher level hierarchical data lines coupled to the main amplifier. The sub-amplifier may include a transfer gate that facilitates transfer of write data from the higher level hierarchical data lines to the lower level hierarchical data lines. In accordance with the present disclosure, the hierarchical data lines may be reversed connected at this transfer gate. More specifically, the transfer gate may couple a “true” differential data line on the higher hierarchical data line side to a “bar” differential data line on the lower hierarchical data line side. Similarly, the transfer gate may couple a “bar” differential data line on the higher hierarchical data line side to a “true” differential data line on the lower hierarchical data line side.
This reversed connection between the hierarchical data lines may facilitate faster write times in write operations such as a read-modify-write where read data may be present on the hierarchical data lines at write time. Read data may present because a pre-charging operation is omitted in order to meet timing requirements. The read-modify-write operation may operate on a particular unit of memory such as “byte” or “word” that includes a plurality of bits. Each bit is either modified or not modified by the read-modify-write operation. For a bit that is modified, the read data present on the hierarchical data lines is inverted such that the data flips from “one” to “zero” or from “zero” to “one.” For a bit that is not modified, the read data present on the hierarchical data lines remains unchanged as data is written back to memory. Faster write times may be achieved because the reversed connection between the hierarchical data lines results in an inversion of the lower level hierarchical data lines that begins at a time before the memory device finishes calculating the write data. In the event that the write data indicates that a particular bit is to be modified, the inversion of the lower level hierarchical data line is accelerated at write time, in the event that the write data indicates that a particular bit is not to be modified, the inversion of the lower level hierarchical data line is reversed at write time.
A semiconductor memory device in accordance with the present disclosure may include an error correcting code functionality that is configured to correct certain errors that may be detected in stored data. A memory may be configured with a dedicated error correcting code operation in some embodiments. Here, the memory may include a stored parity bit that is associated with each byte or other unit of stored data. This parity bit may be read from memory along with the associated data byte at read time. In other embodiments, a parity bit may be calculated at read time rather than being stored in a dedicated parity bit location in memory. In either case, the memory device may use a read-modify-write operation in implementing the error correcting code functionality. Here, the memory device may execute a read-modify-write operation where write data is calculated in a parity operation that is based on read data and the parity bit. A semiconductor memory device having an error correcting code functionality may include a reversed connection between a hierarchical data lines in order to facilitate faster read-modify-write times and thus faster error correction code times. A semiconductor memory device having a reversed data connection in accordance with the present disclosure may also include circuits that are configured to prevent data errors from occurring a write operation includes masked data.
The memory 100 may be generally configured to execute read and/or write commands received from an external device. The timing of signals external to the memory 100 may be determined by the external clock signal CLK. Operations within the memory 100 are typically synchronized to external operations. A synchronous clock generator 104 is generally configured to receive the external clock signal CLK through a clock buffer 108 and to generate a synchronized internal clock signal 112. The synchronized internal clock signal 112 generated by the synchronous clock generator 104 may be provided to various internal memory components in order to facilitate the latching of command, address, and data signals in accordance with the external clock CLK.
The read and/or write commands executed by the memory 100 are generally directed to accessing memory cells associated with a memory array 116. Read commands provide data stored in the array 116 to the external device across a data bus 120. Write commands receive data from the external device across the data bus 120 and store the data in the memory array 116. In the read command example, data output may be placed on the data bus 120 of the memory 100 in synchronism with the external clock signal CLK so that the memory device 100 outputs data in a manner that allows the data to be captured by the external controller. To output data with proper timing, the synchronous clock generator 104 develops an internal clock signal in response to the external clock signal and applies the internal clock signal to latches contained in the memory device 100 to clock data. The internal clock signal and external clock CLK are synchronized to ensure the internal clock signal clocks the latches at the proper times to successfully capture the commands.
The memory system 100 includes a command decoder 124 that receives memory commands through a command bus 128. The command decoder 124 receives memory commands applied to the command bus 128, decodes the commands, and provides the decoded commands to a timing generator 130. The timing generator 130 generates corresponding control signal to perform various operations on the memory array 116. For example, the timing generator 130 may generate internal control signals to read data from and/or write data to the memory array 116. Row and column address signals associated with a particular command are applied to the memory 100 through an address bus 132. The address bus 132 provides a row address signal to a row address buffer 136, which provides output to one or more row decoders 140. The address bus 132 additionally provides a column address signal through a column address buffer 144 to a column address counter 148, which, provides output to one or more column decoders 152.
As can be seen in
The data bus 120 may additionally be coupled to an input buffer 172 that is configured to receive write data that is, transmitted from an external source to the data bus 120. The input buffer 172 is coupled to write buffers 176 that are configured to receive the write data from the input buffer 172 and to transfer the write data to the memory array 116. The write buffer 176 may be additionally configured to write, data that is read from the memory array 116 back to the memory array 116. One example of this type of memory write-back is a read-modify-write operation that includes reading a data bit, modifying the data bit, and writing the modified data bit back to the same location in the memory array 116. This read-modify-write operation may occur in response to a “masked write” command in which data to be written is supplied to the memory system with mask data designating memory cell or cells that are released from being written with new data. The read-modify-write operation may also occur responsive to an ECC (error correction code) operation in which one or more parity bits are required to be corrected based on the calculation on data read out from accessed memory cells. In connection with a read-modify-write operation or other write-back memory, operations, the write buffer 176 may be configured to receive data via the main amplifiers 160. These and other features of an example memory data path are discussed in greater detail in connection with
The semiconductor device 200 of
The semiconductor device 200 of
The local input/output lines LIOT/B and the global input/output lines GIOT/B are hierarchically structured input/output lines. The local input/output lines LIOT/B are used for transferring read data out from a memory cell 204 and/or write data to the memory cell 204. The local input/output line LIOT/B may be differential data input/output lines for transferring read data and write data by using a pair of lines. The global input/output lines GIOT/B are used for transferring data between a main amplifier and downstream components such as a latch or output buffer (
The sub-amplifier 304 may be coupled to sense amplifiers 332 via the local input-output lines LIOT/B and column switches CS, such as is also shown in
The write buffer 344 may in one respect be configured to receive write data from the downstream components and to transfer the write data to the sub-amplifier 304. The write data may pass from the sub-amplifier 304 to the sense amplifier 332 and from there to a particular memory cell as described in connection with
The sub-amplifier 304 includes transistors N1 and N2 that together form a transfer gate 348 arranged at the intersection between the local input/output lines LIOT/B and the global input/output lines GIOT/B. The N1 transistor may be coupled between the true global input/output line GIOT and the complementary local input/output line LIOB, and the N2 transistor may be coupled between the complementary global input/output line GIOB and the true local input/output line LIOT. The N1 and N2 transistors may be nMOS (n-channel MOS) transistors in one embodiment. Conduction and non-conduction of the transistors N1 and N2 of the transfer gate 348 within the sub-amplifier 304 may be controlled based upon the Wren signal.
The sub-amplifier 304 including the transfer gate 348 may operate in both read mode and write mode. Read mode corresponds to a state in which information is read from a memory cell and output externally. Write mode corresponds to a state in which external information is written to a memory cell. Both the read mode and the write mode may be referred to herein as “active modes” that correspond to states in which the semiconductor device is accessed externally. The read-modify-write operation may be also included in the active modes. On the other hand, a state in which the semiconductor device is not accessed externally may be referred to herein as a “standby mode”. In connection with these active modes, the transfer gate 348 may be controlled by the write enable signal Wren. As shown in
The sub-amplifier 304 additionally includes transistors N3 to N6 that together form a read amplifier 352 arranged at the intersection between the local input/output lines LIOT/B and the global input/output lines GIOT/B. The read amplifier 352 may be formed as a single-ended amplifier that includes a first set of transistors N3 and N4 coupled at gates terminals thereof to the local input/output lines LIOB/T, respectively. The transistor N5 may be coupled between the transistor N3 and a power supply line such as ground (or Vss), and the transistor N6 may be coupled between the transistor N4 and the power supply line, the gates of the transistors N5 and N6 being supplied in common with the Rden signal. In this configuration, when the read amplifier 352 is activated by an enable level of the Rden signal, the true and complementary global lines GIOT and GIOB are driven responsive to potentials on the complementary and true local input/output lines LIOB and LIOT, respectively. Further, a load of the global input/output lines GIOT/B is not directly seen by the local input/output lines LIOT/B due to the transistors N1 to N4 so as to alleviate a driving load of the sense amplifier 332 connected to the bit lines BLT/B that drive the local input/output lines LIOT/B via the column switches (CS) 360, 362. By virtue of such an arrangement, the local input/output lines LIOT/B can be driven at high speed by the sense amplifier 332 during a read operation. Furthermore, the global input/output lines GIOT/B can be driven at high speed by adopting an arrangement in which the read amplifier is made a single-ended amplifier and the global input/output lines GIOT/B are driven with a high amplification factor, it is to be noted that the transistors N5 and N6 may be replaced with a single transistor that is controlled by the Rden signal. In this case, the sources of the transistors N3 and N4 may be coupled in common to a circuit node, and this circuit node may be coupled to the power supply line via such single transistor.
The connection between the global input/output lines GIOT/B and the local input/output lines LIOT/B may be controlled by the transistors N1 and N2 that together form the transfer gate 348. During read operations, the Rden signal is asserted so as to allow the read amplifier 352 to drive the GIOT/B lines responsive to the read data on the local input/output lines LIOT/B. The Wren signal may be de-asserted at this time. During write operations, the Wren signal is asserted so as to couple the GIOB/T lines to the LIOT/B lines together through the transfer gate 348. The read enable signal Rden may be de-asserted at this time. The assertion and de-assertion of Rden and Wren signals during the read-modify-write operations will describe below in detail with reference to
A memory device in accordance with the present disclosure may include a reversed connection between the local input/output lines LIOT/B and the global input/output lines GIOT/B. Here, the LIOB line (complementary local input/output line) is coupled to the GIOT line (true global input/output line) via the transfer gate transistor N1, and the LIOT line (true local input/output line) is coupled to the GIOB line complementary global input/output line) via the transfer gate transistor N2. This is in contrast to a conventional arrangement where the LIOB line is coupled to the GIOB line, and the LIOT line is coupled to the GIOT line. In this configuration, the reversed connection between the LIOT/B and GIOT/B lines occurs through the transfer gate 348 during data write operation caused by a data write command or a read-modify-write command. In the read amplifier 352, on the other hand the transistor N3 may be connected such that it drives the true global input/output line GIOT responsive to the level on the complementary local input/output line LIOB and the transistor N4 is connected such that it drives the complementary global input/output line GIOB responsive to the level on the true local input/output lines LIOT. Accordingly, the read amplifier 352 is coupled between the LIOT/B and GIOT/B lines in a non-reversed manner. This is also in contrast conventional arrangement.
The sub-amplifier 304 thus configured with the reversed connection shown in
Given that the sub-amplifier 304 transfers data in a reversed manner during a write operation, the write buffer 344 may be configured to drive the global input/output lines GIOT/B with opposite data so that the correct data is ultimately written to memory. For example, in the event that a logical “one” is to be written to given memory cell, the write buffer may drive the GIOT/B lines with a logical “zero,” represented by a low voltage on the GIOT line and a high voltage on the GIOB line. The transfer gate 348 then transfers opposite data from the global input/output lines GIOT/B to the local input/output lines LIOT/B. Specifically, the transfer gate 348 transfers the logical “zero” on the GIOT/B lines to the local input/output lines as a logical “one,” represented by a high voltage on the LIOT line and a low voltage on the LIOB line. This logical “one” is then transferred to the bit lines BLT/B via the column switches 360 and 362 and the sense amplifier 332 for storage in the appropriate memory cell.
A reversed connection in accordance with the present disclosure between the local input/output lines LIOT/B and the global input/output lines GIOT/B reduces write times associated with a read-modify-write operation. This advantage stems from a utilization of the time between an assertion of the write enable Wren signal and the write buffer being turned on. In some instances, this may occur during a time when a parity operation is performed. Reduced write times occur particularly in the case of write data that is the inverse of read data present on the signal lines GIOT/B, LIOT/B, and BLT/B, as discussed in detail below with reference to
Initially, at the beginning of a read-modify-write operation, the control signals CS, Rden, and Wren are at a low voltage indicating a de-asserted state. A differential voltage is present on the bit lines BLT/B. More specifically, one of the bit lines BLT/B (BLT in this example) is at a high voltage, while the other bit line BLT/B (BLB in this example) is at a low voltage level. The differential voltage present on the bit lines BLT/B may represent read data provided from a given memory cell of a memory array. With the column select CS line de-asserted, the local input/output lines LIOT/B are not driven to differing voltages. In this state, no particular data value is present on the local input/output lines LIOT/B so that both of the local input/output lines LIOT/B hold a precharge level (high level in this example) that was precharged prior to the assertion of the signal CS. Similarly, with the read enable Rden line de-asserted, the global input/output lines GIOT/B are not driven to differing voltages, resulting in that both of the global input/output lines GIOT/B hold a precharge level (high level in this example) that was precharged prior to the assertion of the signal CS. Thus, no particular data value is present on the global input/output lines GIOT/B.
At time point A, the column select signal CS is asserted. The column select signal CS drives column switches 260 and 262 of
At time point B, the read enable signal Rden is asserted. The asserted read enable Rden signal activates the read amplifier 352 so that the global input/output lines GIOT/B are driven responsive to the voltage levels on the local input/output lines LIOT/B. In response to the read enable Rden signal, cell data is read from the local input/output lines LIOT/B to the global input/output lines GIOT/B. As discussed previously and shown in
At time point C (i.e., after the read enable signal Rden has been de-asserted), the write enable signal Wren is asserted. The asserted write enable signal Wren drives the transfer gate 348 to couple the global input/output lines GIOT/B to the local input/output lines LIOT/B. As shown in
At time point D, the write buffer signal 416 is asserted (changed to the active high level) while the write enable signal Wren is asserted to bring the write buffer 344 to an “on” (“activated”) state. The write buffer 344 may thus initiate a data write operation after waiting for a parity operation to end and write-back data to be determined. With this data write operation, the write buffer 344 drives the global input/output lines GIOT/B based on the write-back data to cause the local input/output lines LIOT/B and the bit lines BLT/B to be driven through the transfer gate 348.
As shown in
A read-modify-write operation may operate on a particular unit of memory such as a “byte” or “word” that includes a plurality of bits. The timing diagrams of
In a conventional memory device in which each of read data and write-back data is transferred between the LIOT/B lines and the GIOT/B lines in a non-inverse manner, in order to write back data to the memory cell, that is inverse to the read data, all the GIOT/B, LIOT/B and BLT/B lines are required to flipped in logic level, so that large power is consumed with lower operation speed.
A semiconductor memory device in accordance with the present disclosure may include an error correcting code (ECC) functionality that is configured to correct certain errors that may be detected in stored data.
The array 504 may be associated with a memory device that is configured to execute a read-modify-write operation. The memory may use the read-modify-write operation in an error correcting code operation that includes masked and non-masked bits. The write-modify-write operation may be implemented differently for each of these types of bits. In a conventional processing of a masked bit, a write driver is typically stopped and data on the signal lines GIOT/B and LIOT/B is retained after the data is read from memory. For a bit that is not masked, data may be written from the write driver to cause the write data to be written to the appropriate memory cell. However, this conventional arrangement may be susceptible to static noise margin issues when used in a memory array in accordance with the present disclosure that includes a reversed connection between hierarchical data lines. Thus, as described in greater detail below, the memory array 504 may also include circuits that are configured to prevent data errors from occurring a write operation includes masked data.
Static noise margin issues in the array 504 may arise in connection with a write operation performed in connection with a masked bit. Because the bit to be masked is not written, the signal lines GIOT/B and LIOT/B retain data in a state of being read. Referring to the more detailed circuit diagram of
In order to overcome these potential static noise margin issues, a memory device in accordance with the present disclosure may be configured to write back data that is masked in read operation. As mentioned, because parity data is generated from write data and read data as part of a read-modify-write operation, cell data is read out of the memory array in these operations. In accordance with present embodiments, a memory device may utilize that read data and rewrite the masked bit back to the memory array. Thus, after ECC correction of the relevant bit is performed, the corrected data may be rewritten to the memory array. Referring again to
The write driver 600 illustrated in
The “true” side of the differential data line may include a first AND gate 604 and a second AND gate 608 that are each coupled to a first OR gate 612 that drives the Data line, Mask_Data_F may be provided as input to the first AND gate 604 and Mask_Data may be provided as input to the second AND gate 608. Write_Data_F provides the other input to the first AND gate 604 and DSA_Data provides the other input to the second AND gate 608. In this configuration, the first and second AND gates 604, 608 operate to select either the read data bit or the write data bit for the “true” side of the data line based on the mask data bit. More specifically, the mask bit is provided as either a “10” or “01” on the Mask_Data and Mask_Data_F lines and thus operates to select either the first or the second AND gate 604, 608 so as to pass either Write_Data_F or DSA_Data onto the Data line via the first OR gate 612.
The “bar” side of the differential data line may include a third AND gate 616 and a fourth AND gate 620 that are each coupled to a second OR gate 624 that drives the Data_F line. Mask_Data_F may be provided as input to the third AND gate 616 and Mask_Data may be provided as input to the fourth AND gate 620. Write_Data provides the other input to the third AND gate 616 and DSA_Data_F provides the other input to the fourth AND gate 620. In this configuration, the third and fourth AND gates 616, 620 operate to select either the read data bit or the write data bit for the “bar” side of the data line based on the mask data bit. More specifically, the mask bit, is provided as either a “10” or “01” on the Mask_Data and Mask_Data_F lines and thus operates to select either the third or the fourth AND gate 616, 620 so as to pass either Write_Data or DSA_Data_F onto the Data_F line via the second OR gate 624.
Thus, as illustrated by the one data line shown in
As shown in
The detection circuit portion of a write driver 602 may include a fifth AND gate 628 and a sixth AND gate 632 that are each coupled to a third OR gate 636 that drives the output line Memory_Write_F. DSA_Data may be provided as input to the fifth AND gate 628 and DSA_Data_F may be provided as input to the sixth AND gate 632. Write_Data_F provides the other input to the fifth AND gate 628 and Write_Data provides the other input to the sixth AND gate 682. In this configuration, the fifth and sixth AND gates 628, 632 operate to compare read and write data for a masked bit to determine if an error is present. When such an error is present the detection circuit portion of the write driver 602 asserts the Memory_Write_F through the operation of the output line Memory_Write_F. An assertion of the output line Memory_Write_F may operate to write the inverse of read data back to the memory to thereby correct the detected error.
The above specification, examples and data provide a complete description of the structure and use of exemplary embodiments of the disclosure as defined in the claims. Although various embodiments of the disclosure have been described above with a certain degree of particularity, or with reference to one or more individual embodiments, those skilled in the art could make numerous alterations to the disclosed embodiments without departing from the spirit or scope of the disclosure. Other embodiments are therefore contemplated. It is intended that all matter contained in the above description and shown in the accompanying drawings shall be interpreted as illustrative only of particular embodiments and not limiting.
The foregoing description has broad application. The discussion of any embodiment is meant only to be explanatory and is not intended to suggest that the scope of the disclosure, including the claims, is limited to these examples. In other words, while illustrative embodiments of the disclosure have been described in detail herein, aspects of the disclosure may be otherwise variously embodied and employed, and the appended claims are intended to be construed to include such variations, except as limited by the prior art.