Talk:Processor register
From Wikipedia, the free encyclopedia
[edit] Attention flag
This article could probably use some attention from other folks familiar with the field. First of all, there's really no general explanation of what a register is, or how it's implemented in hardware. (Essentially a value associated with a particular address, stored in binary digits using electromagnetic storage.) This article focuses particularly on registers found in CPUs; I'm not sure if that should be included here, or if a general article should be created. The other, related problem is that there are lots of very short articles that describe CPU registers that are used for particular purposes. It's very hard to get an idea of how all these registers fit together by reading all these separate articles (unless you know how these things work already). I assume any given register (except for I/O, of course), will usually be assigned a certain function by convention, not because it's physically any different than any other register. (That issue is somewhat murky.) It may be that the best way to tie together all the various types of register would be to write a "how CPUs execute code" article, which doesn't seem to exist. This article is mostly just a parts list, which isn't all that illuminating. -- Beland 06:45, 11 July 2005 (UTC)
- Having started assembly programming in the mid-70s it is my view that the article is a good start, could do with some expansion, some examples from well known processors (x86, 68K and ARM would seem appropriate) and a DSP (for instance DSP56300). I will address each of your questions in turn:
- there's really no general explanation of what a register is: In old style architecture it was quite simple: just a set of static RAM bits hardwired to specific CPU functions. In modern times we have register aliasing and other tricks to improve speed that complicates the issues. As an example: the instruction set architecture in Pentium is very similar as to, sat, the 386 processor, yet the internals is very, very different and horrifically complicated. So 20 years ago I could have given you a simple explanation that today would be misleading.
- or how it's implemented in hardware: Again, it used to be simple (latches and flipflops) but today we have register files (tables of registers implemented extremely fast RAM) that are dynamically mapped to specific functions.
- This article focuses particularly on registers found in CPUs: That simply is the title of this article. Mixing it with registers in SCSI, S-ATA, RAMBUS-memory or the like would seem irrelevant to me.
- It's very hard to get an idea of how all these registers fit together: Sometimes the registers are loosely connected, like floating point and integer registers on x86. You can convert but that is explicitly done.
- I assume any given register (except for I/O, of course), will usually be assigned a certain function by convention, not because it's physically any different than any other register. These used to be very, very different but with register aliasing, register files and more CPU-internal data busses things have become more flexible. The cost is design complexity, larger die sizes (to cater to all these busses) and speed (moving from hidden functional registers to programmer visible registers in the register file.
- his article is mostly just a parts list, which isn't all that illuminating. Assembly programming can be somewhat arcane but given a few days of hands on assembly programming you learn the logic of it all. The problem is that there is no standard, x86 and 68K are very different, in fact the ISA is what defines the differences and teh behaviour to the programmer. -- Deleteme42
[edit] CPU cache
This article is talking about the same thing as the CPU cache. The names are pretty much meaning the same thing, as register synonymous to cache, and CPU to processor. Perhaps we should merge these together. --Bookinvestor 10:40, 1 December 2007 (UTC)
- No, registers are not the same as cache. Registers are either used to hold the values that are being used by the execution units or to configure the processor, while caches are used to hold instructions or data that are frequently used by the processor. They may be implemented with the same kind of memory (SRAM) but that is where the similarity ends. Rilak 06:05, 2 December 2007 (UTC)