Why PCs And Servers Aren’t Going Away

Proliferation of mobile devices is driving the need for even more big iron; PCs continue to play big role for content creation.

popularity

By Pallab Chatterjee
With the rise of mobile appliances, smart phones and tablets, there has been a lot of discussion about the place for PCs, servers, embedded processors and networks. A number of companies have claimed they will rule the world of computing and there will no room for others.

Reality seems to be somewhat different, however. The mobile end point devices—smart phones, tablets, and netbooks, are content-consumption devices. They playback content—video, music, still images, business data—that already exist.

The majority of business data is created on desktop/laptop PCs that use an x86 processor from Intel or AMD. These have been the dominant platform since the early ’80s and still are the workhorses inside most offices. Tablets are starting to be brought in to supplement the PCs and extend their lifecycle, but they are not displacing the existing machines. The computing power of these larger systems allows them to be used for presentation creation, as opposed to viewing, graphics creation, report writing and calculation. These are in addition to the engineering and scientific uses, which are also compute-intensive.

A common misunderstanding is that the multi-core microcontrollers that are in the tablets and smartphones can perform equivalent computational tasks to microprocessors. The applications on these devices (power optimized in-order-execution controllers with direct mapped memory) are created on machines using out-of-order execution featured microprocessors, which also provide deep, virtualized memory, large data stores and the true multi-user and multi-tasking. This allows for the creation of memory and runtime-optimized applications (i.e. Web browsing and games with multiple pre-defined playing levels and performance metrics) that have both known and minimized data and resource extents for the micro-controller based players.

As a result, standard development environments on Windows/Linux/Mac OSX using x86 machines are the default basis for the application and content creation for the mobile appliances. These are not just created on workstations. They also are created on a server base. Depending on who is quoted, the ratio of server cores per end point device is in the range of 1:8 to 1:20. This means worst case for servers, at the 1:20 ratio, it would require 2.5 billion x86 cores to address the 50 billion end-point devices forecast for the Internet of Things. Rather than spelling the death of big iron devices, it means massive sales in this market. Based on real applications, the ratio will average out to something closer to 1:12, which brings the number of cores close to 5 billion.

The advantage of these machines is the ability to support virtual users (multi-simultaneous clients) using products from Microsoft, IBM, VMware and Citrix, as well as full virtual machines. A virtual machine differs from multi-user approaches in that the I/Os, storage, security and CPU/GPU interaction are also virtualized for each user. This allows for mapping direct-attached and tiered storage, including a storage-area network, to be virtualized for access from the virtual machines.

Currently, the virtualization support for the microcontrollers and their associated hypervisors do not support full virtual machine capabilities. In discussions with more than 75 enterprise and data center administrators, this need for full storage and memory access, as well as out-of-order execution to support multi-applications from multi-users at once, are preventing microcontrollers from gaining ground in the server space. They have made only limited gains, mostly for targeted applications at the edge of the network for running Web servers and fixed fill-in-form applications that can be crafted the same way that end point code is created.

This accounts for, at most, 1% of the server environment at a ratio of one core for four users. It also brings with it a cost of development and support that is about four to five times the cost of general-purpose code that has single release capabilities and does not need multiple operating variants to be deployed for support of multiple device platforms and OSes.