A Unified Approach to Cancel Memory Instructions Early
Report, 2010

Execution efficiency of memory instructions remains critically important. To this end, a plethora of techniques aims to cancel load and store requests as soon as they are issued to the first-level cache. This paper unifies the diversity of approaches that cancel memory instructions early by contributing with a novel architectural scheme. Prior to that, we introduce the notion of silent loads to generalize the loads that can be satisfied by the already available values of the physical register file and contribute with a new architectural concept to cancel such loads early. We then show that our unified approach covers the techniques of cancelling (1) forwarded loads that obtain values through load-to-load and store-to-load forwarding, (2) small value loads that return small values (coded with 8 bits or less) and (3) silent loads. We find that 22%, 31% and 24% of all dynamic loads can be classified as forwarded, small value and silent, respectively. We demonstrate that the prevalence of such loads is mostly inherent in applications rather than an artifact of compilers. More importantly, we establish that a hypothetical scheme encompasses all the categories to eliminate as many as 42% of all dynamic loads. Finally, we contribute with a novel architectural technique to implement the unified scheme without compiler support and ISA extension. Our technique provides a geometric mean speedup of 13% with low complexity added. We show that our technique substantially reduces the overall energy dissipation and memory traffic.

silent store

small value load

silent load

small-value locality

forwarded load


Mafijul Islam

Chalmers, Computer Science and Engineering (Chalmers)

Per Stenström

Chalmers, Computer Science and Engineering (Chalmers)

Subject Categories

Computer Engineering

Technical report - Department of Computer Science and Engineering, Chalmers University of Technology and Göteborg University: 2010:08

More information