3 ms·
You are trying to define tasks as "general purpose". They aren't and never can be. The point is that the basic modern computer design works well (enough) for a
by brucehoult 6y ago
You are trying to define tasks as "general purpose". They aren't and never can be.
The point is that the basic modern computer design works well (enough) for almost all of those tasks. For the most part all that you need is the basic operations on 32 or 64 bit "integers": move, compare, add, subtract, and, or, xor, shift left, shift right.
With this you can do spreadsheets, word processing, database, accounting, desktop publishing, web browsing, email, instant messaging, decoding MP3 audio and JPEG photos and MPEG video. And show it all on a GUI on a high resolution bitmapped display.
You can increase the efficiency of some of those tasks with hardware and special purpose instructions for floating point arithmetic (though spreadsheets for example hardly benefit) and SIMD processing for media. See my other (top level) post.
But you don't need them, especially if you have many general purpose CPU cores.
Don't forget the original Macintosh did basically all of those tasks with just a simple integer-only CPU running at 8 MHz. No FPU, no GPU, no media instructions.
A modern multi-GHz CPU can do all those tasks acceptably using only simple integer instructions as long as you don't insist on very high resolution video (and games) at high frame rates.
- shadowgovt 6y ago>And show it all on a GUI on a high resolution bitmapped display. Minor quibble aligning with my minor quibble with the article itself: modern graphics has been depending on a dedicated graphics subprocessor for ages now. Even most Linux distros that aren't targeting extremely constrained hardware vend a graphics subsystem that assumes an accelerator card. Perhaps the graphics card can even be noted as the harbinger of the specialized-hardware trend (if one ignores the audio coprocessors before it). This trend has been riding alongside the CPU trend for ages.