امیرحسین کریم پور
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

معرفی ثبات (Register) در CPU کامپیوتر و انواع آن

همانطور که دستورالعمل ها و به طور کلی برنامه ها بایستی در حافظه RAM سیستم بارگزاری شوند تا ما بتوانیم از آنها استفاده کنیم Register ها یا ثبات های حافظه پردازنده نیز از این قاعده مستثنی نیستند بدین معنی که پردازنده کامپیوتر برای اینکه بتواند پردازش های خود را روی دستورالعمل ها انجام دهد بایستی در یک مکانی آن کار ها را انجام دهد و آن مکان ها جایی نیست جز Register یا ثبات های حافظه پردازنده یا CPU سیستم.

دوره های شبکه، برنامه نویسی، مجازی سازی، امنیت، نفوذ و ... با برترین های ایران

Register ها یا ثبات های حافظه پردازنده یک کامپیوتر برای ذخیره و انتقال داده ها و دستورالعمل ها با سرعت بسیار بالا مورد استفاده قرار میگیرد. همانطور که میدانید CPU کامیپوتر قطع به یقین یکی از مهم ترین و پیچیده ترین اجزاء یک کامپیوتر محسوب میشود و طبیعتاََ یک سخت افزار تک منظوره و یک بعدی نیست و وظایف متعددی بر عهده دارد. از این رو Register در پردازنده دارای انواع مختلفی است که هر کدام به نوبه خود در امر هندل و پردازش کردن دستورالعمل ها برای CPU بسیار مهم و اجتناب ناپذیر است.

همانطور که احتمالاََ حدس میزنید حافظه های Register پردازنده از سریعترین حافظه های یک کامپیوتر به شمار میرود (حتی سریعتر از حافظه کش L1 پردازنده)، زیرا CPU برای انجام پردازش های خود بر روی دستورالعمل ها دستورالعمل ها را در حافظه Register ذخیره میکند و سپس روی آنها پردازش را انجام میدهد. Register های پردازنده به طور کلی 3 وظیفه به نام های Decode ،Fetch و Execute را در امر پردازش دستورات بر عهده دارد که در زیر به توضیح هر کدام میپردازیم.

  1. Fetch یا واکشی داده ها : عملیات Fetch عبارتست از گرفتن دستورالعمل هایی که توسط کاربر به کامپیوتر داده میشود و همچنین واکشی یا Fetch کردن دستورالعمل ها توسط Register ها از حافظه RAM سیستم به منظور انجام پردازش روی دستورالعمل ها.
  2. Decode یا کدگشائی دستورالعمل ها : عملیات Decoding دستورالعمل ها بدین منظور است که دستورالعمل ها به Command ها یا دستورات ترجمه شوند تا توسط واحد ALU قابل اجرا باشند واحدی که بر عملیات Decoding دستورالعمل ها نظارت دارد واحد CU یا همان واحد کنترل در CPU میباشد.
  3. Execute یا اجرای دستورات : همانطور که گفتیم دستورات به وسیله واحد ALU پردازنده انجام میشود. بعد از اجرا نمودن دستورات توسط واحد منطقی ALU نتیجه در حافظه RAM سیستم ذخیره میشود تا بتوانیم از نتیجه دستورات مان استفاده کنیم.


Register یا ثبات در پردازنده کامپیوتر چیست ؟


همانطور که گفتیم Register ها دارای انواع و اقسام مختلفی هستند که هر کدام وظیفه خاص خود را بر عهده دارد. در زیر به معرفی هر کدام از Register ها میپردازیم.

Memory Address Register یا MAR چیست؟

این Register همانطور که از نامش نیز پیداست آدرس های حافظه از داده ها و دستورالعمل ها را در خود نگه میدارد. این Register برای دسترسی به داده ها و دستورالعمل ها از حافظه RAM در طی اجرا شدن دستورالعمل ها مورد استفاده قرار میگیرد. فرض کنید CPU میخواهد برخی از داده ها را در حافظه RAM ذخیره کند و یا بر عکس، میخواهد داده هایی را از حافظه RAM فراخوانی کند CPU در این گونه مواقع می آید و آدرس های داده هایی که در حافظه RAM بایستی قرار بگیرد را در رجیستر MAR به صورت موقت ذخیره میکند. زیرا اگر این گونه نبود CPU نمیدانست که دستورالعمل ها در کدام مکان از حافظه RAM بایستی ذخیره شوند. پس اگر منطقی به این قضیه فکر کنیم وجود رجیستری به نام MAR الزامی است.

Program Counter یا PC چیست؟

رجیستر Program Counter یا به اختصار PC، رجیستری است که به آن Instruction Pointer یا IP نیز میگویند. به این رجیستر گاهاََ Instruction Address Register نیز گفته میشود. این رجیستر مسیر آدرس حافظه دستورالعملی که بعد از تمام شدن پردازش دستورالعمل فعلی بایستی مورد پردازش قرار بگیرد را در خود ذخیره میکند. به عبارت دیگر این Register تا زمانیکه پردازش روی دستورالعمل فعلی به اتمام نرسیده است آدرس حافظه دستورالعمل بعدی را در خود نگه میدارد.

Accumulator Register یا AC چیست؟

این Register برای ذخیره سازی نتایج دستوراتی که توسط واحد ALU پردازنده سیستم انجام شده است مورد استفاده قرار میگیرد. هنگامی که CPU دستورات را مورد پردازش قرار داد و تمام شد نتیجه دستورات در رجیستر AC به صورت موقت ذخیره میگردد. به Accumulator Register در اصطلاح فنی AX نیز میگویند.

Memory Data Register یا MDR چیست؟

این Register یکی از مهم ترین رجیستر های CPU است رجیستر MDR رجیستر واحد CU از پردازنده میباشد و شامل اطلاعاتی است که باید در حافظه RAM سیستم یا سایر حافظه ها ذخیره شود، همچنین این رجیستر میتواند شامل داده هایی باشد که با عملیات Fetch یا واکشی داده ها از یک دستگاه ذخیره سازی بدست آمده باشد. رجیستر MDR همانند بافر عمل میکند و شامل کپی اطلاعاتی است که از حافظه RAM طی عملیات Fetch به این رجیستر منتقل شده است تا توسط CPU مورد پردازش قرار گیرد.

توجه کنید که MDR شامل اطلاعاتی است که هنوز توسط دیکدر های پردازنده Decode نشده اند. رجیستر MDR شامل اطلاعاتی مانند آدرس هایی از حافظه است که در حافظه RAM نوشته یا خوانده شده اند. به عنوان مثال برای واکشی داده هایی از سلول 123 ( به باینری ) ما مقدار 123 (به باینری) را در رجیستر MAR بارگزاری میکنیم و عملیات Fetch را انجام میدهیم.

وقتی عملیات Fetch تمام شد یک کپی از داده های سلول 123 در رجیستر MDR بایستی نوشته شود. یا به عنوان مثال دیگر برای ذخیره سازی مقدار 98 ( به باینری ) در سلول 4 در حافظه بایستی آدرس داده های ذخیره شده در سلول 4 حافظه RAM را در رجیستر MAR بارگزاری کنیم و داده های این سلول را در رجیستر MDR ، و سپس عملیات ذخیره سازی را انجام دهیم. وقتی عملیات Fetch به انجام رسید محتویات سلول 4 حافظه RAM با مقدار 98 پر خواهد شد. رجیستر MDR یک رجیستر دو طرفه است به این معنی که داده ها از حافظه Fetch یا واکشی میشوند و در رجیستر MDR ذخیره میشود، که در حقیقت در یک جهت در این رجیستر نوشته شده است. زمانیکه دستورالعملی میخواهد نوشته شود بایستی داده ها در رجیستر MDR نوشته شوند و سپس در حافظه RAM ذخیره شوند.

Index Register چیست؟

این رجیستر در پردازنده اعداد یا مقادیری را در خود نگه داری میکند که میتواند از بخشی از آدرس یک دستورالعمل کم یا به آن اضافه شود تا به یک آدرس موثر و کارامد تبدیل شود. به Index Register اغلب Base Register نیز گفته میشود. Index Register در پردازنده کامپیوتر رجیستری است که برای تغییر دادن آدرس های عملوند در طول اجرای یک برنامه مورد استفاده قرار میگیرد. به Index Register در اصلاح فنی BX نیز میگویند.

Memory Buffer Register یا MBR چیست؟

این Register محتویات داده یا دستورالعمل هایی که از حافظه خوانده یا روی آن نوشته میشوند را در خود نگهداری میکند. به عبارت دیگر این رجیستر برای ذخیره سازی داده ها یا دستورالعمل هایی که از حافظه فراخوانی شده یا روی آن بارگزاری میشوند مورد استفاده قرار میگیرد. رجیستر MBR همان رجیستر MDR است و تفاوتی با هم ندارند.

Data Register چیست؟

این رجیستر برای ذخیره سازی موقتی داده هایی که از دستگاه های ذخیره سازی خوانده یا نوشته میشوند مورد استفاده قرار میگیرد. به Data Register در اصطلاح فنی DX نیز میگویند.


امیرحسین کریم پور
امیرحسین کریم پور

مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت

امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص شبکه ، تخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس و... ، سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی

نظرات