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.

Slides:



Advertisements
Similar presentations
© Copyright 2006 FPT Software 1 © FPT SOFTWARE – TRAINING MATERIAL – Internal use 04e-BM/NS/HDCV/FSOFT v2/3 How to work in Fsoft project Authors: KienNT.
Advertisements

Chapter 14 Intranets & Extranets. Awad –Electronic Commerce 1/e © 2002 Prentice Hall 2 OBJECTIVES Introduction Technical Infrastructure Planning an Intranet.
Analysis of Computer Algorithms
kareRCIserIsviFIsaRsþGnuvtþKMerag
Software Life Cycle and Models
© 2005 by Prentice Hall Chapter 13 Finalizing Design Specifications Modern Systems Analysis and Design Fourth Edition Jeffrey A. Hoffer Joey F. George.
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
© 2008 The MathWorks, Inc. ® ® Using Instant Messaging to Usability Test an API Rachel Cobleigh Donna Cooper.
…to Ontology Repositories Mathieu dAquin Knowledge Media Institute, The Open University From…
Railways Systems: Applications HSI beyond DoD Dr. Jen Narkevicius Jenius LLC Dr. Jen Narkevicius Jenius LLC Human Systems Integration.
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa.
By Rick Clements Software Testing 101 By Rick Clements
AJDT and AspectJ Release Review | © 2007 by SpringSource, made available under the EPL v1.0 1 Release Review: AJDT and AspectJ
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Lecture 22, Revision 1 Lecture notes Java code – CodeFromLectures folder* Example class sheets – 4 of these plus solutions Extra examples (quicksort) Lab.
Making the System Operational
Electric Bus Management System
Debugging operating systems with time-traveling virtual machines Sam King George Dunlap Peter Chen CoVirt Project, University of Michigan.
Chapter 1 Introduction to the Programmable Logic Controllers.
Testing Workflow Purpose
The scale of IC design Small-scale integrated, SSI: gate number usually less than 10 in a IC. Medium-scale integrated, MSI: gate number ~10-100, can operate.
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
1 UML ++ Mohamed T IBRAHIM University of Greenwich -UK.
Virtual Switching Without a Hypervisor for a More Secure Cloud Xin Jin Princeton University Joint work with Eric Keller(UPenn) and Jennifer Rexford(Princeton)
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
main idea and supporting details
1 4 Square Questions B A D C Look carefully to the diagram Now I will ask you 4 questions about this square. Are you ready?
Software Processes.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software processes 2.
Chapter 10 Software Testing
Chapter 11 Software Evolution
Executional Architecture
Addition 1’s to 20.
Requirements Analysis 1. 1 Introduction b501.ppt © Copyright De Montfort University 2000 All Rights Reserved INFO2005 Requirements Analysis Introduction.
25 seconds left…...
Test B, 100 Subtraction Facts
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering Software Engineering.
Håkan Sundell, Chalmers University of Technology 1 Evaluating the performance of wait-free snapshots in real-time systems Björn Allvin.
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 15 Programming and Languages: Telling the Computer What to Do.
Week 1.
We will resume in: 25 Minutes.
Systems Development Project Management Chapter Extension 15.
Chapter 11: Systems Development and Procurement Copyright © 2013 Pearson Education, Inc. publishing as Prentice Hall Chapter
Reporting Systems and OLAP Chapter Extension 13. ce13-2 Study Questions Q1: How do reporting systems enable people to create information? Q2: What are.
14-1 © Prentice Hall, 2004 Chapter 14: OOSAD Implementation and Operation (Adapted) Object-Oriented Systems Analysis and Design Joey F. George, Dinesh.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
Software development process improvement Ville Wettenhovi Master thesis presentation Supervisor:Professor Jukka Manner Instructor:M.Sc. Markus Aalto Date:23th.
Alternative Methodologies Ken Peffers UNLV March 2004.
Software Life Cycle Model
CIS 321—IS Analysis & Design
1 CMPT 275 Software Engineering Software life cycle.
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Jump to first page One-gigabit Router Oskar E. Bruening and Cemal Akcaba Advisor: Prof. Agarwal.
Introduction to Software Development. Systems Life Cycle Analysis  Collect and examine data  Analyze current system and data flow Design  Plan your.
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Meghe Group of Institutions Department for Technology Enhanced Learning 1.
“The Role of Experience in Software Testing Practice” A Review of the Article by Armin Beer and Rudolf Ramler By Jason Gero COMP 587 Prof. Lingard Spring.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
The Software Development Process. Contents  Product Components  Software project staff  Software development lifecycle models.
Software Development.
Software life cycle models
Presentation transcript:

1 © NOKIA A Process Model of Developing Micro- code for a Network Processor Jani Koski Author: Jani Koski Supervisor: Prof. Raimo Kantola Instructor: M.Sc Marko Lohjala

2 © NOKIA 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

3 © NOKIA Network device Network Processor (NP)

4 © NOKIA Network Processor (NP) Micro code

5 © NOKIA 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

6 © NOKIA 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?

7 © NOKIA Answers (Q1) QIn what level should question “micro code SW process?” be investigated? AThe level is Generic micro code SW process model. AIt 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. AWe avoid “copy-paste” method and existing Nokia SW process models are not used ATo choose best model from literature we need information about nature of Micro code.

8 © NOKIA Answers (Q2) QSchedule of micro code SW process? When to implement micro code? Somewhere middle of HW and SW schedule? AHW must get some preliminary version from micro code to make their HW tests (HW MT). Without micro code it is not possible. ASchedule is most likely following: simulation Test board (e.g. Hydra) Test version to support HW test Final version

9 © NOKIA Answers (Q2) cont. QHow to map the micro code SW process to our HW milestone? AWe have different kind of SW to be integrated: OS, SW, Micro code AFor micro code at least four different “versions” can be identified: 1. Preliminary micro code version 1 test with simulator 2. Preliminary micro code version 2 test with test board 3. Preliminary micro code version 3 to support HW test 4. Final micro code version 4 with all feature support simulation Test board (e.g. Hydra) Test version to support HW test Final version

10 © NOKIA Answers (Q3) QHow to implement micro code to support HW-test? AWe need some input from HW group to make sufficient first version from micro code to HW group. AAfter knowing requirements we can implements micro code.

11 © NOKIA Answers (Q4) QThe nature of Micro code? How does it differ from traditional coding (like C, C++, Java) or does it differ at all? AYes, 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 C o 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).

12 © NOKIA Answers (Q4) cont. QThe nature of Micro code? How does it differ from traditional coding (like C, C++, Java) or does it differ at all? AYes, 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 programming o In micro code we have only very limited time to use per received cell or PDU o 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.

13 © NOKIA Answers (Q5) QHow do we test micro code? What tools do we have? AHW 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 ABecause 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. AWhen our HW is ready we will continue testing with that.  Testing equipment needed! (e.g. packet generator etc.)  Simulator can be still used.

14 © NOKIA Answers (Q6) QCan we reuse some generic SW process models using literature? AGeneric SW process models from literature AOther SW process models. AAgility methods in SW process models.

15 © NOKIA Choosing the SW process AGeneric 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.

16 © NOKIA Choosing the SW process AOther SW process models: 1. Prototyping is very useful model for example finding out critical capacity questions 2. RUP (Rational Unified Process) is a combination of Water fall, Evolution Component models 3. Formal models is based on mathematical forms 4. 4 GT models are higher level tools for generating code 5. “Code and fix” –model is a poor model 6. Spiral model is a model for minimizing risks

17 © NOKIA Choosing the SW process AAgility methods in SW process models: 1. XP (Extreme Programming) was used as a main model for micro code 2. RAD (Rapid Application Development) is developed from 4 GT models

18 © NOKIA 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

19 © NOKIA The Micro code SW process documentation DB Micro code design documentation Micro code requirement documentation Host processor interface specification HW test specificationProduct requirement specification

20 © NOKIA Detailed micro code SW process

21 © NOKIA 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

22 © NOKIA Questions? Comments? Any new ideas? Thank you!