# A Scalable Bidimensional Randomization Scheme for TLC 3D NAND Flash Memories
## 2 Background
### Randomizers Based on LFSRs
The feedback function depends on the presence/absence of the XOR (at least one must be present). Preset signals for register initialization are not shown. The autonomous property indicates that no input is present, so that once initialized in any state but all zeros, the cycling diagrams depend only on the feedback function. The same ALFSR is used to randomize data for all pages in a block by changing its Seed for each page. The different Seeds can be picked from an LUT and then stored in a table, or generated internally by manipulating the page address, depending on the strategy adopted by the memory manufacturer. Unfortunately, this technique, even if providing a relatively good randomization for data stored in a page, fails at guaranteeing a good vertical data randomization along the bitline. To illustrate the problem, Table 1 shows the sequences generated by a 4-bit ALFSR considering \(N_{B}=N_{P}=15\), obtained by randomly picking the initial Seed. As can be seen in the 4 th column, all ones and all zeros are clustered, confirming that, whereas ALFSRs can be conveniently used to randomize data in the horizontal direction, no statistical predictions can be drawn when looking at a single bitline. To analyze the problem in real cases, we performed simulations using a 32-bit ALFSR considering \(N_{P}=256\) pages, each of \(N_{B}=2^{17}\) cells (i.e., 16 kB). Two procedures have been selected to determine the ALFSR's Seeds: in the former, each Seed is a linear manipulation (\(7*p+1\)) of the page address \(p\); in the latter, each Seed is picked randomly among all the \(2^{32}-1\) possibilities. Figure 4 shows, for the two cases, the frequency of the maximal length of zeros per bitline. Similar results are expected for ones. It must be noted that, in the first case, we observe more than 128 consecutive zeros along the bitline, thus resulting in potential reliability issues for the 3D NAND Flash memory. Figure 5 shows the distributions of the probabilities of zeros in a bitline for the two cases. Once again, we observe that the first case is critical since there are some bitlines where the number of ones and zeros is strongly unbalanced. When the ALFSR Seeds are mathematically derived from the address page, the probability of producing a specific maximum length cluster shows a discrete spectrum: in particular, in 85 bitlines, all data are zeros. On the contrary, with the set of randomly selected Seeds used in this case, no clusters longer than the ALFSR length are found. However, it can be verified that, since the probability of zeros in a bitline shows a Gaussian-like distribution, the length of zero runs, and the probability of zeros per bitline may range over all their possible values. \begin{table}
\begin{tabular}{c c c c c c c c c c c c c c} \hline \hline
1 & 0  
However, since generally \(N_{P}\ll 2^{k}-1\), it is possible to simulate the behavior of an ALFSR considering a random Seed for each page and repeat the simulation until a set of \(N_{P}\) Seeds is found to guarantee, for each bitline, a number of zeros close to 50% and a predefined maximum length of clusters of consecutive ones or zeros. Then, these Seeds can be stored in an LUT integrated either on-chip or off-chip in the storage controller. Unfortunately, the quality of the set of Seeds depends on \(N_{P}\) and on \(N_{B}\) so that the procedure determining a good set of Seeds must be repeated from scratch when considering a different memory architecture. To explore the impact of random seeds selection, we randomly generated 10,000 sets, each of them containing 256 random seeds. Each set is used to feed the initial states of a 32-bit ALFSR that is used to write an array of \(N_{P}\times B=256\times 2^{17}\) cells (i.e., 16 kB). For each of these 10,000 arrays, we extracted some worst case statistical parameters, namely: (i) the maximal length of consecutive zeros (ones); (ii) the maximal number of zeros (ones) in a bitline. In case (i), Figure 6a shows the number of arrays featuring a given maximal length.