Increasing Energy Efficient Server Competition, ARM efforts ramps up with Virtualization Support

James Hamilton has a good post on the state of ARM powered servers.  Sometimes when I read other people’s work I think what they say in the end should be moved to the beginning of the conversation.  Here is the last paragraph from James’s post.

We are on track for renewed competition in the server-side computing market segment and intense competition on power efficiency at the same time as internet-scale service operators are willing to run whatever processor is least expensive and most power efficient. With competition comes innovation and I see a good year coming.

James points out the ARM instruction set as an advantage.

ARM has become an incredibly important instruction set architecture powering smartphones, low-end network routers, printers, copiers, tablets, and other embedded applications. But things are changing, arm is now producing designs appropriate for server-side computing at the same time that power consumption is becoming a key measure of server-side computing cost. The ARM design team are masters of low power designs and generations of ARMs have focused on power management. ARM has an impressively efficiently design.

Here is another little known fact is Virtualization Extensions in the ARM architecture.

Virtualization Extensions

  • The ARM Architecture Virtualization Extension and Large Physical Address Extension (LPAE) enable the efficient implementation of virtual machine hypervisors for ARM architecture compliant processors.
  • Connected consumer devices and cloud computing demand energy efficient, high performance systems to handle complex software with potentially large amounts of data.
  • The ARM Architecture Virtualization Extensions provides the basis for ARM Architecture compliant processors to address the needs of both client and server devices for the partitioning and management of complex software environments into virtual machines.
  • The ARM Architecture Large Physical Address Extension provides the means for each of the software environments to efficiently utilize the available physical memory when handling large amounts of data.

Part of the Virtualization extensions is more than 32 bit virtual memory addressing.

  • As the complexity of software increases the requirement for multiple software environments to be available on the same physical processor increases simultaneously. Software applications that require separation for reasons of isolation, robustness or differing real-time characteristics need a virtual processor exhibiting the required functionality.
  • To provide virtual processors in an energy-efficient manner requires a combination of hardware acceleration and efficient software hypervisors. The ARM Architecture Virtualization Extension standardizes the architecture for implementation of the hardware acceleration in ARM application processor cores, while high performance hypervisors from the world’s leading virtualization companies provide the software component upon which to build effective software combinations.
  • Cloud computing and other data or content oriented solutions increase the demands on the physical memory system from each virtual machine. The large physical address extensions provide a second level of MMU translation table so that each 32-bit virtual memory address can be mapped within a 40-bit physical memory range. This allows systems to allocate sufficient physical memory to each virtual machine for efficient throughput to be maintained when total demands on memory exceed the range of 32-bit addressing.

People will laugh at ARM servers, but when you can get a dozen or more for the price of one Xeon, there are scenarios where ARM servers will work.