Font Size: a A A

Pipeline descriptions for retargetable compilers

Posted on:2003-10-19Degree:Ph.DType:Thesis
University:University of VirginiaCandidate:Milner, Christopher WhitnerFull Text:PDF
GTID:2461390011485091Subject:Computer Science
Abstract/Summary:
Pipelines are a fundamental component of most modern processors. Despite pipelines' ubiquity and importance in achieving high performance, little attention has been paid to mechanisms for specifying pipeline operation. Typically, architects use resource vectors to describe the processor's pipeline. Resource vectors compactly encode the relevant information about resource usage of individual instructions, but usually must be handwritten on an instruction-by-instruction basis for the machine's complete instruction set. Consequently, they are tedious to write and subject to logic, interpretation, and transcription errors.; It is the thesis of this research that writing low-level pipeline descriptions, such as resource vectors, is the wrong approach for describing pipelines. This dissertation describes pipeline graphs, an intuitive, innovative formalism of instructions flowing through a processors data path. The pipeline graph formalism serves as a basis for pipe, a simple, intuitive language for describing pipelines. The dissertation also describes the implementation of plunge, a tool for processing pipe descriptions. Using innovative compiler technology, plunge processes pipe programs and automatically generates the low-level resource vectors required by instruction schedulers, pipeline simulators, and automated design tools. Together, pipeline graphs, the pipe language, and the plunge compiler-compiler-compiler combine to give the compiler writer a system for quickly producing pipeline resource vectors for today's complex processors.
Keywords/Search Tags:Pipeline, Resource vectors, Processors, Descriptions
Related items