Stories
Slash Boxes
Comments

SoylentNews is people

posted by Fnord666 on Thursday October 24 2019, @04:27PM   Printer-friendly
from the an-organization-of-very-special-registers dept.

http://www.righto.com/2019/10/how-special-register-groups-invaded.html

Half a century ago, the puzzling phrase "special register groups" started showing up in definitions of "CPU", and it is still there. In this blog post, I uncover how special register groups went from an obscure feature in the Honeywell 800 mainframe to appearing in the Washington Post.

While researching old computers, I found a strange definition of "Central Processing Unit" that keeps appearing in different sources. From a book reprinted in 2017:1

"Central Processor Unit (CPU)—Part of a computer system which contains the main storage, arithmetic unit and special register groups. It performs arithmetic operations, controls instruction processing and provides timing signals."

At first glance, this definition seems okay, but a few moments thought reveals some problems. Storage is not part of the CPU. But more puzzling, what are special register groups? A CPU has registers, but "special register groups" is not a normal phrase.

It turns out that this definition has been used extensively for over half a century, even though it doesn't make sense, copied and modified from one source to another. Special register groups were a feature in the Honeywell 800 mainframe computer, introduced in 1959. Although this computer is long-forgotten, its impact inexplicably remains in many glossaries. The Honeywell 800 allowed eight programs to run on a single processor, switching between programs after every instruction.3 To support this, each program had a "special register group" in hardware, its own separate group of 32 registers (program counter, general-purpose registers, index registers, etc.).


Original Submission

 
This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 0) by Anonymous Coward on Thursday October 24 2019, @06:12PM (4 children)

    by Anonymous Coward on Thursday October 24 2019, @06:12PM (#911305)

    Posting as anon, since if I'm wrong I don't want my stupidity attached to me...

    But I always knew special registers exactly as the Wikipedia definition has it:

    Special function register

    A Special Function Register (or Special Purpose Register, or simply Special Register) is a register within a microprocessor, which controls or monitors various aspects of the microprocessor's function. Depending on the processor architecture, this can include, but is not limited to:

            I/O and peripheral control (such as serial ports or general-purpose IOs)
            timers
            stack pointer
            stack limit (to prevent overflows)
            program counter
            subroutine return address
            processor status (servicing an interrupt, running in protected mode, etc.)
            condition codes (result of previous comparisons)

    Because special registers are closely tied to some special function or status of the processor, they might not be directly writeable by normal instructions (such as adds, moves, etc.). Instead, some special registers in some processor architectures require special instructions to modify them. For example, the program counter is not directly writeable in many processor architectures. Instead, the programmer uses instructions such as return from subroutine, jump, or branch to modify the program counter. For another example, the condition code register might not directly writable, instead being updated only by compare instructions.

    Special registers are distinguished from the registers which actually hold memory addresses, program instructions, and data. And note that the

    But are not the collection of special registers of a system the 'special register group', and you could subgroup that for, example, the program counter and stack pointer from the processor status and condition codes?

    I'd like to be corrected if I'm wrong. And why they are talking about storage as being part of CPU (unless they're referencing the memory bus???) is weird except that without memory the CPU is useless anyway.

  • (Score: 0) by Anonymous Coward on Thursday October 24 2019, @06:22PM

    by Anonymous Coward on Thursday October 24 2019, @06:22PM (#911311)

    No, it is NOT correct.

    If you read the blog post, Ken traces back the EXACT document where the entire definition comes from and
    people have blindly copied it ever since.

  • (Score: 2) by ikanreed on Thursday October 24 2019, @06:25PM

    by ikanreed (3164) Subscriber Badge on Thursday October 24 2019, @06:25PM (#911313) Journal

    *Looking at x86 specification*

    Just one stack pointer? What is this RISCY fantasy?

  • (Score: 2) by vux984 on Thursday October 24 2019, @08:26PM

    by vux984 (5045) on Thursday October 24 2019, @08:26PM (#911354)

    "Special function register" =/= "Special Register Group"

  • (Score: 0) by Anonymous Coward on Sunday October 27 2019, @08:08AM

    by Anonymous Coward on Sunday October 27 2019, @08:08AM (#912348)

    In embedded devices these regs are super common, most often for peripheral* interaction but sometimes for on-die but silo'd things like hardware AES modules.

    *note that 'peripheral' in this context can also be on-die! A2D/D2A and so on are often controlled in this manner.

    The main virtue of these is that they'll have the operational speed of a normal register for read/write**, and can act like DMA to other parts of the architecture, but where most DMA is RAMlike, this is registerlike.

    **note that very often there must be a lag BETWEEN reads or writes while the data "shuffles off" or in, but that's a wall clock delay, and the CPU register access opcodes are full-speed.

    Also, SFRs and special register groups are not the same, but I could see groups of SFRs being called SRGs.