Friday, August 19, 2005

Embedded is another battlefield

IT (Information Technology) world are very competitive, different product, including hardware and software competing each other from time to time. The most popular could be the long rival between AMD vs Intel in CPU war. In software area, Netscape/Mozilla vs Internet Explorer, Linux vs Microsoft Windows operating system, many more examples happen everyday.

In embedded world, there is still competition and war going around, but the company and products that taking part are different from the normal player that we are familiar. CPU in embedded system does not target for speed performance, but more on power consumption, majority of the embedded system (eg. mobile phone) is using a ARM cpu and not an intel cpu.

In software operating system, Windows is the most popular operating system on desktop environment, but on smart phone, Symbian OS is the big player, and Palm OS was major OS supplier on PDA. Window CE from Microsfosft is growing strong in these area, surpass Palm OS in PDA operating system, but embedded system create another battlefield for new players, just like Netscape vs Internet Explorer in network (Internet) area. Even though Netscape has lost the battle to Internet Explorer, but is work from Netscape is always remarkable.

There is a few area that I explain here, why embedded world is so different from the normal IT world in terms of concept design, implementation on hardware and software.

CPU
ARM is a very popular CPU in embedded system, for it low power consumption chip. The cpu can be as low as 1 watt power consumption, but still running at 200 Mhz frequency (I know is nothing compare to Pentium these days). ARM license its core design to other other vendor like Texas Instrument, Samsung etc, many people does not know about it, but ARM (or ARM designed) chip is install in most mobile phones. The StrongARM chips used by earlier iPAQ PDA, some of its technology came from ARM.

(StrongARM is a join effort of DEC and ARM to create a faster CPU in 1995. As a settlement of lawsuit between DEC and Intel in 1997, DEC sold off the Hudson semiconductor manufacturing plant and agree to cross-license for 10 years on their cpu design with Intel. The reason that DEC want to sold off it manufacturing plant because the plant was not fully utilise with manufacturing on DEC Alpha CPU, which Intel might be able to solve the problem with its popular cpu)

Display chipset
The current display chips install in desktop now days is not suitable to use in embedded system. The chips consume too much power, and hi-resolution (1024x768 or higher) is just a waste for embedded system. Normally the display resolution for PDA or smart phones is just 240x320 pixel or even lower.

ATI came out with Imageon product line (used by Dell's Axim PDA), which is a low power consumtion display chipset but still give 3D capablities to embedded device(eg. mobile phone) to have 3D games running smoothly on it, without sacrificed the battery life.

Portable game console
Nintendo has been in game console for many years, but now losing the market to X-Box and Sony's Play station. Nintendo's gameboy series is still going strong in portable game console (like in old time 'Game & Watch').

Sony's has new PSP (PS portable), and new comer Nokia's NGate (base on Java games, not that popular as the other 2 products) are the major and potential players on the portable game console market.

kvm, j2me java virtual machine
Java was first design target for small device, but growing into a bigger platform (above 20Mb) on today's desktop operating system. In 1999, Sun's java2, split the java platform into Enterprise (J2EE), Desktop (J2SE), Embedded (J2EE) edition.

The KVM is a J2ME virtual machine which has a small foot print (about 200K insteed of 20Mb), which fit into many embedded platform. The J2ME which still base on the java programming language, but change its design architecture to fit in small device, eg. j2me class need to be pre-verified, before it was deploy, this will simplified the java run time implementation.

Other company like IBM and HP work on j2me vitual machine eg. HP's chai, IBM's J9. I think HP has stop their development on the chai virtual machine.

Graffiti
Palm is not the first PDA available on the market, Apple's Newton Message Pad is selling much earlier. Palm is the first successfully product after Newton Message Pad and Pocket PC, one of the successful reason of Palm is they get the design right.

Normally PDA doesn't came with a keyboard, the using of PDA will be heavily depends on hand writting recognization software. There is some PDA now attached with a keyboard device, which I think it is a bad idea, but good for those people who does not familiar with hand writing.

Apple's Newton Message Pad is not successful for its poor hand writing software, same problem happen in Pocket PC too. Palm co-founder Jeff Howkins have something different in mind, since software is hard to recognize human hand writing, why not let user learn some special writing which can be easily undertand by the software?

That's how he design Graffiti, the way you write on Palm device. The result is impresive, you spend very little time on learning how to write in Graffiti (major key stroke is simular with normal alphabet, only minor changes in some of the alphabet), but can be recognize effectively by the device.

mpg123 vs mpg321
Many people know mpg321 is a free clone of mpg123 (take note of 123 and 321), long before mpg123 licence under GPL (an open source license). Another advantages that using mpg321 over mpg123 on embedded device is, the code implementatation of mpg321 does not use floating point calculation. Some embedded cpu like earlier version of StrongARM (SA-110) doesn't came with co-processor (floating point unit), even though you can have software simulation (eg. Linux kernel) as co-porcessor, but running mpg321 which does not use floating point unit, will consume less cpu power.

Internet browser
An internet browser like Mozilla and Internet explorer, easily occupied 20Mb of storage. A standard PDA could have design with storage much lesser than that. Netfront browser from Access software, is much smaller in size which fit into embedded device.

There is a minimo (Mini Mozilla) browser from open source world, it is still under development. The name remind me of Mini-me in the movie--Austin Powers.

QT Embedded and GPE
Qt and Gtk are 2 main stream graphic toolkit (for X windows system) on unix/Linux platform. As they improve the toolkit library from one version to the other, the library size is getting bigger and bigger, the other problem is the UI widget is not suitable for embedded environment.

Qt (Trolltech) split out an embedded version of the toolkit--Qt/E specially for embedded system. Gtk create the GPE, GPE Palmtop Environment, they re-design some widget that is suitable to be displayed in embedded environment, and re-write some application base on it eg. PIM(Personal Information Management), clock etc.

Matchbox window manager
The is no way to port Gnome and KDE into an embedded system, is just too huge, Even it is workable, that is not the right way to do it. Some people use ICE window manager or Fluxbox on embedded linux, because they are small in size. Is still not an ideal solution, those window manager are design for desktop and not embedded system like PDA environment. Many of the functionality is not necessary on embedded system, example resize of window, user could hardly display more than one window on the samll display screen.

Matthew Allum have a good understand of the problem, so he create the matchbox window manager. Nokia had eyed on the matchbox and working with Matthew closely to put matchbox in Nokia's up coming Internet Tablet product.

Matchbox is a well written piece of software, which started from scratch. It was host on handhelds.org and now move to openedhand.

Chinese system environment
In Dos and Windows days, ETen, NJStar, ChineseStar, TwinBridge are the most popular software which provide chinese support to Dos and Windows. Later on Palm OS, is the PalmDragon and CJKOS (from NJStar) software.

Chinese vector font
Vector font is a very common technology used in today's GUI display. The roman character true type font contain 26 alphabetic character is just a few hundred kilobyte in size, but a chinese true type font which contain more than 10 thousand of character, easily occupied 3 to 5 megabyte of storage.

Back in 1990s, there is a jetfont from New Fairland, fit in 3 chinese vector font in 1.2 megabyte storage. Since the vector font is not compatible with true type and require its own display driver, the product almost disappear from the market after windows 95, not it was used in kanjiweb software, you could hardly hear anyone refer to it. The small foot print of jetfont is just nice to fit into an embedded system.

Another font company, Arpic have a HiFont product (chinese link is here), which claim to be a small foot print (1Megabyte) font which is suitable for IA system.

Conclusion:
There are many area in embedded which is unexplored, many of them are workable by just tweaking around the existing system and product. The above is just some examples taken from the real embedded world, hopefully it can help to think further on embedded system.

No comments: