# Study of Register Value Branch Predictor Based on CNN
## 2 Recent Branch Predictor Developments  
The representation of traditional network branch predictors in recent years is the variants of the TAGE predictor. The TAGE predictor uses the idea of the previous PPM-like predictor design [8]. It contains two tables; one is a bimodal [3] table indexed with a pc, and  
Figure 1: Structure of the CNN neural network branch predictor with the addition of the register value channel. the other table combines multiple columns which are indexed by using different lengths of history hashed with a pc. Since TAGE was proposed, most of the research on improving TAGE predictors focused on the additional prediction module. The structure of the representative TAGE-SC-L predictor [5] is shown in Figure 2, which contains a TAGE predictor as the main part, supplemented with a static error corrector, plus a loop predictor. When a prediction is to be made, the results of each part are combined in order to give the most possible result. The BATAGE [9] predictor proposed in 2018 modified the TAGE predictor by using a new state transfer register called a dual-counter and proposing a new prediction and updating algorithm for this transfer register, which improves the accuracy of the TAGE predictor. It provides new ideas and directions for research on the TAGE predictor. [PERSON] [10] et al. reported a new design of branch predictor for non-volatile processors; their work reduced backup costs while maintaining prediction ability. At the beginning of this century, [PERSON] proposed a perceptron branch predictor model based on a single-layer perceptron network [11; 12]. Since machine learning and deep learning had wide usages in fields such as image video language from 2016, researchers  
Figure 2: (**a**) shows TAGE-SC-L predictor [5] and (**b**) shows the main tage predictor’s structure. have also tried to introduce deep learning into branch prediction. [PERSON] [13; 14] first explored branch prediction based on a deep confidence network (DBN), and the author also tried to apply some common convolutional neural network (CNN) structures to branch predictors. [PERSON] [15] reported a neural predictor based on the parallel structure of the SRNN. [PERSON] [7] proposed the BranchNet predictor on the basis of previous research on CNN neural network branch predictors. It absorbed the TAGE predictor's characteristics of multiple history paths and took offline training as the main strategy, which was used for optimizing H2P branch prediction. The author found that BranchNet has better prediction accuracy for branches that are difficult to predict perfectly with the TAGE predictor after experiments; it is also demonstrated that the offline-trained model also has good prediction results when facing first-encountered branches. The authors also propose a simplified neural network and a new convolutional computational mechanism for hardware deployment. [PERSON] [16] et al. proposed a hybrid branch predictor design by combining a global branch prediction strategy with Learning Vector Quantization (LVQ). The authors continued optimizing the LVQ branch predictor [17] by applying the backpropagation algorithm to the branch prediction domain. [PERSON] [18] et al. proposed a hybrid predictor design by combining the BATAGE predictor with a neural network predictor. He also designed a runahead mechanism for the data-dependent branches. [PERSON] [19] et al. addressed the problem of large input size of the neural network branch predictor. He applied Weightless Neural Networks (WNNs) to the branch predictor and achieved a neural network predictor with small inputs. In general, the development of traditional branch predictors represented by the TAGE has slowed down in recent years. Thanks to the development of neural network research, many studies on neural network branch predictors have been published recently, but most of these are only attempts to apply various types of neural networks to branch prediction, lacking in-depth research and optimization of the network.