发明名称 HARDWARE PREFETCHER FOR INDIRECT ACCESS PATTERNS
摘要 Two techniques address bottlenecking in processors. The first is indirect prefetching. The technique can be especially useful for graph analytics and sparse matrix applications. For graph analytics and sparse matrix applications, the addresses of most random memory accesses come from an index array B which is sequentially scanned by an application. The random accesses are actually indirect accesses in the form A[B[i]]. A hardware component is introduced to detect this pattern. The hardware can then read B a certain distance ahead, and prefetch the corresponding element in A. For example, if the “prefetch distance” is k, when B[i] is accessed, the hardware reads B[i+k], and then A[B[i+k]. For partial cacheline accessing, the indirect accesses are usually accessing random memory locations and only accessing a small portion of a cacheline. Instead of loading the whole cacheline into L1 cache, the second technique only loads a part of the cacheline.
申请公布号 US2016188476(A1) 申请公布日期 2016.06.30
申请号 US201414582348 申请日期 2014.12.24
申请人 INTEL CORPORATION 发明人 YU Xiangyao;HUGHES Christopher J.;SATISH Nadathur Rajagopalan
分类号 G06F12/08;G06F9/30 主分类号 G06F12/08
代理机构 代理人
主权项 1. A processor comprising: a microcontroller to find a stream pattern; indirect access detection logic to detect one or more indirect memory access patterns; and indirect prefetcher logic to read an array a distance ahead, and prefetch a corresponding element in a memory.
地址 SANTA CLARA CA US