©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of...
-
Upload
dina-francis -
Category
Documents
-
view
218 -
download
0
description
Transcript of ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of...
![Page 1: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/1.jpg)
©Alex Doboli 2006
Performance Improvement through Customization
Alex Doboli, Ph.D.Department of Electrical and Computer Engineering
State University of New York at Stony BrookEmail: [email protected]
![Page 2: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/2.jpg)
©Alex Doboli 2006
Overview of the Chapter
• Design methods for optimizing the system performance through architecture customization to the application characteristics
• Design methodology for execution time speedup of time critical applications
• Considered architecture: one processor and one co-processor• Steps: specification, profiling, identification of performance-
critical blocks, functional partitioning, hardware-software partitioning, hardware resource allocation, mapping to resources, scheduling
• PSoC programmable blocks supporting customization:– Programmable digital blocks– Blocks with dedicated functionality: PWM, MAC, Decimator
![Page 3: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/3.jpg)
©Alex Doboli 2006
Application Specific Customization
• Design methods for optimizing the system performance through architecture customization to the application characteristics
• A block (Subroutine) is critical with respect to performance P, if P changes significantly with the modification of the block – Customization to reduce the system execution time
• Related design steps: – Profiling – Selecting the blocks in HW – Finding the nature of the used HW circuits – Implementing the system
![Page 4: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/4.jpg)
©Alex Doboli 2006
Implementing the System
• Layered implementation for reusability:– Circuit layer– Low-level firmware layer: ISR, drivers, physical addresses &
data (bits, registers)– High-level firmware level (API):used in applications, symbolic
names, abstract data– Application layer
![Page 5: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/5.jpg)
©Alex Doboli 2006
Design tasks
• Architectures with single CPU and associated coprocessors: – Critical parts are implemented as dedicated coprocessors– Tasks:
• Hardware-software partitioning• Hardware resource allocation
• Architectures with single CPU and shared coprocessors:– Critical parts share hardware (lower cost, some performance
loss)– Tasks:
• Hardware-software partitioning• Hardware resource allocation• Binding (mapping) of blocks to hardware• Scheduling
![Page 6: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/6.jpg)
©Alex Doboli 2006
Design tasks
• Architectures with multiple CPUs and shared coprocessors:– Multimedia, image processing, telecommunications– Tasks:
• Hardware-software partitioning• Allocating CPUs• Allocating interconnect structure• Hardware resource allocation• Binding (mapping) of critical blocks to hardware• Mapping software to CPUs• Mapping data communications to interconnect• Scheduling• Etc.
![Page 7: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/7.jpg)
©Alex Doboli 2006
Design Flow
![Page 8: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/8.jpg)
©Alex Doboli 2006
Discussed Design Methodology
Related design tasks:• Specification and performance profiling• Hardware-software partitioning• Hardware resource allocation• Binding (mapping) of critical blocks to hardware• Scheduling
![Page 9: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/9.jpg)
©Alex Doboli 2006
Processor-Coprocessor Architecture
![Page 10: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/10.jpg)
©Alex Doboli 2006
Data Intensive Application
Application characteristics:– Data dominated: large number of computations– Known number of loop iterations– Iterations are uncorrelated or with few correlations (can be
eliminated through transformations)
![Page 11: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/11.jpg)
©Alex Doboli 2006
Array Organization in Memory
• Two dimensional arrays are stored at consecutive memory addresses
A[m][n] is at index i = m x SZ + n• Assumption: data length = memory word length (e.g., one byte
for PSoC)
![Page 12: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/12.jpg)
©Alex Doboli 2006
Profiling
• Related Steps:– Produce assembly code
• More precise determination of execution time & memory requirements (code & data)
• Can be done statically
– Functional partitioning• Hardware related code re-organization• Code organized as blocks, where each block is a well-
defined HW circuit
– Find the performance critical blocks • Find system performance sensitivity with respect to the
individual blocks
![Page 13: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/13.jpg)
©Alex Doboli 2006
Block Structure
![Page 14: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/14.jpg)
©Alex Doboli 2006
Refined Block Structure
![Page 15: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/15.jpg)
©Alex Doboli 2006
Customized Hardware
![Page 16: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/16.jpg)
©Alex Doboli 2006
Customized Hardware
• Hardware for Blocks 10-1 and 11-1:
![Page 17: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/17.jpg)
©Alex Doboli 2006
Customized Hardware
• Data path for Blocks 10-1 and 11-1
![Page 18: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/18.jpg)
©Alex Doboli 2006
Customized Hardware
• Controller circuits for Blocks 10-1 and 11-1
![Page 19: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/19.jpg)
©Alex Doboli 2006
Controller
![Page 20: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/20.jpg)
©Alex Doboli 2006
Customized Hardware
• Controller circuit •for Blocks 10-1 and 11-1
![Page 21: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/21.jpg)
©Alex Doboli 2006
Counter Functionality
![Page 22: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/22.jpg)
©Alex Doboli 2006
Data Flow Graph
![Page 23: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/23.jpg)
©Alex Doboli 2006
Scheduling
![Page 24: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/24.jpg)
©Alex Doboli 2006
Programmable Digital Blocks
![Page 25: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/25.jpg)
©Alex Doboli 2006
Programmable Digital Block
![Page 26: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/26.jpg)
©Alex Doboli 2006
Programmable Digital Block
Programmable digital block inputs:
• DATA (primary input): RI (4 bits) – connections to GPIO, DB RO (4 bits) Broadcast: BCROW (4 rows) ACMP (comparator outputs) Input of the previous block High, Low
• AUX (auxiliary input):
RI (4 bits)
• PO (primary output): RO (4 bits) GOO GOE
![Page 27: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/27.jpg)
©Alex Doboli 2006
Programmable Digital Block
Programmable digital block inputs:
• AO (auxiliary output): RO (4 bits)
• CLK (separate for each digital block):SYSCLKX2CLK32VC1, VC2, VC3 BroadcastRI RO Low, High CLK of previous digital block
![Page 28: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/28.jpg)
©Alex Doboli 2006
Programmable Digital Blocks
• Related registers:
• Data: DR0, DR1, DR2
• Function: CR0, FN
• Inputs: IN
• Outputs: OU
• Interrupts: INT
• Functions: timer, counter, deadband, CRC
![Page 29: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/29.jpg)
©Alex Doboli 2006
Related Registers: registers DRx
• Related registers: DR0, DR1, DR2
Register DBB00 DBB01 DCB02 DCB03
DR0 0,20H 0,24H 0,28H 0,2CH
DR1 0,21H 0,25H 0,29H 0,2DH
DR2 0,22H 0,26H 0,2AH 0,2EH
![Page 30: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/30.jpg)
©Alex Doboli 2006
Related Registers: registers DRx
• Related registers: DR0, DR1, DR2
Register DBB10 DBB11 DCB12 DCB13
DR0 0,30H 0,34H 0,38H 0,3CH
DR1 0,31H 0,35H 0,39H 0,3DH
DR2 0,32H 0,36H 0,3AH 0,3EH
![Page 31: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/31.jpg)
©Alex Doboli 2006
Related Registers: registers DRx
• Related registers: DR0, DR1, DR2
Register DBB20 DBB21 DCB22 DCB23
DR0 0,40H 0,44H 0,48H 0,4CH
DR1 0,41H 0,45H 0,49H 0,4DH
DR2 0,42H 0,46H 0,4AH 0,4EH
![Page 32: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/32.jpg)
©Alex Doboli 2006
Related Registers: registers DRx
• Related registers: DR0, DR1, DR2
Register DBB30 DBB31 DCB32 DCB33
DR0 0,50H 0,54H 0,58H 0,5CH
DR1 0,51H 0,55H 0,59H 0,5DH
DR2 0,52H 0,56H 0,5AH 0,5EH
![Page 33: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/33.jpg)
©Alex Doboli 2006
Related Registers: registers CR0 & FN
• Related registers: CR0 and FN
Register DBB00 DBB01 DCB02 DCB03
CR0 0,23H 0,27H 0,2BH 0,2FH
FN 1,20H 1,24H 1,28H 1,2CH
![Page 34: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/34.jpg)
©Alex Doboli 2006
Related Registers: registers CR0 & FN
• Related registers: CR0 and FN
Register DBB10 DBB11 DCB12 DCB13
CR0 0,33H 0,37H 0,3BH 0,3FH
FN 1,30H 1,34H 1,38H 1,3CH
![Page 35: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/35.jpg)
©Alex Doboli 2006
Related Registers: registers CR0 & FN
• Related registers: CR0 and FN
Register DBB20 DBB21 DCB22 DCB23
CR0 0,43H 0,47H 0,4BH 0.4FH
FN 1,40H 1,44H 1,48H 1,4CH
![Page 36: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/36.jpg)
©Alex Doboli 2006
Related Registers: registers CR0 & FN
• Related registers: CR0 and FN
Register DBB30 DBB31 DCB32 DCB33
CR0 0,53H 0,57H 0,5BH 0,5FH
FN 1,50H 1,54H 1,58H 1,5CH
![Page 37: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/37.jpg)
©Alex Doboli 2006
Related Registers: registers IN & OU
• Related registers: IN and OU
Register DBB00 DBB01 DCB02 DCB03
IN 1,21H 1,25H 1,29H 1,2DH
OU 1,22H 1,26H` 1,2AH 1,2EH
![Page 38: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/38.jpg)
©Alex Doboli 2006
Related Registers: registers IN & OU
• Related registers: IN and OU
Register DBB10 DBB11 DCB12 DCB13
IN 1,31H 1,35H 1,39H 1,3DH
OU 1,32H 1,36H 1,3AH 1,3EH
![Page 39: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/39.jpg)
©Alex Doboli 2006
Related Registers: registers IN & OU
• Related registers: IN and OU
Register DBB20 DBB21 DCB22 DCB23
IN 1,41H 1,45H 1,49H 1,4DH
OU 1,42H 1,46H 1,4AH 1,4EH
![Page 40: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/40.jpg)
©Alex Doboli 2006
Related Registers: registers IN & OU
• Related registers: IN and OU
Register DBB30 DBB31 DCB32 DCB33
IN 1,51H 1,55H 1,59H 1,5DH
OU 1,52H 1,56H 1,5AH 1,5EH
![Page 41: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/41.jpg)
©Alex Doboli 2006
Interconnect
![Page 42: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/42.jpg)
©Alex Doboli 2006
Interconnect
![Page 43: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/43.jpg)
©Alex Doboli 2006
Row Digital Interconnect (RDI)
![Page 44: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/44.jpg)
©Alex Doboli 2006
Programmable Clocks
• Clocks are programmed using register IN (bits 3-0)• Synchronized with SYSCLK2 or SYSCLKx2
– Programmed using register OU (bits 7-6)
![Page 45: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/45.jpg)
©Alex Doboli 2006
Timer Block
![Page 46: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/46.jpg)
©Alex Doboli 2006
Timer Functionality
• Timer block functionality:– Terminal count:
• Generates a signal with programmable timing frequency• Write function• Main timer function• Generate interrupt
– Compare functionality:• Write compare value• Read compare value• Compare function• Interrupts
– Capture functionality:• Read value in register DR0
![Page 47: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/47.jpg)
©Alex Doboli 2006
Timer Block Data Flow
![Page 48: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/48.jpg)
©Alex Doboli 2006
Main Timer Functionality
![Page 49: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/49.jpg)
©Alex Doboli 2006
Timing Diagram
• Useful for generating interrupts after certain amount of time• Hardware support for implementing timing constraints
• maximum time range, minimum time range
![Page 50: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/50.jpg)
©Alex Doboli 2006
Terminal Count Firmware Routines
![Page 51: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/51.jpg)
©Alex Doboli 2006
Compare Functionality
![Page 52: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/52.jpg)
©Alex Doboli 2006
Compare Function Firmware Routines
![Page 53: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/53.jpg)
©Alex Doboli 2006
Capture Related Functionality
![Page 54: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/54.jpg)
©Alex Doboli 2006
Counter Functionality
![Page 55: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/55.jpg)
©Alex Doboli 2006
Dead Band Circuit
![Page 56: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/56.jpg)
©Alex Doboli 2006
Pulse Width Modulation (PWM)
• Function: produces signal with programmable period and pulse width
Duty cycle = Pulse width / Period
counterInterrupt (TC/compare)
Compare valueEnable BC
Inverted/noninverted
enabled
standalone
![Page 57: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/57.jpg)
©Alex Doboli 2006
PWM Firmware Functions
• Possible functions:– PWM_Start– PWM_Stop– PWM_Write_PulseWidth– PWM_WritePeriod– PWM_bReadCounter– PWM_bReadPulseWidth– PWM_EnableInterrupts– PWM_DisableInterrupts
• Programmable blocks: counter
![Page 58: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/58.jpg)
©Alex Doboli 2006
PWM Firmware Functions
![Page 59: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/59.jpg)
©Alex Doboli 2006
PWM Firmware Functions
![Page 60: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/60.jpg)
©Alex Doboli 2006
PWM Firmware Function
![Page 61: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/61.jpg)
©Alex Doboli 2006
PWM API
![Page 62: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/62.jpg)
©Alex Doboli 2006
Software PWM
Pulse widthOff time
![Page 63: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/63.jpg)
©Alex Doboli 2006
Software PWM
• Tuning capabilities: • Fine (in steps of 12 cycles) • Coarse (in steps of 30 cycles)
• Minimum Pulse width is 30 clock cycles
• Minimum period is 60 clock cycles
• Not a solution if faster signals are needed
![Page 64: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/64.jpg)
©Alex Doboli 2006
Multiple Accumulate Circuit (MAC)
• Functionalities (selected using operands):• Fast multiplication (uses regs MUL_X and MUL_Y)• Multiplication followed by summing (MAC_X and MAC_Y)
Fast multiplication
Multiply-accumulate
![Page 65: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/65.jpg)
©Alex Doboli 2006
Exercise: Scalar Product (C code)
![Page 66: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/66.jpg)
©Alex Doboli 2006
Object Code from C Compiler
![Page 67: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/67.jpg)
©Alex Doboli 2006
Object Code from C Compiler
![Page 68: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/68.jpg)
©Alex Doboli 2006
Assembly Code without MAC
![Page 69: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/69.jpg)
©Alex Doboli 2006
Assembly Code using MAC
![Page 70: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/70.jpg)
©Alex Doboli 2006
Experimental Results
• Execution time for different implementations (in clock cycles)
Vector size
C code without
MAC
C code with MAC
Assembly code
without MAC
Assembly code with
MAC
16 8958 6043 2861 390
64 45177 23659 11932 1580
256 - - 52268 6188
• in addition, 1494 clock cycles for initialization
![Page 71: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/71.jpg)
©Alex Doboli 2006
Decimator Blocks
H(z) = (1/M)2 [1 / (1-z-1)]2 (1 – z-M)2
• Digital low pass filtering and down-conversion • Used in down-sampling after modulators • Incremental ADC
• Functionality:
Integration at rate Bdifferentiation at
rate B/M
![Page 72: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/72.jpg)
©Alex Doboli 2006
Resolution vs. M
![Page 73: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/73.jpg)
©Alex Doboli 2006
Type 1 Decimator Circuit
• Functionality: single or double integration; differentiation is in software
input
First integration
Second integration
![Page 74: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/74.jpg)
©Alex Doboli 2006
Type 2 Decimator Circuit
• Realizes integration and differentiation• Results in register DEC_DH (0, E4H) & DEC_DL (0, E5H)• writing to registers DEC_DH and DEC_DL clears the accumulator• Programming using registers DEC_CR0, DEC_CR1, and DEC_CR2
![Page 75: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/75.jpg)
©Alex Doboli 2006
Type 2 Decimator
• Register DEC_CR0 (0, E6H):– Selects analog comparator column that is gated (bits IGEN)
• for incremental ADC– Selects gating signals from digital block (bit ICLKS0)
• For incremental ADC– Selects analog comparator column (bits DCOL)– Selects clock for decimator registers (bit DCLKS0)
• Register DEC_CR1 (0, E7H):– Used for incremental ADC or DS ADC (bit ECNT)– Selects gating signals (bits ICLKS)– Selects clock for decimator registers (bit DCLKS)– Selects digital block latch (bit IDEC)
![Page 76: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/76.jpg)
©Alex Doboli 2006
Type 2 Decimator
• Register DEC_CR2 (1, E7H):– Selects mode: type 1, incremental ADC, type 2 (bits Mode)– Data output shifting: no shift, one position shift, two positions
shift, four positions shift (bits Data out shift) – Semantics of input data (bits Data format) for addition
• Input ‘1’ is always interpreted ‘1’ • Input ‘0’ is ‘-’1’ or ‘0’
– Select the decimator rate M (bits Decimation rate)• Off, 32, 50, 64, 125, 128, 250, 256
![Page 77: ©Alex Doboli 2006 Performance Improvement through Customization Alex Doboli, Ph.D. Department of Electrical and Computer Engineering State University of.](https://reader036.fdocuments.in/reader036/viewer/2022062503/5a4d1af47f8b9ab059980535/html5/thumbnails/77.jpg)
©Alex Doboli 2006
Decimator Circuit