“Special register groups” invaded computer dictionaries for decades
righto.com
righto.com
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.
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.
If you ordered your PDP-10 with the registers, they would in effect replace the first 16 words of memory.
Main memory was magnetic core and the optional registers was semiconductor memory, which were much faster than core.
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'll find an excerpt from a book from the 1980s someone will post and while on its own I might not grock it I'll hit an issue in React a while later and ... oh I get it now even if the technology is different, the problems and strategies seem to be somewhat natural / recycle.
Reading this I was reminded of the shadow register set on Z80. This CPU has two "special register groups" that could be switched by a single 4-cycle opcode. As far as I remember, the original idea was to have "main" and "interrupt" CPU contexts without the overhead of pushing/poping the stack (which could cost tens of cycles). From what I've seen however, people were mostly ignoring that feature in practice, or using it for various nasty hacks when they ran out of CPU registers.
- Ax versus Dx registers in a MC68K.
- Floating-point versus integer registers.
- Supervisor versus unprivileged registers.
- Machine state registers (interrupt masks, etc) versus computational registers, versus I/O registers.
- Hardware machine contexts similar to those of that Honeywell in numerous other machines.
I don't see the problem with it, except that it's not suitable for a very high level description of a generic CPU.
Other commonplace "special" register groups include special purpose vs general purpose (SP, BP etc. vs AX to DX on early X86), different sizes, mutually exclusive overlays (e.g. FPU and MMX registers on X86).
Well I would have gotten this question wrong if I hadn't read this article.
This learning material often happens to be drafted and paid for by technology companies but it seems as though little effort is spent in revising, verifying, and properly typesetting the material in question, to the chagrin of the students.
Specific examples:
Our textbook claimed that TCP/IP used parity bits. If you actually read the relevant RFCs, you will find out that's wrong, it doesn't use parity bits, it uses a one's complement checksum. But, the teacher had never heard of an "RFC", and didn't know why she should care what one said. Obviously, whatever the textbook says must be right, and anything else must be wrong.
The explanation of CRCs in the textbook made absolutely no sense. It said to treat the message as one long number, and then take the last part of the number. That would make the CRC just the last few bytes of the message, making it rather useless. What I eventually worked out – you really can't explain CRCs without polynomials, but the textbook author didn't want to include any mention of polynomials (and multiplication and division operations on them), since possibly not all students would have done that in high school mathematics yet. (The more advanced students may have, but the students doing the most basic levels of maths would not have.) The part about "take the last part of the number" was actually meant as a reference to the remainder of polynomial division. Once you understand the topic independently of the textbook, you can see how the textbook is a horribly garbled and mangled attempt to simplify the truth. The problem was, the teacher (same high school, different computing teacher) had no idea how CRCs are actually defined, all he knew was what the textbook said. If he actually knew what he was talking about he could have explained to me what I eventually worked out for myself.
Terminology in primary-school science education can have a twilight zone feel, kind-of sort-of resembling science terminology, but as seen from a skewed alternate reality, disconnected from actual science community and practice.
So it's not just cs learning material.
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.
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.
[1] https://i2.wp.com/www.informationq.com/wp-content/uploads/20...
[2] https://ecdn.teacherspayteachers.com/thumbitem/Parts-of-a-Co...
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.
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.
Indeed, that meaning is mostly used by people that know how to use a computer but have no idea what's in the box.
EDIT: I found a Radio Shack catalogue from 1989 that uses the term "CPU" to refer to the main unit with the chassis:
https://archive.org/details/tandy-computer-catalog-1989/page...
The bottom left of that page has a computer stand. In the description it says "holds CPU in vertical position". To the right of that, there's a "CPU Security System" that's a set of mounting plates to attach a computer to a desk to avoid theft.
Up until some point probably post-2000, desktop computers were the norm, which had main chassis connected to peripherals such as keyboards, mice, and monitors.
At some point, certainly by 2010, laptops became the majority, which have both input and display integrated. So the referent of CPU, other than the actual chip, no longer existed for most users.
I doubt the desktop-to-laptop transition was a big factor, simply because among more technical people, calling the main chassis a "CPU" was already considered improper back in the 1990s (and probably even much of the 1980s), when laptops were a clear minority.
Many words have dictionary entries with multiple definitions. And if you Google a word you are curious about, you will probably find an online page with one or more definition.
But nobody has any motivation to make such an entry complete or accurate - it only exists like everything else to get clicks.
So for some reason people have become very dogmatic that any definition missing from the current top hit for a word doesn't exist, because the internet is their reality. They don't seem to have any idea how thoroughly their reality is being distorted.
As far as my personal experience goes, in the 80s and 90s, CPU was used to mean the box containing the processor, where the computer was not an "all-in-one" like the original Macintosh, and it was also used to mean the chip. I don't remember using the former meaning, but neither was I ever confused.
I don't think it's reasonable to argue that one or the other definition is illegitimate, because I think they share a common thread. The modern CPU has multiple processors and other things on-die, so it is "processor plus stuff" just like the CPU-as-main-chassis. I think they are both examples of one basic concept.
One can also talk about the idea of different registers – informal, formal, technical, etc. Meanings which are acceptable in an informal or colloquial register can be viewed as less acceptable in a formal or technical one.
Tell me, if you have the box disassembled with the hard drive and motherboard outside and the monitor and keyboard nearby, what word would you use to describe the whole device that's the case and its inside components? Imagine you want to ask someone to move it to another table, just the case, hard drives, motherboard, etc. but not the monitor and keyboard. How would you fill in "Could you move the ____ to that table?" I think some around me would say CPU.
EDIT: Here, check this out, it's a Radio Shack catalogue from 1989:
https://archive.org/details/tandy-computer-catalog-1989/page...
At the bottom left corner of page 42 (page as seen in the image), it says they're selling a "universal computer floor stand". In the description it says, "holds CPU in vertical position". To the right of that, they're selling a "CPU security system" that's basically mounting plates and cord to attach the computer to the desk to prevent it from being stolen.
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.
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.
I think "special register groups" has zero impact on literacy and understanding
fascinating investigation though
People born in the 1950s till now have plenty of other excuses to be technophobic so this definition has no effect
Does that imply that there were other "frames"? Maybe storage frames, I/O frames...
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'.