انباشتگر

در پردازنده مرکزی یک رایانه، انباشتگر ثباتی است که در آن داده‌های میانی که توسط واحدهای محاسباتی و منطقی تولید می‌شوند، ذخیره می‌شود.
در صورتی که ثباتی برای ذخیره‌سازی داده‌های میانی وجود نداشته باشد، لازم خواهد بود که این اطلاعات بعد از هر محاسبه درون حافظه اصلی نوشته شود، و احتمال دارد که همان داده دوباره از حافظه اصلی خوانده شود و در عملیات بعدی مورد استفاده قرار گیرد. دسترسی به حافظه اصلی بسیار کندتر از دسترسی به ثبات است و این به علت فناوری استفاده شده در ساخت آن هاست، حافظه اصلی گنجایش بیشتری دارد و در عوض کندتر از ثبات هاست. رایانه‌های الکترونیکی ابتدایی به دو دسته تقسیم می شدند، آن‌هایی که ثبات انباشتگر داشتند و آن‌هایی که چنین قابلیتی نداشتند.
رایانه‌های امروزی معمولاً شامل چند ثباتِ مختلف و چند منظوره هستند که می توانند نقش ثبات انباشتگر را هم ایفا کنند، از این رو واژه‌ی "انباشتگر" امروزه به مانند گذشته رایج نیست. با این حال امروزه نیز پردازنده‌های خاص منظوره‌ای وجود دارند که برای رعایت سادگی در طراحیشان از تنها یک ثبات انباشتگر برای کارهایشان استفاده می‌کنند.

طرح کلی

عملیات ریاضی معمولاً به صورت گام به گام انجام می‌شوند، و از نتایج هر مرحله در مرحلهٔ بعد به صورت ورودی استفاده می‌شود. در رایانه‌های ابتدایی نتایج هر مرحله درون حافظه‌ی مغناطیسی ذخیره می‌شد. عملیات نوشتن درون حافظه‌ی مغناطیسی مدت زمان بسیار زیادی طول می‌کشید و باعث کند شدن سامانه می‌شد. از طرف دیگر در عملیات بعدی معمولاً نیاز بود که همان داده‌ای که در مرحله‌ی قبلی درون حافظه مغناطیسی نوشته شده بود از روی همان حافظه خوانده شود، از آن جا که عملیات خواندن از حافظه مغناطیسی نیز عملیاتی کند بودند باعث می‌شد که کندی در کار سامانه دو چندان شود.
انباشتگرها با فراهم ساختن یک حافظه‌یِ چرکنویس که این قابلیت را داشت که نتایج هر مرحله را بدون کند کردن سامانه به مرحله‌ی بعد انتقال دهد، بازدهی سامانه را به شدت بهبود بخشیدند. با این کار در هر مرحله یک عملیات خواندن و نوشتن از/در حافظه‌ی مغناطیسی صرفه جویی می‌شد که آن عملیات ده‌ها و صدها برابر کندتر از عملیات ریاضی بودند.

ماشین‌های انباشتگر

یک "ماشین انباشتگر" یا "ماشین تک عملوندی"، یا پردازنده "با معماری مبتنی بر انباشتگر"، نوعی از پردازنده است که اگرچه ممکن است چند ثبات داشته باشد اما پردازنده عمدتاً نتایج محاسبات را درون یک ثبات خاص که "ثبات انباشتگر" نامیده می‌شود، ذخیره می‌کند. تقریباً تمام رایانه‌ها الکترونیکی اولیه از نوع ماشین‌های انباشتگر بودند و تنها ابر رایانه‌ها بودند که از چند ثبات بهره می‌بردند. بعد از این که بزرگ رایانه‌ها راه را برای استفاده از رایانه‌های کوچک باز کردند، معماری انباشتگر بار دیگر محبوبیت پیدا کرد.ریزپردازنده‌ی ام‌اواس ۶۵۰۲ از برجسته‌ترین مثال‌هایی ست که از این معماری بهره می‌بردند. بسیاری از ریزکنترل‌گر‌های هشت بیتی امروزی که هنوز محبوب هستند مانند ریزکنرل‌گر پی‌آی‌سی و ۸۰۵۱ ماشین‌های انباشتگر هستند.
پردازنده‌های امروزی عمدتاً ماشین‌های دو یا سه عملوندی هستند. عملوندهای دوم یا سوم ثبات‌های مبدأ و/یا مقصد را تعیین می‌کنند. این نوع از پردازنده‌ها در دسته‌ی ماشین‌های انباشتگر قرار نمی‌گیرند.
ویژگی که ثبات انباشتگر را با دیگر انواع ثبات‌ها متمایز می‌کند (اگر معماری دارای ثبات انباشتگر باشد)، این است که این ثبات به‌طور ضمنی به عنوان عملوند در دستورهای حسابی استفاده می‌شود. به عنوان مثال، یک پردازنده ممکن است که دستورالعملی به این شکل داشته باشد: ADD memaddress، این دستور مقدار داده‌ی درون آدرس حافظه(همان memaddress) را با مقدار داده‌ی درون ثبات انباشتگر جمع می‌کند و نتیجه‌ی آن را درون ثبات انباشتگر قرار می‌دهد. ثبات انباشتگر درون دستورالعمل تعیین نشده‌است اما این مفهوم به‌طور ضمنی در دستورالعمل وجود دارد و نمی‌توان از یک ثبات دیگر به جای ثبات انباشتگر در دستورالعمل استفاده کرد. در برخی از معماری‌ها ممکن است در تعدادی از دستورالعمل‌ها از ثبات انباشتگر استفاده شود و در دیگر دستورها از شماره‌ی ثبات‌ها به‌طور واضح در عملوندها استفاده شود.

رایانه‌های مبتنی بر انباشتگرِ مشهور

در سال ۱۹۴۵ رایانه‌ی انیاک دارای بیست ثبات انباشتگر بود که می‌توانستند به‌طور موازی و همزمان با یکدیگر کار کنند. هر ثبات توانایی ذخیره‌سازی یک عدد دهدهیِ هشت بیتی را داشتند که می‌توانستند عملیات جمع یا تفریق را روی این اعداد انجام دهند. بیشتر رایانه‌های دودویی اولیه‌یِ آی‌بی‌ام که اولین آن‌ها "آی‌بی‌ام ۷۰۱" در سال ۱۹۵۲ بود از یک ثبات انباشتگرِ ۳۶ بیتی استفاده می‌کردند. "آی‌بی‌ام ۶۵۰" یک ماشین دهدهی بود که از یک ثبات انباشتگر ده رقمی استفاده می‌کرد، "آی‌بی‌ام ۷۰۷۰" نیز یک ماشین دهدهی بود که از سه ثبات انباشتگر استفاده می‌کرد.
"پی‌دی‌پی ۸" که از اولین ریزرایانه‌ها بود، از یک انباشتگر ۱۲ بیتی استفاده می‌کرد و الهام بخش بسیاری از رایانه‌های بعد از خود بود.
ریزپردازنده‌های اولیه‌ی چهار بیتی و هشت بیتی مانند، ۴۰۰۴ و ۸۰۰۸ و بسیاری دیگر به‌طور معمول از یک ثبات انباشتگر استفاده می‌کردند. ریزپردازنده‌ی ۸۰۵۱ دارای دو ثبات انباشتگر است، یک انباشتگر اصلی و یک انباشتگر فرعی که انباشتگر فرعی تنها در دستورهای ضرب و تفریق مورد استفاده می‌گیرد و قسمتی از جواب را در خود ذخیره می‌کند. پردازنده‌ی ۸۰۸۰ که نسخه گسترش یافته‌ی ۸۰۰۸ بود، پردازنده‌ی ۸۰۸۶ و پردازنده‌ی امروزی و فراگیرِ اینتل اکس۸۶ هنوز از دو ثبات انباشتگر اصلی و فرعی استفاده می‌کنند.