Comparing the Intel architecture and the S/390 architecture

Excerpt from a redbook about Linux and S/390 by IBM, with permission

H o m e

Last updated : 13 October 2001


Excerpt from Appendix A : "Intel architecture, S/390 architecture". In this text, "IA32" stands for the architecture of the Intel 32-bit. For further details refer to the Intel Architecture Software Developer’s Manual Volume 3, Intel order number 243192, and IBM's "ESA/390 Principles of Operation", SA22-7021.

A.4 Comparing the IA32 and S/390 architectures

Both the IA32 and the S/390 are so-called Complex Instruction Set Computer (CISC) architectures, meaning that they offer a very rich set of instructions. From the micro-architectural point of view, the IA32 and the S/390 CPUs are very different. The IA32 transforms complex instructions into simpler ones that are executed in parallel and out of order, using a complex scheduling mechanism. So the IA32 core is optimized to execute simple instructions in parallel.

On the other hand, the S/390 G5 and G6 CPUs are able to execute only one operation per cycle, but are optimized to reduce the time needed to complete the execution of complex, long-running instructions that are often used in programs. Also, only one integer operation is executed per cycle even if, for example, two integer pipelines are available, because both of them execute the same operation to allow checking the result. The reliability of the processor is preferred to raw speed. In general, the S/390 CPU offers higher RAS and allows it to discover and recover from a large number of errors, usually disabling only the faulty devices.

Also, the S/390 instruction set offers a rich set of instructions to move memory blocks, supported by specialized hardware so as to obtain higher performance. For example, the move engine can be used to quickly copy pages from main storage to expanded storage, thus speeding up the paging process.

Expanded storage is a unique feature of the S/390. It allows access to a large and fast memory that can be used to swap out unused memory pages faster than mass storage. Also, expanded storage can be used as a cache for minidisks, improving the performance of application I/O.

Both the IA/32 and the S/390 support virtual addressing, but they offer slightly different mechanisms. The IA32 allows each task to maintain information about its mapping of virtual addresses versus real ones; usually, each thread is mapped on a different task and all the threads of a single process share the same page mapping.

S/390 implements a different page mapping for each address space and allows access to up to 16 address spaces at the same time. Also, the S/390 uses the concept of a segmentto group pages; during the address translation process, in fact, the first part of the virtual address is used to index the segment table and obtain the address of a page table.

In contrast, the IA32 uses segments to protect storage areas. There is no direct relation between pages and segments, but a segment is used to define the access rights to a given virtual memory region. This way, when accessing virtual memory, each process can only read or write what is contained in the segment defined by the descriptor it is using.

From an SMP architecture point of view, the S/390 supports a higher number of CPUs while maintaining a quite linear performance increase. While the Intel multiprocessor allows up to 8 CPUs, the G6 supports 12 processors plus two other processors configured for I/O or as spares.

The availability of spare processors allows the substitution of a faulty processor "on the fly", without stopping the system and without intervention by the operating system or application.

The design of the binodal cache allows the disabling of a single faulty processor, while, for example, the Intel multiprocessor needs to disable 4 processors if its bus fails.

The use of spare devices is not limited to just processors. For example, the availability of spare memory modules allows automatic substitution for faulty ones while continuing to work, thus producing very high availability and avoiding the need for user intervention.

While the IA32 offers higher computational power with faster processors that are able to execute more than one simple instruction per clock cycle, the S/390 offers a higher degree of reliability and a better balance between raw computational power and I/O bandwidth, supporting a large number of devices and a very optimized I/O mechanism. The S/390 offers higher RAS, which is a very important factor when evaluating high-end servers.



Back to home page