TBD: The Perfect Architecture Migration Guide
I have a presentation to give in about two weeks regarding best known methods on architecture migrations. As usual, my initial research consists of using google and searching for “architecture migration” with various additional terms to constrain the search to microprocessor migration and not anything associated with buildings or structures and whatnot.
I found some interesting reads, but no clear cut template on what a complete architecture migration guide should specify.
Some of the interesting hits included:
-
Porting an existing embedded system to Linux (http://www.embedded.com/columns/technicalinsights/185300272?_requestid=175826 By David Knuth and Daniel Daly, Intellibot Robotics, LLC) Designers from Intellibot Robotics chronicle the transformation of their microcontroller-based embedded design ” a mobile robot - from one without an OS to one built on Linux.
-
Migrating from x86 to PowerPC (http://www.ibm.com/developerworks/library/pa-migrate/) Low-cost real-time development with Linux on PowerPC By Lewin Edwards (sysadm@zws.com), Author, Freelance
-
Intel Migration Center (http://www3.intel.com/cd/ids/developer/asmo-na/eng/dc/migration/index.htm)
The first two links detail case studies in performing a migration. This is nice because it shows a real example. The drawback to case studies of course is in sometimes being too specific; if your planned migration doesn’t match what’s detailed in the case study, you may be no better off for having read. The last link is a website with a number of articles on the topic of migrating and seemed motivated by the move to the Intel 64 ISA from 32-bit platforms. The linked papers on the site provide some helpful information, but are topic specific and either hit or miss.
If you are performing a migration to Embedded Intel Architecture a good resource is chapter 4 of my book, “Software Development For Embedded Mulit-core Systems.”
http://www.elsevier.com/wps/find/bookdescription.cws_home/714327/description
I don’t mean to toot my own horn, but the chapter was written with such a migration in mind so it’s pretty complete. Of course, there’s always room for improvement. The chapter provides a good general overview of migrating to Intel Architecture. I believe it could be improved by providing a comparison/contrast on the architectures from which you’d be migrating such as ARM, PPC, MIPS, and a couple of case studies.
With that in mind, here’s a high level outline on what I think is needed to fully cover the topic of architecture migration.
- General introduction
- Discuss Application-level vs. System-level migrations
- Compare/contrast architectures
- Compare/contrast operating systems
- Discuss choosing an operating system and pros/cons of each
- Proprietary – pros – if it’s your OS, you should be familiar with it. Cons – must roll everything yourself, especially support for SMP, next instruction sets, tools
- Linux – pros – high level of support, lots of choice, dev machines can be same as target OS – cons – may not meet real time requirements, code rewrite probably required for system level stuff
- Embedded Linux
- Embedded OSes (VxWorks, FreeBSD, QNX of the world)
- Boot/Bios – Discuss bootup/BIOS
- 32 vs. 64 bit – Compare/contrast
- Architecture extensions – Discuss SIMD instruction sets
- Endianness – Discuss big & little endian and possible issues in porting code. Some solutions to the problems.
- Multicore specific – Discuss SMP or AMP support and ramifications
- Tools Support
- Compiler, debugger – typically required
- Performance analysis, threading tools – typically nice to have
- Case Studies
- System-level migration running the gamut of embedded issues
- Application-level migration focusing on SW issues (library support, etc.)
Thus, there it is - the perfect migration guide. The problem: someone has to write it. Perhaps, this will serve as input into a 2nd edition of my book J.
Posted on: Wednesday, August 20, 2008 at 5:38 pm
Uncategorized. You can follow any responses to this entry through the RSS 2.0 feed.
You can leave a response, or trackback from your own site.
