Computer engineering researchers have developed new software and hardware designs that should limit programming errors and improve system performance in devices that use non-volatile memory technologies.