3 ms·
The short answer to David Albert's original question is much simpler than the article ... very little is actually new. We have lots of features that have migrat
by drpixie 4y ago
The short answer to David Albert's original question is much simpler than the article ... very little is actually new. We have lots of features that have migrated from "big" computers into PCs and SoCs, but very little that a big-machine programmer from 40-50 years ago wouldn't recognize.
Multi-level caches, TLBs, out-of-order execution, NUMA memory, SIMD, multi-threading - were all normal features of big machines (Crays, Cybers, etc) and are now normal on single chip machines. We have various optimizations and special case handling (eg branch prediction) but these are not normally directly visible to programmers.
GPUs (very large specialized coprocessors) were not a feature of older computers; and their capacity routinely dwarves the "main" CPU.
At a lower level, the routine use of high speed serial comms is new-ish, or at least a reinvention. It was used in very early computers, but use of serial comms for PCIe devices and SD cards is now routine. Perhaps it's just an optimization, but it was not usual a few decades ago.
One thing that I don't recall seeing on older computers is the multitude of fine-grained performance counters now available - useful for fine-tuning, and for peeking at what's going on outside your own process!!