[Info-vax] The Future of Server Hardware?
Stephen Hoffman
seaohveh at hoffmanlabs.invalid
Wed Oct 3 09:44:16 EDT 2012
On 2012-10-03 01:04:10 +0000, JF Mezei said:
> On 12-10-02 18:53, David Froble wrote:
>
>> For the disks, the MicroVAX 3100 systems had a rather stupid 50 pin SCSI
>> controller, and the speed was, well, "not speed". Now, not that I was a
>> fan of the BI bus, but the 6000 class systems had much better
>> capabilities at moving data. CPU speed is not everything in a system.
>
> But today, does an IBM mainframe use a bus that is faster than
> PCI-Express ?
>
> In terms of disks, wouldn't mainframes and commodity servers use the
> same type of disk array interfaces ?
>
> Or is this a case of modern mainframes using the same types of
> interfaces, but surporting multiple instances whereas comodity servers
> only have one PCI-Express and one interface card to FC or whatever type
> of interface to a disk array ?
Computers inherently have common components. Probably even roller
casters in common, too.
The question is not whether there are components that are common, it's
whether a particular design makes what you have and need to do, well,
fast.
Computers are hierarchies of trade-offs between component prices and
bandwidth and latency. Processors and on-chip cache are extremely
expensive and silly-fast. Cache is very expensive, and very fast.
Main memory is expensive, and fast. SSD is relatively moderately
priced, and adequately fast for various disks. Traditional
rotating-rust disk is cheap and glacial. Then you get into near-line
storage and other forms of Slow. You can size for and make everything
on-chip cache, but that's hugely expensive. Nobody could afford to buy
that. Or you can make stuff heavily rotating rust and cheap and
glacial, and performance would stink large.
What's this hierarchy stuff? Within the memory hierarchy in an
Itanium, for instance, the processor stalls when data is not available.
"Loads and add instructions complete within one cycle when the data is
available in level one cache, which is the preferred case. Loads from
level two cache complete in 6 cycles, roughly 13 cycles for level three
cache, and 209 cycles for loads from main memory. For obvious reasons,
prefetching and otherwise keeping data in the appropriate caches
reduces latency. And avoids stalls." -
<http://labs.hoffmanlabs.com/node/160> You can see how much slower
main memory is here, in various of the Itanium designs. And other
processors are no different here; Alpha saw cost and speed tradeoffs
here, too. Interestingly, EV7 went for much smaller caches because the
EV7 design had a much faster off-chip connection to memory - EV7 main
memory speeds were faster than EV68 level 1 cache accesses. Details:
<http://labs.hoffmanlabs.com/node/20> - and again, there are tradeoffs
inherent in making parts faster (or slower). (Which gets back to that
hypothetical AlphaServer DS15L discussion - could you even fit the
necessary amount of RDRAM into the 1U box, and keep the RDRAM and the
EV7 from frying itself, and then - and very importantly - would enough
folks buy these boxes to make it worth the costs and effort of building
it?)
As for your current preferred focus on disk storage, reading a
rotating-rust disk is inherently glacially slow. Writing is glacial,
too. I don't know the instruction-comparison count off-hand, but it
wouldn't surprise me to hear it was on the order of a million
instructions worth of time to get a sector read from rust and into main
memory, or longer. Processing an alignment fault is roughly 10,000 to
15,000 instructions, after all. Reading a disk a record at a time, off
disk, RMS-style, is particularly stupid-slow. (Why did I now hear the
song "RMS Style" done as "Gangnam Style"? Nevermind.) RMS tries and
does fairly well here with performance and with caching, but it'd be
far faster to map (or page) the file into memory as a wad of blocks,
and unmarshall the data in main memory rather than through RMS. RMS
tries to do that, sort of. But VMS applications aren't expecting any
unmarshalling. And with OpenVMS on Itanium (or on Alpha or VAX, for
that matter), the CPU gets to do all this dreck work.
Cray had a clever system for rolling in from glacial rotating-rust
storage, an eon ago. The CPU detected the location of the disk heads,
did the math to figure out where that sector should be in main memory,
and striped the contents of the disk into memory from the current disk
head location. This in place of reading the sectors of rotating-rust
sequentially, with all the glacial disk head seeks and the glacial
waits as the disks spun the target sectors around under the heads that
was entailed. It wouldn't surprise me to find this algorithm used in
other boxes.
Mainframes have very fast (and very intelligent) I/O channels, usually
work to offload the CPU of mundane housekeeping, and very aggressively
RAID and cache the (usually massive) storage to contend with its usual
glacial speed. And lots and lots (and lots) of rotating-rust disks,
where the outboard controllers can deal with predicting accesses,
selecting victims for flushes, and otherwise getting the data in from
glacial storage and unmarshalled, and marshalled and out "quickly."
One of the "jokes" I was told, back when I was dealing with IBM: last
year's mainframe model is this year's channel controller model. Which
reminded me of a similar joke around VAX consoles, though the VAX
consoles were never part of the main I/O path. But I digress.
A good computer design balances these disparate factors, and allows you
to reach a build price that will be sufficiently profitable for what
you think you can sell the box for; costs and revenue and production
volumes all factor into component and system designs.
Remember that Computer Architecture class I keep suggesting? Well,
that's how you learn most of this stuff. (Not necessarily the
financial stuff, but as you price out the components, it'll become
apparent why everybody uses the same rotating-rust storage widgets.
Well, unless you have the budget for shiploads of SLC NOR flash memory.
And you might still want shiploads of flash. IBM offers flash-based
SSD caches in their XIV, and probably in the DS8000 storage
controllers. And IIRC, HP has recently added support for SSD flash on
the i2 boxes, too. All part of the go-fast.)
Anyway... Review one of the Computer Architecture classes that was
mentioned earlier. That grounding will help you learn about and
understand how the pieces of a modern computer fit together, and then
the costs and trade-offs involved. It'll can help you understand how
to write faster programs, too.
--
Pure Personal Opinion | HoffmanLabs LLC
More information about the Info-vax
mailing list