Defective memory block remapping method and system, and memory device and processor-based system using same
First Claim
1. A method of addressing a memory device having blocks of non-volatile memory cells, the method comprising:
- keeping a record of the respective addresses of all blocks of memory cells in the memory device that are non-functional;
receiving a block address corresponding to a block of the memory cells;
using the received block address as a comparison block address;
when the block address is received, comparing the comparison block address with the block addresses in the kept record, the block addresses in the kept record being compared to the comparison block address in order from a lowest address to a highest address;
for a block address in the kept record that is found by the comparison to be lower than or equal to the comparison block address, adding to the comparison block address a number corresponding to size of the non-functional block to provide an output block address; and
using the output block address to address the memory device.
8 Assignments
0 Petitions
Accused Products
Abstract
A non-volatile memory device includes a block remapping system that offsets an input block address by the addresses of non-functional blocks to provide an output block address that is used to address the memory device. The system generates the output block addresses by, in effect, adding to the input block address the addresses of all non-functional blocks of memory that are between an initial address and the output block address. The system performs this function be comparing the input block address to the address of any defective block. If the address of the defective block is less than or equal to the input block address, the addresses of all defective blocks starting at the block address are added to the input block address. The system then iteratively performs this process using each output block address generated by the system in place of the input block address.
19 Citations
44 Claims
-
1. A method of addressing a memory device having blocks of non-volatile memory cells, the method comprising:
-
keeping a record of the respective addresses of all blocks of memory cells in the memory device that are non-functional; receiving a block address corresponding to a block of the memory cells; using the received block address as a comparison block address; when the block address is received, comparing the comparison block address with the block addresses in the kept record, the block addresses in the kept record being compared to the comparison block address in order from a lowest address to a highest address; for a block address in the kept record that is found by the comparison to be lower than or equal to the comparison block address, adding to the comparison block address a number corresponding to size of the non-functional block to provide an output block address; and using the output block address to address the memory device. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of addressing a memory device having blocks of non-volatile memory cells, the method comprising:
-
keeping a record of the respective block addresses of all blocks of memory cells in the memory device that are non-functional; receiving a block address corresponding to a block of the memory cells; providing an output block address corresponding to the sum of the received block address and the sum of addresses corresponding to the sizes of any and all non-functional blocks of memory cells having respective block addresses in the kept record that are lower than or equal to the output block address; and using the output block address to address the memory device. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A block remapping system for a non-volatile memory device having memory cells arranged in blocks each of which is associated with a respective block address, the system comprising:
-
a storage device containing a record of the address of each block of memory cells that is non-functional; a first comparator coupled to the storage device, the first comparator being configured to compare a received block address with at least some of the block addresses contained in the storage device, the first comparator being operable to compare the received block address with the block addresses contained in the storage device in order from a lowest address to a highest address; a first adder coupled to receive the received block address and being operable to receive a block size value corresponding to the size of each non-functional block having a respective address contained in the storage device, the first adder being configured to add to the received block address the block size value corresponding to any block having a block address found by the first comparator to be smaller than or equal to the received block address; an output device coupled to the first adder and being configured to provide as an output block address the block addresses added by the adder. - View Dependent Claims (12, 13, 14, 15, 16)
-
-
17. A block remapping system for a non-volatile memory device having memory cells arranged in blocks each of which is associated with a respective block address, the system comprising:
-
a storage device containing a record of the block address and a block size value for each block of memory cells that is non-functional, each of the block address contained in the storage device being associated with a respective index value, the index numbers being assigned to the block addresses in order from a lowest index number associated with a lowest block address to a highest index number associated with a highest block address; a counter coupled to the storage device and being configured to provide the index numbers to the storage device responsive to being incremented; a first comparator coupled to receive the index values from the counter and being operable to generate a first comparison signal responsive to determining that the index value is an initial index value; a first multiplexer having a first input coupled to receive an input block address and a second input coupled to receive an output block address, the first multiplexer being configured to output the input block address responsive to the first comparison signal and to otherwise output the output block address; an adder coupled to the storage device and the output of the first multiplexer, the adder being configured to generate a sum address corresponding to the sum of the block address at the output of the first multiplexer and a block size value received from the storage device; a second comparator coupled to receive the block address at the output of the first multiplexer and the block address from the storage device and being operable to generate a second comparison signal responsive to determining that the block address at the output of the first multiplexer is less than a block address received from the storage device; and a second multiplexer having a first input coupled to receive the sum address from the adder and a second input coupled to the output of the first multiplexer, the second multiplexer being configured to output as the output block address the block address at the output of the first multiplexer responsive to the second comparison signal and to otherwise output the sum address. - View Dependent Claims (18, 19, 20)
-
-
21. A non-volatile memory device, comprising:
-
a signal bus; a bus interface operable to receive signals from the signal bus indicative of a memory command and a memory address, the bus interface further being operable to receive signals from the signal bus corresponding to write data and to output signals to the signal bus indicative of read data; an array of non-volatile memory cells arranged in blocks each of which is associated with a respective block address; a control logic unit coupled to the bus interface and the array of non-volatile memory cells, the control logic being operable to carry out operations in the array corresponding to a memory command at a location in the array corresponding to a memory address; a storage device containing a record of the address of each block of memory cells that is non-functional; a first comparator coupled to the storage device, the first comparator being configured to compare a received block address with at least some of the block addresses contained in the storage device, the first comparator being operable to compare the received block address with the block addresses contained in the storage device in order from a lowest address to a highest address; a first adder coupled to receive the received block address and being operable to receive a block size value corresponding to the size of each non-functional block having a respective address contained in the storage device, the first adder being configured to add to the received block address the block size value corresponding to any block having a block address found by the first comparator to be smaller than or equal to the received block address; an output device coupled to the first adder and being configured to provide as an output block address the block addresses added by the adder. - View Dependent Claims (22, 23, 24, 25, 26, 27)
-
-
28. A non-volatile memory device, comprising:
-
a signal bus; a bus interface operable to receive signals from the signal bus indicative of a memory command and a memory address, the bus interface further being operable to receive signals from the signal bus corresponding to write data and to output signals to the signal bus indicative of read data; an array of non-volatile memory cells arranged in blocks each of which is associated with a respective block address; a control logic unit coupled to the bus interface and the array of non-volatile memory cells, the control logic being operable to carry out operations in the array corresponding to a memory command at a location in the array corresponding to a memory address; a block remapping system, the system comprising; a storage device containing a record of the block address and a block size value for each block of memory cells that is non-functional, each of the block address contained in the storage device being associated with a respective index value, the index numbers being assigned to the block addresses in order from a lowest index number associated with a lowest block address to a highest index number associated with a highest block address; a counter coupled to the storage device and being configured to provide the index numbers to the storage device responsive to being incremented; a first comparator coupled to receive the index values from the counter and being operable to generate a first comparison signal responsive to determining that the index value is an initial index value; a first multiplexer having a first input coupled to receive an input block address and a second input coupled to receive an output block address, the first multiplexer being configured to output the input block address responsive to the first comparison signal and to otherwise output the output block address; an adder coupled to the storage device and the output of the first multiplexer, the adder being configured to generate a sum address corresponding to the sum of the block address at the output of the first multiplexer and a block size value received from the storage device; a second comparator coupled to receive the block address at the output of the first multiplexer and the block address from the storage device and being operable to generate a second comparison signal responsive to determining that the block address at the output of the first multiplexer is less than a block address received from the storage device; and a second multiplexer having a first input coupled to receive the sum address from the adder and a second input coupled to the output of the first multiplexer, the second multiplexer being configured to output as the output block address the block address at the output of the first multiplexer responsive to the second comparison signal and to otherwise output the sum address. - View Dependent Claims (29, 30, 31, 32)
-
-
33. A processor-based system, comprising:
-
a processor operable to process data and to provide memory commands and addresses; an input device coupled to the processor; an output device coupled to the processor; and a non-volatile memory device, comprising; a signal bus; a bus interface operable to receive signals from the signal bus indicative of a memory command and a memory address, the bus interface further being operable to receive signals from the signal bus corresponding to write data and to output signals to the signal bus indicative of read data; an array of non-volatile memory cells arranged in blocks each of which is associated with a respective block address; a control logic unit coupled to the bus interface and the array of non-volatile memory cells, the control logic being operable to carry out operations in the array corresponding to a memory command at a location in the array corresponding to a memory address; a storage device containing a record of the address of each block of memory cells that is non-functional; a first comparator coupled to the storage device, the first comparator being configured to compare a received block address with at least some of the block addresses contained in the storage device, the first comparator being operable to compare the received block address with the block addresses contained in the storage device in order from a lowest address to a highest address; a first adder coupled to receive the received block address and being operable to receive a block size value corresponding to the size of each non-functional block having a respective address contained in the storage device, the first adder being configured to add to the received block address the block size value corresponding to any block having a block address found by the first comparator to be smaller than or equal to the received block address; an output device coupled to the first adder and being configured to provide as an output block address the block addresses added by the adder. - View Dependent Claims (34, 35, 36, 37, 38, 39)
-
-
40. A processor-based system, comprising:
-
a processor operable to process data and to provide memory commands and addresses; an input device coupled to the processor; an output device coupled to the processor; and a non-volatile memory device, comprising; a signal bus; a bus interface operable to receive signals from the signal bus indicative of a memory command and a memory address, the bus interface further being operable to receive signals from the signal bus corresponding to write data and to output signals to the signal bus indicative of read data; an array of non-volatile memory cells arranged in blocks each of which is associated with a respective block address; a control logic unit coupled to the bus interface and the array of non-volatile memory cells, the control logic being operable to carry out operations in the array corresponding to a memory command at a location in the array corresponding to a memory address; a block remapping system, the system comprising; a storage device containing a record of the block address and a block size value for each block of memory cells that is non-functional, each of the block address contained in the storage device being associated with a respective index value, the index numbers being assigned to the block addresses in order from a lowest index number associated with a lowest block address to a highest index number associated with a highest block address; a counter coupled to the storage device and being configured to provide the index numbers to the storage device responsive to being incremented; a first comparator coupled to receive the index values from the counter and being operable to generate a first comparison signal responsive to determining that the index value is an initial index value; a first multiplexer having a first input coupled to receive an input block address and a second input coupled to receive an output block address, the first multiplexer being configured to output the input block address responsive to the first comparison signal and to otherwise output the output block address; an adder coupled to the storage device and the output of the first multiplexer, the adder being configured to generate a sum address corresponding to the sum of the block address at the output of the first multiplexer and a block size value received from the storage device; a second comparator coupled to receive the block address at the output of the first multiplexer and the block address from the storage device and being operable to generate a second comparison signal responsive to determining that the block address at the output of the first multiplexer is less than a block address received from the storage device; and a second multiplexer having a first input coupled to receive the sum address from the adder and a second input coupled to the output of the first multiplexer, the second multiplexer being configured to output as the output block address the block address at the output of the first multiplexer responsive to the second comparison signal and to otherwise output the sum address. - View Dependent Claims (41, 42, 43, 44)
-
Specification