4 ms·
I have searched once for the origin of the term "Central Processing Unit". In his report, John von Neumann had used the terms "central arithmetical part (CA)"
by adrian_b 2y ago
I have searched once for the origin of the term "Central Processing Unit".
In his report, John von Neumann had used the terms "central arithmetical part (CA)" and "central control part (CC)". He had not used any term for the combination of these 2 parts.
The first reference to CPU that I could find is the IBM 704 manual of operation from 1954, which says: “The central processing unit accomplishes all arithmetic and control functions.”, i.e. it clearly defines CPU as the combination of the 2 parts described by von Neumann.
In IBM 704, the CPU was contained in a single cabinet, while in many earlier computers multiple cabinets were used just for what is now named CPU. In IBM 704, not only the peripherals were in separate cabinets, but also the main memory (with magnetic cores) was in separate cabinets. So the CPU cabinet contained nothing else.
The term "processor" has appeared later at some IBM competitors, who used terms like "central processor" or "data processor" instead of the "central processing unit" used by IBM.
Burroughs might have used "processor" for the first time, in 1957, but I have not seen the original document. Besides Burroughs, "processor" was preferred by Honeywell and Univac.
The first use of "multiprocessing" and "multiprocessor" that I have seen was in 1961, e.g. in this definition by Burroughs: "Multiprocessing is defined here as the sharing of a common memory and all peripheral equipment by two or more processor units."
While "multi-tasking" was coined only in 1966-09 (after IBM PL/I had chosen in 1964-12 the name "task" for what others called "process"), previously the same concept was named "multiprogramming", which was already used in 1959, when describing IBM Stretch. ("multitasking" was an improved term, because you can have multiple tasks executing the same program, while "multiprogramming" incorrectly suggested that the existence of multiple programs is necessary)
- d1sxeyes 2y agoAnd of course back when everyone had desktop towers, “the CPU” was everything except the monitor and the peripherals.
- kens 2y agoYou've done a lot of interesting historical research there! I wanted to get into a discussion of "central processing unit", but decided my article was long enough already :-) The term "central processing unit" is unusual since it is a seven-syllable term for a fundamental idea. Even "CPU" is a mouthful. I think that the "central" part is in opposition to systems such as ENIAC or the Harvard Mark I, where processing is spread out through the system through accumulators that each perform addition. Centralizing the processing was an important innovation by von Neumann.
- zozbot234 2y ago> Centralizing the processing was an important innovation by von Neumann a.k.a. the "von Neumann bottleneck" that we're now trying to get rid of.
- adrian_b 2y agoWe will never get rid of the "von Neumann bottleneck", except for a relatively small number of niche applications. The bottleneck consists in the fact that instead of having a huge number of specialized automata that perform everything that must be done to execute a useful application you have just an universal automaton together with a big memory, where the universal automaton can perform anything when given an appropriate program. The use of a shared automaton prevents many actions to be done concurrently, but it also provides a huge economy of logical circuits. The "von Neumann bottleneck" is alleviated by implementing in a computer as many processor cores as possible at a given technological level, each with its own non-shared cache memory. However removing completely the concept of programmable processor with separate memory would multiply the amount of logic circuits too much for any imaginable technology. The idea of mixing computational circuits with the memory cells is feasible only for restricted well defined applications, e.g. perhaps for something like ML inference, but not for general-purpose applications.