fin intern team project (00000002)

42
Intern Team Project #1 VLE/Code Pruning Obi Michael, Nicholas Gill, and Frank Oh

Upload: frank-oh

Post on 19-Aug-2015

129 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: fin Intern Team Project (00000002)

Intern Team Project #1

VLE/Code Pruning

Obi Michael, Nicholas Gill, and Frank Oh

Page 2: fin Intern Team Project (00000002)

-- Cummins Confidential --2

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 3: fin Intern Team Project (00000002)

-- Cummins Confidential --3

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 4: fin Intern Team Project (00000002)

-- Cummins Confidential --4

VLE Project Introduction/ Background

Definition – Variable Length Encoding (VLE) is a form of machine instruction

compression. Instead of using a fixed number of bytes for each instruction, VLE uses a variable number of bytes depending on the instruction.

Goal – To test the implementation of VLE on Off-Highway Stage V

software build to provide flash memory reduction without comprising on quality.

Value – VLE provides additional flash memory for all Off-Highway

Industrial Builds.

– VLE helps to alleviate the difficulty of adding new feature functionalities that could be critical to the Off-Highway Market.

Page 5: fin Intern Team Project (00000002)

-- Cummins Confidential --5

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 6: fin Intern Team Project (00000002)

-- Cummins Confidential --6

Overview of Steps Taken

Meetings – Angela explained in detail about VLE and we received guidelines

on how to proceed.

– VLE expert Christina Runge gave an insight view and the advantage/ disadvantage of VLE

– Received release report to analyze the VLE components that will be used in integration.

C2ST – Familiarized ourselves with C2ST through the process.

– Updated Stage V software build components with VLE components.

Buildforge – Compiled VLE components into the build.

– Inspected the errors using Clearcase and debugged.

Page 7: fin Intern Team Project (00000002)

-- Cummins Confidential --7

Procedure Outline

1. Copy an existing stage V software build in C2ST.

2. Update existing components with integrated VLE components.

3. Build in Buildforge to compile the updated components.

• Build Execution was running infinitely due to lack of constants in new data template.

4. Debug the errors.• Utilized Clearcase and Buildforge to inspect the errors.

• Met with Timothy Viola a Controls Engineer who had similar integration issues.

Page 8: fin Intern Team Project (00000002)

-- Cummins Confidential --8

Procedure Outline

1. Copy an existing stage V software build in C2ST.

2. Update existing components with integrated VLE components.

3. Build in Buildforge to compile the updated components.

• Build Execution was running infinitely due to lack of constants in new data template.

4. Debug the errors.• Utilized Clearcase and Buildforge to inspect the errors.

• Met with Timothy Viola a Controls Engineer who had similar integration issues.

Page 9: fin Intern Team Project (00000002)

-- Cummins Confidential --9

Copy an existing stage V software build in C2ST

• Stage V build to be used for VLE implementation

Page 10: fin Intern Team Project (00000002)

-- Cummins Confidential --10

Procedure Outline

1. Copy an existing stage V software build in C2ST.

2. Update existing components with integrated VLE components.

3. Build in Buildforge to compile the updated components.

4. Debug the errors.

Page 11: fin Intern Team Project (00000002)

-- Cummins Confidential --11

Update existing components with integrated VLE components

• Auto Build Component with VLE already built in

• Dependencies on 33.08.03.00 Version of Auto-Build• Components indicated are updated to versions in this box

Page 12: fin Intern Team Project (00000002)

-- Cummins Confidential --12

Procedure Outline

1. Copy an existing stage V software build in C2ST.

2. Update existing components with integrated VLE components.

3. Build in Buildforge to compile the updated components.

• Build Execution was running infinitely due to lack of constants in new data template.

4. Debug the errors.• Utilized Clearcase and Buildforge to inspect the errors.

• Met with Timothy Viola a Controls Engineer who had similar integration issues.

Page 13: fin Intern Team Project (00000002)

-- Cummins Confidential --13

Build in Buildforge to compile the updated components

• Initially, Build ran infinitely in step 18 (Clearmake) for more than 9 hours.

• Discovered some missing Software Constants related to four functions as cause of the issue.

• Angela added the constants to the data template of the new version

• Able to fix the running issue but kept failing.

Page 14: fin Intern Team Project (00000002)

-- Cummins Confidential --14

Procedure Outline

1. Copy an existing stage V software build in C2ST.

2. Update existing components with integrated VLE components.

3. Build in Buildforge to compile the updated components.

4. Debug the errors.

Page 15: fin Intern Team Project (00000002)

-- Cummins Confidential --15

Missing Software Constants

• These constants were being used by some functions/services in the build that ran infinitely. • Adding these constants fixed the infinite looping.

Page 16: fin Intern Team Project (00000002)

-- Cummins Confidential --16

Build in Buildforge to compile the updated components (Failed)

• Failed Clearmake (Step 18)

Page 17: fin Intern Team Project (00000002)

-- Cummins Confidential --17

Debugging Errors

Buildforge

• More than 340 Errors related to missing identifiers, missing/undeclared functions, missing parameters, and illegal type errors.

• Errors were read from buildforge because clearcase error file was not very detailed.

Page 18: fin Intern Team Project (00000002)

-- Cummins Confidential --18

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 19: fin Intern Team Project (00000002)

-- Cummins Confidential --19

Conclusion A successful build could not be achieved.

– Integration of the group of OS and Infrastructure components in Stage V build results in errors.

– A few disadvantages of VLE are that the process is complex and that some Stage V components might not be compatible with VLE.

– Because we couldn’t get a successful build we, of course, could not show any memory reduction.

– Talked to Timothy Viola who has a similar issue, hopefully he will find the issue and this project can be continued at a later date.

Lack of time and access – Took approximately a week to request and attain required

software/ accesses for VLE project.

– Unfortunately, we only had builder access in C2ST• Had to ask Angela Niu to add constants whenever we needed to.

– Difficult to get hold of those who can help us.

Page 20: fin Intern Team Project (00000002)

-- Cummins Confidential --20

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis/ Assumption

VII. Throughput Test Results

VIII. Schedule

IX. References/ Resources

Page 21: fin Intern Team Project (00000002)

-- Cummins Confidential --21

Code Pruning Project Introduction/ Background

Definition – Web Definition: Code pruning is the process of restructuring

existing code without modifying its external behavior.

– Cummins Definition: Code pruning is a term for taking advantage of optimizations in the compiler.

Goal – To test the method of Code Pruning on Off-Highway Tier4F

software build to provide flash memory reduction without comprising on quality.

Value – To remove code that will never be executed at runtime such as

parameters that are not useful in Off-Highway Tier4F software build.

– To improve loading time, performance, and reduce flash memory.

Page 22: fin Intern Team Project (00000002)

-- Cummins Confidential --22

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 23: fin Intern Team Project (00000002)

-- Cummins Confidential --23

Overview of Steps Taken

Meetings – Angela Niu and Oscar Flores explained in detail about code

pruning.

– Met with Mark Zimmer a tools integator and received a list of parameters linked to _TIS.

– Discussed and finalized parameters to code prune with Calibration Team.

C2ST – Imported filtered parameters into a template created by Nick.

Buildforge– Built without any error using Nick’s template.

Reduction Analysis and Throughput Test– Used Clearcase to review the memory reduction.

– Ran the throughput test.

Page 24: fin Intern Team Project (00000002)

-- Cummins Confidential --24

Procedure Outline

1. Copy an existing Tier4F software build in C2ST.

2. Create a new template for Code Pruning.

3. Import the parameters into the template.

– Set the values of parameters to 0 with valid units.

4. Build through Buildforge and debug if necessary.

Page 25: fin Intern Team Project (00000002)

-- Cummins Confidential --25

Procedure Outline

1. Copy an existing Tier4F software build in C2ST.

2. Create a new template for Code Pruning.

3. Import the parameters into the template.

– Set the values of parameters to 0 with valid units.

4. Build through Buildforge and debug if necessary.

Page 26: fin Intern Team Project (00000002)

-- Cummins Confidential --26

Copy an existing Tier4F software build in C2ST

• A build in which code pruning would be implemented in. • Tier4 Final Blazer

Page 27: fin Intern Team Project (00000002)

-- Cummins Confidential --27

Procedure Outline

1. Copy an existing Tier4F software build in C2ST.

2. Create a new template for Code Pruning.

3. Import the parameters into the template.

– Set the values of parameters to 0 with valid units.

4. Build through Buildforge and debug if necessary.

Page 28: fin Intern Team Project (00000002)

-- Cummins Confidential --28

Create a new template for Code Pruning

• Template with parameters to be code pruned. • Code pruning tool (“Data Override”) is found in “configuration info” tab and “Memory Reduction” sub-tab in C2ST

Page 29: fin Intern Team Project (00000002)

-- Cummins Confidential --29

Procedure Outline

1. Copy an existing Tier4F software build in C2ST.

2. Create a new template for Code Pruning.

3. Import the parameters into the template.

– Set the values of parameters to 0 with valid units.

4. Build through Buildforge and debug if necessary.

Page 30: fin Intern Team Project (00000002)

-- Cummins Confidential --30

Import the parameters into the template

• Parameters to be code pruned added to the template.

• Original Parameters: 1408• Disabled Parameters: 906• Reduced Parameters: 96• Code Pruned: 63

Page 31: fin Intern Team Project (00000002)

-- Cummins Confidential --31

Procedure Outline

1. Copy an existing Tier4F software build in C2ST.

2. Create a new template for Code Pruning.

3. Import the parameters into the template.

– Set the values of parameters to 0 with valid units.

4. Build through Buildforge and debug if necessary.

Page 32: fin Intern Team Project (00000002)

-- Cummins Confidential --32

Debugging

Not all 93 parameters could be added to code pruning

template in C2ST.– Some parameters could not be found.

BCST_ENABLE parameters were removed because they

were crucial to some components in build.– Build originally failed because BCST_ENABLE parameters were

still in a template.

Page 33: fin Intern Team Project (00000002)

-- Cummins Confidential --33

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 34: fin Intern Team Project (00000002)

-- Cummins Confidential --34

Memory Reduction Analysis

1.81% Reduction 0.4% Reduction

Page 35: fin Intern Team Project (00000002)

-- Cummins Confidential --35

Throughput Test Results (1)

Code Pruned Build Data

DIG Build Data

Page 36: fin Intern Team Project (00000002)

-- Cummins Confidential --36

Throughput Results (2)

0.72% Reduction

• Code Pruning Calibration is just like the DIG build but with some enables turned into constants.

• Throughput Result correlates to Memory Reduction.

Page 37: fin Intern Team Project (00000002)

-- Cummins Confidential --37

Conclusion

Application Ram Reduction Percentage: 0.4% Flash Memory Reduction Percentage: 1.81%

The Execution Time Frame was under ESW 5000 μs Code Pruning calibration file had 0.72% Throughput

reduction Adding code pruned parameters back into a calibration

later will cause issues with overlays. Code pruning is not as effective as VLE. But according

to Christina Runge VLE is more risky.

Page 38: fin Intern Team Project (00000002)

-- Cummins Confidential --38

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 39: fin Intern Team Project (00000002)

-- Cummins Confidential --39

Schedule

Page 40: fin Intern Team Project (00000002)

-- Cummins Confidential --40

Outline

I. VLE Project Introduction/ Background

II. VLE Steps

III. Conclusion

IV. Code Pruning Introduction/ Background

V. Code Pruning Steps

VI. Memory Reduction Analysis, Throughput Test Results & Conclusion

VII. Schedule

VIII. References/ Resources

Page 41: fin Intern Team Project (00000002)

-- Cummins Confidential --41

References/ Resources

Angela Niu – Controls CPS Engineer Christian Runge – Architect and System Enginer Timothy Viola – Controls Engineer Oscar Flores – Controls CPS Engineer Paul Pulkowski – Electronics Technical Engineer Mark Zimmer – Off Highway Tools Integrator

Page 42: fin Intern Team Project (00000002)

-- Cummins Confidential --42

Next Steps

Submit the Technical Report, Cummins Report #00059811

Start working on 2nd Project: CM2350 Lead Free TransparencySponsor: Shwetha Prasad