1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005...

22
1 © NOKIA 18-10-2005 A Process Model of Developing Micro-code for a Network Processor 18.10.2005 Jani Koski uthor: Jani Koski upervisor: Prof. Raimo Kantola nstructor: M.Sc Marko Lohjala

Transcript of 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005...

Page 1: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

1 © NOKIA 18-10-2005

A Process Model of Developing Micro-code for a Network Processor

18.10.2005 Jani Koski

Author: Jani KoskiSupervisor: Prof. Raimo Kantola Instructor: M.Sc Marko Lohjala

Page 2: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

2 © NOKIA 18-10-2005

Contents

• Introduction to the study• Network device• Network Processor (NP)• Micro code for NP

• Why research was made• Research problem

• How to make micro code?• Micro code SW process?

• Research method• Search best SW model from literature• Let’s take to account the nature of Micro code, environment, etc

=> case study

• Case study• Project analysis• NP analysis• Micro code analysis• The result

Page 3: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

3 © NOKIA 18-10-2005

Network device

Hostprocessing

PHY

Parcing/framing

Lookup/classification

Modification

Quenue

Processing(slow path)Compressing/Encryption

Switching fabric

Transmission medium

Packet processing

NPSTM-1

FastEthernet

GigaEthernet

Network Processor (NP)

Page 4: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

4 © NOKIA 18-10-2005

Network Processor (NP)

NPSTM-1

FastEthernet

GigaEthernet

Classifier Traffic Mgnt and shaping

State machine

Ou

tput

Inpu

t

PacketssentPackets

arrive

Policing results

Micro code

Page 5: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

5 © NOKIA 18-10-2005

Why research was made

• Previously micro code was done by Agere Systems

• But also the Nokia had knowledge to produce the micro code

• Faster SW integration if Nokia produce the micro code it selves?

• Nokia did not have any process for producing APP550 specific micro code

Page 6: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

6 © NOKIA 18-10-2005

Research problem

QIn what level “micro code SW process” should be investigated?

QSchedule of micro code SW process? When to implement micro code?

QHow to implement micro code to support HW-test?

QThe nature of micro code? How does it differ from traditional coding?

QHow do we test micro code? What tools do we have?

QCan we reuse some generic SW process models using literature?

Page 7: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

7 © NOKIA 18-10-2005

Answers (Q1)

Q In what level should question “micro code SW process?” be investigated?

A The level is Generic micro code SW process model.

A It means that we will find different generic SW process models (e.g. Spiral model, Water Fall model) from literature and approach our question from academic point of view.

A We avoid “copy-paste” method and existing Nokia SW process models are not used

A To choose best model from literature we need information about nature of Micro code.

Page 8: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

8 © NOKIA 18-10-2005

Answers (Q2)

Q Schedule of micro code SW process? When to implement micro code? Somewhere middle of HW and SW schedule?

A HW must get some preliminary version from micro code to make their HW tests (HW MT). Without micro code it is not possible.

A Schedule is most likely following:

SW

OS

HW

Micro codeTime/t

simulation

Test board (e.g. Hydra)

Test version tosupport HW test

Final version

Page 9: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

9 © NOKIA 18-10-2005

Answers (Q2) cont.

Q How to map the micro code SW process to our HW milestone?

A We have different kind of SW to be integrated:• OS, SW, Micro code

A For micro code at least four different “versions” can be identified:1. Preliminary micro code version 1 test with simulator2. Preliminary micro code version 2 test with test board3. Preliminary micro code version 3 to support HW test4. Final micro code version 4 with all feature support

SW

OS

HW

Micro codeTime/t

simulation

Test board (e.g. Hydra)

Test version tosupport HW test

Final version

Page 10: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

10 © NOKIA 18-10-2005

Answers (Q3)

Q How to implement micro code to support HW-test?

A We need some input from HW group to make sufficient first version from micro code to HW group.

A After knowing requirements we can implements micro code.

1

2

3

1

2

SW_v0.1

SW_v0.2

SW_v1.0Rel 1.0

SW_v2.1

SW_v2.2

Main branch/main/dev1/

”HW test” branch/main/test/

Merge HW testcode to final code

Page 11: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

11 © NOKIA 18-10-2005

Answers (Q4)

Q The nature of Micro code? How does it differ from traditional coding (like C, C++, Java) or does it differ at all?

A Yes, micro code differs from traditional coding. If we compare e.g. to C language and SW done with that, micro code is:

o Usually less code lines than in C=> no big resources needed

o Available memory is usually small Big micro code software not possible Available memory can not be used as in C (we have no

pointers).o Instruction set smaller than in Co Same code editors can be used (emacs, UltraEdit)o Micro code can be simulated with simulator (SPA if APP is used)

o Note that there are different versions of APP and simulators!

o Debugging is different (and difficult) in micro code (printf(“Hello world”); is not possible).

Page 12: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

12 © NOKIA 18-10-2005

Answers (Q4) cont.

Q The nature of Micro code? How does it differ from traditional coding (like C, C++, Java) or does it differ at all?

A Yes, micro code differs from traditional coding. If we compare e.g. to C language and SW done with that, micro code is (APP):

o Real time programmingo In micro code we have only very limited time to use per

received cell or PDUo In micro code we may have dynamic changing code (using

searching trees). Trees are usually modified by some host processor.

o Micro code compiler gives similar kind of warning and error than e.g. gcc.

Page 13: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

13 © NOKIA 18-10-2005

Answers (Q5)

Q How do we test micro code? What tools do we have?

A HW can not be ready if it is not verified by HW MT (HardWare Module Testing). HW MT needs some preliminary micro code for testing. But how do we create micro code if we can not test that in some HW?

Chicken-Egg problem

A Because we do not have HW ready for testing we need simulator. Usually manufacturer can offer a simulator for their NP (e.g. SPA for APP). But simulator may have some SW bugs and we can not be 100% sure that micro code is really working.

We could use also “test boards” that include the real NP (delivered by manufacturer). E.g Agere’s Hydra.

A When our HW is ready we will continue testing with that. Testing equipment needed! (e.g. packet generator etc.) Simulator can be still used.

Page 14: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

14 © NOKIA 18-10-2005

Answers (Q6)

Q Can we reuse some generic SW process models using literature?

A Generic SW process models from literature

A Other SW process models.

A Agility methods in SW process models.

Page 15: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

15 © NOKIA 18-10-2005

Choosing the SW process

A Generic SW process models from literature :1. Water fall model is too heavy process model for

micro code. It produce lot of documentation and it’s applicable for big process

2. Evolution model is a good model for producing complex SW. SW is produced iterative but that will cause lot of updates to documentation. The biggest disadvantage is poor SW architecture caused by this model.

3. Component model uses old SW as much as possible. This leads SW design where SW components are very generic. However, the result is usually big SW because code is not optimized.

Page 16: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

16 © NOKIA 18-10-2005

Choosing the SW process

A Other SW process models:1. Prototyping is very useful model for example

finding out critical capacity questions2. RUP (Rational Unified Process) is a combination of

Water fall, Evolution Component models3. Formal models is based on mathematical forms4. 4 GT models are higher level tools for generating

code5. “Code and fix” –model is a poor model6. Spiral model is a model for minimizing risks

Page 17: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

17 © NOKIA 18-10-2005

Choosing the SW process

A Agility methods in SW process models:1. XP (Extreme Programming) was used as a main

model for micro code2. RAD (Rapid Application Development) is developed

from 4 GT models

Page 18: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

18 © NOKIA 18-10-2005

XP-model

• Based on iteration

• Pair programming

• For small projects (e.g. about 2-12 programmers)

• Promotes team work

• Stresses customer satisfaction (e.g. other project)

• Customer is part of the process

• Developers, managers and customers are working together

• Design unit test case before coding

• Automatic testing

Page 19: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

19 © NOKIA 18-10-2005

The Micro code SW process

Choosingnext feature

Featurepriorisation

Featurerequirements

Feature design,coding, testing

System testing

Componentanalyze

documentation DB

Micro

cod

e d

esig

n d

ocu

menta

tion

Micro

cod

e re

quire

ment d

ocu

menta

tion

Host

pro

cess

or

inte

rface

sp

eci

fica

tion

HW

te

st s

peci

fica

tion

Pro

duct

req

uir

em

ent

speci

fica

tion

Page 20: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

20 © NOKIA 18-10-2005

Detailed micro code SW process

Choosingnext feature

Featurepriorisation

Featurerequirements

Feature design,coding, testing

System testing

Componentanalyze

Design of FPL-program test

FPL-program coding

FPL-program testing

Micro code testing

Feature analyze

Design of C-NP -program test

C-NP -program coding

C-NP -program testing

Choosing next feature

Feature design, coding, testing

Component analyze

System testing

Page 21: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

21 © NOKIA 18-10-2005

Conclusion

• Feature IP QoS was implemented by using the micro code SW process

• Micro code SW process works but is it efficient?• Requires measurements later (out of this thesis)

• Component model was used but XP model is dominating

• Pair programming in XP model may face some problems. E.g cultural and behavioural problems

Page 22: 1 © NOKIA 18-10-2005 A Process Model of Developing Micro- code for a Network Processor 18.10.2005 Jani Koski Author: Jani Koski Supervisor: Prof. Raimo.

22 © NOKIA 18-10-2005

Questions?

Comments?

Any new ideas?

Thank you!