ثباتهای موجود در پردازنده را میتوان به صورت کلی به 2 گروه زیر تقسیم کرد که در هر دسته انواعی از رجیستر می توانند وجود داشته باشند :
- ثباتهای قابل دسترسی (User Accessible Registers): این نوع رجیسترها توسط کاربر با استفاده از دستورات قابل دسترسی هستند.
- ثباتهای داخلی / غیرقابل دسترسی (Internal Registers): این نوع رجیسترها توسط کاربر غیرقابل دسترسی هستند و تنها به وسیله خود پردازشگر در عمل پردازش قابل دسترسی اند.
از ثباتهای قابل دسترسی مهم میتوان به موارد زیر اشاره کرد:
- ثباتهای عمومی (General Purpose Registers): این نوع ثباتها توسط کاربر قابل دسترسی و تغییر هستند و میتوانند شامل دادههای عملوند یا آدرسها باشند.
- ثباتهای ویژه (Special Purpose Registers): این نوع ثباتها به صورت مستقیم توسط کاربر قابل دسترسی نیستند و مخصوص خود پردازنده اند. برای مثال، ثباتهای ویژه میتوانند شامل Program Counter (به اصطلاح PC) باشد که وظیفه آدرس دهی دستورات برای پردازش را دارد
- شمارنده برنامه (Program Counter): این ثبات آدرس دستور بعدی در حافظه اصلی که باید پردازش شود را درخود نگه میدارد و معمولاً پس از دریافت هر دستور، به مقدار آن عدد 1 افزوده میشود تا نشان دهنده آدرس بعدی باشد.
موضوع اصلی این مقاله ثباتهای عمومی (جزو ثباتهای قابل دسترسی) هستند. از ثباتهای داخلی / غیرقابل دسترسی نیز میتوان به موارد زیر اشاره کرد:
- ثبات دستوری (Instruction Register): این ثبات در برخی از پردازندهها (مانند Intel i7) توسط دستورات قابل دسترسی است. ثبات دستوری، دستور بعدی پردازشی را درخود نگه میدارد. این دستور معمولاً به خاطر دلایل امنیتی رمزگذاری شده و در این ثبات رمزنگاری میشود.
- ثبات آدرس حافظه اصلی (Memory Address Register): این ثبات وظیفه حفظ آدرس مربوط به هر نوع آیتم درخواست شده (آدرس مربوط به یک داده یا یک دستور) را برای نوشتن به یا خواندن از حافظه دارد.
- ثبات بافر حافظه (Memory Buffer Register): این ثبات وظیفه حفظ دادهها به صورت موقت درهنگام ارسال به حافظه یا دریافت از آن را دارد.
- ثبات داده حافظه (Memory Data Register): دادهها پس از دریافت به وسیله ثبات بافر حافظه، در این ثبات تا زمانی که تغییر داده نشوند، نگه داری میشوند.
نکته: تفاوت بین Program counter و Memory address register در این است که شمارنده برنامه تنها آدرس مربوط به دستورات را درخود نگه میدارد اما ثبات آدرس حافظه اصلی هر نوع آدرسی (داده یا دستور) را میتواند نگه دارد. پردازشگر از آدرس شمارنده برنامه برای دریافت دستورات بعدی استفاده میکند.
ثباتهای متفاومی ممکن است در CPU بسته به نوع طراحی آن وجود داشته باشد.
Bookmarks