Speaking of registers and CPUs, the PDP-10 was interesting (at least, the KA10 model...not sure if the KI10 or KL10 also did this).<p>The architecture included 16 general purpose registers, which were addressed using the same address space used for main memory. Word addresses 0-15 referred to registers, and addresses 16+ referred to core.<p>The interesting part is that the registers were actually optional! If you wanted to save a little money, at the cost of some execution time, you could order your PDP-10 without registers. Because the registers and memory use the same address space, everything still worked with the first 16 words of core taking the place of the registers.<p>If you ordered your PDP-10 with the registers, they would in effect replace the first 16 words of memory.<p>Main memory was magnetic core and the optional registers was semiconductor memory, which were much faster than core.<p>Since the registers and memory shared address space, it turned out that you could execute code from the registers. You could often gain quite a bit of speed in a program by having it copy the code for its inner loops into the registers and running from them.
I sacrificed a perfect score in an IT test at school in the 90s over this sort of nonsense. Our IT teacher was adamant that a CPU was the base unit of a computer (terminology from the mainframe era) rather than the processor within it (as in the modern era). I refused to kowtow to the nonsense and took the red mark :-D
Most computer dictionaries are mostly just obsolete jargon shovelware... they just copy&paste and don't really understand what they're printing over and over again.
"Special register groups" is vague enough that it can stretch fit any number of situations:<p>- Ax versus Dx registers in a MC68K.<p>- Floating-point versus integer registers.<p>- Supervisor versus unprivileged registers.<p>- Machine state registers (interrupt masks, etc) versus computational registers, versus I/O registers.<p>- Hardware machine contexts similar to those of that Honeywell in numerous other machines.<p>I don't see the problem with it, except that it's not suitable for a very high level description of a generic CPU.
"Such an instrument is the turbo encabulator."<p><a href="https://www.youtube.com/watch?v=Ac7G7xOG2Ag" rel="nofollow">https://www.youtube.com/watch?v=Ac7G7xOG2Ag</a>
>CPU of a computer system does not contain:
(a) Main storage
(b) Arithmetic unit
(c) Special register group
(d) None of the above<p>Well I would have gotten this question wrong if I hadn't read this article.
> Storage is not part of the CPU.<p>It kind of is. People often call the box with the motherboard, etc. the CPU.[1][2] That's how the basic parts of a computer were taught to me too when I was a kid. The basic parts of a computer are a "CPU", a "Monitor", a "Keyboard", and a "Mouse". Some time later, when I was taught the parts of a "CPU", it was a "Processor", a "Hard Drive", a "Case", etc. I suppose not everyone used the same nomenclature everywhere.<p>It still seems like a standard hasn't been reached. Around where I'm at, people call that thinking box the "CPU", and right now, when looking for diagrams, I see some call it the "Tower", the "Case", the "System Unit", the "Computer", etc.<p>[1] <a href="https://i2.wp.com/www.informationq.com/wp-content/uploads/2013/10/Basic-parts-of-a-Computer.jpg?resize=1047%2C559" rel="nofollow">https://i2.wp.com/www.informationq.com/wp-content/uploads/20...</a><p>[2] <a href="https://ecdn.teacherspayteachers.com/thumbitem/Parts-of-a-Computer-Worksheets-Including-Laptop-Diagram-1740668-1453433324/original-1740668-1.jpg" rel="nofollow">https://ecdn.teacherspayteachers.com/thumbitem/Parts-of-a-Co...</a><p>EDIT: Are the downvotes because people don't believe this is how parts of the computer were taught in some places before the internet became more popular? It makes sense to me that this is the reason why main storage being inside the CPU made it into dictionaries.<p>To me, "CPU" is an ambiguous term. It could either mean the whole case with the electronics inside, or it could be the main Processor in the motherboard.
In a related topic, Berkely RISC decendents (including SPARC) have the concept of "Register windows"<p>Basically there are many more registers than can be addressed by the program, instructions are instead addressing a "window" into this much larger register file. A function call shifts the window by some amount, typically with overlap, so parameters and return results go in the overlapped area, and whenever you are about to "wrap around" to the front of the file, the hardware will push to the stack as needed.<p>Obviously multithreading on such targets becomes complicated because the normal strategy of "Save all registers to the TCB" starts to become inefficient with very large register files.
Fortunately nobody that learns about computers gets it from a dictionary.<p>I think "special register groups" has zero impact on literacy and understanding<p>fascinating investigation though<p>People born in the 1950s till now have plenty of other excuses to be technophobic so this definition has no effect
> ...the central processing unit was a large physical box, also known as the "main frame". (A mainframe was not a type of computer yet.)<p>Does that imply that there were other "frames"? Maybe storage frames, I/O frames...
This is interesting. While I agree that CPUs no longer have the set of registers used the way they were on the Honeywell, they certainly do have special groups of registers that can only be used for some operations and not others. For example, FPU registers don't generally do logical operations. SIMD registers either don't work as general purpose registers, or have to be switched from being general purpose to being SIMD depending on the architecture. So there are still "special register groups" on modern CPUs. It just doesn't mean the same thing as it meant back then. Kind of funny.
Eh, I don't see the problem with this definition. Registers are "special" storage locations by their very nature, as opposed to memory external to the CPU.<p>The term "special register group(s)" is a bit offbeat, but it's perfectly accurate and perfectly descriptive of almost any real-world CPU architecture. The only problematic bit is the plural 's'.