We discuss a topological method of storing and retrieving information from flash memory. We first present a sensing method where the threshold voltage level, as represented by a sensing time, is extracted in one sensing cycle. The sense time distribution from one set of flash cells, e.g. one physical row, is then processed in software to decode the digital state of each cell. The decoding method uses topological constraints but no rigid or predetermined voltage thresholds to digitize the distribution. The software defined nature of the topologically defined flash (TDF) allows greater flexibility for allocating cells to arbitrary number of digital states.