“…The above problem generally appears in proposals that require software intervention when servicing memory requests, such as 1) software handling of cooperative/distributed shared memory [12,16,26,34,44,49,60]; 2) informing memory operations [27] and software techniques for cache-miss handling [8,24,37]; 3) virtual cache hierarchies [9,10,22,33], or intermediate address space [23,25,61,65] designs where virtual memory exceptions are generated in the cache/memory hierarchy; and 4) accelerators that can generate exceptions when executing additional functionality for memory requests performed by the cores [50]. Fortunately, this problem does not apply to accelerators invoked using an explicit request-response programming model [2,35,63,64] where any generated exceptions are treated as interrupts by the cores.…”