# HAIPO: Hybrid AI Algorithm-Based Post-Fabrication Optimization for Modern 3D NAND Flash Memory
## 4 HAIPO: Hybrid AI Algorithm-Based Post-Fabrication Optimization
### Rule-Based EA, HAIPO
#### 4.2.2 New Population Generation  
HAIPO generates new populations using three key guidelines that enable efficient finding of optimal parameters across candidates. **Guideline 1. DR: Domain Rules. ** DR specifies the necessary conditions, called _domain rules_, that certain device parameters should not violate in any crossover and mutation process. Domain rules are predefined by experienced engineers using domain-specific knowledge. Based on the NAND flash memory physics, highly correlated device parameters and their effect on reliability/performance are well known. As shown in Section 3, the range of program-related device parameters such as \(\Delta\)V\({}_{\text{FGMP}}\) V\({}_{\text{VFY}i}\) is quite limited in terms of performance and reliability tread-off relationships. For example, if the target tPROG is less than 1 ms, DR can specify that \(\Delta\)V\({}_{\text{FGMP}}\)cannot exceed 50 mV. Therefore, among the populations generated by the EA algorithm, eFuse combinations with \(\Delta\)V\({}_{\text{FGMP}}\)exceeding 50 mV are considered unnecessary populations that cannot be used for optimization and are eliminated from the new population candidates. Similarly, if you remember V\({}_{\text{VFY}i}\) is used for checking a cell's \(V_{th}\) level during each program step, we can easily extract DR for V\({}_{\text{VFY}i}\) that V\({}_{\text{VFY}i}\) must be lower than V\({}_{\text{VFY}i}\) if \(i<j\). In conclusion, DR prevents the scarce real-device measurements from being wasted for unrealistic values that violate the basic  
Figure 8: Overview of optimization process in HAIPO. properties but can be generated by random mutation and crossover. In our HAIPO, we use five key domain rules closely related to \(\sim\)600 device parameters. **Guideline 2. NR: Newborns Ranges. ** NR specifies desired ranges of certain parameters of the new populations, called _newborn ranges_, based on the device parameters of ancestors that record the highest achievement scores. To efficiently implement NR, HAIPO maintains _greatest ancestors list (GAList)_ that stores a fixed number of ancestors with the highest achievement scores until the current iteration. For each device parameter, HAIPO searches the corresponding Min./Max. values in GAList among the ones that satisfy all the related domain rules. It enables the EA to (_i_) avoid generating undesirable values for highly correlated parameters and (_ii_) find near-optimal parameters more rapidly by updating GAList every iteration, which leads to the highest achievement scores (i.e., it _reinforces_ the desired ranges every iteration). Figure 9 shows an example of how HAIPO generates new populations using domain rules and newborn ranges. In this example, HAIPO determines the \(k\)-th device parameter, V\({}_{\text{VFP3}}\), from \(P_{x}\) and \(P_{y}\) that is selected as the parent. HAIPO performs either mutation that generates a random value at a very low probability \(\mu\) or crossover that selects one of the corresponding values from the parent at a probability of (\(1-\mu\)). In both cases, HAIPO identifies all domain rules related to the device parameter, e.g., V\({}_{\text{VFP3}}>\) V\({}_{\text{VFP2}}\). For mutation, HAIPO repeats random number generation until the value meets all the related domain rules (Case 1 in Figure 9). For crossover, HAIPO uses the new value _only if_ the value meets all the related newborn ranges as well as all the related domain rules (Case 2-1). As shown in Figure 9, HAIPO derives a newborn range for V\({}_{\text{VFP3}}\) when V\({}_{\text{VFP2}}=1\) V, e.g., \(1.2\leq\) V\({}_{\text{VFP3}}\leq 2\), based on the Min./Max. values for V\({}_{\text{VFP3}}\) when V\({}_{\text{VFP2}}=1\) V in GAList (Case 2-2). If the new crossover value for V\({}_{\text{VFP3}}\) violates any domain rules and newborn ranges, HAIPO randomly selects a value in the newborn ranges. **Guideline 3. BS: Bayesian Simulation.