Mohammad Bakhshalipour, P. Lotfi-Kamran, H. Sarbazi-Azad
{"title":"Domino Temporal Data Prefetcher","authors":"Mohammad Bakhshalipour, P. Lotfi-Kamran, H. Sarbazi-Azad","doi":"10.1109/HPCA.2018.00021","DOIUrl":null,"url":null,"abstract":"Big-data server applications frequently encounter data misses, and hence, lose significant performance potential. One way to reduce the number of data misses or their effect is data prefetching. As data accesses have high temporal correlations, temporal prefetching techniques are promising for them. While state-of-the-art temporal prefetching techniques are effective at reducing the number of data misses, we observe that there is a significant gap between what they offer and the opportunity. This work aims to improve the effectiveness of temporal prefetching techniques. We identify the lookup mechanism of existing temporal prefetchers responsible for the large gap between what they offer and the opportunity. Existing lookup mechanisms either not choose the right stream in the history, or unnecessarily delay the stream selection, and hence, miss the opportunity at the beginning of every stream. In this work, we introduce Domino prefetching to address the limitations of existing temporal prefetchers. Domino prefetcher is a temporal data prefetching technique that logically looks up the history with both one and two last miss addresses to find a match for prefetching. We propose a practical design for Domino prefetcher that employs an Enhanced Index Table that is indexed by just a single miss address. We show that Domino prefetcher captures more than 90% of the temporal opportunity. Through detailed evaluation targeting a quad-core processor and a set of server workloads, we show that Domino prefetcher improves system performance by 16% over the baseline with no data prefetcher and 6% over the state-of- the-art temporal data prefetcher.","PeriodicalId":154694,"journal":{"name":"2018 IEEE International Symposium on High Performance Computer Architecture (HPCA)","volume":"19 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2018-02-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"66","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2018 IEEE International Symposium on High Performance Computer Architecture (HPCA)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/HPCA.2018.00021","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 66
Abstract
Big-data server applications frequently encounter data misses, and hence, lose significant performance potential. One way to reduce the number of data misses or their effect is data prefetching. As data accesses have high temporal correlations, temporal prefetching techniques are promising for them. While state-of-the-art temporal prefetching techniques are effective at reducing the number of data misses, we observe that there is a significant gap between what they offer and the opportunity. This work aims to improve the effectiveness of temporal prefetching techniques. We identify the lookup mechanism of existing temporal prefetchers responsible for the large gap between what they offer and the opportunity. Existing lookup mechanisms either not choose the right stream in the history, or unnecessarily delay the stream selection, and hence, miss the opportunity at the beginning of every stream. In this work, we introduce Domino prefetching to address the limitations of existing temporal prefetchers. Domino prefetcher is a temporal data prefetching technique that logically looks up the history with both one and two last miss addresses to find a match for prefetching. We propose a practical design for Domino prefetcher that employs an Enhanced Index Table that is indexed by just a single miss address. We show that Domino prefetcher captures more than 90% of the temporal opportunity. Through detailed evaluation targeting a quad-core processor and a set of server workloads, we show that Domino prefetcher improves system performance by 16% over the baseline with no data prefetcher and 6% over the state-of- the-art temporal data prefetcher.
大数据服务器应用程序经常会遇到数据丢失,因此会损失巨大的性能潜力。减少数据丢失数量或其影响的一种方法是数据预取。由于数据访问具有较高的时间相关性,因此时间预取技术很有前景。虽然最先进的时间预取技术在减少数据丢失数量方面是有效的,但我们观察到,它们提供的内容与机会之间存在显着差距。本工作旨在提高时间预取技术的有效性。我们确定了现有时间预取器的查找机制,这些机制导致它们提供的内容与机会之间存在巨大差距。现有的查找机制要么不能在历史中选择正确的流,要么不必要地延迟流选择,因此,错过了每个流开始时的机会。在本文中,我们引入Domino预取来解决现有时间预取器的限制。Domino预取器是一种临时数据预取技术,它在逻辑上查找具有最后一个和两个丢失地址的历史记录,以找到用于预取的匹配项。我们为Domino预取器提出了一种实用的设计,该设计使用了一个增强型索引表(Enhanced Index Table),该索引表仅通过一个缺失地址进行索引。我们展示了Domino预取器捕获了超过90%的临时机会。通过针对四核处理器和一组服务器工作负载的详细评估,我们发现Domino预取器比没有数据预取器的基准性能提高了16%,比最先进的临时数据预取器提高了6%。