واحد تولید آدرس (AGU)، که بعضاً واحد محاسبه آدرس (ACU) نیز نامیده میشود،[۱] یک واحد اجرایی در داخل واحدهای پردازش مرکزی (CPU) است که آدرسهای مورد استفاده CPU برای دسترسی به حافظه اصلی را محاسبه میکند. با انجام محاسبات آدرس توسط مدارهای جداگانه ای که بهطور موازی با بقیه پردازنده کار میکنند، میتوان تعداد چرخههای پردازنده مورد نیاز برای اجرای دستورالعملهای مختلف دستگاه را کاهش داد و این کار باعث بهبود عملکرد میشود.[۲][۳]
در حین انجام عملیات مختلف، پردازندهها باید آدرسهای حافظه مورد نیاز برای واکشی دادهها از حافظه را محاسبه کنند. به عنوان مثال، موقعیتهای حافظه عناصر آرایه باید قبل از اینکه پردازنده بتواند دادهها را از مکانهای واقعی حافظه دریافت کند، محاسبه شود. آن محاسبات تولید آدرس شامل عملیات محاسبات عدد صحیح مختلفی مثل جمع، تفریق، عملیات مدول یا تغییر بیت است. اغلب، محاسبه آدرس حافظه شامل بیش از یک دستورالعمل ماشین آلات عمومی است که لزوماً سریع رمزگشایی و اجرا نمیشوند. با ادغام AGU در طراحی CPU، همراه با معرفی دستورالعملهای تخصصی که از AGU استفاده میکنند، محاسبات مختلف تولید آدرس از سایر پردازندهها خارج میشود و اغلب میتوانند به سرعت در یک چرخه واحد پردازنده اجرا شوند.[۲][۳]
قابلیتهای AGU به CPU خاص و معماری آن بستگی دارد؛ بنابراین، بعضی از AGUها عملیات محاسبه آدرس بیشتری را پیادهسازی و در معرض دید قرار میدهند، در حالی که برخی از آنها دستورالعملهای تخصصی پیشرفته تری را نیز شامل میشوند که میتوانند به صورت همزمان با چندین عملوند کار کنند.[۲][۳] بعلاوه، برخی از معماریهای پردازنده شامل چندین واحد پردازنده مرکزی است بنابراین بیش از یک عملیات محاسبه آدرس میتواند بهطور همزمان اجرا شود و با بهرهگیری از ماهیت فوق العاده طراحی پیشرفته پردازنده، بهبود عملکرد بیشتری را به همراه دارد. به عنوان مثال، اینتل چندین AGU را در ریز معماری Sandy Bridge و Haswell خود گنجانده است، که با اجازه دادن به چندین دستورالعمل دسترسی به حافظه بهطور موازی، پهنای باند زیر سیستم حافظه CPU را افزایش میدهد.[۴][۵][۶]