Article
To read the full-text of this research, you can request a copy directly from the author.

Abstract

The expected write deficiency of the index-less indexed flash codes (ILIFC) is studied. ILIFC is a coding scheme for flash memory, and consists of two stages with different coding techniques. This study investigates the write deficiency of the first stage of ILIFC, and shows that omitting the second stage of ILIFC can be a practical option for realizing flash codes with good average performance. To discuss the expected write deficiency of ILIFC, a random walk model is introduced as a formalization of the behavior of ILIFC. Based on the random walk model, two different techniques are developed to estimate the expected write deficiency. One technique requires some computation, but gives very precise estimation of the write deficiency. The other technique gives a closed-form formula of the write deficiency under a certain asymptotic scenario.

No full-text available

Request Full-text Paper PDF

To read the full-text of this research,
you can request a copy directly from the author.

... Suzuki considered to improve the expected performance of IL-IFC, and applied the Markov chain formalization of Ref. [2] in their analysis [13]. The formalization contributes to estimate the expected performance of ILIFC with small parameters, though, the approach seems not scalable because we need to construct and analyze a Markov model whose size is exponential in N. Kaji modeled the behavior of ILIFC as a multi-token cyclic randomwalk model, and clarified the expected performance of ILIFC in a uniform writing scenario in which it is assumed that K data bits are selected by write operations with an equal probability [6]. ...
... The contribution of this study is to relax the assumption in Ref. [6], and to extend the discussion in Ref. [6] to a non-uniform writing scenario. In many applications of data processing, data to be handled is not homogeneous. ...
... The contribution of this study is to relax the assumption in Ref. [6], and to extend the discussion in Ref. [6] to a non-uniform writing scenario. In many applications of data processing, data to be handled is not homogeneous. ...
Article
A random-walk model is investigated and utilized to analyze the performance of a coding scheme that aims to extend the lifetime of flash memory. Flash memory is widely used in various products today, but the cells that constitute flash memory wear out as they experience many operations. This issue can be mitigated by employing a clever coding scheme that is known as a flash code. The purpose of this study is to establish a well-defined random-walk model of a flash code that is known as an index-less indexed flash code (ILIFC), and clarify the expected performance of ILIFC. Preliminary study has been made by the author for a simplified model of data operation, and the contribution of this study is to extend the model of data operation to more general and practical one. Mathematical properties of the random-walk model is reconsidered, and useful properties are derived that help analyzing the performance of ILIFC both in non-asymptotic and asymptotic scenarios.
... In papers such as [3,4,6], they discuss on lowering the worst-case write deficiency of flash codes. Other papers such as [2,5] discuss the importance of constructing flash code that has a low write deficiency in the average-case scenario. Both scenarios are equally important. ...
... If we regard that the h-th segment is allocated when E[X t (h 1)(q 1)+1 ] 1, then (5) defines a certain relation between t and h. Figure 5 shows the growth of the number of segments obtained from (5), and that gathered from computer simulations for DMFC-6 and SS-only encoding. We can see that the recursive relation (5) accounts for the number of segments used in DMFC. ...
Chapter
Full-text available
This paper proposes a novel coding scheme which can extend the lifespan of flash memory. Flash memory has a number of advantages against conventional storage devices, but it must be noted that the flash cells which constitute a flash memory accommodate, not a small, but limited number of operations only. A flash code provides a clever way to represent data values in flash memory so that the number of operations over flash cells becomes as small as possible, and this contributes to extend the lifespan of flash memory. Several flash codes have been studied so far, and this paper proposes a novel coding scheme which makes use of two different modes of encoding. Computer simulation shows that the proposed coding scheme shows much better average-case performance than existing codes. Besides the computer simulation, the paper also gives detailed analysis of the performance which justifies the advantage of the proposed code from a more theoretical viewpoint.
... ILIFC. The popular scheme known as Indexless Indexed Flash Code, proposed by Mahdavifar et al. [7], implemented a novel approach to encoding the information vector in an erase block without incurring an additional overhead needed to store the indices [12]. ILIFC accomplished this using the following technique. ...
Article
Full-text available
Flash codes are used to encode and decode digital information in flash memory. One of the more well-known flash codes in literature is the Layered Indexless Indexed Flash Code (LILIFC). This study explores how to improve the performance of the LILIFC while staying true to its core. A new flash code is proposed, called the Layered Indexless Indexed Flash Code with Absorption (LILIFCWA), which introduces sub-block absorption to the LILIFC encoding function while retaining the original decoding function. Results from computer simulation showed marked improvements gained by LILIFCWA, with lower write deficiency ratios over variable flash memory sub-block sizes. An interesting correlation between the (LILIFCWA versus LILIFC) performance difference and cases involving a dominant bit update was also uncovered. These findings not only prove the superiority of the LILIFCWA over the LILIFC, but may also provide ideas to other researchers on how to improve other existing flash codes.
Article
A novel flash code is proposed, and shown to have good average-case performance through computer simulation. The proposed code utilizes dynamic segments which are allocated in an erase block of a flash memory. A segment consists of one or more slices which have 2 cells. A segment is dynamic in the sense that it can be expanded to accommodate as many write operations as possible, and the expansion contributes to assign more number of cells to more frequently written bits. The average write deficiency of the code is evaluated by computer simulation, and shown to have better performance than ILIFC which was proposed by Mahdavifar et al. This result suggests that we can accommodate more data in a fixed-size erase block, and, allow longer life-time cycle of flash memory products.
Article
Novel flash codes with small average write deficiency are proposed. A flash code is a coding scheme for avoiding the wearing of cells in flash memory. One approach to develop flash codes with large parameters is to make use of slices which are small groups of cells. Preliminary study shows that using small slices brings several favorable characteristics, but naive use of small slices induces a certain overhead. In this study, a new structure which is called a cluster is devised to develop a good slice-based flash code. Two different slice encoding schemes are used in a cluster, which decreases the overhead of using small slices while retaining its advantage. The proposed flash codes show much smaller write deficiency compared to another slice-based flash code.
Conference Paper
With slice-based flash code, the smaller the size slice the more flexible it is to distribute cells among the bits and leave less unused levels. However, smaller size slices comes with a small overhead and it some cases worsen its efficiency. To get around this issue, this paper introduces a new technique called resizable- cluster method. This technique allows a cluster, a sequence of slices, to grow by acquiring adjacent empty slices. By integrating this technique to a slice-based flash code, it is able utilize the advantage of small size slices while minimizing the effect of any overhead.
Conference Paper
Full-text available
Flash memory is a non-volatile computer memory comprised of blocks of cells, wherein each cell can take on q different values or levels. While increasing the cell level is easy, reducing the level of a cell can be accomplished only by erasing an entire block. Since block erasures are highly undesirable, coding schemes - known as floating codes or flash codes - have been designed in order to maximize the number of times that information stored in a flash memory can be written (and re-written) prior to incurring a block erasure. An (n, k, t)q flash code ¿ is a coding scheme for storing k information bits in n cells in such a way that any sequence of up to t writes (where a write is a transition 0 ¿ 1 or 1 ¿ 0 in any one of the k bits) can be accommodated without a block erasure. The total number of available level transitions in n cells is n(q-1), and the write deficiency of ¿, defined as ¿(¿) = n(q-1)-t, is a measure of how close the code comes to perfectly utilizing all these transitions. For k > 6 and large n, the best previously known construction of flash codes achieves a write defficiency of O(qk2). On the other hand, the best known lower bound on write deficiency is ¿(qk). In this paper, we present a new construction of flash codes that approaches this lower bound to within a factor logarithmic in k. To this end, we first improve upon the so-called ¿indexed¿ flash codes, due to Jiang and Bruck, by eliminating the need for index cells in the Jiang-Bruck construction. Next, we further increase the number of writes by introducing a new multi-stage (recursive) indexing scheme. We then show that the write defficiency of the resulting flash codes is O(qk log k) if q ¿ log2 k, and at most O(k log2 k) otherwise.
Article
Full-text available
We explore a novel data representation scheme for multi-level flash memory cells, in which a set of n cells stores information in the permutation induced by the different charge levels of the individual cells. The only allowed charge-placement mechanism is a "push-to-the-top" operation which takes a single cell of the set and makes it the top-charged cell. The resulting scheme eliminates the need for discrete cell levels, as well as overshoot errors, when programming cells. We present unrestricted Gray codes spanning all possible n-cell states and using only "push-to-the-top" operations, and also construct balanced Gray codes. We also investigate optimal rewriting schemes for translating arbitrary input alphabet into n-cell states which minimize the number of programming operations.
Conference Paper
Floating codes are codes designed to store multiple values in a write asymmetric memory, with applications to flash memory. In this model, a memory consists of a block of n cells, with each cell in one of q states {0,1, . . ., q - 1}. The cells are used to represent k variable values from an lscr -ary alphabet. Cells can move from lower values to higher values easily, but moving any cell from a higher value to a lower value requires first resetting the entire block to an all 0 state. Reset operations are to be avoided; generally a block can only experience a large but finite number of resets before wearing out entirely. A code here corresponds to mapping from cell states to variable values, and a transition function that gives how to rewrite cell states when a variable is changed. Previous work has focused on the developing codes that maximize the worst-case number of variable changes, or equivalently cell rewrites, that can be experienced before resetting. In this paper, we introduce the problem of maximizing the expected number of variable changes before resetting, given an underlying Markov chain that models variable changes. We demonstrate that codes designed for expected performance can differ substantially from optimal worst-case codes, and suggest constructions for some simple cases.