You are currently on IBM Systems Media’s archival website. Click here to view our new website.


Bookmark and Share
RSS

Recent Posts

The Significance of Computer Architecture

July 30, 2018

This week, I am continuing this series on important ideas that have helped to shape IT in the modern era. What do we mean when we explore significance in an IT context? Computer architecture is one of those very powerful ideas. Let me explain.

We Take These Conventions for Granted
In our age of modern computing, we consider multiprogramming and multiprocessing, workload management, virtual storage and paging as pillars of computing. It’s commonplace to have multiple programs in memory at the same time and to be able to tell the system that one workload is more critical than another. Every system I use, no matter how big or small, has implementation a virtual storage scheme supported by hardware, including a paging subsystem to extend main memory by very large amounts. All of this is in plain sight, but you don’t see it unless you know about it already.

These conventions that we take for granted, such as many concurrent programs and multiple processors, are inventions implemented for the most part in software by software engineers. What is it about the hardware that runs this software that makes it so effective?

Architecture Inventions
The short answer to that question is a fascinating story. The z/Architecture hardware uses one or more CPUs (general and/or specific-purpose) that are built to share main and expanded storage and a channel subsystem with attached devices. This is a potent combination that has been proven over decades. The hardware is wired to do this in a big way: Lots of computing power and a large memory model. Running z/OS and its diverse workloads on such a hardware base makes maximum use of its capabilities. Since the capabilities are so rich, the extraordinarily powerful results are no surprise.  

As part of this hardware, there are subtle mechanisms at work that make running such diverse workloads possible. Interrupts (see Chapter 6 of “z/Architecture SA22-7832-11”) are a main mechanism to offload slow operations and to free the CPU to do other work while the slower operation takes the necessary time to complete. This is what happens during I/O operations. But I/O interrupts are just one of the many kinds. The external interrupt, just one category, has 10 different kinds like CPU Timer and External Call. The message is that developers have many alternatives within the architectural constraints.

At the instruction level, the z/Architecture instruction set is large and powerful. “Comprehensive” is a better word than “subtle” to describe the massive number of hardware instructions. Appendix B of the z/Architecture manual, which is over 1,900 pages long, has a 23-page collection of tables of instructions by mnemonic from A (add) to ZAP (zero and add) including roughly 1,200 individual instructions. This instruction set has grown significantly over time and although mainframe technology is mature, it’s by no means standing still. Take a look at the latest edition of the manual and see that the 12th edition of z/Architecture differs from the previous edition principally by containing the definitions of the following facilities:
  • Configuration-z/Architecture-architectural-mode (CZAM) facility
  • ESA/390-compatibility-mode (ESA/390CM facility)
  • Guarded-storage facility
  • Insert-reference-bits-multiple facility
  • Instruction-execution-protection facility
  • Message-security-assist extension 6
  • Message-security-assist extension 7
  • Message-security-assist extension 8
  • Miscellaneous-instruction-extensions facility 2
  • Multiple-epoch facility
  • Side-effect-access facility
  • Test-pending-external-interruption facility
  • Vector-enhancements facility 1
  • Vector packed-decimal facility

The architecture is robust and stable yet still growing to meet the needs of the diverse set of customers. Software developers can dream up amazing solutions to challenges presented by customer demands for different workloads, but without a cosmic hardware platform, a robust result would not be possible. This is the dance between hardware and software. What a fascinating story it is and it keeps on going.

Posted July 30, 2018| Permalink

-->