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

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

همانطور که دستورالعمل ها و به طور کلي برنامه ها بايستي در حافظه 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 سيستم ذخيره ميشود، تا بتوانيم از نتيجه دستورات مان استفاده کنيم.

معماری CPU

معماری CPU

همانطور که گفتيم 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 نيز ميگويند.

منبع:Itpro.ir