Innovate faster and cut risk with PHP experts from Zend Services.
Beginning to advanced PHP classes to learn and earn global certification.
Help me choose >
Submit support requests and browse self-service resources.
Matthew Weier O’Phinney
With many companies deploying their applications in cloud environments, finding ways to improve performance and save on hosting costs is an increasingly common activity for PHP teams. As that happens, companies naturally gravitate to practices that reduce costs. One of those cost-saving methods is the use of ARM architectures on computer processors. For teams managing PHP applications deployed to the cloud, the addition of PHP ARM architecture support may mean potential cost savings for their deployments.
In this blog, we dive into the ARM architecture, what it is, how it works, and how it compares to other computer processor architectures. We’ll also look at the potential impact to PHP teams, with analysis on the impact to performance, costs, compatibility, and extensions. Lastly, we’ll look at the new ZendPHP ARM support and how teams can take it for a test run.
The ARM architecture is a common Reduced Instruction Set Computer (RISC) architecture used for computer processors.
However, to fully answer the question, we need to first start with the x86 architecture.
You've likely seen or used a desktop computer or Windows-based laptop before. The standard for these machines is the x86 architecture, which originated with the Intel 8086 in 1978, and has been continuously evolved since that time. Over time, as processors became more powerful, it also came to dominate the server ecosystem, due to its performant, modular, and powerful computational capabilities.
Intel developed the original chipsets for IBM, who also granted AMD a license at the time. Over the decades, there was a bit of legal back-and-forth between Intel and AMD, but at this point, both depend on the other: AMD depends on Intel for the original IP for the x86 architecture, while Intel depends on AMD for the 64bit extensions to it. However, they are the only companies that can produce x86 chipsets at this time.
x86 itself is an example of a Complex Instruction Set Computer. CISC architectures abstract complex operations, and mediate between different hardware controllers, such as the CPU, memory, graphics processors, storage, etc. This allows for modular architectures, where hardware for different responsibilities can be swapped in and out in order to change capabilities.
Because CISC architectures can abstract over these modules, developers using assembly language or writing compilers do not need to worry about the specifics of the hardware present, and can reduce the number of instructions they provide, which simplifies programs and makes them more compact, use less memory, and more performant.
The trade-off, however, is that the architecture requires more transistors, which take up increasing amounts of space, consume large amounts of energy, and create huge amounts of heat (which often leads to cooling requirements).
Computer scientists studied a variety of computing applications, and realized that for many use cases, only a subset of instructions provided by CISC architectures are ever needed. They split these out into a reduced instruction set, creating the Reduced Instruction Set Computer (RISC) architecture.
In particular, these architectures lend themselves to embedded systems or System-on-a-Chip (SoC) devices, where the various hardware controllers are tightly integrated. Such machines are highly energy efficient, spatially compact, and run cool, which provides a whole new set of form factors for computing devices. The tablets and phones to which we've become accustomed are all examples of RISC architectures at work.
While these devices save energy and can be easily thrown in our smallest bags or pockets, the lack of modular architecture means that they are often limited in what they will ever be able to do based on the SoC they ship with.
The most common RISC architecture is ARM, which is licensed by Arm Ltd. Arm Ltd. itself does not manufacture chips, but instead licenses IP Cores, which can be mixed and matched by companies that manufacture chips. Because the ARM architecture is widely licensed and used across a variety of industries, it has become a standard target for operating systems, much like x86.
In the past decade, we've begun to see server manufacturers creating ARM-based servers. This is slightly a misnomer: what they are creating are multicore ARM-based CPUs. This design allows server manufacturers to provide the ability to swap out memory, storage, and other hardware controllers in a fashion similar to x86 machines, but provide the energy savings and reduced heat generation of ARM chips. In turn, this helps data centers reduce their overall energy consumption, at the slight cost of reduced flexibility if the CPU needs replacement.
Web servers, and particularly PHP web servers, are increasingly deployed in the cloud. In fact, in the 2023 PHP Landscape Survey, which Zend will be releasing in February 2023, respondents for the first time indicated a cloud provider (spoiler-not-a-spoiler: it was AWS) was the number one target for deploying PHP applications, versus on-premises hardware. Other cloud providers only trailed on-premises deployment slightly.
If PHP applications are largely deployed in the cloud, this means that the chances that they will deploy on ARM increases over time. Since electricity consumed by a machine is a huge factor in the cost structure passed on to consumers, this means consumers can start choosing lower-cost ARM machines that give the same or better performance.
But what about compatibility? The PHP source itself compiles fine on ARM, and has for quite some years. The bigger question is ensuring that if you are using binaries that the binaries were compiled on ARM. Why? Remember the earlier discussion around RISC vs CISC architectures? The reduced instruction set means that the compiler needs to perform ARM-specific optimizations when compiling the language. As such, binaries between architectures will vary. Many operating systems will distribute different binaries for ARM, but you will need to check to be sure.
Additionally, if you need any PHP extensions not provided by your operating system, you will need to compile those yourself, which means ensuring any dependencies have ARM support provided as well.
ZendPHP now supports ARM, and does so via:
This support means that you can use whatever PHP version you want on your operating system when on an ARM architecture, and know that any extension we ship with ZendPHP also works. This allows you to immediately start gaining the cost and computing benefits of ARM servers in your cloud provider.
Try ZendPHP for FreeReady to take ZendPHP ARM support for a test run? Start your free trial today via the link below.See Trial Details
Ready to take ZendPHP ARM support for a test run? Start your free trial today via the link below.
See Trial Details
Zend Product Manager, Zend by Perforce
Matthew began developing on Zend Framework (ZF) before its first public release, and led the project for Zend from 2009 through 2019. He is a founding member of the PHP Framework Interop Group (PHP-FIG), which creates and promotes standards for the PHP ecosystem — and is serving his second elected term on the PHP-FIG Core Committee.