{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T04:31:30Z","timestamp":1750221090459,"version":"3.41.0"},"reference-count":26,"publisher":"Association for Computing Machinery (ACM)","issue":"4","license":[{"start":{"date-parts":[[2018,10,10]],"date-time":"2018-10-10T00:00:00Z","timestamp":1539129600000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"DOI":"10.13039\/100000001","name":"NSF","doi-asserted-by":"publisher","award":["1117895"],"award-info":[{"award-number":["1117895"]}],"id":[{"id":"10.13039\/100000001","id-type":"DOI","asserted-by":"publisher"}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Archit. Code Optim."],"published-print":{"date-parts":[[2018,12,31]]},"abstract":"<jats:p>Data prefetching, which intelligently loads data closer to the processor before demands, is a popular cache performance optimization technique to address the increasing processor-memory performance gap. Although prefetching concepts have been proposed for decades, sophisticated system architecture and emerging applications introduce new challenges. Large instruction windows coupled with out-of-order execution makes the program data access sequence distorted from a cache perspective. Furthermore, big data applications stress memory subsystems heavily with their large working set sizes and complex data access patterns. To address such challenges, this work proposes a high-performance hardware prefetching scheme, SelSMaP. SelSMaP is able to detect both regular and nonuniform stride patterns by taking the minimum observed address offset (called a reference stride) as a heuristic. A stride masking is generated according to the reference stride and is to filter out history accesses whose pattern can be rephrased as uniform stride accesses. Prefetching decision and prefetch degree are determined based on the masking outcome. As SelSMaP prediction logic does not rely on the chronological order of data accesses or program counter information, it is able to unveil the effect of out-of-order execution and compiler optimization. We evaluated SelSMaP with CloudSuite workloads and SPEC CPU2006 benchmarks. SelSMaP achieves an average CloudSuite performance improvement of 30% over nonprefetching systems. With one to two orders of magnitude less storage and much less functional logic, SelSMaP outperforms the highest-performing prefetcher by 8.6% in CloudSuite workloads.<\/jats:p>","DOI":"10.1145\/3274650","type":"journal-article","created":{"date-parts":[[2018,10,10]],"date-time":"2018-10-10T13:30:46Z","timestamp":1539178246000},"page":"1-21","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":2,"title":["SelSMaP"],"prefix":"10.1145","volume":"15","author":[{"ORCID":"https:\/\/orcid.org\/0000-0002-2654-0609","authenticated-orcid":false,"given":"Jiajun","family":"Wang","sequence":"first","affiliation":[{"name":"Department of Electrical and Computer Engineering, University of Texas at Austin, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Reena","family":"Panda","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, University of Texas at Austin, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]},{"given":"Lizy K.","family":"John","sequence":"additional","affiliation":[{"name":"Department of Electrical and Computer Engineering, University of Texas at Austin, USA"}],"role":[{"role":"author","vocabulary":"crossref"}]}],"member":"320","published-online":{"date-parts":[[2018,10,10]]},"reference":[{"key":"e_1_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/125826.125932"},{"key":"e_1_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1807128.1807152"},{"key":"e_1_2_1_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.395402"},{"key":"e_1_2_1_4_1","doi-asserted-by":"publisher","DOI":"10.1109\/71.494633"},{"volume-title":"The 1st JILP Data Prefetching Championship (DPC-1).","key":"e_1_2_1_5_1"},{"volume-title":"The 2nd Data Prefetching Championship (DPC-2).","key":"e_1_2_1_6_1"},{"volume-title":"2009 IEEE 15th International Symposium on High Performance Computer Architecture. 7--17","author":"Ebrahimi E.","key":"e_1_2_1_7_1"},{"key":"e_1_2_1_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2248487.2150982"},{"volume-title":"Proceedings the 25th Annual International Symposium on Microarchitecture (MICRO 25)","author":"Fu J. W. C.","key":"e_1_2_1_9_1"},{"key":"e_1_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2006.32"},{"key":"e_1_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1145\/1006209.1006211"},{"key":"e_1_2_1_12_1","first-page":"1","article-title":"Access map pattern matching for high performance data cache prefetch","volume":"13","author":"Ishii Y.","year":"2011","journal-title":"Journal of Instruction-Level Parallelism"},{"key":"e_1_2_1_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2370816.2370837"},{"key":"e_1_2_1_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/384286.264207"},{"key":"e_1_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/325164.325162"},{"key":"e_1_2_1_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/279358.279404"},{"volume-title":"Proceedings of the 13th International Conference on Parallel Architecture and Compilation Techniques","year":"2004","author":"Nesbit K. J.","key":"e_1_2_1_17_1"},{"key":"e_1_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.1109\/MM.2005.6"},{"key":"e_1_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/191995.192014"},{"volume-title":"IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201917)","author":"Panda R.","key":"e_1_2_1_20_1"},{"volume-title":"2014 IEEE 20th International Symposium on High Performance Computer Architecture (HPCA\u201914)","author":"Pugsley S. H.","key":"e_1_2_1_21_1"},{"key":"e_1_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/384265.291034"},{"key":"e_1_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2830772.2830793"},{"key":"e_1_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISCA.2006.38"},{"volume-title":"2017 IEEE International Symposium on Performance Analysis of Systems and Software (ISPASS\u201917)","author":"Wang J.","key":"e_1_2_1_25_1"},{"volume-title":"IEEE 20th International Symposium on High Performance Computer Architecture (HPCA). 488--499","author":"Wang L.","key":"e_1_2_1_26_1"}],"container-title":["ACM Transactions on Architecture and Code Optimization"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3274650","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3274650","content-type":"application\/pdf","content-version":"vor","intended-application":"syndication"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3274650","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T00:57:55Z","timestamp":1750208275000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3274650"}},"subtitle":["A Selective Stride Masking Prefetching Scheme"],"short-title":[],"issued":{"date-parts":[[2018,10,10]]},"references-count":26,"journal-issue":{"issue":"4","published-print":{"date-parts":[[2018,12,31]]}},"alternative-id":["10.1145\/3274650"],"URL":"https:\/\/doi.org\/10.1145\/3274650","relation":{},"ISSN":["1544-3566","1544-3973"],"issn-type":[{"type":"print","value":"1544-3566"},{"type":"electronic","value":"1544-3973"}],"subject":[],"published":{"date-parts":[[2018,10,10]]},"assertion":[{"value":"2018-03-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-08-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2018-10-10","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}