The present invention relates generally to semiconductor devices. More particularly, the present invention relates to an apparatus and a method for page program operation for memory devices.
Electronic equipment uses memory devices, for example, flash memories, for storing data or information. In a memory system, a memory controller programs a selected flash memory device by transmitting data to a page buffer in a selected flash memory device where it is stored temporarily. Programming of the data from the page buffer into in the flash memory commences and the programming result is verified and a verify result is produced as “pass” or “fail”. Program and verify operations are performed several times for a “program time” specified period. After the program time, in the event of failure, the data is re-loaded from the memory controller to resume the page program operation in the same selected device.
A drawback is that flash memories require a long program time, for example, to verify the program status. The memory inside of the memory controller must hold the initial program data in order to recover the original program data in the event of program failure. The initial program data occupies space in the memory of the memory controller, with the result that the memory space can not be used for other purposes.
According to one aspect of the present invention, there is provided an apparatus for controlling a plurality of memory devices interconnected in-series, each of the memory devices having a page buffer and memory cells. The apparatus comprises a data processor configured to execute a page program operation with a mirror back-up of data by: writing data to the page buffer of a selected memory device of the plurality of memory devices and to the page buffer of another memory device of the plurality of memory devices; instructing the selected memory device to program the data loaded in its page buffer into its memory cells; and determining whether the data is not successfully programmed into the memory cells of the selected memory device, recover the data from the page buffer of the another memory device.
For example, the data processor is configured to recover the data from the page buffer of the another memory device by: reading back the data from the page buffer of the another memory device without programming the data into the memory cells of the another memory device.
The apparatus may further comprise data storage for storing the data prior to writing the data to the page buffer of the selected memory device and to the page buffer of the another memory device.
According to another aspect of the present invention, there is provided a system comprising: a plurality of memory devices that are interconnected in-series, each memory device having a page buffer and memory cells; and an apparatus for controlling the plurality of memory devices, the apparatus comprising a data processor configured to execute a page program operation with a mirror back-up for data by: writing data to the page buffer of a selected memory device of the plurality of memory devices and to the page buffer of another memory device of the plurality of memory devices; instructing the selected memory device to program the data loaded in its page buffer into its memory cells; and if the data is not successfully programmed into the memory cells of the selected memory device, recover the data from the page buffer of the another memory device.
According to another aspect of the present invention, there is provided a method for controlling a plurality of memory devices that are interconnected in-series, each memory device having a page buffer and memory cells. The method comprises: transmitting data to the page buffer of a selected memory device of the plurality of memory devices and to the page buffer of another memory device of the plurality of memory devices; instructing the selected memory device to program the data loaded in its page buffer into its memory cells; and if the data is not successfully programmed into the memory cells of the selected memory device, recovering the data from the page buffer of the another memory device.
For example, the step of recovering the data from the page buffer of the another memory device comprises reading back the data from the page buffer of the another memory device without programming the data into the memory cells of the another memory device.
The method may further comprise storing the data prior to writing the data to the page buffer of the selected memory device and to the page buffer of the another memory device; freeing up space where the data is occupied before determining whether the data has been successfully programmed into the memory cells of the selected memory device.
According to another aspect of the present invention, there is provided a memory device for use as one of a set of memory devices connected in-series. The memory device comprises: an input connection; an output connection; an identification of a device address of the memory device; and a device controller configured to: receive messages to enter and exit a multi-address detection mode, and enter and exit the multi-address detection mode accordingly; receive a command over the input connection, the command comprising a device address; while not in the multi-address detection mode, process the command only if the device address of the command matches the device address of the device; and while in the multi-address detection mode: i) process the command if the device address of the command is the same as the device address of the device and ii) process the command if the device address of the command is the same as the device address of at least one other predetermined device.
According to another aspect of the present invention, there is provided a method in a memory device forming part of a set of memory devices connected in-series, the method comprising: maintaining a device address; receiving messages to enter and exit a multi-address detection mode; receiving a command comprising a device address; while not in the multi-address detection mode, processing the command only if the destination address matches the device address; and while in the multi-address detection mode: processing the command if the device address of the command is the same as the device address of the device; and processing the command if the device address of the command is the same as the device address of at least one other predetermined device.
Other aspects and features of the present invention will become apparent to those ordinarily skilled in the art upon review of the following description of specific embodiments of the invention in conjunction with the accompanying figures.
Embodiments will now be described with reference to the attached drawings in which:
In the following detailed description of sample embodiments of the invention, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration specific sample embodiments in which the present invention may be practiced. These embodiments are described in sufficient detail to enable those skilled in the art to practice the present invention, and it is to be understood that other embodiments may be utilized and that logical, mechanical, electrical, and other changes may be made without departing from the scope of the present invention. The following detailed description is, therefore, not to be taken in a limiting sense, and the scope of the present invention is defined by the appended claims.
In the particular example shown in
The memory controller 151 has a data storage 152 and a processor 153. The data storage 152 stores various data that includes information on operation instructions, addresses and memory data to be processed and to be stored in the series-connected memory devices. The information on operation instructions is used for controlling the series-connected memory devices. The data storage 152 is, for example, a static random access memory (SRAM) or any type of embedded memory. More generally, any appropriate data storage may be implemented. The processor 153 performs operations of data processing and controlling of the memory devices accessing the data stored in the data storage 152. The memory controller 151 has a plurality of connections: a command signal output connection CIO, a command signal input connection COI, an input strobe connection CSIO, an output strobe connection DSIO and a clock output connection CKO.
In operation, the memory controller 151 sends a command input (CI) signal SC1 through the command signal output connection CIO to the first device 154-1 and receives a command output (CO) signal SC(M+1) from the last device 154-M of the serial interconnection, through the command signal input connection COI. Also, the memory controller 151 provides a command strobe input (CSI) signal SCS1 through the input strobe connection CSIO and a data strobe input (DSI) signal SDS1 through the output strobe connection DSIO to the first device 154-1. Furthermore, the memory controller 151 provides a clock signal CK through the clock output connection CKO to all of the devices 154-1-154-M in a common clock source fashion.
The memory devices 154-1, 154-2, 154-3, . . . , and 154-M have page buffers 158-1, 158-2, 158-3, . . . , and 158-M, respectively, and flash memory cells 159-1, 159-2, 159-3, . . . , and 159-M, respectively. Each of the memory devices 154-1-154-M has a signal input connection CI for receiving the CI signal SCi (i=1 to M) from a previous device; a signal output connection CO for providing the CI signal SC(i+1) to a succeeding device; an input strobe input connection CSI for receiving the CSI signal SCSi from a previous device; an input strobe output connection CSO for sending an output CSI signal SCS(i+1) to the succeeding device; an output strobe input connection DSI for receiving the DSI signal SDSi from the previous device; and an output strobe output connection DSO for sending an output DSI signal SDS(i+1) to the succeeding device.
Each of the memory devices 154-1-154-M has a unique device address (DA) that is hard wired or pre-assigned, so that one device can be selected or designated at a time in normal operation. Example details of an architecture featuring devices connected in-series are provided in U.S. patent application Ser. No. 11/594,564 entitled “Daisy Chain Cascading Devices” filed Jul. 31, 2006, the disclosure of which is hereby incorporated by reference in its entirety. Other example details of an architecture feature devices connected in-series are provided in U.S. Provisional Patent Application Ser. No. 60/868,773 entitled “System and Method of Operating Memory Devices of Varying Type” filed Dec. 6, 2006, the disclosure of which is hereby incorporated by reference in its entirety. Examples of the device address assignment in a plurality of memory devices that are connected in-series are provided in U.S. Provisional Patent Application No. 60/787,710, filed Mar. 28, 2006; U.S. patent application Ser. No. 11/521,734 filed Sep. 15, 2006; U.S. Provisional Patent Application No. 60/802,645, filed May 23, 2006; and U.S. patent application Ser. No. 11/750,649 filed May 18, 2007, the disclosures of which are incorporated by reference in their entirety.
In the normal operation, the memory controller 151 sends the CI signal SC1 containing commands. A command includes a device address (DA) and an operation code (hereinafter OP code) representing an operation instruction. Some commands additionally include address information, and some commands additionally include data. Each OP code is associated with a respective operation. Each command is also referred to herein as having a type that is associated with the OP code contained in the command. For example, a command containing a read OP code is referred to as a “read command”. Each of the memory devices 154-1-154-M receives commands via its respective CI either directly from the memory controller in the case that a given device is the memory device connected directly to the memory controller (device 154-1 in the illustrated example), or from an adjacent preceding memory device for other devices. Each of the memory devices 154-1-154-M uses its respective CO for forwarding on commands either to the memory controller 151 in the case that a given device is the one having its output connected to the memory controller (device 154-M in the illustrated example), or to an adjacent following device. A command containing a write OP code addressed to a particular flash memory device results in data being written to a page buffer of that device, and then transferred from the page buffer to the flash memory cells of the memory device. A command containing a read OP code addressed to a particular flash memory device results in data being read from the flash memory cells of the memory device to the page buffer of the memory device and then being transferred out of the page buffer.
The memory controller 151 issues commands, each of which include a device address (DA), a command operation code (hereinafter OP code). Some commands may additionally include address information, and some commands may additionally include data. Each OP code is associated with a respective operation. Each command is also referred to herein as having a type that is associated with the OP code contained in the command. For example, a command containing a read OP code may be referred to as a “read command”. For example, commands for use in the series-connected devices are flexible modular commands, the structure of which is shown in Table I:
In Table I, DA is a device address; OP code is an operation code; RA is a row address; CA is a column address; and DATA is write data. Examples of commands associated with OP codes are a “burst data load” command and a “burst data read” command. There are cases of: (i) either of row address or column address; (ii) neither row address nor column address; (iii) no data.
A particular example of the above-referenced command structures are taught in commonly assigned and co-pending U.S. patent application Ser. No. 11/840,692 filed on Aug. 17, 2007 and U.S. Provisional Patent Application No. 60/892,705 filed on Mar. 2, 2007, the contents of which are hereby incorporated by reference in their entirety. The applications disclose different command structures to distinguish core access operations that involve relatively long processing times from page buffer access operations that involve relatively short access times. Further details of the modular command structure are provided below under the heading “Modular Command Structure”.
Referring back to
In general, flash memories have a fundamental limitation of long program time due to cell characteristics and time used to verify the program status. Because of the fail probability of the page program operation, the data storage elements 152 of the memory controller 151 hold the initial program data in order to allow the recovery of the original program data in the event of program failure. The result is that the initial program data occupies space in the data storage elements 151 thereby preventing the space from being used for other purposes. It may result in having to wait until the page program operation and verification has completed before performing other page program operations. A possible approach to improving performance may be to increase the capacity of the storage elements in the memory controller, but this can be costly.
In the example system 150 shown in
In the particular example, for the purpose of allowing the page buffers to operate as a mirror back-up, in accordance with an embodiment of the invention, three “modular” memory device access commands are used. The first is referred to as a “burst data load” command and contains a burst data load OP code. This causes data to be written to the page buffer, but this command alone does not cause the data to be transferred to the flash memory cells. In the examples that follow, 4Xh and 5Xh are used for this, but more generally the command structure would be defined on an implementation specific basis. The second is referred to as a “burst data read” command and contains a burst data read OP code. This causes data to be read directly from the page buffer without first reading from the flash memory cells. In the examples that follow, 2Xh is used for this, but more generally, the command structure would be defined on an implementation specific basis. The third is referred to as a “page program” command and contains a page program OP code. This causes data that was previously stored in the page buffer to be written to the flash memory, destroying the contents of the page buffer in the process for verification purposes. In the examples that follow, 6Xh is used for this, but more generally, the command structure would be defined on an implementation specific basis.
The first memory device 120 has an input connection 139, an output connection 140, flash memory cells 121, a page buffer 122 and a device controller 126. Similarly, the second memory device 127 has an input connection 141, an output connection 142, flash memory cells 128, a page buffer 129 and a device controller 130. The two memory devices 120, 127 are any two memory devices that form part of an architecture featuring devices interconnected in-series. For the particular example, one of the two memory devices 120 and 127 is used as a mirror back-up for data. The device controllers 126 and 130 include any appropriate circuitry for facilitating processing of commands. Subsequent examples will not refer to any device controllers; however, it is to be understood that they would include circuitry for processing commands.
In operation, the page buffer 122 of the first memory device 120 is loaded with data by the burst data load command (4Xh and 5Xh) through the input connection 139 as indicated at 123. In this example, the data is also loaded into the page buffer 129 of the second memory device 127 through the input connection 141 as indicated at 137. Page programming within memory device 120 is accomplished by a page program command (6Xh) as indicated at 124. The page buffer 122 is read through the output connection 140 using the ‘Read Device Status (D0h)’ as indicated at 125 to verify whether the page programming operation was successful or not. The second memory device 127 is used as a mirror back-up for page program operation in the event that page programming is unsuccessful for the first memory device 120. A memory controller (not shown) keeps track of which memory device is being used as the mirror back-up. In the event of program failure, the data can be recovered from the mirror back-up through the output connection 142 as indicated at 138. This removes the need for the memory controller to store the contents in its storage elements. Thus, the location used by the memory controller to store the data prior to its being programmed to the page buffers 122, 129 can be freed up for other purposes.
The mirror function of page buffer for systems having an architecture in which devices are interconnected in-series will now be described with reference to
The memory controller 191 and the memory devices 193-1, 193-2, 193-3, . . . , and 193-15 are interconnected with serial links. Other examples described herein are also specific to serial links between consecutive devices. However, it is to be understood that embodiments of the invention are also applicable to architectures featuring parallel links between consecutive devices. More generally, embodiments of the invention are applicable to architectures featuring series links between consecutive devices. The series links may be serial links, or parallel links. The system 190 uses a page buffer as a mirror backup for data. In the illustrated example, two devices are interconnected by a link having one I/O pin. Alternatively, a link can include a plurality of I/O pins. The memory devices 193-1, 193-2, 193-3, . . . , and 193-15 has respective processing circuitry for processing a signal through the CI connection from a previous device and outputting processed result though the CO connection to a next device. For simplicity, such circuitry is shown by a representing D-type flip-flop (D-FF).
For this example, it is assumed that the memory controller 191 needs to write data to the memory cells of memory device 193-1, and that the page buffer 194-2 of the memory device 193-2 is available for use as a mirror backup. In operation, the memory controller 191 issues a first write command in order to load data from the data storage elements 192 into the page buffer 194-1 of the first memory device 193-1. The loading of the data into the page buffer 194-1 is generally indicated at 201. In order to keep aback-up copy of the data in the event that the page programming fails, the memory controller 191 also issues a write command (page buffer load) in order to load the same data into the page buffer 194-2 of the second memory device 193-2. The loading of the data into the page buffer 194-2 is generally indicated at 202. The memory controller 191 than issues a page program command to program the data that has been loaded into the page buffer 194-1 into the memory cells (not shown) of the first memory device 193-1. In the illustrated example, the data is not programmed into the memory cells of the second memory device 193-2. Instead, the data is maintained in the page buffer 194-1 as a mirror back-up copy of the data in case the page programming for the first memory device 193-1 fails.
The memory controller 191 keeps track of which memory device 193-2 is being used as the mirror back-up. In the event of program failure, the data can be recovered from the mirror back-up. This removes the need for the memory controller 191 to store the contents in its data storage elements 192. Therefore, as soon as the page buffer loads are done, the data storage elements 192 previously used to store the data are freed up for other uses. The memory controller keeps track of which data storage elements 192 are free, and which are in use. In the event of success in the page programming operation, the locations in the page buffer 194-2 being used as a mirror back-up are freed up.
Note that the first memory device 193-1 and the second memory device 193-2 are selected by the memory controller 191. The memory controller 191 can alternatively select different memory devices. Each write command is addressed to a target memory device by DA.
Note that for the devices connected in-series, there is a clock cycle based latency delay between memory devices to synchronize output result (CO) from input (CI). The latency can be determined according to the system and device specification. All examples assume a one clock cycle latency between input and output. Therefore, between two adjacent memory devices, there is a one cycle difference when input data is captured. However, it is to be understood that the clock cycle latency may alternatively be smaller such as a half cycle, or greater such as over two cycles. Regardless, the memory devices take input streams with the latency delay.
In an example system, a memory device that is to function as a mirror backup for a given memory device is statically defined. A particular example of such a static definition is defined in the tables below in which it is assumed that: for a given device having an even device address, the device that is to function as a mirror backup for the given device is the device having an address one greater than that of the given device (see Table 2) and for a given device having an odd address, the device that is to function as mirror backup for the given device is the device having an address one less than that of the given memory device (see Table 3).
In the examples defined by Tables 2 and 3 above, the designated target device and the mirror device share common addresses with the exception of the LSB (least significant bit). More generally, in some examples, the relationship between the designated target device and the mirror device is used to efficiently address the two devices without requiring two separate commands to be sent.
A specific example of this applies to the mirror backup device definitions in Tables 2 and 3 in which a new mode of operation referred to as “ignore LSB mode” in which all devices compare all bits of the address of each incoming command except the LSB to corresponding bits of the device's device address (namely all of the bits except the LSB). In such a mode, both a device having a given designated target address, and an appropriate mirror device will process the command. In some implementations, a command is first sent to turn on ignore LSB mode. This can be done using an address that is processed by all devices, referred to as a broadcast address. This is followed by a command to load data to the page buffer, this resulting in the data being loaded to the page buffer of both a designated target device and the mirror device. After this, ignore LSB mode is turned off again, and a command to write the contents of the page buffer of the designated target device to the core memory is sent and processed only by the designated target device. In another example, a different OP code is defined that signifies ignore LSB mode for that command. In another embodiment, ignore LSB mode is only active for at most one following command and as such, there is no need to turn off ignore LSB mode if such a command has been sent. In another embodiment, another field in a command is used to signify ignore LSB mode.
An example of this will now be described with reference to
Once the ignore LSB mode is enabled, two memory devices are selected by a single target address. For example, a page buffer load command having a target address of “0000” will be processed by both the first memory device 213-1 having a device address (DA) of “0000” and the second memory device 213-2 having a device address of “0001”. Note that the first and second memory devices 213-1 and 213-2 have identical device addresses with exception to the LSB. One of the two memory devices 213-1 and 213-2 (e.g., the first memory device 213-1) is used as a “designated target device”, while the other memory device (e.g., the memory device 213-2) is used as a “mirror device”, the page buffer of which stores mirror program data. Once the page buffer load command is issued, data loading starts. The page buffers 214-1 and 214-2 of two selected devices 213-1 and 213-2 store the data thereinto. The loading of the data into the page buffers 214-1 and 214-2 is generally indicated at 221 and 222. Prior to programming, the ignore LSB mode is reset and normal operation where only one memory device is selected at a time resumes. This is, for example, accomplished by issuing another broadcasting command. Example timing details of the enabling and disabling of the ignore LSB mode for the system 210 are provided below with reference to
The first stage is indicated at 281. The memory controller 211 sends an “ignore LSB” command to inform the memory devices to ignore the LSB of the target device address of subsequently received commands. The command contains a broadcast DA and an OP code for enabling ignore LSB mode. Here is assumed that ‘FF’ is a broadcast address that results in all of the memory devices in the devices connected in-series accepting and processing this command.
The second stage is indicated at 282. The memory controller 211 transmits a command for loading data into the page buffers 214-1 and 214-2 of the first two memory devices 213-1 and 213-2. The command includes the device identifier (ID) for the first memory device 213-1 and the burst data load instruction (CMD). Since ignore LSB mode has been enabled, both the first and second memory devices 213-1 and 213-2 process the command and load the data into their page buffers 214-1 and 214-2.
The third stage is indicated at 283. The memory controller 211 transmits a command for disabling the ignore LSB mode. The ID is again the broadcast ID ‘FF’.
Once the ignore LSB mode has been disabled, the memory controller 211 issues a page program command to program the data that has been loaded in the page buffer 214-1 into the memory cells (not shown) of the first memory device 213-1. In the illustrated example, the data is not programmed into the memory cells (not shown) of the second memory device 213-2. Instead, the data is maintained in the page buffer 214-2 of the second memory device 213-2 as a mirror back-up copy of the data in case the page programming for the first memory device 213-1 fails. The second memory device 213-2 should not be accessed for any core operations using the page buffer 214-2. However, register based commands, such as status, configuration register read or write are possible. Other memory devices 213-3, . . . , and 213-15 can be freely accessed.
In the illustrated examples provided above, specific details of the memory devices for implementing the ignore LSB feature are not provided. It is to be understood that the memory devices can be implemented with any appropriate control circuitry for accomplishing the ignore LSB feature. A specific implementation is provided below with reference to
The clock signal CK, the command strobe signal SCSi, the command input signal SCi and the data strobe signal SDSi are buffered by respective input buffers 281, 282, 283 and 284. The buffered clock signal and command input signal are fed to a clock generator 264 which outputs internally generated clock signals: an ID clock signal Clkid, an OP code clock signal Clkop, an address clock signal Clkad and a data clock signal Clkda. The ID clock signal Clkid, the OP code clock signal Clkop, the address clock signal Clkad and the data clock signal Clkda are fed to an ID register 265, an OP code register 266, an address register 268 and a data register 269. The appropriate fields of the command of the command input signal SCi are input to the ID register 265, the OP code register 266, the address register 268 and the data register 269 in response to the respective clock signals. The OP code held in the OP code register 266 is fed to the OP code decoder 267 for decoding. The OP code decoder 267 outputs one-bit signal SIGB to a one-bit register 276 and a multi-bit (m-bits: e.g., three-bit) decoded OP code signal SDOP to core logic and memory circuitry 285. The core logic and memory circuitry 285 also receives the buffered data strobe signal.
The command input signal SCi, is latched by a D-FF 251, the output of which is buffered again to produce command input signal SC(i+1) to be forwarded on to the next memory device 154-(i+1).
The memory device 154-i includes exclusive NOR (XNOR) logic circuitry 272 that receives as input the n-bit output of the ID register 265 and n-bit contents of a device ID register 273 for holding a value of the device address (DA). The XNOR logic circuitry 272 has n XNOR gates that perform bitwidth XNOR operation between the n-bit output of the ID register 265 and the n-bit contents of the device ID register 273 and produces an n-bit output. The LSB of the n-bit output the XNOR logic circuitry 272 is input to one input of an OR gate 274, and the remaining bits of the n-bit output of the XNOR logic circuitry 272 are input to AND logic circuitry 275. The one-bit register 276 is provided for registering the “ignore LSB enable bit” (in the signal SIGB) from the OP code decoder 267. The output of the one-bit register 276 is input as a second input to the OR gate 274, and the output of the OR gate 274 is fed as another input to the AND logic circuitry 275. The operation of these components is described below.
In operation, the memory device 154-i receives a command in the command input signal SCi. Based on the timing of the command strobe signal SCSi together with the clock signal CK, the clock generator 264 generates internal clock signals for appropriately latching the contents of the command to the appropriate registers. More specifically, the ID register 265 registers the ID of the command. The OP code register 266 registers the OP code. The address register 268 registers the column/row addresses. The data register 269 registers any data included in the command. In addition, the OP code decoder 267 receives the command registered in the OP code register 266 and decodes it. The buffered clock signal is provided to D-FFs in the circuitry (clock signal paths are not shown).
In the event the command is either a command containing a broadcast DA, or a command addressed to the specific device, the OP code is decoded and processed by the device. With the broadcast DA, all devices are to be asserted and ready to receive a command. Upon receipt of a command to enter the ignore LSB mode as determined by the OP code decoder 266, the one-bit register 276 is set and thus, the “ignore LSB enable bit” is set to enable LSB ignore mode.
The ID register 265 outputs the registered DA, which is the target DA, in parallel as n-bit data. The XNOR logic circuitry 272 compares the target DA (that is represented by the ID number contained in the command) with the device ID held in the device ID register 273 on a bit for bit basis. If the target DA and the device ID are identical, then the output of the XNOR logic circuitry 272 will be all ‘1's’. The LSB of the comparison is fed into the OR gate 274, while the other bits are fed into the AND logic circuitry 275. The LSB of the comparison being “high” is sufficient for the OR gate 274 to have a “high” output. The OR gate 274 is also fed with the “ignore LSB enable bit” of the one-bit register 276. The “ignore LSB enable bit” of the one-bit register 276 being “high” is also sufficient for the OR gate 274 to have a “high” output. Therefore, if the “ignore LSB enable bit” of the one-bit register 276 is high, then it does not matter whether the LSB of the target DA matches the LSB of the device ID. Rather, the non-LSB bits matter. The AND logic circuitry 275 outputs an ID match signal 277 that indicates whether there is a match between the target DA and the device ID. This will be true if all of the n inputs to the AND logic are high. During ignore LSB mode, this will be true if other (n−1) bits except for the LSB match during the ignore LSB mode. When not in ignore LSB mode, this will be true if all n bits match. The ID match signal 277 from the AND logic circuitry 275 determines whether the memory device 154-i executes the command. Upon receipt of a command to exit the ignore LSB mode, the one-bit register 276 is cleared. The ID match signal 277 is provided to the core logic and memory circuitry 285 and an AND gate 278. The output of the one-bit register 276 is input to an inverter 279, the inverted output signal of which is provided to the AND gate 278, the AND logic output signal of which is fed to multiplexers 254 and 256.
When there is no match between the target DA and the device ID, the ID match signal ID match signal 277 is “low” and the multiplexer 254 is selected to its “0” input. Therefore, the latched command input signal is provided as the command input signal SC(i+1) to the next device 154-(i+1). Also, the latched command strobe signal is provided through the multiplexer 256 as the command strobe signal SCS(i+1) to the next device 154-(i+1). Thus, there is no ID match, the device 154-1 is not the target device and the command input signal SCi and the command strobe signal SCSi are forwarded to the next device 154-(i+1). If the data strobe signal is input (e.g., in the data read mode operation), the latched data strobe signal is provided through the multiplexer 255 as the data strobe signal SDS(i+1) to the next device 154-(i+1), regardless of the status of the ID match signal ID match signal 277. With no ID match, the core logic and memory circuitry 285 is not activated.
When there is a match between the target DA and the device ID during ignore LSB mode (i.e., the output of the one-bit register 276 is “high”), the ID match signal 277 is “high”, the core logic and memory circuitry 285 is activated. However, the output signal of the inverter 279 is “low” and the “0” inputs of the multiplexers 254 and 256 are selected. The input signal is provided as the command input signal SC(i+1) to the next device 154-(i+1). Also, the command strobe signal is provided as the command strobe signal SCS(i+1) to the next device 154-(i+1).
When there is a match between the target DA and the device ID during non-ignore LSB mode (i.e., the output of the one-bit register 276 is “low”), the ID match signal 277 is “high”, the core logic and memory circuitry 285 is activated and the decoded OP code of the decoded signal SDOP from the OP code decoder 267 is executed to operate in accordance with the command instruction. The output signal of the inverter 279 is “high” and the AND logic output signal of the AND gate 278 is “high”. The “1” inputs of the multiplexers 254 and 256 are selected. If the instruction is a data read, the core logic and memory circuitry 285 executes the read command and in accordance with the addresses of row and/or column, data is read from the memory therein (not shown). The output data DATAout from the core logic and memory circuitry 285 is provided as the command input signal SC (i+1) to the next device 154-(i+1).
The examples presented above show how two memory devices can process a single command when they have identical device addresses with exception to the least significant bit. This is accomplished while the memory devices are in an ignore LSB mode. More generally, embodiments of the invention allow for two or more memory devices to process a single command based on the target address of the single command. For example, in another embodiment, the memory devices enter a multi-address detection mode. This may occur for example if the memory controller broadcasts a first message instructing each memory device to enter the multi-address detection mode. While in the multi-address detection mode, upon receiving a command having a destination address that differs from the device address, the memory device conditionally processes the command based on the destination address. At some later time, the memory devices exit the multi-address detection mode. This may occur for example if the memory controller broadcasts a second message instructing each memory device to exit the multi-address detection mode. The messages broadcasted for entering and exiting the multi-address detection mode are, for example, a write link configuration register command comprising an op-code of FFh.
There are many ways for a memory device to conditionally process the command based on the destination address. In some implementations, the memory device maintains an identification of an alternative device address. If the target device address of the received command matches the alternative device address, then the memory device processes the command. In other implementations, the memory device conditionally processes the command if the destination address differs from the device address in a predefined manner. For example, the memory device processes the command if the destination address differs from the device address only by a single predefined bit. The single predefined bit can be the least significant bit, examples of which have been provided above. Alternatively, the single predefined bit is some other bit.
Referring to
Subsequently, the memory controller 211 sends a “normal DA set” command to all memory devices 213-1, 213-2, 213-3, . . . , and 213-15 to inform them to no longer ignore the LSB of the target device address found in received commands (step 313). Then, the memory controller 211 starts page programming for the designated device by sending a page program addressed to that device (step 314). If the memory controller 211 determines that the page programming is successful (YES at step 315), then processing ends. The page programming determination is performed by reading the program status from the page buffer. If the memory controller 211 determines that there is a program failure (NO at step 315), then the memory controller 211 re-loads the program data from the page buffer of the mirror memory device 213-2 (step 316). The program data is stored locally within data storage elements of the memory controller.
Next, the memory controller 211 loads the program data back into the page buffer of the designated memory device at step 317. Processing continues at step 314 by retrying to program the data into the memory cells of the designated memory device, details of which have also been provided above. In this example, it is assumed that another attempt to program the data into the same memory device is made. Alternatively, the data can be programmed into the memory cells of another memory device. Also, in this example, it is assumed that the mirror backup copy is maintained in the same place (device 213-2 for this example) until a successful page program operation is completed. Alternatively, a mirror backup copy can be made in a different location.
In some examples, the systems described herein are implemented using a flexible modular command structure, example details of which have already been provided. Further example details are provided in this section with reference to
All commands, addresses, and data are shifted in and out of the memory device, starting with the most significant bit (MSB). Command input (CI) signal is sampled at the positive or negative clock edge (i.e., at the crossing point of clocks—CK and /CK) while the command strobe input (CSI) signal is “high”. Each command includes a 1-byte device address (DA) and 1-byte OP code and/or column-address/row-address/data-input bytes if necessary. Once the CSI transits logic “high”, the 1-byte DA (Device Address) is shifted into a DA register, and then the 1-byte OP code is shifted into an OP code register. In so doing, the most significant bit (MSB) starts first on the CI signal and each bit is latched at the crossing of clocks CK and /CK while CSI is logic-HIGH state. However every input sequence in byte mode starts at a rising edge of clock CK (=falling edge of /CK). Depending on the command, the OP Code are followed by address bytes, data bytes, both or none as shown in
For the memory devices connected in-series, a special device address (=FFh) is assigned for “Broadcast” operation. More generally, the address that is defined for broadcast mode operation can be defined on an implementation specific basis. This “Broadcast Device Address” may be used with any command. However, using the broadcast device address (FFh) along with the “read-type” commands is not recommended because the read data from the last device is the only valid output data.
In some implementations, the signal bus on a modular command Flash device is fully multiplexed as command, address and data all share the same pin(s). The CSI signal's logic-high state validates the command input (CI) signal which can be an n-bit wide signal containing multiplexed command/address/data information for the memory device. If the CSI signal stays in logic-low state, device ignores signal inputs from CI pins. The command input sequence normally consists of one-byte DA (Device Address) latch cycles, one-byte command latch cycles, address latch cycles (=3-bytes for row address or 2-bytes for column addresses) and/or data-input latch cycles up to 2,112 bytes. In 1-bit link mode, four clock-cycles at DDR (double data rate) make one byte of a serial packet. In 2-bit link mode, two clock-cycles at DDR (double data rate) make one byte of a serial packet. In 4-bit link mode, one clock-cycle at DDR (double data rate) makes one byte of a serial packet. Every set of command instructions may be followed by two extra CK and /CK transitions after CSI makes a HIGH to LOW transition. In some embodiments, an extra number of CK and /CK transitions after CSI transitions to low are used that are equal in number to 2+# of devices in the architecture with devices connected together in-series. Every input sequence defined in
Two representative commands to show the feature of modular commands are described below, namely a Page Read (DA & 0Xh) and a Burst Data Read (DA & 2Xh) command.
With reference to
The core access operations such as page read, page program and block erase take long time and their processing times are varied according to PVT (Process/Voltage/Temperature) change. So, whenever issuing core access commands, a user can monitor the status of each operation after asserting command without interrupting internal operations. The other purpose of the status register is to check whether or not the page program and block erase are performed without fail. In case of fail, a new row position is determined by the memory controller and it issues a new command containing new row address to write the same data that was written to the old row location that failed to be written. Without monitoring the status register, the memory controller does not know that the program and erase operations are done without fail.
After READ DEVICE STATUS (DA & D0h) command, using DSI, all 8-bit status is read from the status register until DSI goes to low. After the BURST DATA READ (DA & 2Xh) command has been issued and then DSI goes to high, the serial output timing as shown in
The BURST DATA READ (DA & 2Xh) command referred to above enables the user to specify a column address so the data at the page buffers can be read starting from the given column address within the selected page size while DSI is high. The burst data read mode is enabled after a normal PAGE READ (DA & 0Xh) command and page loading time (=tR). The BURST DATA READ (DA & 2Xh) command can be issued without limit within the page. Every BURST DATA READ command can have same or different column address from the previous BURST DATA READ command. Only data on the current page buffers can be read. If a different page is to be read, a new PAGE READ (DA & 0Xh) command should be issued. And after tR, a new BURST DATA READ (DA & 2Xh) command can be issued to access new page data.
In the embodiments described above, the device elements and circuits are connected to each other as shown in the figures, for the sake of simplicity. In practical applications of the present invention, elements, circuits, etc. may be connected directly to each other. As well, elements, circuits etc. may be connected indirectly to each other through other elements, circuits, etc., necessary for operation of the memory devices or apparatus. Thus, in actual configuration of devices and apparatus, the elements and circuits are directly or indirectly coupled with or connected to each other.
The above-described embodiments of the present invention are intended to be examples only. Alterations, modifications and variations may be effected to the particular embodiments by those of skill in the art without departing from the scope of the invention, which is defined solely by the claims appended hereto.
This application is a continuation of U.S. application Ser. No. 13/022,166 filed on Feb. 7, 2011 (now U.S. Pat. No. 8,060,691 issued on Nov. 15, 2011) which is a continuation of U.S. application Ser. No. 12/832,121 filed on Jul. 8, 2010 (now U.S. Pat. No. 7,908,429 issued on Mar. 15, 2011) which is a continuation of U.S. application Ser. No. 12/030,235 filed on Feb. 13, 2008 (now U.S. Pat. No. 7,774,537 issued on Aug. 20, 2010) which claims the benefit of prior U.S. Provisional Patent Application No. 60/891,115 filed on Feb. 22, 2007, the disclosures of which are hereby incorporated by reference in their entirety.
Number | Name | Date | Kind |
---|---|---|---|
2264395 | Mitchel | Feb 1941 | A |
4174536 | Misunas et al. | Nov 1979 | A |
4617566 | Diamond | Oct 1986 | A |
4733376 | Ogawa | Mar 1988 | A |
4796231 | Pinkham | Jan 1989 | A |
4899316 | Nagami | Feb 1990 | A |
5038299 | Maeda | Aug 1991 | A |
5126808 | Montalvo et al. | Jun 1992 | A |
5132635 | Kennedy | Jul 1992 | A |
5136292 | Ishida | Aug 1992 | A |
5175819 | Le Ngoc et al. | Dec 1992 | A |
5204669 | Dorfe et al. | Apr 1993 | A |
5243703 | Farmwald et al. | Sep 1993 | A |
5249270 | Stewart et al. | Sep 1993 | A |
5280539 | Yeom et al. | Jan 1994 | A |
5319598 | Aralis et al. | Jun 1994 | A |
5365484 | Cleveland et al. | Nov 1994 | A |
5404460 | Thomsen et al. | Apr 1995 | A |
5430859 | Norman et al. | Jul 1995 | A |
5437018 | Kobayashi et al. | Jul 1995 | A |
5440694 | Nakajima | Aug 1995 | A |
5452259 | McLaury | Sep 1995 | A |
5473563 | Suh et al. | Dec 1995 | A |
5473566 | Rao | Dec 1995 | A |
5473577 | Miyake et al. | Dec 1995 | A |
5535357 | Moran et al. | Jul 1996 | A |
5596724 | Mullins et al. | Jan 1997 | A |
5602780 | Diem et al. | Feb 1997 | A |
5636342 | Jeffries | Jun 1997 | A |
5671178 | Park et al. | Sep 1997 | A |
5721840 | Soga | Feb 1998 | A |
5729683 | Le et al. | Mar 1998 | A |
5740379 | Hartwig | Apr 1998 | A |
5761146 | Yoo et al. | Jun 1998 | A |
5771199 | Lee | Jun 1998 | A |
5802006 | Ohta | Sep 1998 | A |
5802399 | Yumoto et al. | Sep 1998 | A |
5806070 | Norman et al. | Sep 1998 | A |
5818785 | Ohshima | Oct 1998 | A |
5828899 | Richard et al. | Oct 1998 | A |
5835935 | Estakhri et al. | Nov 1998 | A |
5859809 | Kim | Jan 1999 | A |
5860080 | James et al. | Jan 1999 | A |
5872994 | Akiyama et al. | Feb 1999 | A |
5937425 | Ban | Aug 1999 | A |
5941974 | Babin | Aug 1999 | A |
5959930 | Sakurai | Sep 1999 | A |
5995417 | Chen et al. | Nov 1999 | A |
6002638 | John | Dec 1999 | A |
6085290 | Smith et al. | Jul 2000 | A |
6091660 | Sasaki et al. | Jul 2000 | A |
6107658 | Itoh et al. | Aug 2000 | A |
6144576 | Leddige et al. | Nov 2000 | A |
6148363 | Lofgren et al. | Nov 2000 | A |
6148364 | Srinivasan et al. | Nov 2000 | A |
6178135 | Kang | Jan 2001 | B1 |
6208556 | Akaogi et al. | Mar 2001 | B1 |
6230233 | Lofgren et al. | May 2001 | B1 |
6295618 | Keeth | Sep 2001 | B1 |
6304921 | Rooke | Oct 2001 | B1 |
6317350 | Pereira et al. | Nov 2001 | B1 |
6317352 | Halbert et al. | Nov 2001 | B1 |
6317812 | Lofgren et al. | Nov 2001 | B1 |
6438064 | Ooishi | Aug 2002 | B2 |
6442098 | Kengeri | Aug 2002 | B1 |
6442644 | Gustavson et al. | Aug 2002 | B1 |
6453365 | Habot | Sep 2002 | B1 |
6456528 | Chen | Sep 2002 | B1 |
6535948 | Wheeler et al. | Mar 2003 | B1 |
6564285 | Mills et al. | May 2003 | B1 |
6584303 | Kingswood et al. | Jun 2003 | B1 |
6594183 | Lofgren et al. | Jul 2003 | B1 |
6601199 | Fukuda et al. | Jul 2003 | B1 |
6611466 | Lee et al. | Aug 2003 | B2 |
6643728 | Crutchfield et al. | Nov 2003 | B1 |
6658509 | Bonella et al. | Dec 2003 | B1 |
6658582 | Han | Dec 2003 | B1 |
6680904 | Kaplan et al. | Jan 2004 | B1 |
6697936 | Johnson | Feb 2004 | B2 |
6715044 | Lofgren et al. | Mar 2004 | B2 |
6717847 | Chen | Apr 2004 | B2 |
6732221 | Ban | May 2004 | B2 |
6754807 | Parthasarathy et al. | Jun 2004 | B1 |
6763426 | James et al. | Jul 2004 | B1 |
6788609 | Yamagami et al. | Sep 2004 | B2 |
6799235 | Bormann et al. | Sep 2004 | B2 |
6807103 | Cavaleri et al. | Oct 2004 | B2 |
6807106 | Gonzales et al. | Oct 2004 | B2 |
6816933 | Andreas | Nov 2004 | B1 |
6850443 | Lofgren et al. | Feb 2005 | B2 |
6853557 | Haba et al. | Feb 2005 | B1 |
6853573 | Kim et al. | Feb 2005 | B2 |
6928501 | Andreas et al. | Aug 2005 | B2 |
6944697 | Andreas | Sep 2005 | B2 |
6950325 | Chen | Sep 2005 | B1 |
6967874 | Hosono | Nov 2005 | B2 |
6978402 | Hirabayashi | Dec 2005 | B2 |
6988154 | Latta | Jan 2006 | B2 |
6996644 | Schoch et al. | Feb 2006 | B2 |
7031221 | Mooney et al. | Apr 2006 | B2 |
7032039 | DeCaro | Apr 2006 | B2 |
7062601 | Becca et al. | Jun 2006 | B2 |
7073010 | Chen | Jul 2006 | B2 |
7073022 | El-Batal et al. | Jul 2006 | B2 |
7086785 | Bates, III | Aug 2006 | B1 |
7111085 | Estakhri et al. | Sep 2006 | B2 |
7111140 | Estakhri et al. | Sep 2006 | B2 |
7123541 | Bell et al. | Oct 2006 | B2 |
7130958 | Chou et al. | Oct 2006 | B2 |
7165153 | Vogt | Jan 2007 | B2 |
7190617 | Harari et al. | Mar 2007 | B1 |
7302517 | Lim et al. | Nov 2007 | B2 |
7308524 | Grundy et al. | Dec 2007 | B2 |
7356639 | Perego et al. | Apr 2008 | B2 |
7475174 | Chow et al. | Jan 2009 | B2 |
7496777 | Kapil | Feb 2009 | B2 |
7506098 | Arcedera et al. | Mar 2009 | B2 |
7515471 | Oh et al. | Apr 2009 | B2 |
7603534 | Roohparvar | Oct 2009 | B2 |
7631162 | Gorobets | Dec 2009 | B2 |
7650459 | Eilert et al. | Jan 2010 | B2 |
7652922 | Kim et al. | Jan 2010 | B2 |
7774537 | Pyeon et al. | Aug 2010 | B2 |
7853749 | Kolokowsky | Dec 2010 | B2 |
7908429 | Pyeon et al. | Mar 2011 | B2 |
8046527 | Pyeon et al. | Oct 2011 | B2 |
8060691 | Pyeon et al. | Nov 2011 | B2 |
8086785 | Pyeon et al. | Dec 2011 | B2 |
20010024386 | Harari et al. | Sep 2001 | A1 |
20010026487 | Koga | Oct 2001 | A1 |
20010045468 | Ikefuji | Nov 2001 | A1 |
20020124129 | Zilberman | Sep 2002 | A1 |
20020161941 | Chue et al. | Oct 2002 | A1 |
20020188781 | Schoch et al. | Dec 2002 | A1 |
20030009612 | Latta | Jan 2003 | A1 |
20030074505 | Andreas et al. | Apr 2003 | A1 |
20040001380 | Becca et al. | Jan 2004 | A1 |
20040019736 | Kim et al. | Jan 2004 | A1 |
20040024960 | King et al. | Feb 2004 | A1 |
20040039854 | Estakhri et al. | Feb 2004 | A1 |
20040148482 | Grundy et al. | Jul 2004 | A1 |
20040199721 | Chen | Oct 2004 | A1 |
20040230738 | Lim et al. | Nov 2004 | A1 |
20040230743 | Ware et al. | Nov 2004 | A1 |
20040256638 | Perego et al. | Dec 2004 | A1 |
20050028057 | Briggs et al. | Feb 2005 | A1 |
20050120157 | Chen et al. | Jun 2005 | A1 |
20050120163 | Chou et al. | Jun 2005 | A1 |
20050160218 | See et al. | Jul 2005 | A1 |
20050166006 | Talbot et al. | Jul 2005 | A1 |
20050207232 | Delfs et al. | Sep 2005 | A1 |
20050213421 | Polizzi et al. | Sep 2005 | A1 |
20050286298 | Hyvonen et al. | Dec 2005 | A1 |
20050289313 | Roohparvar | Dec 2005 | A1 |
20060031593 | Sinclair | Feb 2006 | A1 |
20060050594 | Park | Mar 2006 | A1 |
20060198202 | Erez | Sep 2006 | A1 |
20060224789 | Cho et al. | Oct 2006 | A1 |
20060271605 | Petruzzo | Nov 2006 | A1 |
20070050536 | Kolokowsky | Mar 2007 | A1 |
20070076479 | Kim et al. | Apr 2007 | A1 |
20070076502 | Pyeon et al. | Apr 2007 | A1 |
20070083701 | Kapil | Apr 2007 | A1 |
20070101096 | Gorobets | May 2007 | A1 |
20070109833 | Pyeon et al. | May 2007 | A1 |
20070153576 | Oh et al. | Jul 2007 | A1 |
20070177436 | Davis et al. | Aug 2007 | A1 |
20070233903 | Pyeon | Oct 2007 | A1 |
20070233917 | Pyeon et al. | Oct 2007 | A1 |
20070234071 | Pyeon | Oct 2007 | A1 |
20070288686 | Arcedera et al. | Dec 2007 | A1 |
20080016269 | Chow et al. | Jan 2008 | A1 |
20080028176 | Bartley et al. | Jan 2008 | A1 |
20080049505 | Kim et al. | Feb 2008 | A1 |
20080052449 | Kim et al. | Feb 2008 | A1 |
20080140899 | Oh et al. | Jun 2008 | A1 |
20080155207 | Eilert et al. | Jun 2008 | A1 |
20080205168 | Pyeon et al. | Aug 2008 | A1 |
20100054069 | Shiota et al. | Mar 2010 | A1 |
20100275056 | Pyeon et al. | Oct 2010 | A1 |
20110314206 | Pyeon et al. | Dec 2011 | A1 |
Number | Date | Country |
---|---|---|
1314625 | Sep 2001 | CN |
0952525 | Oct 1999 | EP |
2217056 | Oct 1989 | GB |
04167039 | Jun 1992 | JP |
07014392 | Jan 1995 | JP |
10187549 | Jul 1998 | JP |
2000315185 | Nov 2000 | JP |
0169411 | Sep 2001 | WO |
2005069150 | Jul 2005 | WO |
2008098349 | Aug 2008 | WO |
Entry |
---|
“DDR2 Fully Buffered DIMM 240 Pin FBDIMMs Based on 512 MB C-Die” (RoHS Compliant) Rev. 1.3, 1-32, Sep. 1, 2006. |
Hypertransport TM I/O Link Specification, Revision 2.00b, Document No. HTC20031217-0036-0010, Hyperstransport Technology Consortium, 1-325, Apr. 27, 2005. |
Shirota, R. et al, A 2.3 UM2 Memory Cell Structure for 16MB NAND EEPROMS, International Electron Devices Meeting 1990, Technical Digest; Dec. 1990, 103-106. |
256 M x 8 Bit/ 128M x 16 Bit/512M x 8 Bit NAND Flash Memory, K9K4G08U1M, K9F2G08U0M, K9F2G16U0M, Revision 1.0, 1-41, May 6, 2005. |
Oshima, Y. et al, High-Speed Memory Architectures for Multimedia Applications—Meeting the Requirements of Higher Performance, Circuits and Devices, IEEE 8755-3996/97, 8-13, Jan. 1, 1997. |
1G X 8 Bit/2G X 8 Bit NAND Flash Memory, K9F8G08UXM, Technical Specification, 1-54, Mar. 31, 2007. |
“OneNAND 4G (KFW4G16Q2M-DEB6), OneNAND 2G (KFH2G16Q2M-DEB6, OneNAND 1G (KFW1G16Q2M-DEB6)” Flash Memory, ONENANDTM Specification Ver. 1.2, 1-125, Dec. 23, 2005. |
1G x 8 Bit/2G x 8 Bit/ 4G x 8 Bit NAND Flash Memory, K9XXG08UXA, 1-50, Jul. 18, 2006. |
Tanaka, T. et al, A Quick Intelligent Page-Programming Architecture and Shielded Bitline Sensing Method for 3 V-Only NAND Flash Memory, IEEE Journal of Solid-State Circuits, vol. 29, Issue 11, 1366-1373, Nov. 1, 1994. |
Takeuchi, K. et al, A Multipage Cell Architecture for High-Speed Programming Multilevel NAND Flash Memories, IEEE Journal of Solid-State Circuits, vol. 33, Issue 8, Aug. 1998, 1228-1238. |
“K9XXG08UXM Preliminary Flash Memory” Technical Specification, 1-43, May 3, 2005. |
King, Craig, L. et al, Communicating With Daisy Chained MCP42XXX Digital Potentiometers Microchip AN747, 1-8, Jan. 30, 2001. |
Gjessing, Stein, Performance of the Ramlink Memory Architecture, Proceedings of the Twenty-Seventh Annual Hawaii International Conference on System Sciences, IEEE 1060-3425/94, 154-162, Jan. 1, 1994. |
Suh, K. et al, A 3.3 V 32 MB NAND Flash Memory With Incremental Step Pulse Programming Scheme, IEEE Journal of Solid-State Circuits, vol. 30, No. 11, 1149-1156, Nov. 1, 1995. |
Imamiya, K et al, A 125-MM2 1-GB NAND Flash Memory With 10-Mbyte/S Program Speed, IEEE Journal of Solid-State Circuits, vol. 37, No. 11, 1493-1501, Nov. 1, 2002. |
Lee, June et al, High-Perfomance 1-GB NAND Flash Memory With .012-•m Technology, IEEE Journal of Solid-State Circuits, vol. 37, No. 11, 1502-1509, Nov. 1, 2002. |
Gjessing, S. et al, A RAM Link for High Speed, Special Report/Memory, IEEE Spectrum, 52-53, Oct. 1, 1992. |
Cho, T. et al, A Dual-Mode NAND Flash Memory: 1GB Multilevel and High Performance 512-MB Single-Level Modes, IEEE Journal of Solid-State Circuits, vol. 36, No. 11, 1700-1706, Nov. 1, 2001. |
“Diskonchip H1 4GB (512 Mbyte) and 8 GB (1 Gbyte) High Capacity Flash Disk With NAND and x2 Technology” Data Sheet, Rev. 0.5 (Preliminary), 1-66, Jan. 1, 2005. |
“S70GL01GN00 Mirrobit Flash 1024 Megabit, 3.0 Volt-Only Page Mode Flash Memory Featuring 110 NM Mirrorbit Process Technology”, 1-83, Jun. 1, 2005. |
16 Gbit (2G x 8BIT) CMOS NAND E2PROM (Multi-Level-Cell), TC58NVG4D1DTG00, 1-64, Nov. 9, 2006. |
“2 Mbit Low Voltage Serial Flash Memory With 40MHZ SPI Bus Interface”, 1-40, Aug. 1, 2004. |
Kim, Jae-Kwan et al, “A 3.6GB/S/Pin Simultaneous Bidirectional (SBD) I/O Interface for High-Speed DRAM” ISSCC 2004/Session 22/DSL and Multi-GB/s I/O 22.7, IEEE International Solid-State Circuits Conference, 1-8, Feb. 15, 2004. |
Tal, Arie, “Guidelines for Integrating Diskonchip in a Host System” Application Note, AP-DOC-1004, Rev. 1.0, 1-15, Aug. 1, 2004. |
Kim, J. et al, A 120-MM2 64-MB NAND Flash Memory Archieving 180 NS/Byte Effective Program Speed, IEEE Journal of Solid-State Circuits, vol. 32, No. 5, 670-680, May 1, 1997. |
Tomita, N. et al, A 62-NS 16 MB CMOS EPROMM With Voltage Stress Relaxation Technique, IEEE Journal of Solid-State Circuits vol. 26, No. 11, 1593-1599, Nov. 1, 1991. |
IEEE Standard for High-Bandwidth Memory Interface Based on Scalable Coherent Interface (SCI) Signaling Technology (Ramlink), IEEE STD. 1596.4-1996, The Institute of Electrical Electronics Engineers, Inc., 1-98, Mar. 19, 1996. |
Momodomi, M. et al, A 4MB NAND EEPROMM With Tight Programmed VT Distribution, IEEE Journal of Solid-State Circuits, vol. 26, Issue 4, 492-496, Apr. 1, 1991. |
Gjessing, Stein et al, Ramlink: A High-Bandwidth Point-to-Point Memory Architecture, Proceedings COMPCOM 1992, IEEE 0-8186-2655-0/92, 328-331, Feb. 24, 1992. |
8-Megabit 2.5 Volt Only or 2.7-Volt Only Data Flash, Technical Specification, Rev. 2225H-DFLSH-10/04, AT45DB081B, 1-33, Oct. 1, 2004. |
Jung, T. et al, A 117-MM2 3.3-V Only 128-MB Multilevel NAND Flash Memory for Mass Storage Applications, IEEE Journal of Solid-State Circuits, vol. 31, No. 11, 1575-1583, Nov. 1, 1996. |
“2GBIT (256 X 8 Bits) CMOS NAND E2PROM”, TH58NVG1S3AFT05, Toshiba MOS Digital Integrated Circuit Silicon Gate CMOS, 1-32, May 19, 2003. |
16 Mbit SPI Serial Flash, SST25VF016B, Preliminary Specification, Silicon Storage Technology Inc., 1-28, Apr. 1, 2005. |
High Speed Small Sectored SPI Flash Memory 4M (524,288.8) AT25FS040 Advance Information, 1-23, Sep. 1, 2006. |
Tung, Thomas KC, “International Patent Application No. PCT/CA2008/000219, Search Report”, 1-2, May 8, 2008. |
64 Megabit CMOS 3.0 Volt Flash Memory With 50MHZ SPI (Serial Peripheral Interface) Bus Data Sheet (Preliminary) Publication No. S25FL064A, 1-32, Sep. 6, 2006. |
Lee, June et al, A 90-NM CMOS 1.8-V 2-GB NAND Flash Memory for Mass Storage Applications, IEEE Journal of Solid-State Circuits, vol. 38, No. 11, 1934-1942, Nov. 1, 2003. |
Aritome, S. et al, A Reliable Bi-Polarity Write/Erase Technology in Flash EEPROMS, Int'l. Electron Devices Meeting, Technical Digest, 111-114, Dec. 9, 1990. |
Tanzawa, T. et al, Circuit Techniques for a 1.8-V-Only NAND Flash Memory, IEEE Journal of Solid-State Circuits, vol. 37, No. 1, 84-89, Jan. 1, 2002. |
Hypertransport TM IO Link Specification, Revision 3.00, Document No. HTC20051222-0046-0008, Hyperstransport Technology Consortium, 1-428, Apr. 21, 2006. |
Saito, S. et al, A Programmable 80NS 1MB CMOS EPROM, IEEE ISSCC Digest of Technical Papers, 176-177-340, Feb. 14, 1985. |
Ziaie, Kazem, “International Patent Application No. PCT/CA2007/001428, Search Report”, 1-2, Dec. 6, 2007. |
Takeuchi, K. et al, A 56NM CMOS 99MM2 8GB Multi-Level NAND Flash Memory With 10MB/S Program Throughput,Solid-State Circuits, 2006 IEEE International Conference Digest of Technical Papers, Seesion 7, ISBN:1-4244-0079-1, 10 pages, Feb. 6, 2006. |
Czarik, Damien, “European Search Report for European Patent 07800456.1” Jul. 7, 2009, 1-7, Jul. 1, 2009. |
Byeon, D. et al, An 8GB Multi-Level NAND Flash Memory With 63NM STI CMOS Process Technology, IEEE International Solid-State Circuits Conference, 46-47, Feb. 7, 2005. |
Lee, S. et al, A 3.3V 4GB Four-Level NAND Flash Memory With 90NM CMOS Technology, ISSCC 2004/Session 2Non-Volatile Memory/2.7, IEEE International Solid-State Circuits Conference, Digest of Technical Papers, vol. 1, XPO10722148, ISBN: 0-7803-8267-6, 1-10, Feb. 16, 2004. |
Choi, Young, 16-Gbit MLC NAND Flash Weighs In, eeetimes.com, http://www.eetimes.com/showArticle.jhtmlarticleID=201200825, 1-3, Jul. 30, 2007. |
Kirisawa, R. et al, A NAND Structured Cell With a New Programming Technology for Highly Reliable 5V-Only Flash EEPROM, 1990 Symposium on VLSI Technology, CH 2874-6, 90/0000-0129 1990 IEEE, Honolulu, US, 129-130, Jun. 4, 1990. |
Intel Advanced Boot Block Flash Memory (C3), 28F800C, 28F160C3, 28F320C3(16) Datasheet Product Features Order No. 290645, Revision: 023, 1-72, May 1, 2005. |
Ziaie, Kazem, “International Patent Application No. PCT/CA2007/001428, Search Report”, 62-63, Dec. 6, 2007. |
Samsung Electronics Co. Ltd., 20 x 8BIT NAND Flash Memory. K9GAG08UXM; K9GAG0BU0M 1-48, Sep. 21, 2006. |
Hara, T. et al, A 146-MM2 8-GB Multi-Level NAND Flash Memory With 70-NM CMOS Technology, IEEE Journal of Solid State Circuits, vol. 41, No. 1, Jan. 2006, 161-169. |
Tanzawa, T. et al, A Dynamic Analysis of the Dickson Charge Pump Circuit, IEEE J. Solid-State Circuits, vol. 32, No. 8, Aug. 1997, 1231-1240. |
Ohtsuka, N. et al, A 4-Mbit CMOS EPROM, IEEE Journal of Solid-State Circuits, vol. 22, Issue 5, Oct. 1987, 669-675. |
Samsung Electronics Co. Ltd., 512M x 8 Bit/ 1G x 8 Bit NAND Flash Memory, K9XXG08UXA, 1-43, Mar. 7, 2006. |
Gal, E. et al, “Algorithms and Data Structures for Flash Memories”, ACM Computing Surveys (CSUR), vol. 37, No. 2; Jun. 2005, 138-163. |
Inoue, Atsushi et al, NAND Flash Applications Design Guide, System Solutions From Toshiba America Electronic Components, Inc., Revision 1.0, 1-29, Apr. 1, 2003. |
Kennedy, Joseph et al, “A 2GB/S Point to Point Heterogeneous Voltage Capagle DRAM Interface for Capacity-Scalable Memory Subsystems” ISSCC 2004/ Session 1/ DRAM/ 11.8, IEEE International Solid-State Circuits Conference, 1-10, Feb. 15, 2004. |
Diamond, Steven L., Synclink: High-Speed DRAM for the Future, Micro Standards, IEEE Micro, Dec. 1996, 74-75. |
Hara, T. et al, A 146MM2 8GB NAND Flash Memory With 70NM CMOS Technology, ISSCC Session 2 Non-Volatile Memory 2.1, IEEE International Solid-State Circuits Conference, 44-45 and 584, Feb. 7, 2005. |
Ziaie, Kazem, “International Patent Application No. PCT/US2008/000250, Search Report”, 49-50, Jun. 10, 2008. |
Number | Date | Country | |
---|---|---|---|
20120023286 A1 | Jan 2012 | US |
Number | Date | Country | |
---|---|---|---|
60891115 | Feb 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13022166 | Feb 2011 | US |
Child | 13250301 | US | |
Parent | 12832121 | Jul 2010 | US |
Child | 13022166 | US | |
Parent | 12030235 | Feb 2008 | US |
Child | 12832121 | US |