TY - JOUR
T1 - Increasing the size of atomic instruction blocks using control flow assertions
AU - Patel, Sanjay J.
AU - Tung, Tony
AU - Bose, Satarupa
AU - Crum, Matthew M.
N1 - Copyright:
Copyright 2017 Elsevier B.V., All rights reserved.
PY - 2000
Y1 - 2000
N2 - For a variety of reasons, branch-less regions of instructions are desirable for high-performance execution. In this paper, we propose a means for increasing the dynamic length of branch-less regions of instructions for the purposes of dynamic program optimization. We call these atomic regions frames and we construct them by replacing original branch instructions with assertions. Assertion instructions check if the original branching conditions still hold. If they hold, no action is taken. If they do not, then the entire region is undone. In this manner, an assertion has no explicit control flow. We demonstrate that using branch correlation to decide when a branch should be converted into an assertion results in atomic regions that average over 100 instructions in length, with a probability of completion of 97%, and that constitute over 80% of the dynamic instruction stream. We demonstrate both static and dynamic means for constructing frames. When frames are built dynamically using finite sized hardware, they average 80 instructions in length and have good caching properties.
AB - For a variety of reasons, branch-less regions of instructions are desirable for high-performance execution. In this paper, we propose a means for increasing the dynamic length of branch-less regions of instructions for the purposes of dynamic program optimization. We call these atomic regions frames and we construct them by replacing original branch instructions with assertions. Assertion instructions check if the original branching conditions still hold. If they hold, no action is taken. If they do not, then the entire region is undone. In this manner, an assertion has no explicit control flow. We demonstrate that using branch correlation to decide when a branch should be converted into an assertion results in atomic regions that average over 100 instructions in length, with a probability of completion of 97%, and that constitute over 80% of the dynamic instruction stream. We demonstrate both static and dynamic means for constructing frames. When frames are built dynamically using finite sized hardware, they average 80 instructions in length and have good caching properties.
UR - http://www.scopus.com/inward/record.url?scp=0034461965&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=0034461965&partnerID=8YFLogxK
U2 - 10.1109/MICRO.2000.898080
DO - 10.1109/MICRO.2000.898080
M3 - Article
AN - SCOPUS:0034461965
SN - 1072-4451
SP - 303
EP - 313
JO - Proceedings of the Annual International Symposium on Microarchitecture
JF - Proceedings of the Annual International Symposium on Microarchitecture
ER -