Digital Signal Processing Reference
In-Depth Information
Before releasing an assembly instruction set, it should be evaluated via in-
struction set benchmarking. In processor design, benchmark is a type of program
designed to measure the performance of a processor in a particular application.
Benchmarking is the execution of such a program to allow processor users to
evaluate the processor performance and the cost.
Benchmarking methods and benchmark scores of DSP processors can be found
at BDTI [ 6 ] . More general benchmarking knowledge is available at EEMBC [ 7 ] .
To support benchmarking, programming tools including compilers, assemblers, and
instruction set simulators should be developed. Toolchain design and programming
technique for benchmarking will be discussed later in this chapter.
After benchmarking and the instruction set release, the architecture can be
designed. The inputs for architecture design are the assembly instruction set manual,
the early architecture proposal, and the requirements on performance and costs. The
output of the architecture level design is the architecture specification documents.
The architecture design of a processor is a specification of the high level hardware
modules (the datapath including RF, ALU, and MAC, the control path, bus system
and memory subsystem), and interconnections between the top level hardware
modules. During architecture design, function allocation to modules and scheduling
of functions between modules is performed. The bandwidth and latency of busses is
analyzed during the architecture design.
The inputs of microarchitecture design are the architecture specification, the
assembly instruction manual, and knowledge of the selected silicon technology.
The output of the processor microarchitecture design is the description of the bit
accurate and cycle accurate implementation of hardware modules (such as ALU, RF,
MAC, and control path) and inter-module connections for further RTL coding of the
processor. As a document used in ASIP design flow, the output of microarchitecture
design is the input for RTL coding of the processor.
During architecture design, functional modules are specified and the imple-
mentation of each functional module was not mentioned. It means that in the
architecture level design, functional modules are usually treated as black boxes, in
microarchitecture design, missing details in each module will be specified.
Microarchitecture design in general is to specify the implementation of func-
tional modules in detail. Microarchitecture design includes function partition,
allocation, connection, scheduling, and integration. Optimization of timing critical
paths and minimization of power consumption will be specified during microarchi-
tecture design.
Processor microarchitecture design, in particular, is to implement functions of
each assembly instruction into involved hardware modules. It includes:
￿
The partitioning of each instruction into micro operations.
￿
The allocation of each micro operation to hardware modules.
￿
Scheduling of each micro operation into different pipeline stages.
￿
Performance optimization.
￿
Cost minimization.
Search WWH ::




Custom Search