(19)
(11)EP 3 929 924 A1

(12)EUROPEAN PATENT APPLICATION
published in accordance with Art. 153(4) EPC

(43)Date of publication:
29.12.2021 Bulletin 2021/52

(21)Application number: 20878750.7

(22)Date of filing:  22.06.2020
(51)International Patent Classification (IPC): 
G11C 11/409(2006.01)
(52)Cooperative Patent Classification (CPC):
G11C 7/1006; G11C 11/4093; G11C 11/4096
(86)International application number:
PCT/CN2020/097350
(87)International publication number:
WO 2021/077774 (29.04.2021 Gazette  2021/17)
(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Designated Extension States:
BA ME
Designated Validation States:
KH MA MD TN

(30)Priority: 25.10.2019 CN 201911021589

(71)Applicant: Changxin Memory Technologies, Inc.
Anhui 230000 (CN)

(72)Inventor:
  • ZHANG, Liang
    Shanghai 200336 (CN)

(74)Representative: V.O. 
P.O. Box 87930
2508 DH Den Haag
2508 DH Den Haag (NL)

  


(54)WRITE OPERATION CIRCUIT, SEMICONDUCTOR MEMORY AND WRITE OPERATION METHOD


(57) Embodiments of the present application provide a write operation circuit, a semiconductor memory, and a write operation method. The write operation circuit includes: a data determination module, a data buffer module, a data receiving module, and a precharge module. The data determination module determines, according to a number of low-level bits in input data of a semiconductor memory, whether to invert the input data to generate inversion flag data and first intermediate data. The data buffer module determines, according to second intermediate data, whether to invert a global bus, where the second intermediate data is inverted data of the first intermediate data. The data receiving module decodes global bus data according to the inversion flag data and writes the decoded data into the storage bank, where the decoding includes determining whether to invert the global bus data. The precharge module sets an initial state of the global bus to high.




Description


[0001] This application claims priority to Chinese Patent Application No. 201911021589.2, titled "WRITE OPERATION CIRCUIT, SEMICONDUCTOR MEMORY AND WRITE OPERATION METHOD" filed with CNIPA on October 25, 2019, the content of which is incorporated herein by reference in its entirety.

TECHNICAL FIELD



[0002] The present disclosure relates to the technical field of semiconductor memory, and particularly, to a write operation circuit, a semiconductor memory, and a write operation method.

BACKGROUND



[0003] This section is intended to provide a background or context to embodiments of the present disclosure set forth in the claims, and what is described in this section is not admitted to be the existing art by inclusion in this section.

[0004] Semiconductor memory includes Static Random-Access Memory (SRAM), Dynamic Random Access Memory (DRAM), Synchronous Dynamic Random Access Memory (SDRAM), Read-Only Memory (ROM), Flash memory, and the like.

[0005] In the DRAM protocol made by Joint Electron Device Engineering Council (JEDEC), there are specific requirements on speed and power saving of DRAM. How to make DRAM more power-saving while also ensuring the signal integrity and the reliability of data transmission and storage is a problem urgently to be solved in the industry.

SUMMARY



[0006] Embodiments of the present disclosure provide a write operation circuit, a semiconductor memory, and a write operation method to solve or alleviate one or more technical problems in the existing technologies.

[0007] In a first aspect, embodiments of the present disclosure provide a write operation circuit that is used in a semiconductor memory. The write operation circuit includes a data determination module, a data buffer module, a data receiving module, and a precharge module.

[0008] The data determination module is configured to determine, according to a number of low-level bits in input data of the semiconductor memory, whether to invert the input data to generate inversion flag data and first intermediate data.

[0009] The data buffer module includes a plurality of NMOS transistors and a plurality of first inverters. A gate electrode of each of the plurality of NMOS transistors is connected to the data determination module through a respective one of the plurality of first inverters to receive second intermediate data. A drain electrode of each of the plurality of NMOS transistors is connected to a global bus. The data buffer module is configured to determine, according to second intermediate data, whether to invert the global bus, where the second intermediate data is inverted data of the first intermediate data.

[0010] The data receiving module is connected to a storage bank. The data receiving module receives global bus data through the global bus, receives the inversion flag data through the inversion flag signal line, decodes the global bus data according to the inversion flag data and writes the decoded data into the storage bank of the semiconductor memory. The decoding includes determining whether to invert the global bus data.

[0011] The precharge module connected to a precharge signal line and configured to set an initial state of the global bus to high.

[0012] In an implementation mode, the write operation circuit further includes a serial-to-parallel conversion circuit connected between a DQ port of the semiconductor memory and the data determination module. The serial-to-parallel conversion circuit is configured to perform serial-to-parallel conversion on first input data at the DQ port to generate second input data, and the data determination module is configured to determine, according to a number of low-level bits in the second input data, whether to invert the second input data to generate the inversion flag data and first intermediate data.

[0013] In an implementation mode, the second input data is divided into M groups, the inversion flag data has M bits, and the M bits of the inversion flag data are in one-to-one correspondence with the M groups of second input data. Each of the M groups of second input data has N bits, N and M are integers greater than 1. The data determination module is configured to, when a number of low-level bits in a group of second input data inputted to the data determination module is greater than N/2, output inversed data of the group of second input data as a group of first intermediate data corresponding to the group of second input data and set one bit of the inversion flag data corresponding to the group of second input data to high; and when the number of low-level bits in the group of second input data inputted to the data determination module is less than or equal to N/2, output the group of second input data as the group of first intermediate data corresponding to the group of second input data and set one bit of the inversion flag data corresponding to the group of second input data to low.

[0014] In an implementation mode, the data determination module includes a data determination unit and a data selector.

[0015] An input terminal of the data determination unit is connected to the serial-to-parallel conversion circuit, and an output terminal of the data determination unit is connected to the inversion flag signal line. The data determination unit is configured to set the inversion flag data to high when the number of low-level bits in the second input data is greater than a preset value, and set the inversion flag data to low when the number of low-level bits in the second input data is less than or equal to the preset value.

[0016] An input terminal of the data selector is connected to the data determination unit and is configured to receive the second input data through the data determination unit, the input terminal of the data selector further receives the inversion flag data through the inversion flag signal line, and an output terminal of the data selector is connected to an input terminal of the first inverter. The data selector is configured to output inverted data of the second input data as the first intermediate data when the inversion flag data is high, and output the original second input data as the first intermediate data when the inversion flag data is low.

[0017] In an implementation mode, the data selector includes a plurality of data selection units, and each of the plurality of data selection units includes: a second inverter, a third inverter, a first transmission gate, and a second transmission gate.

[0018] An input terminal of the second inverter receives the inversion flag data through the inversion flag signal line.

[0019] An input terminal of the third inverter is connected to the data determination unit and is configured to receive the second input data from the data determination unit.

[0020] An input terminal of the first transmission gate is connected to an output terminal of the third inverter, an output terminal of the first transmission gate is connected to the input terminal of the first inverter and is configured to output the first intermediate data, a negative control terminal of the first transmission gate is connected to an output terminal of the second inverter, and a positive control terminal of the first transmission gate receives the inversion flag data through the inversion flag signal line.

[0021] An input terminal of the second transmission gate is connected to the data determination unit and is configured to receive the second input data from the data determination unit, an output terminal of the second transmission gate is connected to the input terminal of the first inverter and is configured to output the first intermediate data, a negative control terminal of the second transmission gate receives the inversion flag data through the inversion flag signal line, and a positive control terminal of the second transmission gate is connected to the output terminal of the second inverter.

[0022] In an implementation mode, the global bus data is divided into M groups, and the M bits of the inversion flag data are in one-to-one correspondence with the M groups of global bus data. The data receiving module includes M data receiving units, and each of the M data receiving units is connected to the storage bank and is configured to decode the corresponding group of global bus data according to one bit of the inversion flag data.

[0023] In an implementation mode, the data receiving unit includes: a fourth inverter, a fifth inverter, a third transmission gate, and a fourth transmission gate.

[0024] An input terminal of the fourth inverter receives the inversion flag data through the inversion flag signal line.

[0025] An input terminal of the fifth inverter receives the global bus data through the global bus.

[0026] An input terminal of the third transmission gate is connected to an output terminal of the fifth inverter, an output terminal of the third transmission gate is connected to the storage bank and is configured to output the decoded data to the storage bank, a negative control terminal of the third transmission gate is connected to an output terminal of the fourth inverter, and a positive control terminal of the third transmission gate receives the inversion flag data through the inversion flag signal line.

[0027] An input terminal of the fourth transmission gate receives the global bus data through the global bus, an output terminal of the fourth transmission gate is connected to the storage bank and is configured to output the decoded data to the storage bank, a negative control terminal of the third transmission gate receives the inversion flag data through the inversion flag signal line, and a positive control terminal of the third transmission gate is connected to the output terminal of the fourth inverter.

[0028] In an implementation mode, the precharge module includes a plurality of PMOS transistors and a plurality of hold circuits. A gate electrode of each of the plurality of PMOS transistors is connected to the precharge signal line, a drain electrode of each of the plurality of PMOS transistors is connected to the global bus, and an input terminal and an output terminal of the hold circuit are both connected to the global bus.

[0029] In a second aspect, embodiments of the present disclosure provide a semiconductor memory, which includes the write operation circuit according to any one of the above embodiments.

[0030] In a third aspect, embodiments of the present disclosure provide a write operation method applied to a semiconductor memory. The write operation method includes the following operations.

[0031] An initial state of a global bus is set to high;

[0032] It is determined whether to invert the input data according to a number of low-level bits in input data of the semiconductor memory, to generate inversion flag data and first intermediate data.

[0033] It is determined whether to invert global bus data according to second intermediate data, where the second intermediate data is inverted data of the first intermediate data.

[0034] The global bus data is decoded according to the inversion flag data, where the decoding includes determining whether to invert the global bus data.

[0035] The decoded data is written into a storage bank.

[0036] In an implementation mode, the operation in which it is determined whether to invert the input data according to the number of low-level bits in input data of the semiconductor memory, to generate the inversion flag data and the first intermediate data includes the following operations.

[0037] Serial-to-parallel conversion is performed on first input data at a DQ port to generate second input data.

[0038] It is determined whether to invert the second input data according to a number of low-level bits in the second input data, to generate inversion flag data and first intermediate data.

[0039] In an implementation mode, the operation in which, it is determined whether to invert the second input data according to the number of low-level bits in the second input data, to generate inversion flag data and first intermediate data includes the following operations.

[0040] The second input data is divided into M groups, where each group of second input data has N bits, and M and N are integers greater than 1.

[0041] When a number of low-level bits in an inputted group of second input data is greater than N/2, inverted data of the inputted group of second input data is outputted as a corresponding group of first intermediate data, and one bit of the inversion flag data corresponding to the inputted group of second input data is set to high; and

[0042] When the number of low-level bits in the inputted group of second input data inputted to the data determination module is less than or equal to N/2, the inputted group of second input data is inputted as the corresponding group of first intermediate data, and one bit of the inversion flag data corresponding to the inputted group of second input data is set to low.

[0043] By using the above technical solutions, the embodiments of the present disclosure can reduce the number of inversions of the global bus in a Precharge-High architecture, thereby greatly reducing a current and decreasing power consumption.

[0044] The above is only for the purpose of description and is not intended to be limiting in any way. In addition to the illustrative aspects, embodiments and features described above, further aspects, embodiments and features of this disclosure can be easily understood by referring to the drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS



[0045] In the drawings, unless otherwise specified, the same reference numerals denote the same or similar parts or elements throughout the multiple drawings. The drawings are not necessarily drawn to scale. It should be understood that these drawings only depict some embodiments disclosed according to the present disclosure, and should not be regarded as limiting of the scope of the present disclosure.

FIG. 1 shows a schematic block diagram of a part of a semiconductor memory according to an implementation mode of an embodiment of the present disclosure;

FIG. 2 shows a schematic block diagram of a part of a semiconductor memory according to another implementation mode of the embodiment of the present disclosure;

FIG. 3 shows a schematic circuit diagram of a data buffer module and a precharge module (corresponding to one storage bank) according to an implementation mode of the embodiment of the present disclosure;

FIG. 4 shows a schematic circuit diagram of a data buffer module and a precharge module (corresponding to multiple storage banks) according to an implementation mode of the embodiment of the present disclosure;

FIG. 5 shows a schematic block diagram of a data determination module according to an implementation mode of the embodiment of the present disclosure;

FIG. 6 shows a schematic block diagram of a data selection unit according to an implementation of the embodiment mode of the present disclosure;

FIG. 7 shows a schematic block diagram of a data receiving module according to an implementation of the embodiment mode of the present disclosure;

FIG. 8 shows a schematic block diagram of a data receiving unit according to an implementation of the embodiment mode of the present disclosure; and

FIG. 9 shows a schematic flowchart of a write operation method according to an implementation mode of the embodiment of the present disclosure.



[0046] Reference numerals in the accompanying drawings:
20:
Semiconductor memory;
21:
Serial-to-parallel conversion circuit;
22:
Data buffer module;
23:
Data determination module;
24:
DQ port;
25:
Data receiving module;
26:
Storage bank;
27:
Precharge module;
221:
PMOS transistor;
222:
NMOS transistor;
223:
Hold circuit;
224:
First inverter;
231:
Data determination unit;
232:
Data selector;
232':
Data selection unit;
232A:
Second inverter;
232B:
Third inverter;
232C:
First transmission gate;
232D:
Second transmission gate;
250:
Data receiving unit;
251:
Fourth inverter;
252:
Fifth inverter;
253:
Third transmission gate; and
254:
Fourth transmission gate.

DETAILED DESCRIPTION



[0047] Exemplary embodiments will be described more comprehensively with reference to the accompanying drawings. However, the exemplary embodiments can be implemented in various forms, and should not be construed as being limited to the embodiments set forth herein. On the contrary, these embodiments are provided so that this disclosure will be comprehensive and complete, and will fully convey the concept of the exemplary embodiments to those skilled in the art. In the drawings, the same reference numerals denote the same or similar elements, and thus their repeated description will be omitted.

[0048] FIG. 1 shows a schematic block diagram of a part of a semiconductor memory according to an implementation mode of an embodiment of the present disclosure. As shown in FIG. 1, a semiconductor memory 20 includes a DQ port 24, a storage bank 26, and a write operation circuit. The write operation circuit includes a global bus, an inversion flag signal line, a serial-to-parallel conversion circuit 21, a data termination module 23, a data buffer module 22, a data receiving module 25, and a precharge module 27. In an implementation mode, the semiconductor memory 20 is Dynamic Random Access Memory (DRAM), for example, Double Data Rate SDRAM 4 (abbreviated as DDR4).

[0049] In an example, as shown in FIG. 1, the write operation circuit receives 8-bit first input data DQ<7:0> through the DQ port 24, and writes write data (i.e., decoded data) D<127:0> into the storage bank 26. One Active command enables the only one designated storage bank 26. The write operation is executed per storage bank 26. That is, when one storage bank of eight storage banks 26 (i.e., Bank<7:0>) is working, the other storage banks are not working. It should be noted that, the number of the storage banks 26, the number of data bits of each storage bank 26, the number of data bits of the DQ port 24, and the number of the DQ port 24 are not limited in embodiments of the present disclosure. For example, there may be one DQ port 24 for inputting 8-bit first input data. For another example, there may be two DQ ports 24, which are respectively used for inputting 8-bit first input data DQ<7:0> and 8-bit first input data DQ<15:8>, and thus 16-bit first input data DQ <15:0> is inputted.

[0050] For example, as shown in FIG. 2, an write operation of the first input data DQ<7:0> for a group of storage banks <7:0> is executed by one write operation circuit, and an write operation of the first input data DQ<15:8> for another group of storage banks <15:8> is executed by another write operation circuit. Accordingly, among the eight storage banks 26 (i.e., Bank<15:8>) corresponding to DQ<15:8>, only one storage bank is working, the other storage banks are not working.

[0051] The semiconductor memory 20 is in an array structure, and the structure of each unit may be the same. However, the output data of the units may be different due to different input data. The write operation circuit of the present embodiment is described below by taking one storage bank as an example.

[0052] As shown in FIG. 1 and FIG. 2, the write operation circuit of the present embodiment includes a data determination module 23, which is configured to determine, according to the number of low-level bits in the input data of the semiconductor memory 20, whether to invert the input data to generate inversion flag data and first intermediate data.

[0053] In an implementation mode, the data determination module 23 is configured to: when the number of low-level bits in the input data is greater than a preset value, output inverted data of the input data as the first intermediate data and set inversion flag data to high; when the number of low-level bits in the input data is less than or equal to the preset value, output the original input data as the first intermediate data and set inversion flag data to low.

[0054] For example, the input data has 8 bits. If the number of bits "0" in the input data is greater than half of the total number of bits of the input data, that is, greater than 4 (for example, the number of bits "0" is 5), Flag is 1, and the outputted first intermediate data is the inverted data of the input data. If the number of bits "0" in the input data is less than half of the total number of bits of the input data, for example, the number of bits "1" is 3, Flag is 0, and the outputted first intermediate data is the original input data.

[0055] The data being high means that the data is "1", and the data being low means that the data is "0". The data inversion means inverting from "0" to "1", or inverting from "1" to "0". The inversion of a data line or a signal line can be understood as changing from a high level to a low level, or changing from a low level to a high level.

[0056] In an implementation mode, the write operation circuit includes a serial-to-parallel conversion circuit 21. The serial-to-parallel conversion circuit 21 is connected between the DQ port 24 and the data determination module 24, and is configured to perform serial-to-parallel conversion on the first input data at the DQ port 24 to generate second input data. For example, the serial-to-parallel conversion circuit 21 performs serial-to-parallel conversion on 8-bit first input data DQ<7:0> to generate 128-bit second input data D2'<127:0> corresponding to the storage bank Bank0.

[0057] In an implementation mode, the second input data D2'< 127:0> is divided into M groups, and the inversion flag data Flag has M bits. The M bits of the inversion flag data Flag are in one-to-one correspondence with the M groups of second input data, and each group of second input data has N bits, where N and M are integers greater than 1. The data determination module 23 is configured to: w hen the number of low-level bits in an inputted group of second input data is greater than N/2, output the inverted data of the inputted group of second input data as a group of first intermediate data corresponding to the inputted group of second input data and set one bit of the inversion flag data corresponding to the inputted group of second input data to high; and when the number of low-level bits in the inputted group of second input data is less than or equal to N/2, output the inputted group of second input data as the group of first intermediate data corresponding to the inputted group of second input data and set one bit of the inversion flag data corresponding to the inputted group of second input data to low.

[0058] For example, the second input data D2'<127:0> is divided into 16 groups, and each group of second input data has 8 bits and corresponds to one bit of the inversion flag data Flag. Accordingly, the inversion flag data Flag has 16 bits, such as Flag<15:0>. The first intermediate data D1'<127:0> is divided into 16 groups accordingly. Each bit of the inversion flag data Flag corresponds one group of first intermediate data. For a group of second input data D2'<127:120>, if the number of bits "0" in D2'<127:120> is greater than 4, the corresponding bit of the inversion flag data Flag<15> is 1, the outputted group of first intermediate data D1'<127:120> is the inverted data of the group of second input data D2'<127:120>. If the number of bits "0" in D2'<127:120> is less than or equal to 4, the corresponding bit of the inversion flag data Flag<15> is 0, and the outputted group of first intermediate data D1'<127:120> is the group of second input data D2'<127:120>. Similarly, for the group of second input data D2'<15:8>, if the number of bits "0" in D2'<15:8> is greater than 4, the corresponding bit of the inversion flag data Flag<1> is 1, the outputted group of first intermediate data D1'<15:8> is the inverted data of the group of second input data D2'<15:8>. If the number of bits "0" in D2'<15:8> is less than or equal to 4, the corresponding bit of the inversion flag data Flag<1> is 0, and the outputted group of first intermediate data D1'<15:8> is the group of second input data D2'<15:8>. For the group of second input data D2'<7:0>, if the number of bits "0" in D2'<7:0> is greater than 4, the corresponding bit of the inversion flag data Flag<0> is 1, the outputted group of first intermediate data D1'<7:0> is the inverted data of the group of second input data D2'<7:0>. If the number of bits "0" in D2'<7:0> is less than or equal to 4, the corresponding bit of the inversion flag data Flag<0> is 0, and the outputted group of first intermediate data D1'<7:0> is the group of second input data D2'<7:0>. In this way, there is more data "0" in the first intermediate data D1'<127:0>.

[0059] Furthermore, the semiconductor memory 20 of the present embodiment further includes a data buffer module 22 and a precharge module 27. FIG. 3 shows a schematic circuit diagram of the data buffer module 22 (corresponding to one storage bank 26) according to an implementation mode of the present embodiment. FIG. 4 shows a schematic circuit diagram of the data buffer module 22 (corresponding to 8 storage banks 26) according to an implementation mode of the present embodiment.

[0060] As shown in FIG. 3 and FIG. 4, the data buffer module 22 includes a plurality of Negative Channel Metal Oxide Semiconductor (NMOS) transistors 222 and a plurality of first inverters 24. A gate electrode of the NMOS transistor 222 is connected to the data determination module 23 through the corresponding first inverter 24, and a drain electrode of the NMOS transistor 222 is connected to the global bus. The first inverter 24 is configured to perform negation operation on the first intermediate data to generate the second intermediate data, such that the data buffer module 22 determines whether to invert the global bus according to the second intermediate data. Since there is more data "1" in the first intermediate data, there is more data "0" in the second intermediate data.

[0061] The precharge module 27 is connected to a precharge signal line Precharge, and is configured to set an initial state of the global bus to low. That is, the global bus of the semiconductor memory 20 of the present embodiment adopts a Precharge-High transmission configuration. Specifically, the precharge module 27 includes a plurality of Positive Channel Metal Oxide Semiconductor (PMOS) transistors 221 and a plurality of hold circuits 223. A gate electrode of the PMOS transistor 221 is connected to the precharge signal line, and a drain electrode of the PMOS transistor 221 is connected to the global bus. An input terminal and an output terminal of the hold circuit 223 are connected to the global bus to form a positive feedback circuit.

[0062] The function of Precharge is to set the initial state of each global bus to High, and the specific process is as follows. A pull-up pulse (about 2ns) is generated on the precharge signal line Precharge, and the pull-up pulse pulls up the potential of the corresponding global bus for a moment, the hold circuit 223 forms a positive feedback, and the potential of the global bus is locked to the high level. However, the hold circuit 223 has a poor current pull-up capability and a poor current pull-down capability. When it needs to change the potential of a certain global bus to low level, the potential of the data line (the data line connected to the gate electrode of the corresponding NMOS transistor 222) corresponding to this global bus is pulled up (that is, a pulse, about 2ns, is applied), and accordingly, the corresponding NMOS transistor 222 pulls down the potential of this global bus for a moment (the pull-down capability is stronger than the pull-up capability of the hold circuit 223), and then the potential of this global bus is locked to the low level through positive feedback, thereby achieving the inversion operation of the data line. There is more data "1" in the second intermediate data, and thus fewer inversions are required. Therefore, the IDD4W (write current) of the semiconductor memory will be reduced, such that the power consumption of the semiconductor memory can be reduced.

[0063] In an example, there are a plurality of global buses, and the plurality of global buses are arranged in M groups, where M is an integer greater than 1. Each global bus transmits one bit of the global bus data. For example, there are 128 global buses, the global bus <0> transmits the global bus data D'<0>, the global bus <1> transmits the global bus data D'<1>; ......; the global bus <127> transmits the global bus data D'<127>. The 128 global buses are arranged in 16 groups.

[0064] In an example, each inversion flag data Flag corresponds to one group of global bus data. Accordingly, there are 16 Flag signal lines (inversion flag signal lines), and the Flag data (inversion flag data) has 16 bits, for example, Flag<15:0>. Each Flag signal line transmits one bit of the Flag data. For example, a Flag signal line <0> transmits the Flag data Flag<0> and corresponds to the global bus data D'<7:0>, the Flag data Flag <0> indicates whether D'<0:7> is the inverted second intermediate data; a Flag signal line <1> transmits the Flag data Flag<1> and corresponds to the global bus data D'<15:8>, the Flag data Flag<1> indicates whether D'<15:8> is the inverted second intermediate data; ......; a Flag signal line <15> transmits the Flag data Flag<15> and corresponds to the global bus data D'<127:120>, the Flag data Flag<15> indicates whether D'<127:120> is the inverted second intermediate data.

[0065] Since the second intermediate data is the inverted data of the first intermediate data D1'<127:120>, when Flag<15>=1, the global bus data D'<127:120> = D1'<127:120>; and when Flag<15>=0, the global bus data D'<127:120> is the inverted data of D1'<127:120>. Similarly, when Flag<1>=1, the global bus data D'<15:8>= D1'<15:8>; and when Flag<1>=0, the global bus data D'<15:8> is the inverted data of D1'<15:8>. When Flag<0>=1, the global bus data D'<7:0>=D1'<7:0>; and when the Flag<0>=0, the global bus data D'<7:0> is the inverted data of D1'<7:0>.

[0066] In this way, there is more data "1" in the global bus data D'<127:0> transmitted on the global bus. Accordingly, for the semiconductor memory 20 shown in FIG. 2, there is more data "1" in the 256-bit global bus data (including the 128-bit global bus data corresponding to DQ<7:0> and the 128-bit global bus data corresponding to DQ<15:8>).

[0067] In an implementation mode, as shown in FIG. 5, the data determination module 230 includes a data determination unit 231 and a data selector 232.

[0068] An input terminal of the data determination unit 231 is connected to the serial-to-parallel conversion circuit 21. An output terminal of the data determination unit 231 is connected to the Flag signal line and an input terminal of the data selector 232. The data determination unit 231 is configured to set the Flag data to high when the number of low-level bits in the second input data is greater than the preset value, and set the Flag data to low when the number of low-level bits in the second input data is less than or equal to the preset value.

[0069] An input terminal of the data selector 232 is connected to the data determination unit 231 and is configured to receive the second input data through the data determination unit 231. An input terminal of the data selector 232 further receives the Flag data through the Flag signal line. An output terminal of the data selector 232 is connected to the input terminal of the first inverter 224. The data selector 232 is configured to output the inverted data of the second input data as the first intermediate data when the Flag data is high, and output the original second input data as the first intermediate data when the Flag data is high.

[0070] In an implementation mode, the data selector 232 includes multiple data selection units 232', and each data selection unit 232' is configured to process one bit of the Flag data and one group of second input data. For example, there are 16 data selection units 232', each of which corresponds to one of the 16 groups of second input data and one bit of the Flag data.

[0071] FIG. 6 shows an implementation mode of an exemplary data selection unit 232'. As shown in FIG. 6, the data selection unit 232' includes a second inverter 232A, a third inverter 232B, a first transmission gate 232C, and a second transmission gate 232D.

[0072] An input terminal of the second inverter 232A receives the Flag data through the Flag signal line. An input terminal of the third inverter 232B is connected to the data determination unit 231 and is configured to receive the second input data from the data determination unit 231. An input terminal of the first transmission gate 232C is connected to an output terminal of the third inverter 232B, and an output terminal of the first transmission gate 232C is connected to the input terminal of the first inverter 224 and is configured to output the first intermediate data. A negative control terminal (the upper control terminal in FIG. 6) of the first transmission gate 232C is connected to an output terminal of the second inverter 232A, and a positive control terminal (the lower control terminal in FIG. 6) of the first transmission gate 232C receives the Flag data through the Flag signal line. An input terminal of the second transmission gate 232D is connected to the data determination unit 231 and is configured to receive the second input data from the data determination unit 231. An output terminal of the second transmission gate 232D is connected to the input terminal of the first inverter 224 and is configured to output the first intermediate data. A negative control terminal of the second transmission gate 232D receives the Flag data through the Flag signal line, and a positive control terminal of the second transmission gate 232D is connected to an output terminal of the second inverter 232A.

[0073] Taking Flag<0> and the second input data D2'<7:0> as an example, as shown in FIG. 6, when Flag=1, the first intermediate data D1'<7:0> is the inverted data of the second input data D2'<7:0>; and when Flag=0, the first intermediate data D1'<7:0> is the second input data D2'<7:0>.

[0074] It should be noted that one group, including the third inverter 232B, the first transmission gate 232C and the second transmission gate 232D, is configured to process one bit of the second input data and output one corresponding bit of the second intermediate data. That is, for 8-bit second input data D2'<7:0>, eight groups of the third inverter 232B, the first transmission gate 232C and the second transmission gate 232D are required, and thus 8-bit first intermediate data D1'<7:0> may be outputted.

[0075] In view of the above, when the Flag data is 1, the global bus data D'<127:0> is the inverted data of the second input data D2'<127:0>; and when the Flag data is 0, the global bus data D'< 127:0> is the original second input data D2'< 127:0>.

[0076] As shown in FIG. 1, FIG. 2 and FIG. 7, the write operation circuit of the present embodiment further includes a data receiving module 25. An input terminal of the data receiving module 25 is connected to the global bus and the inversion flag signal line, and an output terminal of the data receiving module 25 is connected to the storage bank 26. The data receiving module 25 is configured to determine, according to the Flag data, whether to invert the global bus data (i.e., decode the global bus data) and write the decoded data (i.e., write date) into the storage bank 26. For example, when the Flag data is high, the inverted data of the global bus data is outputted as the write data; and when the Flag data is low, the original global bus data is outputted as the write data.

[0077] As a result, the write data is recovered to the input data of the semiconductor memory. Accordingly, neither data nor functions of an external port such as the DQ port 24 and a DBI port (not shown in the figures) of the semiconductor memory 20 will be changed.

[0078] In an implementation mode, the data receiving module 25 may include a plurality of data receiving units 250, and each of the plurality of the data receiving units 250 is configured to process one bit of the inversion flag data and one group of global bus data. For example, there may be 16 data receiving units 250, each of which corresponds to one of the 16 groups of global bus data and one bit of the inversion flag data. FIG. 8 illustrates an implementation mode of the data receiving unit 250.

[0079] As shown in FIG. 8, the data receiving unit 250 includes a fourth inverter 251, a fifth inverter 252, a third transmission gate 253, and a fourth transmission gate 254.

[0080] An input terminal of the fourth inverter 251 receives the inversion flag data through the inversion flag signal line. An input terminal of the fifth inverter 252 receives the global bus data through the global bus. An input terminal of the third transmission gate 253 is connected to an output terminal of the fifth inverter 252. An output terminal of the third transmission gate 253 is connected to the storage bank 26 and is configured to output the write data to the storage bank 26. A negative control terminal (the upper control terminal in FIG. 8) of the third transmission gate 253 is connected to an output terminal of the third inverter 251, and a positive control terminal of the third transmission gate 253 receives the inversion flag data through the inversion flag signal line. An input terminal of the fourth transmission gate 254 receives the global bus data through the global bus. An output terminal of the fourth transmission gate 254 is connected to the storage bank 26 and is configured to output the write data to the storage bank 26. A negative control terminal (the upper control terminal in FIG. 8) of the fourth transmission gate 254 receives the inversion flag data through the inversion flag signal line, and a positive control terminal (the lower control terminal in FIG. 8) of the fourth transmission gate 254 is connected to the output terminal of the fourth inverter 251.

[0081] Taking Flag<0> and the global bus data D'<7:0> as an example, as shown in FIG. 8, when Flag=1, the write data D<7:0> is the inverted data of the global bus data D'<7:0>; and when Flag=0, the write data D<7:0> is the global bus data D'<7:0>, that is, D<7:0>= D'<7:0>.

[0082] It should be noted that one group, including the fifth inverter 252, the third transmission gate 253, and the fourth transmission gate 254, is configured to process one bit of the global bus data and output one corresponding bit of the write data. That is, for 8-bit global bus data D'<7:0>, eight groups of the fifth inverter 252, the third transmission gate 253, and the fourth transmission gate 254 are required, and thus 8-bit write data D<7:0> can be outputted.

[0083] According to the semiconductor memory 20 of the present embodiment, in the process of writing data (DQ<7:0>=<00000000>; DQ<15:8>=<00000000>) into the semiconductor memory 20, the global bus data has 256 bits. If it needs to invert the 256-bit global bus data, it only needs to invert 32-bit inversion flag data, such that the IDD4W current will be reduced significantly.

[0084] In practical applications, the semiconductor memory 20 of the present embodiment also includes other structures such as a sense amplifier and a precharge circuit, which are not repeated in this embodiment because they belong to the prior art.

[0085] FIG. 9 shows a schematic flowchart of a write operation method according to an implementation mode of the present embodiment. The write operation method may be applied in the above semiconductor memory 20. As shown in FIG. 9, the write operation method includes the following steps.

[0086] In step S901, an initial state of the global bus is set to high.

[0087] In step S902, it is determined whether to invert the input data to generate inversion flag data and first intermediate data according to the number of low-level bits in the input data of the semiconductor memory.

[0088] In step S903, it is determined whether to invert global bus data according to second intermediate data, where the second intermediate data is inverted data of the first intermediate data.

[0089] In step S904, the global bus data is decoded according to the inversion flag data, where the decoding includes determining whether to invert the global bus data.

[0090] In step S905, the decoded data is written into the storage bank.

[0091] In an implementation mode, the step S902 may include that: serial-to-parallel conversion is performed on first input data of a DQ port to generate second input data; and it is determined whether to invert the second input data to generate inversion flag data and first intermediate data according to a number of low-level bits in the second input data.

[0092] In an implementation mode, the step in which it is determined whether to invert the second input data to generate inversion flag data and first intermediate data according to the number of high-level bits in the second input data includes the following steps. The second input data is divided into M groups, where each group of second input data has N bits. When the number of low-level bits in an inputted group of second input data is greater than N/2, inverted data of the inputted group of second input data is outputted as a corresponding group of first intermediate data, and one bit of the inversion flag data corresponding to the inputted group of second input data is set to high. When the number of low-level bits in the inputted group of second input data is less than or equal to N/2, the inputted group of second input data is outputted as the corresponding group of first intermediate data, and one bit of the inversion flag data corresponding to the inputted group of second input data is set to low.

[0093] The write operation circuit provided by embodiments of the present disclosure is applied to a semiconductor memory whose global bus transmission structure is a Precharge-High architecture. The number of inversions of the internal global bus can be reduced, the current may be reduced significantly, and power consumption may be decreased.

[0094] In the description of this specification, descriptions of reference terms "one embodiment", "some embodiments", "example", "specific example", or "some examples" mean that a particular feature, structure, material, or characteristic described in in conjunction with the embodiment is included in at least one embodiment of the present disclosure. Moreover, the described specific features, structures, materials or characteristics can be combined in any one or more embodiments or examples in a suitable manner. In addition, if there is no conflict with each other, those of ordinary skill in the art can combine different embodiments or examples and combine the features of the different embodiments or examples described in this specification.

[0095] Furthermore, the described features, structures or characteristics may be combined in one or more embodiments in any suitable manner. However, those of ordinary skill in the art will understand that the technical solutions of the present disclosure can be practiced without one or more of the specific details, or practiced by using other methods, components, materials, devices, steps, and the like. In other cases, well-known structures, methods, devices, implementations, materials, or operations are not shown or described in detail to avoid obscuring various aspects of the present application.

[0096] The terms "first" and "second" are only used for descriptive purposes, and should not be understood as indicating or implying relative importance or implicitly indicating the number of described technical features. Thus, the feature defined with "first" and "second" may explicitly or implicitly include one or more of such features. In the description of the present application, "plurality" refers to two or more than two, unless otherwise specifically defined.

[0097] It should be noted that although various steps of the method in this disclosure are described in a specific order in the drawings, it is not required or implied that the steps must be performed in the specific order, or that all the shown steps must be performed to achieve the desired result. Additionally or alternatively, some steps may be omitted, multiple steps may be combined into one step for execution, and/or one step may be divided into multiple steps for execution, etc. The above drawings are merely schematic illustrations of the processing included in the method according to the exemplary embodiments of the present disclosure, and are not intended for limitation. It is easy to understand that the processing shown in the above drawings does not indicate or limit the time sequence of these processing. In addition, it is easy to understand that these processes can be executed synchronously or asynchronously in, for example, multiple modules.

[0098] Although the spirit and principle of the present disclosure have been described with reference to specific embodiments, it should be understood that the present disclosure is not limited to the specific embodiments disclosed, and the division of various aspects does not mean that the features in these aspects cannot be combined for benefits, this division is only for the convenience of description. This disclosure is intended to cover various modifications and equivalent arrangements included in the spirit and scope of the appended claims.

[0099] The foregoing descriptions are merely specific embodiments of the present disclosure, but are not intended to limit the protection scope of the present disclosure. Any modifications or substitutions easily made by those of ordinary skill in the art in light of the teachings disclosed herein shall fall within the protection scope of the present disclosure. Therefore, the protection scope of the present disclosure shall be subject to the protection scope of the claims.


Claims

1. A write operation circuit, applied to a semiconductor memory, comprising:

a data determination module, which is configured to determine, according to a number of low-level bits in input data of the semiconductor memory, whether to invert the input data to generate inversion flag data and first intermediate data;

a data buffer module, which comprises a plurality of NMOS transistors and a plurality of first inverters, a gate electrode of each of the plurality of NMOS transistors is connected to the data determination module through a respective one of the plurality of first inverters to receive second intermediate data, a drain electrode of each of the plurality of NMOS transistors is connected to a global bus, the data buffer module is configured to determine whether to invert the global bus according to the second intermediate data, wherein the second intermediate data is inverted data of the first intermediate data;

a data receiving module, which is connected to a storage bank and is configured to receive global bus data through the global bus, receive the inversion flag data through an inversion flag signal line, decode the global bus data according to the inversion flag data and write decoded data into the storage bank of the semiconductor memory, the decoding comprises determining whether to invert the global bus data; and

a precharge module, which is connected to a precharge signal line and is configured to set an initial state of the global bus to high.


 
2. The write operation circuit according to claim 1, further comprising: a serial-to-parallel conversion circuit, which is connected between a DQ port of the semiconductor memory and the data determination module and is configured to perform serial-to-parallel conversion on first input data at the DQ port to generate second input data;
wherein the data determination module is configured to determine, according to a number of low-level bits in the second input data, whether to invert the second input data to generate the inversion flag data and first intermediate data.
 
3. The write operation circuit according to claim 2, wherein the second input data is divided into M groups, the inversion flag data has M bits, the M bits of the inversion flag data and the M groups of second input data are in one-to-one correspondence, each of the M groups of second input data has N bits, N and M are integers greater than 1;
wherein the data determination module is configured to, in a case where a number of low-level bits in an inputted group of second input data is greater than N/2, output inversed data of the inputted group of second input data as a group of first intermediate data corresponding to the inputted group of second input data and set one bit of the inversion flag data corresponding to the inputted group of second input data to high; and in a case where the number of low-level bits in the inputted group of second input data is less than or equal to N/2, output the inputted group of second input data as the group of first intermediate data corresponding to the inputted group of second input data and set one bit of the inversion flag data corresponding to the inputted group of second input data to low.
 
4. The write operation circuit according to claim 2, wherein the data determination module comprises:

a data determination unit, wherein an input terminal of the data determination unit is connected to the serial-to-parallel conversion circuit, an output terminal of the data determination unit is connected to the inversion flag signal line, and the data determination unit is configured to set the inversion flag data to high in a case where the number of low-level bits in the second input data is greater than a preset value, and set the inversion flag data to low in a case where the number of low-level bits in the second input data is less than or equal to the preset value; and

a data selector, wherein an input terminal of the data selector is connected to the data determination unit and is configured to receive the second input data through the data determination unit, the input terminal of the data selector further receives the inversion flag data through the inversion flag signal line, an output terminal of the data selector is connected to an input terminal of the first inverter, and the data selector is configured to output inverted data of the second input data as the first intermediate data in a case where the inversion flag data is high, and output the original second input data as the first intermediate data in a case where the inversion flag data is low.


 
5. The write operation circuit according to claim 4, wherein the data selector comprises a plurality of data selection units, and each of the plurality of data selection units comprises:

a second inverter, wherein an input terminal of the second inverter receives the inversion flag data through the inversion flag signal line;

a third inverter, wherein an input terminal of the third inverter is connected to the data determination unit and is configured to receive the second input data from the data determination unit;

a first transmission gate, wherein an input terminal of the first transmission gate is connected to an output terminal of the third inverter, an output terminal of the first transmission gate is connected to the input terminal of the first inverter and is configured to output the first intermediate data, a negative control terminal of the first transmission gate is connected to an output terminal of the second inverter, and a positive control terminal of the first transmission gate receives the inversion flag data through the inversion flag signal line; and

a second transmission gate, wherein an input terminal of the second transmission gate is connected to the data determination unit and is configured to receive the second input data from the data determination unit, an output terminal of the second transmission gate is connected to the input terminal of the first inverter and is configured to output the first intermediate data, a negative control terminal of the second transmission gate receives the inversion flag data through the inversion flag signal line, and a positive control terminal of the second transmission gate is connected to the output terminal of the second inverter.


 
6. The write operation circuit according to claim 3, wherein the global bus data is arranged in M groups, and the M bits of the inversion flag data and the M groups of global bus data are in one-to-one correspondence, the data receiving module comprises M data receiving units, and each of the M data receiving units is connected to the storage bank and is configured to decode, according to one bit of the inversion flag data, a corresponding group of global bus data.
 
7. The write operation circuit according to claim 6, wherein each of the M data receiving units comprises:

a fourth inverter, wherein an input terminal of the fourth inverter receives the inversion flag data through the inversion flag signal line;

a fifth inverter, wherein an input terminal of the fifth inverter receives the global bus data through the global bus;

a third transmission gate, wherein an input terminal of the third transmission gate is connected to an output terminal of the fifth inverter, an output terminal of the third transmission gate is connected to the storage bank and is configured to output the decoded data to the storage bank, a negative control terminal of the third transmission gate is connected to an output terminal of the fourth inverter, and a positive control terminal of the third transmission gate receives the inversion flag data through the inversion flag signal line; and

a fourth transmission gate, wherein an input terminal of the fourth transmission gate receives the global bus data through the global bus, an output terminal of the fourth transmission gate is connected to the storage bank and is configured to output the decoded data to the storage bank, a negative control terminal of the third transmission gate receives the inversion flag data through the inversion flag signal line, and a positive control terminal of the third transmission gate is connected to the output terminal of the fourth inverter.


 
8. The write operation circuit according to claim 1, wherein the precharge module comprises a plurality of PMOS transistors and a plurality of hold circuits, a gate electrode of each of the plurality of PMOS transistors is connected to the precharge signal line, a drain electrode of each of the plurality of PMOS transistors is connected to the global bus, and an input terminal and an output terminal of each of the plurality of hold circuits are both connected to the global bus.
 
9. A semiconductor memory, comprising a write operation circuit according to any one of claims 1 to 7.
 
10. A write operation method used in a semiconductor memory, comprising:

setting an initial state of a global bus to high;

determining, according to a number of low-level bits in input data of the semiconductor memory, whether to invert the input data to generate inversion flag data and first intermediate data;

determining whether to invert global bus data according to second intermediate data, wherein the second intermediate data is inverted data of the first intermediate data;

decoding the global bus data according to the inversion flag data, wherein the decoding comprises determining whether to invert the global bus data; and

writing decoded data into a storage bank.


 
11. The write operation method according to claim 10, wherein determining, according to the number of low-level bits in input data of the semiconductor memory, whether to invert the input data to generate the inversion flag data and the first intermediate data comprises:

performing serial-to-parallel conversion on first input data at a DQ port to generate second input data; and

determining, according to a number of low-level bits in the second input data, whether to invert the second input data to generate the inversion flag data and the first intermediate data.


 
12. The write operation method according to claim 11, wherein determining, according to the number of low-level bits in the second input data, whether to invert the second input data to generate the inversion flag data and the first intermediate data comprises:

dividing the second input data into M groups, wherein each group of second input data has N bits, and M and N are integers greater than 1;

in a case where a number of low-level bits in an inputted group of second input data is greater than N/2, outputting inverted data of the inputted group of second input data as a corresponding group of first intermediate data and setting one bit of the inversion flag data corresponding to the inputted group of second input data to high; and

in a case where the number of low-level bits in the inputted group of second input data is less than or equal to N/2, outputting the inputted group of second input data as the corresponding group of first intermediate data and setting one bit of the inversion flag data corresponding to the inputted group of second input data to low.


 




Drawing



















Search report










Cited references

REFERENCES CITED IN THE DESCRIPTION



This list of references cited by the applicant is for the reader's convenience only. It does not form part of the European patent document. Even though great care has been taken in compiling the references, errors or omissions cannot be excluded and the EPO disclaims all liability in this regard.

Patent documents cited in the description