A non-volatile memory wherein bad columns in the array of memory cells can
be removed is described. Additionally, substitute redundant columns can
replace the removed columns. Both of these processes are performed on the
memory in a manner that is externally transparent and, consequently, need
not be managed externally by the host or controller to which the memory
is attached. An inventory of the bad columns can be maintained on the
memory. At power up, the list of bad columns is used to fuse out the bad
columns. The memory may also contain a number of redundant columns that
can be used to replace the bad columns.