• No results found

Introduction to Rank Modulation

In document Coding for Information Storage (Page 146-151)

The most commonly used storage media for computers and data centers has been hard disks for several decades thanks to its low cost and stable performance. However, recently flash memory emerged as a new form of non-volatile storage technology. It has high capacity density, good ran-dom access ability, high power efficiency, and promising scalability. Its market has grown notice-ably because of the development of mobile devices such cell phones, cameras, and tablets. The requirement of lighter and faster hard drives of personal computers also stimulated the research and technology of flash. Moreover, data centers are facing more and more problems of high energy cost, low random access speed, and large space occupancy with hard disks. Therefore besides the vast demand in the consumer products, flash memory is without doubt one of the most prominent substitute of hard disks for industrial products.

However, flash memory has its own disadvantages. Compared to hard disks, it is more costly per storage unit, the programming process is harder to control, and data is more prone to errors during reading and retention. Facing such problems, coding could be one of the solutions. By representing data differently from current state of art, we are able to store more bits on the same flash device, speed up the programming process, and improve data reliability. The main coding technique we are going to discuss in this part of the thesis is rank modulation.

In flash memories, floating-gate cells use their charge levels to store data [BG07] (See Figure 8.1). For higher capacity, multi-level cells (MLCs) with an increasing number of levels are being developed. To increase a cell level, charge is injected into the cell by the Fowler-Nordheim tunneling mechanism or the hot-electron injection mechanism. To erase a cell, tunnel release mechanism is performed on a whole block (typically 512K cells). Moreover, to lower any cell level, one must erase a whole cell block and reprogram them starting at the lowest level. Block erasure not only costs time and energy, also decreases the lifetime of a device. This asymmetric property caused by

Figure 8.1: A flash memory cell.

block erasure is a prominent feature of flash memories and presents a bottleneck of flash memories in terms of speed and reliability.

Since lowering cell levels is very expensive, the programming process is iterative to avoid over-injection, as we have seen in Figure 1.6. Therefore, writing data requires many programming cycles, and each cell can only support a certain number of levels so that adjacent levels are distinguishable.

In addition, multi-level cells may suffer more data errors compared to single-level ones, due to their higher requirement on cell-level resolution. In particular, charge leakage, or threshold level drift in aging cells will cause erroneous data.

Rank modulation is a new information representation scheme that uses the relative order of cell levels to represent data [JMSB09]. Physical realizations were recently presented in [KPT12] and also in [PPM+11] for phase-change memory based on the same idea. Givenm cells with different levels, we can induce a permutation of lengthm from them and use each permutation to represent a message. Therefore, a group of m cells can store log2(m!) bits of information. For example, suppose we havem=5 cells and their charge levels are(1.5, 5.2, 0.3, 4.9, 7.8). Notice here all the levels are analog instead of discrete, as in the traditional method. Then the highest cell is 5, and the second highest is2, and so on. The induced permutation is (5, 2, 4, 1, 3)and in total we can represent120 messages using 5 cells.

To write a permutation, we can program the lowest cell first, and then the second lowest cell, and so on. Over-injection is no longer a problem because we can always inject more electrons into the higher cells so as to obtain the relative order. As a result, the writing can be completed in a much smaller number of cycles. When level drift occurs, the stored information will be intact as long as the induced permutation is unchanged. Besides, combined with some error-correction techniques rank modulation can detect and correct errors. Another advantage of rank modulation

is that we can correct the errors by injecting more electrons to corresponding cells and no block erasure is necessary. Moreover, since we can take analog values as cell levels, it is possible to fit in more levels in each cell given that different levels are distinguishable. Hence rank modulation may effectively store more information per cell compared to conventional schemes even though it has the constraint that all cells have distinct levels.

Given the charge levels of a group of flash cells, sorting is used to induce a permutation, which in turn represents data. Motivated by the lower sorting complexity of smaller cell groups, we propose bounded rank modulationin Chapter 9, where a sequence of permutations of given sizes is used to represent data. In particular, we require that the permutation size is smaller than the sequence size, and the maximum possible levels a cell can support is upper bounded by a constant. For example, suppose we have a total of8 cells and the maximum possible levels is 6. Then we can for simplicity write charge levels as integers{1, 2, . . . , 6}. Further suppose the permutation size is4. The charge levels of these cells(1, 2, 3, 4, 5, 6, 2, 3)can represent two permutations:(4, 3, 2, 1)and(2, 1, 4, 3)if we group the first four and the last four cells separately. But we can also induce three permutations:

(4, 3, 2, 1),(4, 3, 2, 1),(2, 1, 4, 3) if we group the first, the middle, and last four cells. In other words, we can use a sliding window of size four, such that every adjacent two windows overlap by two cells. An interesting observation is that if we allow overlap, then a sequence contains more groups of permutations but at the same time satisfies more constraints (cells in each permutation are distinct and overlapped ranks should be consistent). Therefore, we study the capacity, or the amount of information per cell, of bounded rank modulation under the condition that permutations can overlap by a certain amount.

In Chapter 10 we propose partial rank modulation, where only a subset of cells in a permutation represents information. More specifically, we only utilize a certain number of the top cells and leave the rest as redundancy. This scheme also reduces decoding complexity, and at the same time keeps independency of different permutations. For example, if we only compare the top 2 cells out of a group of5, the cell levels(1.5, 5.2, 0.3, 4.9, 7.8)will result in a partial permutation (5, 2,|4, 1, 3). The ordering of the cells4, 1, 3 does not carry information. In total we can represent 20 messages. Hence partial rank modulation gains low complexity with the sacrifice of capacity.

We will construct Gray codes on such partial permutations, which is a sequence of permutations, such that every partial permutation appears exactly once and the transition between two adjacent permutations satisfies certain constraints. One possible constraint is that the highest cell level is only increased by a small amount, so that we can write many times before we reach the limit and

erase a block. It is easy to construct a counter from a Gray code. Then viewing a group of physical cells as one logical cell, we can obtain a large number of levels in a single cell. Applying other flash codes where only a small number of levels is increased during each rewrite, we can store information in flash memory with low cost. A related notion in combinatorics is called universal cycle, and each partial permutation appears as a subsequence in this cycle exactly once. We will discuss this problem starting from the universal cycles, and then show that Gray codes and universal cycles are equivalent. Our construction in fact solves an open problem of universal cycles.

Errors can be caused by charge leakage, which is a long-term factor causing the retention prob-lem. Writing and reading disturbances also result in the change of cell levels. An error-correction code enables reliable storage of data by introducing redundant cells. In Chapter 11 we discuss the model of errors in rank modulation, namely, an error occurs when the level of one cell changes and two adjacent elements in the permutation exchange. For instance, if the level of cell5 in permu-tation (5, 2, 4, 1, 3)drops between cells2 and 4, we get a swap: (2, 5, 4, 1, 3). We say there is an error in this permutation. Such an error model is reasonable if the change of cell levels is gradual instead of dramatic. We proposet-error-correction codes based on t-ary error-correction codes on Hamming distances. We are able to construct 1-error-correcting rank modulation codes with half the size of the sphere-packing bound.

There has been a number of recent works using the information-theoretic approach to develop new storage schemes for flash memories. Coding techniques are studied for the traditional absolute-value information representations. Related to Gray codes mentioned above, the first set of work is on coding schemes for rewriting data [BJB07] [FLM08] [JBB07] [JB08] [YVSW08] [YSVW12], where the main idea is to write new message on top of old message. The challenge is that one can only increase levels, and the decoding is independent of previous messages. This idea can be traced back to write-once-memory decades ago [RS82] designed for punch cards and optical disks.

Additionally, codes for correcting limited-magnitude errors [CSBB10] considered the problem of having specific kinds of errors in multi-level cells due to the fact that small-magnitude errors are more probable than large ones.

There are also a lot of work on relative-value information representation schemes for flash mem-ories. Besides rank modulation [JMSB09], its variations consider the case of comparing a small number of cells [EGLSB11] which is similar to bounded rank modulation but does not consider the constraint of finite levels in a cell, as well as allowing multiple cells to have identical lev-els [EGJB12]. Error-correction for rank modulation for adjacent transposition (two adjacent levlev-els

get exchanged) was studied first in [JSB10,JSB08], recently [BM10] derived the capacity for the full range of minimum distance between codewords, and systematic codes were proposed in [ZJB12].

Translocation errors were studied in [FSM12] where an error means dropping the rank of one cell by a certain amount, and [TS10] studied limited-magnitude errors under the infinity norm for rank modulation.

Chapter 9

In document Coding for Information Storage (Page 146-151)