寄存器是一种特殊的小存储单元;通常在CPU内,即不是机器主存储器的一部分,尽管设备控制器通常也包括寄存器。对于那些属于CPU的部分,访问它们的速度非常快——通常比主存快。第一批计算机在CPU中不包含许多寄存器,因为每个寄存器需要单独的硬件,这在早期是稀缺的资源。许多机器只有一个寄存器,可用于使用累加器进行计算;这些机器是一个典型的负载存储体系结构。后来,硬件并不是什么大问题,但计算机中程序员可见的寄存器数量仍然有限,因为它们是由指令中的字段命名的,而指令字中的位是有限的资源。
在中央处理器中,累加器 (accumulator) 是一种寄存器,用来储存计算产生的中间结果。如果没有像累加器这样的寄存器,那么在每次计算 (加法,乘法,移位等等) 后就必须要把结果写回到 内存,也许马上就得读回来。然而存取主存的速度是比从算术逻辑单元到有直接路径的累加器存取更慢。
任何使用单一“内存”来存储多个操作结果的系统都可以被认为是一个累加器。J. Presper Eckert参考了戈特弗雷德·雷布尼茨和布莱斯·帕斯卡的加法器,将其看做基于累加器的系统。 Percy Ludgate是第一个在他1909年的分析机器中设想了乘数累加器(MAC)的人.
1945年的ENIAC配置有20个累加器,可以并行运行。每个人都可以存储一个8十进制数字,并与它接收到的数字相加(或相减)。3大多数IBM早期的二进制“科学”计算机,从1952年的真空管IBM 701开始,使用一个36位累加器,以及一个单独的乘法器/商寄存器来处理具有更长结果的操作。IBM 650是一台十进制机器,有一个10位分配器和两个10位累加器;IBM 7070,后来的晶体管十进制机器有三个累加器。IBM System/360和数字设备公司的PDP-6有16个通用寄存器,尽管PDP-6及其继任者PDP-10称它们为累加器。
累加器在指令中未通过寄存器号标识; 它隐含在指令中,不能在指令中指定其他寄存器。 现代 CPU 通常是 2 操作数或 3 操作数机器。 附加操作数指定将众多通用寄存器(也称为通用累加器)中的哪一个用作计算的源和目标。 这些 CPU 不被视为累加器机器。
IBM 701计算机的前面板,通过灯显示累加器和其他寄存器