发明名称 Speculative prefetching of remote data
摘要 A profiler may identify potentially-independent remote data accesses in a program. A remote data access is independent if value returned from said remote data access is not computed from another value returned from another remote data access appearing logically earlier in the program. A program rewriter may generate a program-specific prefetcher that preserves the behavior of the program, based on profiling information including the potentially-independent remote data accesses identified by the profiler. An execution engine may execute the prefetcher and the program concurrently. The execution engine may automatically decide which of said potentially-independent remote data accesses should be executed in parallel speculatively. A shared memory shared by the program and the prefetcher stores returned data from a data source as a result of issuing the remote data accesses.
申请公布号 US9292446(B2) 申请公布日期 2016.03.22
申请号 US201213645032 申请日期 2012.10.04
申请人 International Business Machines Corporation 发明人 Raman Arun;Vechev Martin;Wegman Mark N.;Yahav Eran;Yorsh Greta
分类号 G06F15/167;G06F12/08;G06F9/52 主分类号 G06F15/167
代理机构 Scully, Scott, Murphy & Presser, P.C. 代理人 Scully, Scott, Murphy & Presser, P.C. ;Percello, Esq. Louis J.
主权项 1. A method for speculative prefetching of remote data, comprising: receiving a program to execute on a processor; generating a prefetcher specific to the program that preserves the program's behavior; executing the program; concurrently executing the prefetcher with the program, including automatically identifying at runtime one or more remote data accesses that returned value not computed from another value returned from another remote data access appearing logically earlier in the program and deciding when to start and stop speculative prefetching; and storing, locally in a shared data structure shared by the program and the prefetcher, returned data from a data source as a result of issuing a remote request to said one or more remote data accesses, wherein executions of the program and the prefetcher are overlapped in a pipelined fashion, wherein tasks of the prefetcher are executed by multiple threads in parallel, the tasks implemented in a task queue that assigns higher priority to logically earlier tasks.
地址 Armonk NY US