Soliman, Muhammad Refaat SedkyPellizzoni, Rodolfo2017-05-012017-05-012017-05-01http://hdl.handle.net/10012/11837In recent years, the real-time community has produced a variety of approaches targeted at managing on- chip memory (scratchpads and caches) in a predictable way. However, to obtain safe Worst-Case Execution Time (WCET) bounds, such techniques generally assume that the processor is stalled while waiting to reload the content of on-chip memory; hence, they are less effective at hiding main memory latency compared to speculation-based techniques, such as hardware prefetching, that are largely used in general-purpose systems. In this work, we introduce a novel compiler-directed prefetching scheme for scratchpad memory that effectively hides the latency of main memory accesses by overlapping data transfers with the program execution. We implement and test an automated program compilation and optimization flow within the LLVM framework, and we show how to obtain improved WCET bounds through static analysis.enLLVMScratchpadPrefetchingReal-timeGenetic algorithmData Scratchpad Prefetching for Real-time SystemsTechnical Report