{"title":"CBSP:相关分支序列的预测器:一种减少分支预测表中混叠的方法","authors":"Thierry Haquin, Christine Rochange, P. Sainrat","doi":"10.1163/1574040053326307","DOIUrl":null,"url":null,"abstract":"All current processors are using branch prediction in order to better exploit the pipeline. Branch prediction is based on limited size tables and thus several branches are sharing the same entry which is made of a simple 2-bit counter. This is called aliasing. Aliased branch predictors are subject to destructive interferences and removing them by the addition of a tag identifying precisely a branch to a 2-bit counter is prohibitive. An entry of our prediction table is made of several counters which predict a sequence of consecutive correlated branches and not only one. Thus, a tag can be added to an entry at a lower cost since the tag is shared by several branches. Each time a sequence is retrieved in the prediction table, it provides several predictions. An annex tagless predictor is solicited when a sequence is not found in the sequence table. Collisions are avoided in the sequence table but, to achieve a misprediction rate as low as the one of the current uptodate predictors, several tables should be used, each table being indexed through a different branch history length. Among the predictions provided by the sequences, a priority mechanism selects the most accurate i.e.the one provided by the table with the longest history. Finally, having tagged entries allows us to implement an intelligent system that dynamically adapts the branch history lengths according to the applications.","PeriodicalId":101169,"journal":{"name":"Soft Computing Letters","volume":"57 1","pages":"15-29"},"PeriodicalIF":0.0000,"publicationDate":"2005-03-06","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"CBSP: A Predictor of Sequences of Correlated Branches: A Way to Reduce Aliasing in Branch Prediction Tables\",\"authors\":\"Thierry Haquin, Christine Rochange, P. Sainrat\",\"doi\":\"10.1163/1574040053326307\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"All current processors are using branch prediction in order to better exploit the pipeline. Branch prediction is based on limited size tables and thus several branches are sharing the same entry which is made of a simple 2-bit counter. This is called aliasing. Aliased branch predictors are subject to destructive interferences and removing them by the addition of a tag identifying precisely a branch to a 2-bit counter is prohibitive. An entry of our prediction table is made of several counters which predict a sequence of consecutive correlated branches and not only one. Thus, a tag can be added to an entry at a lower cost since the tag is shared by several branches. Each time a sequence is retrieved in the prediction table, it provides several predictions. An annex tagless predictor is solicited when a sequence is not found in the sequence table. Collisions are avoided in the sequence table but, to achieve a misprediction rate as low as the one of the current uptodate predictors, several tables should be used, each table being indexed through a different branch history length. Among the predictions provided by the sequences, a priority mechanism selects the most accurate i.e.the one provided by the table with the longest history. Finally, having tagged entries allows us to implement an intelligent system that dynamically adapts the branch history lengths according to the applications.\",\"PeriodicalId\":101169,\"journal\":{\"name\":\"Soft Computing Letters\",\"volume\":\"57 1\",\"pages\":\"15-29\"},\"PeriodicalIF\":0.0000,\"publicationDate\":\"2005-03-06\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Soft Computing Letters\",\"FirstCategoryId\":\"1085\",\"ListUrlMain\":\"https://doi.org/10.1163/1574040053326307\",\"RegionNum\":0,\"RegionCategory\":null,\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"\",\"JCRName\":\"\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Soft Computing Letters","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1163/1574040053326307","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
CBSP: A Predictor of Sequences of Correlated Branches: A Way to Reduce Aliasing in Branch Prediction Tables
All current processors are using branch prediction in order to better exploit the pipeline. Branch prediction is based on limited size tables and thus several branches are sharing the same entry which is made of a simple 2-bit counter. This is called aliasing. Aliased branch predictors are subject to destructive interferences and removing them by the addition of a tag identifying precisely a branch to a 2-bit counter is prohibitive. An entry of our prediction table is made of several counters which predict a sequence of consecutive correlated branches and not only one. Thus, a tag can be added to an entry at a lower cost since the tag is shared by several branches. Each time a sequence is retrieved in the prediction table, it provides several predictions. An annex tagless predictor is solicited when a sequence is not found in the sequence table. Collisions are avoided in the sequence table but, to achieve a misprediction rate as low as the one of the current uptodate predictors, several tables should be used, each table being indexed through a different branch history length. Among the predictions provided by the sequences, a priority mechanism selects the most accurate i.e.the one provided by the table with the longest history. Finally, having tagged entries allows us to implement an intelligent system that dynamically adapts the branch history lengths according to the applications.