290 likes | 442 Views
L10 : Lower Power High Level Synthesis(1). 1999. 8 성균관대학교 조 준 동 교수 http://vada.skku.ac.kr. Low Power Design Flow. Early Analysis Leads to Power Savings. National Semiconductor Success A LAN switch ASIC of 200K gates and 41 memories characterized for state-dependent power.
E N D
L10 : Lower Power High Level Synthesis(1) 1999. 8 성균관대학교 조 준 동 교수 http://vada.skku.ac.kr
Early Analysis Leads to Power Savings National Semiconductor Success A LAN switch ASIC of 200K gates and 41 memories characterized for state-dependent power. DesignPower revealed excessive power consumption by the memories due to redundant read cycles. The RTL was fixed and the power consumption reduced
Module Selection • Select the clock period, choose proper hardware modules for all operations(e.g., Wallace or Booth Multiplier), determine where to pipeline (or where to put registers), such that a minimal hardware cost is obtained under given timing and throughput constraints. • Full pipelining: ineffective clock period mismatches between the execution times of the operators. performing operations in sequence without immediate buffering can result in a reduction of the critical path. • Clustering operations into non-pipelining hardware modules, the reusability of these modules over the complete computational graph be maximized. • During clustering, more expensive but faster hardware may be swapped in for operations on the critical path if the clustering violates timing constraints
High-Level Power Estimation • Pcore = PDP + PMEM + PCNTR + PPROC • PDP = PREG +PMUX +PFU + +PFU, where PREG is the power of the registers • PMUX is the power of multiplexers • PFU is the power of functional units • PINT is the power of physical interconnet capacitance
Estimation • Estimate min and max bounds on the required resources to • delimit the design space min bounds to serve as an initial solution • serve as entries in a resource utilization table which guides the transformation, assignment and scheduling operations • Max bound on execution time is tmax: topological ordering of DFG using ASAP and ALAP • Minimum bounds on the number of resources for each resource class Where NRi: the number of resources of class Ri dRi : the duration of a single operation ORi : the number of operations
High-Level Power Estimation: PREG • Compute the lifetimes of all the variables in the given VHDL code. • Represent the lifetime of each variable as a vertical line from statement i through statement i + n in the column j reserved for the corresponding varibale v j . • Determine the maximum number N of overlapping lifetimes computing the maximum number of vertical lines intersecting with any horizontal cut-line. • Estimate the minimal number of N of set of registers necessary to implement the code by using register sharing. Register sharing has to be applied whenever a group of variables, with the same bit-width b i . • Select a possible mapping of variables into registers by using register sharing • Compute the number w i of write to the variables mapped to the same set of registers. Estimate n i of each set of register dividing w i by the number of statements S: i =wi/S; hence TR imax = n i f clk . • Power of latches and flip flops is consumed not only during output transitions, but also during all clock edges by the internal clock buffers • The non-switching power PNSK dissipated by internal clock buffers accounts for 30% of the average power for the 0.38-micron and 3.3 V operating system. • In total,
PCNTR • After scheduling, the control is defined and optimized by the hardware mapper and further by the logic synthesis process before mapping to layout. • Like interconnect, therefore, the control needs to be estimated statistically. • Global control model: Local control model: the local controller account for a larger percentage of the total capacitance than the global controller. Where Ntrans is the number of tansitions, nstates is the number of states, Bf is the bus factor, and Clc is the capacitance switched in any local controller in one sample period. Bf is the ratio of the number of bus accesses to the number of busses.
Ntrans • The number of transitions depends on assignment, scheduling, optimizations, logic • optimization, the standard cell library used, the amount of glitchings and the statistics of the inputs.
Exploringthe Design Space • Find the minimal area solution constrained to the timing constraints • By checking the critical paths, it determine if the proposed graph violates the timing constraints. If so, retiming, pipelining and tree height reduction can be applied. • After acceptable graph is obtained, the resource allocation process is • initiated. • change the available hardware (FU's, registers, busses) • redistribute the time allocation over the sub-graphs • transform the graph to reduce the hardware requirements. • Use a rejectionless probabilistic iterative search technique (a variant of Simulated Annealing), where moves are always accepted. This approach reduces computational complexity and gives faster convergence.
Behavioral Synthesis • loop unrolling : localize the data to reduce the activity of the inputs of the functional units or two output samples are computed in parallel based on two input samples. Neither the capacitance switched nor the voltage is altered. However, loop unrolling enables several other transformations (distributivity, constant propagation, and pipelining). After distributivity and constant propagation, • The transformation yields critical path of 3, thus voltage can be dropped. • Clock Selection : Choose optimal system clock period Eliminate slacks/improve resource utilization and Enable greater voltage scaling • Module selection : For each operation, choose library template • Flow graph restructuring : pull out operations on the critical cycle.
Longest delayed path from input to output in combinational logic Determine operating clock frequency Resizing non-critical path transistor (In-Place Optimization) Critical path in Synchronous Sequential logic Critical Path
System Partitioning • To decide which components of the system will be realized in hardware and which will be implemented in software • High-quality partitioning is critical in high-level synthesis. To be useful, high-level synthesis algorithms should be able to handle very large systems. Typically, designers partition high-level design specifications manually into procedures, each of which is then synthesized individually. Different partitionings of the high-level specifications may produce substantial differences in the resulting IC chip areas and overall system performance. • To decide whether the system functions are distributed or not. Distributed processors, memories and controllers can lead to significant power savings. The drawback is the increase in area. E.g., a non-distributed and a distributed design of a vector quantizer.
Circuit Partitioning • graph and physical representation
VHDL example process communication control/data flow graph Behavioral description
Clustering Example • Two-cluster Partition • Three-cluster Partition
상위 수준 합성 단계 - 설계 자동화 연구실 -
for(I=0;I<=2;I=I+1begin @(posedge clk); if(fgb[I]%8; begin p=rgb[I]%8; g=filter(x,y)*8; end ............ Control Datapath Memory 상위 수준 합성( High Level Synthesis ) scheduling Memory inferencing Register sharing Control interencing Instructions Operations Variables Arrays signals Operators, Registers, Memory, Multiplexor Control constraints 회로의 동작적 기술 RTL(register transfer level) architecture 상위 수준 합성 - 설계 자동화 연구실 -
High-Level Synthesis • The allocation task determines the type and quantity of resources used in the RTL design. It also determines the clocking scheme, memory hierarchy and pipelining style. To perform the required trade-offs, the allocation task must determine the exact area and performance values. • The scheduling task schedules operations and memory references into clock cycles. If the number of clock cycles is a constraint, the scheduler has to produce a design with the fewest functional units • The binding task assigns operations and memory references within each clock cycle to available hardware units. A resource can be shared by different operations if they are mutually exclusive, i.e. they will never execute simultaneously.
상위 수준 합성 과정 예 - 설계 자동화 연구실 -
상위 레벨에서 제안된 저전력 방법 • Sibling연산의 연산자 공유 [ Fang , 96 ] • 데이타 correlation를 고려한 resource sharing [ Gebotys, 97 ] • FU의 shut down방법(Demand-driven operation) [ Alidina, 94 ] • 연산의 규칙성 이용 [ Rabaey, 96 ] • Dual 전압 사용 [ Sarrafzadeh, 96 ] • Spurious연산의 최소화 [ Hwang, 96 ] • 최소 비용의 흐름 알고리즘을 사용한 스위칭 동작 최소화 + 연결구조 단순화를 통한 캐패시턴스 최소화 [Cho,97] - 설계 자동화 연구실 -
레지스터의 전력 소모 모델 Power(Register) = switching(x)(Cout,Mux+Cin,Register)+switching(y) x (Cout,Register+Cin,DeMux) switching(x)=switching(y)이므로 Power(Register)=switching(y) xCtotal - 설계 자동화 연구실 -
e=a+b; g=c+d; f=e+b; h=f*g; 회로의 CDFG 표현 a b c d +1 +2 e g +3 f *1 h CDFG( control data flow graph ) - 설계 자동화 연구실 -
레지스터와 리소스의 수 결정 a b c d e f g h 1 2 3 4 - 설계 자동화 연구실 -