Affiliation:
1. Computer Systems Laboratory, Stanford University, Stanford, CA
Abstract
This paper describes a superscalar processor that combines the best qualities of static and dynamic instruction scheduling to increase the performance of non-numerical applications. The architecture performs all instruction scheduling statically to take advantage of the compiler's ability to efficiently schedule operations across many basic blocks. Since the conditional branches in non-numerical code are highly data dependent, the architecture introduces the concept of
boosted
instructions, instructions that are committed conditionally upon the result of later branch instructions. Boosting effectively removes the dependencies caused by branches and makes the scheduling of side-effect instructions as simple as those that are side-effect free. For efficiency, boosting is supported in the hardware by
shadow structures
that temporarily hold the side effects of boosted instructions until the conditional branches that the boosted instructions depend upon are executed. When the branch condition is determined, the buffered side effects are either committed or squashed. The limited static scheduler in our evaluation system shows that a 1.6-times speedup over scalar code is achievable by boosting instructions above only a single conditional branch. This performance is similar to the performance of a pure dynamic scheduler.
Publisher
Association for Computing Machinery (ACM)
Reference22 articles.
1. Apollo Computer Inc. Marketing Brochure The Series IO000 Personal Supercomputer. Chelmsford MA 1988. Apollo Computer Inc. Marketing Brochure The Series IO000 Personal Supercomputer. Chelmsford MA 1988.
2. Architecture and compiler tradeoffs for a long instruction wordprocessor
3. A VLIW architecture for a trace scheduling compiler
Cited by
15 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献