The Dance of Hardware and Software
What software engineer doesn’t have a healthy respect for the hardware? Respect is one thing, but understanding it is another.
With this post, I am starting a series on the extraordinary relationship between hardware and the software that runs upon it. I’m a software engineer. That is how I understand and experience the world of computing. I love programming languages and, even more, I love middleware, the great multiplier of programmer productivity. But what software engineer doesn’t have a healthy respect for the hardware? Respect is one thing, but understanding it is another.
IBM z14
I attended the Enterprise Computing Community Conference this past June at Marist College. One of the things I do with diligence is to stop in at every sponsor’s table and speak with the sponsor’s representative. I respect the commitment they have made to the conference, so giving them a few minutes of my time is a basic courtesy. The most interesting exhibit is the IBM Z table because it’s out in front of a real IBM Z system. IBM sends the Z demonstration system to the conference. It doesn’t have a cover on it, so you can see all the contents up close.
In 2017, IBM sent the z13 model, and in 2018, they sent the newest mainframe, the z14. When I saw the z13 in 2017, the word that came to mind was “bespoke” which is a United Kingdom way of saying “one-of-a-kind.” The z13 looked like a specialized computer full of IBM invention that had a form that was unique. Without being too melodramatic, that mainframe computer was a point of time representation of a very significant human achievement that is still evolving at a substantial rate. I wasn’t expecting to have that kind of powerful experience on that day. I was deeply moved to see it and to reflect on the last 50 years and all the people who contributed to this extraordinary success story. This year, the z14 looked like a more standard computing package. I know it’s full of even more IBM innovative, but it just appears more conventional, like a special collection of rack-mounted hardware.
At the IBM Z table, I picked up a document (more like a big index card) explaining the IBM z14 Models M01-M05 on one side and on the flip side, IBM z14 Model ZE1. What I found so interesting about the card was it was just about 100 percent focused on the Z hardware, including an actual circuit glued to the document.
What’s On The Card?
The index card-like document contains shorthand details on the z hardware characteristics. For the z14 Models M01-05, it reads:
SCM: up to six per drawer
- CMOS 14SO 14nm SOI Technology
- 17 layers of metal
- 6.1 billion transistors
- 14.4 miles of copper wire
- Up to 10 active cores (PUs) per chip/up to 170 Configurable Cores
- 5.2 GHz
- L1 cache/core
- 128 KB I-cache
- 128 KB D-cache
- L2 cache/core
- 4M + 2M Byte eDRAM split private L2 cache
- L3 cache on chip
- 128 MB eDRAM shared by all cores
- Enhanced Instructions for Single Instruction/Multiple Data (SIMD)
- Single thread or Next Generation two-way simultaneous multithreading (SMT) operation
- Five Clock Domains
What Does it Mean?
Even a software engineer can get the main idea. Volume of elements, speed, density and layers of components all work together to help achieve a result. All this technology is interesting but when you think about the huge commercial workloads that are supported and sustained, day in and day out, then you start to feel the gravity of the design and implementation of these features. I think about the modeling and trial and error that went into each decision–all tempered by what could be reliability manufactured in the chip facility.
These endeavors to grow and innovate yet remain compatible with currently running applications fill me with wonder and respect for the engineers that have poured their energy into this computer. Next week, I will try to give them their due as I explore their implementation in more detail, including SCM, CMOS, SOI and PUs.
I will take you along on my journey of discovery. Don’t worry, I have found some excellent sources to help me explain these topics. A big challenge for all of us is that many features listed on the document that I picked up at the conference are really galaxies in the cosmos of computing. They are really significant topics that we should all know something about.