Nvidia to take on Intel with PC-centric ARM chip
AMD all over again?
CES 2011 Move over, Intel, here comes Nvidia. Not with an x86 CPU - though rumours to that effect have been rippling through the chip biz for years - but an ARM-based offering aimed at PCs, workstations and even servers.
Yes, the as-yet-unnamed processor - it's codenamed 'Project Denver' - will not be pitched at mobile devices, the intended home of Nvidia's Tegra 2 line, but at the kind of boxes Intel has owned for the last 30-odd years.
A bonkers move? At first glance it seems so, the x86 platform having so vast an installed base and the de facto standard for such systems.
Earlier during his CES 2011 presentation, Nvidia CEO Jen-Hsun Huang stated his keenness on such de facto standards, for example Adobe Flash, which he was pleased to trumpet works on Tegra 2-based Android gadgets but not on the devices' main rivals: Apple's iPod Touch, iPhone and iPad.
So many developers already create so many web sites using Flash, you'd be daft not to support the Adobe tech, he said. You could make the same argument for x86, as Intel executives had done not two hours earlier at their CES press conference, claiming some 1m x86 PCs are shipping every day at the moment.
Well, when it comes to CPUs, it's a different matter, Huang insisted, stating that ARM is the fastest-growing CPU architecture in history and has an installed base well beyond that of Intel's chips, even if you ignore AMD's contribution.
Huang contrasted the almost ten years it took the Mac OS and Windows to reach 100m units with the three years or so it's taken Android and iOS to rack up the same total.
Not a fair comparison. World+Dog is gadget crazy these days in a way they just weren't back in the early days of the Mac and PC.
Still, in anticipation that Microsoft CEO Steve Ballmer will today announced an ARM-oriented incarnation of Windows, Nvidia reckons there's room for the low-power architecture in systems big and small, and it believes it's in the best position to satisfy that demand with its brand of ARM CPU and GeForce GPU system-on-a-chip tech.
ARM is certainly a platform that will grow and grow as more folk buy smartphones and tablets, but even with a Windows 7 available on ARM, it's going to take some time for software developers to come up with compatible desktop apps - assuming, of course, they anticipate a sufficiently large customer base to justify the cost of that development. Microsoft may yet surprise us with an emulator built into the OS to allow old x86 apps to continue to be run.
High-end number crunching boxes are different - they makers and owners are used to rolling their own code for the specific tasks they have in mind. But this is a niche market, and Nvidia's inclusion of personal computers in the list of Denver-centric devices shows that it wants its chip to be more than a niche player. ®
As a developer
Well, I still can't get 64-bit applications for most things on Windows. I still find it to be a pain in the rear to target x64 because there's still a lot of differences.
I've coded for ARM, MIPS, PPC, AXP etc... in the past. It's generally very little work to port from one platform to the other so long as the OS is the same. But, the tools have to exist first. If Microsoft doesn't have a full version of Visual Studio 2010 (maybe 2012) that runs natively on the platform, forget it. Microsoft and ARM make truly, wonderfully awful compilers for ARM. I mean, they're totally crap. Intel used to have a good one, but they don't maintain it anymore. LLVM and GCC are the only decent compilers for the platform. And frankly, I don't see Microsoft jumping ship to one of them.
Microsoft tried REALLY REALLY hard on x86 emulation for the Alpha and Itanium ports of Windows. They did an awful job on those. The only platform emulation system that ever seemed to work "ok" was the Rosetta Stone technology that shipped with OS X when they switched to x86. But that was because the operating system used super fat executable types that pretty much included everything twice (once for x86 and once for PPC). Also, Mac OS X was practically designed for jumping from processor to processor. Windows won't be so lucky. Of course, after doing Windows 7 and making it run 32-bit Windows on 64-bit platforms, things have improved greatly. They've sorted out most of the issues with effectively having two of everything on the system.
What I think it will really come down to is, NVidia will need to ship extremely inexpensive development platforms to people who want it. Microsoft will have to invest heavily in compiler development for ARM.
If I wanted to make this really happen, I'd set aside thousands of developer systems and seed the open source quickly. Then, send free systems to the companies that matter (WinZip, Adobe, etc...) and start offering "prizes" for "most projects ported to the new platform" and "most bugs reported in the development system". Additionally, instead of keeping it REALLY CLOSED and making everyone need to buy an MSDN subscription to get started, NVidia and Microsoft should sponser getting as many people running on the platform as possible.
Here's a developer system that will get thousands of good applications ported to the platform overnight.
1) Nvidia Tegra Tablet similar in general specs to iPad
2) 8 gigs of memory (compilers and tools are hungry and ARM isn't as optimized as x86.. yet)
3) 256gig (or better hard drive or flash)
4) docking station with VGA, HDMI, USB, Ethernet etc...
5) Windows 8 beta
6) Visual Studio 2010 (or better) running natively on the device
7) Distributed build system (such as incredibuild)
8) A compatible Visual Studio to run on x86/x64 to add processors to the compiler task. A million lines of code with spaghetti in the headers can take 15 minutes to compile on a BIG system. And porting to ARM is nearly all about changing header files.
Seed that system to 500 open source developers who "commit to porting a source forge project on the wish list" and offer a reward for doing it. Like "If you complete the port, you'll get a 1 year subscription to MSDN"
Not only will it get a lot of projects ported, but it will make a large base of loyal, experienced engineers available overnight.
The most important factor of porting an OS to a new system isn't getting it there. It's getting the developers to make their software available for it.
Oh.. another important thing.. InstallShield and Wise Installer etc... all need to support a single package installer for either platform. You should be able to double click the executable/MSI and it will work no matter what platform it works on.
The user shouldn't have to know they're on another processor. It doesn't matter to them.