Cpu-register

Fra IT2
Hopp til: navigasjon, søk

Et Cpu-register er et lite minne som ligger tilgjengelig på selve prosessoren, og som er veldig mye raskere enn noe minne vi finner noen andre sted i datamaskinen. Typisk er dette spesialiserte minneområdet ikke regnet som en del av det generelle minnet til datamaskinen. De fleste, men ikke alle moderne datamaskiner har adoptert den såkalte "load save"-arkitekturen. Under dette paradigmaet sendes data fra de underordnede minneområdene, L# Cache eller RAM og inn i registre, utføres der inne ved å kjøre instruksjoner fra instruksjonssettet for og så bli sendt ut igjen. En vanlig egenskap ved dataprogrammer er noe som kalles for "locality of reference", eller referanselokalitet. Det vil si at de samme verdiene aksesseres ofte, og hvis man beholder disse ofte brukte verdiene i registere kan man øke ytelsen ved programutføring.

Cpu-registeret er på toppen i minnehierarkiet, og er helt klart den raskeste måten for en cpu å aksessere data. Uttrykket cpu-register brukes ofte for å referere kun til den gruppen registre som er direkte kodet som en del av en instruksjon, som definert i instruksjonssettet. En mer korrekt måte å si det på er at disse registrene er arkitektoniske registre. F.eks,så vil x86-instruksjonssettet inneholde et sett av åtte 32-bits registre, mens en cpu som implementerer et x86-instruksjonssettet vil ofte inneholde mange flere registre enn kun disse åtte.

Registerkategorier


Et register måles normalt i hvor mange bits de kan inneholde. F.eks et "8-bits register" eller et "32-bits register". En prosessor inneholder ofte flere forskjellige typer registre, som kan klassifiseres ut i fra deres innhold eller hva slags instruksjoner de opererer opp i mot.

Den følgende oversiktet er skrevet på engelsk siden det er uhensiktsmessig å oversette disse til norsk.

  • User-accessible Registers - The most common division of user-accessible registers is into data registers and address registers.
  • Data registers are used to hold numeric values such as integer and floating-point values. In some older and low end CPUs, a special data register, known as the accumulator, is used implicitly for many operations.
  • Address registers hold addresses and are used by instructions that indirectly access memory.
    • Some processors contain registers that may only be used to hold an address or only to hold numeric values (in some cases used as an index register whose value is added as an offset from some address); others allow registers to hold either kind of quantity. A wide variety of possible addressing modes, used to specify the effective address of an operand, exist.
    • A stack pointer, sometimes called a stack register, is the name given to a register that can be used by some instructions to maintain a stack (data structure).
  • Conditional registers hold truth values often used to determine whether some instruction should or should not be executed.
  • General purpose registers (GPRs) can store both data and addresses, i.e., they are combined Data/Address registers.
  • Floating point registers (FPRs) store floating point numbers in many architectures.
  • Constant registers hold read-only values such as zero, one, or pi.
  • Vector registers hold data for vector processing done by SIMD instructions (Single Instruction, Multiple Data).
  • Special purpose registers ( SPR ) hold program state; they usually include the program counter (aka instruction pointer), stack pointer, and status register (aka processor status word). In embedded microprocessors, they can also correspond to specialised hardware elements.
  • In some architectures, model-specific registers (also called machine-specific registers) store data and settings related to the processor itself. Because their meanings are attached to the design of a specific processor, they cannot be expected to remain standard between processor generations.
  • Control and status registers - It has three types. Program counter, instruction registers, Program status word (PSW).
  • Registers related to fetching information from RAM, a collection of storage registers located on separate chips from the CPU (unlike most of the above, these are generally not architectural registers):

Noen eksempler

Architecture Integer
registers
Double FP
registers
x86 8 8
x86-64 16 16
IBM/360 16 4
Z/Architecture 16 16
Itanium 128 128
UltraSPARC 32 32
POWER 32 32
Alpha 32 32
6502 3 0