Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
Processor register
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Quickly accessible working storage available as part of a digital processor}} [[File:Register.svg|thumb|400px|A [[register-transfer level]] (RTL) description of an 8-bit register with detailed implementation, showing how 8 bits of data can be stored by using [[Flip-flop (electronics)|flip-flops]].]] A '''processor register''' is a quickly accessible location available to a computer's [[Processor (computing)|processor]].<ref>{{Cite web |title=What is a processor register? |url=https://www.educative.io/answers/what-is-a-processor-register |access-date=2022-08-12 |website=Educative: Interactive Courses for Software Developers |language=en}}</ref> Registers usually consist of a small amount of fast [[Computer storage|storage]], although some registers have specific hardware functions, and may be read-only or write-only. In [[computer architecture]], registers are typically addressed by mechanisms other than [[main memory]], but may in some cases be assigned a [[memory address]] e.g. DEC [[PDP-10]], [[ICT 1900 series|ICT 1900]].<ref>{{Cite web |title=A Survey of Techniques for Designing and Managing CPU Register File |url=https://www.researchgate.net/publication/303802254}}</ref> Almost all computers, whether [[load/store architecture]] or not, load items of data from a larger memory into registers where they are used for [[arithmetic operation]]s, [[bitwise operation]]s, and other operations, and are manipulated or tested by [[machine instruction]]s. Manipulated items are then often stored back to main memory, either by the same instruction or by a subsequent one. Modern processors use either [[Static random-access memory|static]] or [[Dynamic random-access memory|dynamic]] [[random-access memory]] (RAM) as main memory, with the latter usually accessed via one or more [[CPU cache#Multi-level caches|cache levels]]. Processor registers are normally at the top of the [[memory hierarchy]], and provide the fastest way to access data. The term normally refers only to the group of registers that are directly encoded as part of an instruction, as defined by the [[instruction set]]. However, modern high-performance CPUs often have duplicates of these "architectural registers" in order to improve performance via [[register renaming]], allowing [[instruction-level parallelism|parallel]] and [[speculative execution]]. Modern [[x86]] design acquired these techniques around 1995 with the releases of [[Pentium Pro]], [[Cyrix 6x86]], [[Nx586]], and [[AMD K5]]. When a [[computer program]] accesses the same data repeatedly, this is called [[locality of reference]]. Holding frequently used values in registers can be critical to a program's performance. [[Register allocation]] is performed either by a [[compiler]] in the [[Code generation (compiler)|code generation]] phase, or manually by an [[assembly language]] programmer.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)