Browse Prior Art Database

Resource Usage Analysis Method for Statically-scheduled Non-interlocked Pipelined Processors Disclosure Number: IPCOM000016357D
Original Publication Date: 2002-Nov-20
Included in the Prior Art Database: 2003-Jun-21
Document File: 2 page(s) / 43K

Publishing Venue




This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 39% of the total text.

Page 1 of 2

  Resource Usage Analysis Method for Statically-scheduled Non-interlocked Pipelined Processors


A method is described which can be beneficial when used for debuging and visualizing instructions that use multiple resources on a single instruction issue or multiple issue pipelined processor. The method in particular may be used for developing tools to analyze hardware resource utilization of instructions to improve power/performance characteristics of programs, and for checking compiler produced programs for resource contention errors or utilization weaknesses.


A number of hardware resources are required for executing a program on a processor. Each instruction in the program however uses only a subset of the hardware resources available on-chip. The number and type of resources used by an instruction may also change during the lifetime of an instruction in the processor, which usually spans from the time it is fetched from the memory to the time the processor finishes carrying out the all the operations specified by the instruction. In order to maximize the throughput of the processor, often more than one instructions are initiated (or issued) either in the same cycle (instruction-level parallel processing) or prior to the completion of instructions issued in the previous cycles (pipeline processing), provided it can be guaranteed that none of the instructions during their lifetime in the processor try to concurrently use resources used by a different instruction. In an interlocked processor, hardware circuits are used for providing such guarantees required for pa rallel or pipelined execution of one or more instructions. In a non-interlocked processor, it is the responsibility of the programmer or the compiler/tool that generates machine instructions to provide such guarantees using static instruction scheduling techniques.

Writing and debugging programs on statically scheduled non-interlocked processors, especially ones with long exposed pipelines, is quite difficult. One of the difficulties in creating and troubleshooting programs for such architectures comes from the fact that these instructions often have complex resource usage patterns corresponding to non-uniform pipeline structures that have been optimized for parameters such as power and cycle time. Moreover, for the correct execution of the program, the resource reservations made for any instructions must be valid for all possible execution paths in the program. Control flow changes in programs bring up another difficult problem, namely, the merging of the resource requirements from different execution paths without causing conflicts.

It is clear from the above discussion that visualizing the complex resource usage patterns can be a great help to the developers of programming tools such as compilers, and also to the assembly language programmers of statically scheduled non-interlocked processors. In particular, visualization of cyclic resource usage patter...