Memory devices having special mode access
Summary by NHIP
Special Mode Memory Device
The memory device operates in distinct modes based on data written to a control register via a serial interface. The controller receives a register write command signal of 1Fh, followed immediately by an address and data signal, with the most significant bit of the command triggering the first clock edge.
Claim Score by NHIP
Abstract
Memory devices are provided that include special operating modes accessible upon receipt of a particular message from a host. One device includes a memory array, a special mode enable register, and a controller. When the controller receives a register write command to write first data into the special mode enable register and the memory device does so, the memory device operates in a first mode. When the controller receives a register write command to write second data into the special mode enable register and the memory device does so, the memory device operates in a second mode.

Term
1.1 yearsleft in the term
Expires 17 October 2027.
- Priority
- Filed
- Granted
- Today
- Expires
22 claims: 3 independent, 19 dependent
- 1A memory device comprising a memory array, a register configured to control operation of the memory array based on data stored in the register, and a serial interface controller configured to:receive a first rising edge of a clock signal;receive a register write command signal comprising a register write command configured to instruct the serial interface controller to write the data to the register;receive a register address signal immediately following the register write command signal, wherein the register address signal comprises an address of the register;receive a data signal immediately following the register address signal, wherein the data signal comprises the data;andwrite the data to the register at the address.
- 11A memory device comprising a memory array, a register configured to control operation of the memory array based on data stored in the register, and a serial interface controller configured to:receive a first rising edge of a clock signal;receive a register read command signal comprising a register read command configured to instruct the serial interface controller to read the data from the register;receive a register address signal immediately following the register read command signal, wherein the register address signal comprises an address of the register;read the data from the address of the register;andtransmit a data signal comprising the data.
- 17Broadest claimClaim Score 77, broad(NHIP)A system comprising:a master device configured to generate a clock signal;anda memory device configured to interface with the master device using a serial peripheral interface protocol, wherein the memory device comprises a controller;wherein the master device is configured to: enable the controller;send the clock signal to the controller;send a command signal to the controller comprising a register command;andsend a register address signal immediately following the command signal, wherein the register address signal comprises an address of the register.
Independent claims3
61 paragraphs in 4 sections, as filed
CROSS-REFERENCE TO RELATED APPLICATIONS
This application is a continuation of U.S. patent application Ser. No. 16/151,845, filed on Oct. 4, 2018, which is a continuation of U.S. patent application Ser. No. 16/013,773, filed on Jun. 20, 2018, which is a continuation of U.S. patent application Ser. No. 14/839,173, filed on Aug. 28, 2015 now U.S. Pat. No. 10,062,420, which issued on Aug. 28, 2018, which is a divisional of U.S. patent application Ser. No. 14/231,393, filed on Mar. 31, 2014 now U.S. Pat. No. 9,122,420, which issued on Sep. 1, 2015, which is a divisional of U.S. patent application Ser. No. 13/357,533, filed on Jan. 24, 2012, now U.S. Pat. No. 8,687,422, which issued on Apr. 1, 2014, which is a divisional of U.S. patent application Ser. No. 11/873,826, filed on Oct. 17, 2007, now U.S. Pat. No. 8,102,710, which issued on Jan. 24, 2012. These are incorporated by reference herein in their entirety for all purposes.
BACKGROUND
Field of the Invention
Embodiments of the present invention relate generally to accessing and modifying settings of a NAND flash memory device, and particularly to accessing and modifying settings of a NAND flash memory device configured for interconnection via serial peripheral interface.
Description of the Related Art
Generally, most NAND flash memory devices employ parallel communication between a NAND flash device and a host device across a multitude of input pins. Though effective, the quantity of pins vastly increases the amount of space a NAND flash memory device occupies on an integrated circuit (IC) chip. As an alternative to parallel communication, serial communication may reduce the number of interconnections. However, critical functionality may be reduced as the quantity of input pins decreases.
Serial peripheral interface (SPI) permits a synchronous serial data link between a master and one or more slave devices. For a synchronous serial connection to one slave device, SPI uses four wires, including chip select (CS), serial clock (SCK), master out slave in (MOSI, or SI), and master in slave out (MISO, or SO). To communicate with additional slave devices, a unique additional CS wire accompanies each device, though the additional devices may share the same SCK, SI, and SO wires. As slave devices are selected by the master one at a time, only one slave device will communicate with the master at any given moment.
The master typically enables a slave device by setting CS low. Once enabled, the slave device may communicate with the master. With data transmission synchronized to the serial clock signal (SCK), the master initiates the data frame, sending data signals on the slave in (SI) wire and receiving data on the slave out (SO) wire. Because both transmitting and receiving take place simultaneously, SPI communication may be referred to as full duplex.
Devices which have been configured to communicate using SPI include EEPROM and NOR flash memory, two forms of nonvolatile memory devices. SPI EEPROM allows ICs with as few as eight pins, while conventional EEPROM may require 32 pins or more. SPI NOR flash memory similarly allows ICs with substantially fewer pins than conventional NOR memory.
NOR flash memory may be considered well suited to SPI. Because NOR flash memory provides full address and data buses, NOR may offer random access to any memory location. Accordingly, with a serial communication protocol such as SPI, NOR may rather easily output a desired point of data.
On the other hand, NOR flash may generally prove less desirable than other memory formats, such as NAND flash, in many applications. NAND flash memory employs shorter erase times while occupying less die space than NOR flash. Additionally, NAND flash memory cells may endure a greater number of write and erase cycles than NOR flash, often by a factor of ten or more.
Due in part to the nature of NAND memory which reads out page by page, rather than providing random access to any memory location, NAND has been historically considered unfit for use with SPI. Moreover, because much standard NAND functionality depends on enabling various input pins at certain times, attempts to combine the two may require an unwieldy translation from SPI to standard NAND, and/or may fail to provide many useful features that may be desired.
Embodiments of the present invention may be directed to one or more of the problems set forth above.
BRIEF DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIG. 1</figref> is a block diagram of an SPI NAND memory device configured to communicate with a master in accordance with an embodiment of the invention;
<figref idref="DRAWINGS">FIG. 2</figref> is a flow chart illustrating a method of communication between a master and the memory device of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 3</figref> is a flow chart illustrating a method of performing a register write operation using the memory device of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 4</figref> is a timing diagram illustrating the timing of signals during the method of performing a register write operation of <figref idref="DRAWINGS">FIG. 3</figref>;
<figref idref="DRAWINGS">FIG. 5</figref> is a flow chart illustrating a method of performing a register read operation using the memory device of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 6</figref> is a timing diagram illustrating the timing of signals during the method of performing a register read operation of <figref idref="DRAWINGS">FIG. 5</figref>;
<figref idref="DRAWINGS">FIG. 7</figref> is a flow chart illustrating a method of reading a parameter page of the memory device of <figref idref="DRAWINGS">FIG. 1</figref>;
<figref idref="DRAWINGS">FIG. 8</figref> is a block diagram of an SPI NAND memory device configured to include a block of one time programmable (OTP) memory in accordance with an embodiment of the invention;
<figref idref="DRAWINGS">FIG. 9</figref> is a flow chart illustrating a method of performing operations on one time programmable (OTP) memory in the memory device of <figref idref="DRAWINGS">FIG. 8</figref>; and
<figref idref="DRAWINGS">FIG. 10</figref> is a flow chart illustrating a method of write protecting one time programmable (OTP) memory by page or block in the memory device of <figref idref="DRAWINGS">FIG. 8</figref>.
DETAILED DESCRIPTION OF SPECIFIC EMBODIMENTS
Referring to <figref idref="DRAWINGS">FIG. 1</figref>, an SPI NAND memory device <b>10</b> interfaces with a master <b>12</b> using a serial peripheral interface (SPI) protocol. Controller <b>14</b> includes four interface pins including a chip select (CS) pin to receive a chip select signal CS <b>16</b>, a clock (SCK) pin to receive a clock signal SCK <b>18</b>, a slave in (SI) data input pin to receive an input signal SI <b>20</b>, and a slave out (SO) data output pin to output an output signal SO <b>22</b>. Data transfer between master <b>12</b> and controller <b>14</b> takes place serially across input signal SI <b>20</b> and output signal SO <b>22</b>.
The master <b>12</b> may enable the controller <b>14</b> by setting chip select signal CS <b>16</b> from high to low. After enabling the controller <b>14</b>, master <b>12</b> may send a clock signal SCK <b>18</b> and a corresponding data signal SI <b>20</b>. Each bit transmitted by SI <b>20</b> (and SO <b>22</b>) may be synchronous to either a rising or falling edge of clock signal SCK <b>18</b>. For illustrative purposes, memory device <b>10</b> inputs data on SI <b>20</b> latched on a rising clock edge and outputs data on SO <b>22</b> released on a falling edge. Accordingly, the first rising edge of clock signal SCK <b>18</b> corresponds to the first bit of SI <b>20</b>, and subsequent rising clock edges of SCK <b>18</b> correspond to subsequent bits of SI <b>20</b>. In the same way, each bit output on SO <b>22</b> transitions on a falling edge of clock signal SCK <b>18</b>.
Communication between master <b>12</b> and controller <b>14</b> generally begins when master <b>12</b> sets chip select CS <b>16</b> low. Master <b>12</b> subsequently sends clock signal SCK <b>18</b> and starts to send a message via SI <b>20</b>. As discussed below, a message may generally comprise a one-byte command, followed by a memory address of one or more whole bytes, often further followed by data of one or more whole bytes. Controller <b>14</b> may respond by sending a synchronous message via SO <b>22</b>. Due to the nature of SPI, controller <b>14</b> may continually output garbage data through SO <b>22</b> until an appropriate time when master <b>12</b> expects a response.
Master <b>12</b> may send a write register command or a read register command in a message to controller <b>14</b>. The write register command or read register command causes controller <b>14</b> to access volatile memory registers <b>24</b>. Data transfer to and from controller <b>14</b> and registers <b>24</b> occurs across a bus <b>26</b> controlled by control wire <b>28</b>. Possible memory registers <b>24</b> may include, for example, a status register to indicate device operation status and/or a special mode enable register such as a block writing lock (BWL) register <b>25</b>A to prevent certain portions of memory from being written to, a one time programmable (OTP) enable register <b>25</b>B to enable reading from or writing to an OTP portion of memory, and/or a parameter page (PP) enable register <b>25</b>C to enable reading from or writing to a parameter page of memory.
Controller <b>14</b> may also access registers <b>24</b> when performing internal operations. Additionally, when a particular enable bit or flag is set for a given register, controller <b>14</b> may alter operations to enter an alternative operational mode, as discussed below.
Access to registers <b>24</b> may permit a user to control many functional aspects of memory device <b>10</b>, such as output buffer drive strength, desired number of clock cycles of latency for outputting data, address cycle format to require whole bytes or to use a minimum number of addresses, and/or whether to enable or disable error correcting codes (ECC). Certain registers may hold, for example, error status, which may be reset upon the issuance of a register write command, while other registers may enable a user to control timing based on varying SCK <b>18</b> frequencies. Finally, for flexibility, a register may be configured to enable memory device <b>10</b> to switch between SPI NAND and NAND user modes and interfaces.
To perform an operation on nonvolatile NAND flash memory at a particular memory address, controller <b>14</b> may send the memory address signal across bus <b>30</b> to row and column decoders (not depicted). Controller <b>14</b> may control the activation of the row and column decoders using control wire <b>32</b>. Depending on the operation, the controller may, for example, load data bytes into cache register <b>34</b> through bus <b>36</b>, controlling cache register <b>34</b> with control wire <b>38</b>. NAND memory array <b>40</b> receives data one page at a time through data register <b>42</b>, which works in conjunction with cache register <b>34</b>.
Communication method <b>44</b> of <figref idref="DRAWINGS">FIG. 2</figref> provides an illustrative communication sequence from the perspective of controller <b>14</b>. Beginning at step <b>46</b>, controller <b>14</b> listens on the chip select input pin for a CS <b>16</b> signal. Decision block <b>48</b> indicates the moment of controller enablement which occurs when CS <b>16</b> transitions to low from high. If CS <b>16</b> transitions to high at any point thereafter, however, communication is interrupted and reset.
Once controller <b>14</b> is enabled, step <b>50</b> begins. Controller <b>14</b> reads the first eight bits sent across SI <b>20</b> into a state machine in controller <b>14</b> circuitry, though alternative embodiments may read in more than eight bits. Decision block <b>52</b> illustrates that if the state machine fails to recognize the eight bits as a valid command, the controller returns to listening for a CS <b>16</b> enable signal at step <b>46</b> and decision block <b>48</b>, waiting to become re-enabled when master <b>12</b> again sets CS <b>16</b> from high to low.
If the state machine recognizes the first eight bits of SI <b>20</b> as a valid command in decision block <b>52</b>, the controller <b>14</b> continues to read in subsequent data from SI <b>20</b>. In step <b>54</b>, controller <b>14</b> next reads in a predetermined length of bytes signifying an address, which may vary depending on the command identified by the state machine. In one embodiment, dummy bits may be transmitted as a header to the address to allow for proper byte alignment. For example, a 17 bit address may include a 7 bit dummy header, such that the entire address length conforms to a whole number of bytes. If the command requires data, the controller may next read in a predetermined length of bytes signifying data in optional step <b>56</b>. A controller <b>14</b> may be configured to recognize a number of SPI NAND commands, such as page read, read status, random data read, program load, program random data input, program execute, random data input, etc.
<figref idref="DRAWINGS">FIG. 3</figref> illustrates a register write method <b>58</b> for instructing a controller <b>14</b> to write data to a memory register of registers <b>24</b> in accordance with one embodiment of the invention. Master <b>12</b> first sets CS <b>16</b> low in step <b>60</b> to enable controller <b>14</b>. Once enabled, controller <b>14</b> may receive a signal from master <b>12</b> through SI <b>20</b> synchronized to clock signal SCK <b>18</b>.
In step <b>62</b>, master <b>12</b> first transmits an eight bit register write command signal, 1Fh in hexadecimal format, to controller <b>14</b>, though alternative embodiments may use a command signal of any predetermined length that a state machine of controller <b>14</b> may accommodate. Immediately after master <b>12</b> sends the command signal, step <b>64</b> begins and master <b>12</b> sends a register address signal indicating the address of the memory register to which to write. Though the present embodiment sends a register address signal of one byte, alternative embodiments may employ a register address of any size, but typically a whole number of bytes. To the extent a register address may comprise a number of bits not a multiple of eight, dummy bits may be sent to fill spaces, which controller <b>14</b> may simply ignore as “don't care” bits.
Proceeding to step <b>66</b> immediately after sending the register address signal, master <b>12</b> next sends a one-byte data signal comprising the data to write to the register. Though the registers <b>24</b> of SPI NAND memory device <b>10</b> each comprise only one byte of data, alternative embodiments may employ registers <b>24</b> comprising a greater whole numbers of data bytes. Once master <b>12</b> has sent the data, master <b>12</b> thereafter terminates the communication sequence by setting CS <b>16</b> high in step <b>68</b>.
Register write timing diagram <b>70</b> of <figref idref="DRAWINGS">FIG. 4</figref> illustrates the timing of the prescribed register write method above. The three signal lines of register write timing diagram <b>70</b> include chip select CS line <b>72</b>, clock signal SCK line <b>74</b>, and data input SI line <b>76</b>. As discussed above, master <b>12</b> initiates communication with controller <b>14</b> by setting the CS <b>16</b> signal low, as generally indicated by reference numeral <b>78</b>.
The first rising edge <b>80</b> of clock signal SCK <b>18</b>, which includes rising edges <b>80</b> shown in <figref idref="DRAWINGS">FIG. 4</figref> as 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, and continuing, corresponds to the most significant bit (MSB) of register write command signal <b>82</b> (represented in hexadecimal format as 1Fh). Immediately following the 8-bit command signal <b>82</b>, master <b>12</b> sends a one-byte register address signal <b>84</b> (having bits shown in <figref idref="DRAWINGS">FIG. 4</figref> as 0, 1, 2, 3, 4, 5, 6, and 7) MSB first, subsequently followed by a one-byte data signal <b>86</b> (having bits shown in <figref idref="DRAWINGS">FIG. 4</figref> as 0, 1, 2, 3, 4, 5, 6, and 7), also MSB first. Communication terminates when master <b>12</b> sets the CS <b>16</b> signal, as generally indicated by reference numeral <b>88</b>.
Turning to <figref idref="DRAWINGS">FIG. 5</figref>, register read method <b>90</b> instructs controller <b>14</b> to output the contents of one of the memory registers <b>24</b>. Beginning at step <b>92</b>, master <b>12</b> first enables controller <b>14</b> by setting the CS <b>16</b> signal low. Next, master <b>12</b> sends an eight bit register read command signal across SI <b>20</b>, represented in hexadecimal format as 0Fh, in step <b>94</b>. As discussed above, alternative embodiments may employ a command signal of any predetermined length that a state machine of controller <b>14</b> may accommodate.
In step <b>96</b>, master <b>12</b> transmits a one-byte address signal representing the address of a memory register from which to read. As above, though the present embodiment sends a register address signal of one byte, alternative embodiments may employ a register address of any size, but typically a whole number of bytes. To the extent a register address may comprise a number of bits not a multiple of eight, dummy bits may be sent to fill spaces, which controller <b>14</b> may simply ignore as “don't care” bits.
Controller <b>14</b> immediately returns the register data from the requested address via SO <b>22</b>, and in step <b>98</b> master <b>12</b> subsequently receives the register data. Though the registers <b>24</b> of SPI NAND memory device <b>10</b> each comprise only one byte of data, alternative embodiments may employ registers <b>24</b> including a greater whole number of data bytes. Once master <b>12</b> has received the register data, master <b>12</b> thereafter terminates the communication sequence by setting CS <b>16</b> high.
<figref idref="DRAWINGS">FIG. 6</figref> provides a register read timing diagram <b>102</b> which illustrates the timing of the prescribed register read method above. Communication between master <b>12</b> and controller <b>14</b> initiates when CS signal line <b>104</b> transitions from high to low, as generally indicated by reference numeral <b>106</b>. Clock signal SCK line <b>108</b> provides the timing of clock signal <b>18</b>, which includes rising edges <b>110</b> shown in <figref idref="DRAWINGS">FIG. 6</figref> as 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, and continuing. When clock signal <b>18</b> issues a first rising edge <b>110</b>, data input SI line <b>112</b> indicates a register read command signal <b>114</b> (having bits shown in <figref idref="DRAWINGS">FIG. 6</figref> as 0, 1, 2, 3, 4, 5, 6, and 7) is correspondingly sent by master <b>12</b>.
Immediately following the register read command signal <b>114</b>, represented in hexadecimal format as 0Fh, master <b>12</b> sends a one-byte register address signal <b>116</b> (having bits shown in <figref idref="DRAWINGS">FIG. 6</figref> as 0, 1, 2, 3, 4, 5, 6, and 7). Subsequently, controller <b>14</b> sends a one-byte data signal <b>120</b> (having bits shown in <figref idref="DRAWINGS">FIG. 6</figref> as 0, 1, 2, 3, 4, 5, 6, and 7) from the requested memory register on data output SO line <b>118</b>, before which controller <b>14</b> holds the SO line <b>118</b> at Hi-Z. Communication terminates when master <b>12</b> sets the CS <b>16</b> signal high, as generally indicated by reference numeral <b>122</b>.
Referring to <figref idref="DRAWINGS">FIG. 7</figref>, a method <b>124</b> illustrates one embodiment of a technique for accessing a parameter page in memory. A parameter page may store device parameters, such as cell type (e.g., SLC or MLC), block size, spare area size, organization, device ID, manufacturer ID, ECC capabilities, etc. Though the parameter page may comprise many bytes of data, five bytes may suffice to encode all parameters.
Rather than introduce additional commands exclusively for performing parameter page operations, the method of accessing a parameter page <b>124</b> instead prescribes the use of shared ordinary commands in a special operational mode. When a controller <b>14</b> enters a special operational mode, a master <b>12</b> may issue a shared ordinary command, such as page read, read status, or random data read, to perform a new operation to achieve a result not possible in an ordinary operational mode. Although the foregoing discussion relates primarily to an application of the method in SPI NAND memory device <b>10</b>, the technique may apply generally to any NAND flash memory device where a reduced set of commands may be desired.
Referring again to <figref idref="DRAWINGS">FIG. 7</figref>, step <b>126</b> provides that a master <b>12</b> first sets a parameter page enable bit in a parameter page access register to enter a parameter page access mode. Master <b>12</b> may set the enable bit by issuing a register write command addressed to the parameter page access register, sending a data byte in which a prior-designated enable bit is set high. Optionally, master <b>12</b> may first perform a register read command to assess current parameter page access register data, copy the current data, then issue a register write command to send the data with only a parameter page enable bit changed to high. Once the parameter page enable bit has been set high, controller <b>14</b> enters a parameter page access mode.
Having entered a parameter page access mode in step <b>126</b>, master <b>12</b> may read parameter page contents by issuing standard commands. In step <b>128</b>, master <b>12</b> issues a page read command. When a page read command is performed in an ordinary operational mode, the NAND flash memory device <b>10</b> prepares a page of memory to be read from a given address of NAND memory array <b>40</b>. In a parameter page access mode, however, the page read command prepares to read the contents of the parameter page. Master <b>12</b> next polls the controller <b>14</b> for read status in step <b>130</b> by issuing a read status command. The read status command operates to align the data transmission by indicating when master <b>12</b> may begin to read data from the device. Master <b>12</b> may issue numerous read status commands before controller <b>14</b> returns data indicating master <b>12</b> may begin to read the data.
During step <b>132</b>, master <b>12</b> obtains parameter page data by issuing a random data read command, causing controller <b>14</b> to output the contents of the parameter page via SO <b>22</b>. To exit the parameter page access mode and return to an ordinary operational mode, in step <b>134</b>, master <b>12</b> resets the parameter page access enable bit. Issuing a register write command addressed to the parameter page access register, master <b>12</b> sends a data byte in which the parameter page enable bit has been set low, and controller <b>14</b> returns to an ordinary operational mode.
<figref idref="DRAWINGS">FIG. 8</figref> illustrates a NAND flash memory device <b>136</b> having a block of one time programmable (OTP) memory, depicted as OTP block <b>138</b>. OTP block <b>138</b> may appear as a block of the NAND memory array <b>40</b>, but alternatively may be any nonvolatile memory. Each page of OTP block <b>138</b> may be written on a fixed number of times, typically one to four times, before a page lock bit is set, permanently locking the page from modification. Alternatively, a user may choose to lock each page or the entire block of OTP memory of OTP block <b>138</b>. OTP memory may find a particular use in security applications. For example, a user may program OTP memory to store and protect values for code authentication.
In the same manner as NAND flash memory device <b>10</b>, NAND flash memory device <b>136</b> includes a master <b>12</b> interconnected to controller <b>14</b> via chip select CS signal <b>16</b>, clock signal SCK <b>18</b>, data input signal SI <b>20</b>, and data output signal SO <b>22</b>. Controller <b>14</b> accesses volatile memory registers <b>24</b>, which includes an OTP enable register <b>25</b>B, using bus <b>26</b> and control wire <b>28</b>. The OTP enable register <b>25</b>B may include an OTP enable (EN) bit <b>27</b>A, an OTP lock (LOCK) bit <b>27</b>B, and/or an OTP protect (PROT) bit <b>27</b>C. The registers <b>24</b> may also include an OTP password (OTP PW) register <b>29</b>. To perform operations on the OTP block <b>138</b> in NAND memory, controller <b>14</b> may send an OTP page address via bus <b>30</b> to a row decoder and column decoder on NAND memory array <b>40</b>, controlled via control wire <b>32</b>. Controller <b>14</b> may send data to cache register <b>34</b> across bus <b>36</b>, controlled via control wire <b>38</b>. Cache register <b>34</b> may thereafter load the data into a page of OTP block <b>138</b> memory in conjunction with data register <b>42</b>.
<figref idref="DRAWINGS">FIG. 9</figref> illustrates a method of accessing a block of one time programmable (OTP) memory <b>140</b>. Rather than introduce additional commands exclusively for performing OTP operations, the method of accessing a block of OTP memory <b>140</b> instead prescribes the use of shared ordinary commands in a special operational mode. When a controller <b>14</b> enters a special operational mode, a master <b>12</b> may issue shared ordinary commands, such as page read, read status, and random data read, to perform new operations to achieve a result not possible in an ordinary operational mode. Although the foregoing discussion relates primarily to an application of the method in SPI NAND memory device <b>136</b>, the technique may apply generally to any NAND flash memory device where a reduced set of commands may be desired.
The method of accessing a block of one time programmable (OTP) memory <b>140</b> begins at step <b>142</b>, when an OTP enable bit <b>27</b>A in an OTP enable register <b>25</b>B is set high. Master <b>12</b> may set the enable bit <b>27</b>A by issuing a register write command addressed to the OTP enable register <b>25</b>B, sending a data byte in which a prior-designated OTP enable bit <b>27</b>A is set high. Optionally, master <b>12</b> may first perform a register read command to assess current OTP enable register <b>25</b>B data, copy the current data, then issue a register write command to send the data in which only the OTP enable bit <b>27</b>A has changed. Once the OTP enable bit <b>27</b>A has been set high, controller <b>14</b> enters an OTP block access mode.
Optionally, OTP password protection may preclude writing to or even reading the OTP block. Controller <b>14</b> may require master <b>12</b> to enter a password of a predetermined number of bits into an OTP password register <b>29</b> in registers <b>24</b> using a register write command. Checking the entered password against a preexisting password stored in nonvolatile memory, controller <b>14</b> may allow master <b>12</b> to access OTP memory if the entered and preexisting password match.
Having entered an OTP block access mode in step <b>142</b>, master <b>12</b> may subsequently perform operations on the OTP block by issuing standard commands. In step <b>144</b>, master <b>12</b> may read from the OTP block using commands such as page read, read status, and read random data read. Additionally, master <b>12</b> may also write to the OTP block using commands such as program load, program random data input, program execute, page read, and random data input.
After performing a predetermined number of operations on a particular page of OTP block <b>138</b>, typically one to four operations, the controller <b>14</b> may cause the page to become locked such that data may no longer be written to the page. However, as long as controller <b>14</b> remains in OTP block access mode, master <b>12</b> may perform operations to read OTP page data.
To exit OTP block access mode and return to an ordinary operational mode, step <b>146</b> prescribes resetting the OTP enable bit <b>27</b>B. Issuing a register write command addressed to the OTP enable register <b>25</b>B, master <b>12</b> may send a data byte in which the OTP enable bit <b>27</b>A has been set low, and controller <b>14</b> may return to an ordinary operational mode.
Though completing a predetermined number of operations on a page of OTP memory may lock out additional writing to the page, a user may also lock a given page, as described below. In either case, controller <b>14</b> may lock the page by causing an OTP lock bit to be set at a designated separate lock block of memory, with the lock bit associated with the address location of the page in the OTP block. Additionally or alternatively, controller <b>14</b> may lock the page by causing an OTP lock bit to be set in a byte in a spare region located at the page.
Turning to <figref idref="DRAWINGS">FIG. 10</figref>, a method <b>148</b> illustrates one embodiment of a technique for preventing writing to (i.e., locking) a page of one time programmable (OTP) memory. The method of locking a page of OTP memory <b>148</b> begins at step <b>150</b>, when master <b>12</b> sets an OTP enable bit <b>27</b>A in an OTP enable register <b>25</b>B, causing the controller <b>14</b> to enter an OTP block access mode. Master <b>12</b> may set the enable bit <b>27</b>A by issuing a register write command addressed to the OTP enable register <b>25</b>B, sending a data byte in which a prior-designated OTP enable bit <b>27</b>A is set high. Optionally, master <b>12</b> may first perform a register read command to assess current OTP enable register <b>25</b>B data, copy the current data, then issue a register write command to send the data in which only the OTP enable bit <b>27</b>A has changed. Once the OTP enable bit <b>27</b>A has been set high, controller <b>14</b> enters an OTP block access mode.
Next step <b>152</b> provides that master <b>12</b> may next set an OTP protect bit <b>27</b>C in an OTP protect register <b>31</b>. As above, master <b>12</b> may issue a register write command addressed to the OTP protect register <b>31</b>, sending a data byte in which a prior-designated OTP protect bit <b>27</b>C is set high. Alternatively, because the OTP protect bit <b>27</b>C comprises only a single bit, and a register may comprise an entire byte, the OTP protect bit <b>27</b>C may reside instead in the OTP enable register <b>25</b>B alongside the OTP enable bit <b>27</b>A. Accordingly, steps <b>150</b> and <b>152</b> may be combined, wherein master <b>12</b> may issue only a single register write command addressed to the OTP enable register <b>25</b>B, sending a data byte that sets high both the OTP enable bit <b>27</b>A and OTP protect bit <b>27</b>C.
Upon reaching step <b>154</b>, with both the OTP enable bit <b>27</b>A and OTP protect bit <b>27</b>C set high, controller <b>14</b> may have entered an OTP write protect mode. To lock a particular page of OTP memory in OTP block <b>138</b>, master <b>12</b> may issue a program execute command addressed to a desired unlocked page. Controller <b>14</b> may respond by causing an OTP lock bit to be set at a designated separate lock block of memory, with the lock bit associated with the address location of the page in the OTP block <b>138</b>. Additionally or alternatively, controller <b>14</b> may instead cause an OTP lock bit to be set in a byte in a spare region located at the page.
To return to an ordinary operational mode in step <b>156</b>, master <b>12</b> may issue a write register command to set the OTP enable bit <b>27</b>A low in the same manner as step <b>150</b>. In step <b>158</b>, master <b>12</b> may subsequently issue an additional write register command to set the OTP protect bit <b>27</b>C low in the same manner as step <b>152</b>. Alternatively, if the OTP protect bit <b>27</b>C and the OTP enable bit <b>27</b>A both reside in a single OTP enable register <b>25</b>B, steps <b>150</b> and <b>152</b> may be combined, wherein master <b>12</b> may issue only a single register write command addressed to the OTP enable register <b>25</b>B, sending a data byte setting low both the OTP enable bit <b>27</b>A and OTP protect bit <b>27</b>C.
While the invention may be susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and have been described in detail herein. However, it should be understood that the invention is not intended to be limited to the particular forms disclosed. Rather, the invention is to cover all modifications, equivalents, and alternatives falling within the spirit and scope of the invention as defined by the following appended claims.
Contents4
10 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10
Every citation, both waysCites: the store holds 48 of 49
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US10062420B2 | Cites | United States of America | Applicant |
| US10366731B2 | Cites | United States of America | Search report |
| EP1764803A1 | Cites | European Patent Office (EPO) | Applicant |
| US2006067123A1 | Cites | United States of America | Search report |
| US2006236204A1 | Cites | United States of America | Search report |
| US2007115743A1 | Cites | United States of America | Applicant |
| US2009103364A1 | Cites | United States of America | Applicant |
| US5357621A | Cites | United States of America | Applicant |
| US5959883A | Cites | United States of America | Applicant |
| US5966723A | Cites | United States of America | Applicant |
| US5991194A | Cites | United States of America | Applicant |
| US6363030B1 | Cites | United States of America | Applicant |
| US6446177B1 | Cites | United States of America | Applicant |
| US7243185B2 | Cites | United States of America | Applicant |
| US7296124B1 | Cites | United States of America | Applicant |
| US7345916B2 | Cites | United States of America | Applicant |
| US7388782B2 | Cites | United States of America | Applicant |
| US7397717B2 | Cites | United States of America | Applicant |
| US7450422B2 | Cites | United States of America | Applicant |
| US7457155B2 | Cites | United States of America | Applicant |
| US7483334B2 | Cites | United States of America | Applicant |
| US7558900B2 | Cites | United States of America | Applicant |
| US7668011B2 | Cites | United States of America | Applicant |
| US7793031B2 | Cites | United States of America | Applicant |
| US8090955B2 | Cites | United States of America | Applicant |
| US8102710B2 | Cites | United States of America | Search report |
| US8103936B2 | Cites | United States of America | Applicant |
| US8228735B2 | Cites | United States of America | Applicant |
| US8243525B1 | Cites | United States of America | Applicant |
| US8284616B2 | Cites | United States of America | Applicant |
| US8320183B2 | Cites | United States of America | Applicant |
| US8352833B2 | Cites | United States of America | Applicant |
| US8429329B2 | Cites | United States of America | Applicant |
| US8667368B2 | Cites | United States of America | Applicant |
| US8694860B2 | Cites | United States of America | Applicant |
| US8767464B2 | Cites | United States of America | Applicant |
| US8929146B1 | Cites | United States of America | Applicant |
| US9042172B2 | Cites | United States of America | Applicant |
| US9235546B2 | Cites | United States of America | Applicant |
| TWI237477B | Cites | Taiwan Province of China | Applicant |
| TWI238941B | Cites | Taiwan Province of China | Applicant |
| EP1764803 | Cites | European Patent Office (EPO) | Applicant |
| TWI237477 | Cites | Taiwan Province of China | Applicant |
| TWI238941 | Cites | Taiwan Province of China | Applicant |
| US20060067123A1 | Cites | United States of America | Search report |
| US20060236204A1 | Cites | United States of America | Search report |
| US20070115743A1 | Cites | United States of America | Applicant |
| US20090103364A1 | Cites | United States of America | Applicant |
28 members in 6 offices
Priority claims26
| Document | Office | Kind | Date |
|---|---|---|---|
| 87382607 | United States of America | A | |
| 87382607 | United States of America | A | |
| 201213357533 | United States of America | A | |
| 201213357533 | United States of America | A | |
| 201414231393 | United States of America | A | |
| 201414231393 | United States of America | A | |
| 201514839173 | United States of America | A | |
| 201514839173 | United States of America | A | |
| 201816013773 | United States of America | A | |
| 201816013773 | United States of America | A | |
| 201816151845 | United States of America | A | |
| 201816151845 | United States of America | A | |
| 201916454411 | United States of America | A | |
| 11873826 | – | – | – |
| 13357533 | – | – | – |
| 14231393 | – | – | – |
| 14839173 | – | – | – |
| 16013773 | – | – | – |
| 16151845 | – | – | – |
| US20070873826 | – | – | – |
| US201213357533 | – | – | – |
| US201414231393 | – | – | – |
| US201514839173 | – | – | – |
| US201816013773 | – | – | – |
| US201816151845 | – | – | – |
| US201916454411 | – | – | – |
Members28
| Document | Office | Kind | |
|---|---|---|---|
| US2009103362A1 | United States of America | A1 | |
| WO2009051952A2 | World Intellectual Property Organization (WIPO) | A2 | |
| WO2009051952A3 | World Intellectual Property Organization (WIPO) | A3 | |
| TW200935234A | Taiwan Province of China | A | |
| EP2210178A2 | European Patent Office (EPO) | A2 | |
| KR20100087324A | Republic of Korea | A | |
| CN101828175A | China | A | |
| US8102710B2 | United States of America | B2 | |
| US2012124279A1 | United States of America | A1 | |
| TWI380181B | Taiwan Province of China | B | |
| EP2210178B1 | European Patent Office (EPO) | B1 | |
| EP2698720A1 | European Patent Office (EPO) | A1 | |
| CN101828175B | China | B | |
| US8687422B2 | United States of America | B2 | |
| US2014215139A1 | United States of America | A1 | |
| KR101454948B1 | Republic of Korea | B1 | |
| US9122420B2 | United States of America | B2 | |
| US2015371688A1 | United States of America | A1 | |
| US10062420B2 | United States of America | B2 | |
| US2018301175A1 | United States of America | A1 | |
| US10192591B2 | United States of America | B2 | |
| US2019035438A1 | United States of America | A1 | |
| US10366731B2 | United States of America | B2 | |
| US2019318770A1 | United States of America | A1 | |
| US10978112B2This record | United States of America | B2 | |
| US2021272607A1 | United States of America | A1 | |
| US11657857B2 | United States of America | B2 | |
| US2023335166A1 | United States of America | A1 |
49 transactions on the USPTO file
Allowed after 2 non-final rejections.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Examiner's Amendment CommunicationEX.A | EX.A | |
| Reasons for AllowanceEX.R | EX.R | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Paralegal or electronic terminal disclaimer approvedP574 | P574 | |
| Terminal Disclaimer FiledDIST | DIST | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Response after Non-Final ActionA... | A... | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Preliminary AmendmentA.PE | A.PE | |
| Email NotificationEML_NTR | EML_NTR | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Application Dispatched from OIPEOIPE | OIPE | |
| FITF set to NO - revise initial settingFTFI | FTFI | |
| Cleared by OIPE CSRL194 | L194 | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
18 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Information on status: patent grantGrantedSTCF | STCF | |
| Information on status: patent grantGrantedSTCF | STCF | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Information on status: patent application and granting procedure in generalSTPP | STPP | |
| Fee payment procedureFEPP | FEPP | |
| Fee payment procedureFEPP | FEPP |
Numbers
- Publication
- 10978112
- Publication, DOCDB
- 10978112
- Publication, EPODOC
- US10978112
- Application
- 16454411
- Application, DOCDB
- 201916454411
- Application, EPODOC
- US201916454411
Titles
- English
- Memory devices having special mode access
Patent term adjustment
- Net adjustment
- 0 days
Classification
- CPC, 9
- G11C7/1021
- G06F13/1694
- G06F3/0619
- G06F3/0629
- G11C16/06
- G06F3/0679
- G06F12/145
- G11C7/1072
- G06F2212/1052
- IPC, 5
- G06F13 00
- G11C7 10
- G06F13 16
- G06F3 06
- G06F12 14
- USPC, 1
- 365185080