بسمه تعالی
موضوع ارائه: پردازنده و ساختار آن
ارائه دهنده: علی حسنی
استاد مربوطه: مهندس یعقوبی تبار
مقدمه
پردازندهها در شکل های مربع یا مستطیل تولید میشوند و رو آنها نشانه ای برای نصب درست پردازنده روی سوکت تعبیه میکنند که مانع از نصب اشتباه پردازنده روی سوکت میشود. زیر پردازنده صدها پین وجود دارد که -با قرارگیری در محل مناسب روی سوکت – ارتباط پردازنده و مادربرد را میسر میسازد.
عملکرد اصلی پردازنده عبارتند از: دریافت دادهها از دستگاه های ورودی (مانند موس، کیبورد و …) یا نرمافزارهای اجرا شده، در قدم بعد ترجمه و درک نیازمندیهای آنها و در نهایت پردازش دادهها و سپس ارسال اطلاعات پردازش شده به نرمافزار یا دستگاه خروجی شما مانند مانیتور است. از اولین پردازندههایی که ظهور کردند، تاکنون پیشرفتهای زیادی در طول سالیان حاصل شده است. با این وجود، عملکرد پایهی پردازنده شامل سه گام واکشی(Fetch)، رمزگشایی(Decode) و اجرا (Execute) به قوت خود باقی مانده است.
واکشی (Fetch)
واکشی به دریافت دستورالعمل گفته میشود. دستورالعملی که در قالب صفر و یک و از طریق حافظه اصلی (رم) به پردازنده ارسال میشود. هر دستور تنها بخش کوچکی از یک عملیات است. بنابراین، پردازنده نیازمند این است که بداند دستورالعمل بعدی چیست. نشانی دستور فعلی توسط یک شمارشگر برنامه (Program Counter)نگه داشته میشود. سپس Program Counter و دستورالعملها در واحد ثبت دستور (Instruction Register) قرار میگیرند. بعد از آن مقدارProgram Counter یک واحد افزایش پیدا میکند تا به نشانی دستورالعمل بعدی ارجاع دهد.
رمزگشایی (Decode)
وقتی یک دستور، واکشی و در واحد ثبت دستور(Instruction Register) ذخیره میشود، پردازنده دستور را به واحدی به نام رمزگشای دستورالعمل (Instruction Decoder) منتقل میکند. این واحد، دستورالعمل را به سیگنالهایی تبدیل میکند که برای فعالیت به واحدهای دیگر پردازنده فرستاده میشود.
اجرا (Execute)
در گام نهایی، دستورالعملهای رمزگشایی شده برای تکمیل به بخشهای مربوطه درCPU ارسال میشوند. نتایج معمولا در بخشی از پردازنده به نام حافظههای ثَبات نگهداری میشوند تا در دستورالعملهای آتی به آنها رجوع شود. برای درک بهتر میتوانید این روند را به عملکرد حافظهی ماشین حساب تشبیه کنید.
اجزای پردازنده
مهمترین قسمتهای یک پردازنده واحد محاسبه و عملیات منطقی و واحد کنترل حافظه است. واحد محاسبه و عملیات منطقی را Arithmetic Logic Unit می نامند که به اختصار به آن ALU میگویند و واحد کنترل حافظه را Control Unit مینامند که به اختصار به آن CU می گویند.
مراحل پردازش پردازنده
شرح عکلیات واحد های یک پردازنده :
واحد محاسبه و عملیات منطقی (ALU)
واحد محاسبه و منطق یا ALU تمام عملیات محاسباتی (ریاضی) و منطقی (مقایسه ای) را انجام میدهد. قابل ذکر است بیشتر اوقات هدف دستورهای مقایسهای، مشخص نمودن ترتیب اجرای دستورها است.
حافظه ثبات (Register)
این واحد از قطعات بسیار کوچکی از جنس حافظه تشکیل شدهاند و میتوانند نتایج اعمال منطقی را در خود ذخیره کنند. CPU های مختلف دارای رجیسترهای گوناگون می باشند. بعضی از رجیسترها برای نگهداری نتایج اعمال استفاده میشوند و بعضی دیگر به عنوان اشارهگر و برخی نیز برای اهداف دیگر میباشند. بعنوان مثال رجیستر AX برای نگهداری نتیجه یک عمل دودویی منطقی یا ریاضی بکار می رود و رجیستر یا Program Counter )به اختصار (PC یک اشارهگر است که باید به دستوری که در لحظه بعد توسطCPU اجرا شود اشاره کند.
حافظه نهان (Cache Memory)
یکی از راههای افزایش کارایی در پردازندهها استفاده از حافظه نهان یا همان Cache Memory می باشد. این حافظه بسیار سریع از نوع SDRAM است که برای جلوگیری از تاخیر زمانی بین پردازنده و حافظه رم طراحی و تولید شده اند. این حافظه کوچک و سریع میتواند با داشتن اطلاعات و دستورالعمل هایی که اغلب برای پردازش مورد استفاده قرار میگیرند، باعث افزایش کارایی پردازنده شود.
فلسفه استفاده
فرض کنید پیدا کردن یک پرونده بطور میانگین یک دقیقه از وقت کارمند را بگیرد. اگر کارمند قسمت بایگانی احتمال دهد که ممکن است مجددا به این پرونده مراجعه شود و به جای آنکه آن را مجددا در قفسه قرار دهد روی میز خود بگذارد در مراجعه بعدی به همان پرونده دیگر زمانی برای جستجو و پیدا کردن آن تلف نخواهد شد.
وظیفه حافظه نهان یا Cache Memory نیز دقیقا همین است . حافظه نهان در حقیقت همان میز کارمند است ( که در مقایسه با قفسه ها از ابعاد بسیار کوچکی برخوردار می باشد ) و پرونده نیز در حکم دستورالعمل و یا دادهای می باشد که از آن زیاد استفاده می شود. پردازنده در هنگام اجرای یک برنامه و خواندن اطلاعات از حافظه اصلی، با دستورات و یا داده هایی برخورد می کند که به دفعات از آنها استفاده می شود.
برای جلوگیری از تکرار مراجعه پردازنده به حافظه اصلی برای خواندن دستورات و یا داده های تکراری این اطلاعات به قسمتی به نام حافظه Cache منتقل میگردد. این حافظه به دلیل اینکه از نوع حافظه های Static می باشد (برخلاف حافظه اصلی که از نوعDynamic می باشد ) دارای سرعت بسیار بیشتری نسبت به حافظه اصلی است و زمان مراجعه به آن بسیار کمتر از زمان مراجعه به حافظه اصلی(RAM) می باشد.
همانطور که میدانید حافظه اصلی ( RAM ) از تعداد بسیار زیادی خازن تشکیل شده است اما در
Cache Memory همانندCPU در ساختمان آن از ترانزیستور استفاده شده است و ساخت آنها بسیار هزینه بر است و به همین دلیل است که افزایش مقدارCache در پردازندهها با افزایش قیمت همراه است .
سطوح حافظه کش
به جهت افزایش احتمال وجود اطلاعات مورد نیاز پردازندهها، این حافظهها در سه الی چهار سطح در پردازندهاستفاده میشوند. نزدیکترین حافظه کش به پردازنده که به صورت اختصاصی مورد استفاده قرار می گیرد را حافظه سطح یک یا L1 مینامند. این سطح معمولا حجم کمتر و سرعت بالاتری نسبت به بقیه سطوح حافظه کش دارد. حافظه کش سطح دو یا L2 حجم بیشتر و سرعت کمتری نسبت به سطح یک دارد و به بسته به معماری پردازنده ممکن است به صورت اختصاصی و یا اشتراکی استفاده شود. حافظه سطح ۳و سطح ۴ یا L3 و L4 به همین صورت حجم بیشتر از سطح قبلی ولی سرعت کمتری نسبت به دو سطح فوق دارند و معمولا به صورت اشتراکی مورد استفاده قرار می گیرند.
تکنولوژی های جدید پردازنده ها
متداولترین راه برای افزایش سرعت یک پردازنده ، بالا بردن فرکانس آن می باشد اما راههای دیگری نیز وجود دارد که به وسیله آن می توان مقدار قابل توجهی کارایی یک پردازنده را افزایش داد راههایی چون استفاده ازPipelining ، حافظه نهان (Cache Memory) ، چند هسته ای شدن و اچ تی
Pipelining
روشی است که مدت زیادی است در پردازندهها از آن استفاده می شود در این روش پردازندهها کمی باهوشتر عمل میکند. برای واضح تر شدن موضوع Pipelining ، مثالی از اجرای یک دستور در CPUرا شرح میدهیم؛ یک پردازنده را در نظر بگیرید که در هر پالس یک دستورالعمل را اجرا میکند. در اولین پالس، دستور را از داخل حافظه اصلی (RAM) به داخل پردازنده انتقال میدهد. در پالس بعدی CPU دستور راDecode و در پالس سوم دستور اجرا میشود . در پالس چهارم نتیجه عمل ذخیره می گردد که این چرخه به صورت متوالی ادامه پیدا خواهد کرد. در صورتیکه یک پردازنده دارای قابلیت Pipelining باشد می تواند چند عمل را در یک زمان و به صورت موازی انجام دهد بدین ترتیب که :
• در پالس اول ، دستور اول از حافظه اصلی خوانده میشود.
• در پالس دوم ، دستور اول Decode گشته و همزمان دستور العمل دوم از حافظه اصلی خوانده میشود.
• در پالس سوم ، دستورالعمل اول اجرا ، همزمان دستورالعمل دومDecode و دستور العمل سوم از حافظه اصلی خوانده میشود.
بدین ترتیب این کارها همگی در یک زمان انجام میشوند که بهPipelining معروف می باشد.
Hyper Threading
این تکنولوژی که توسط اینتل توسعه داده شده امکان اجرای دستورالعملهای همزمان بیشتر در پردازنده را میسر میکند. هایپر-تردینگ یا HT اولین بار در سال ۲۰۰۲ و به همراه Pentium 4 HT معرفی شد. پنتیوم ۴ تنها یک هسته داشت و قادر به اجرای همزمان یک دستور بود؛ اما به کمک فناوری HT امکان اجرای همزمان دو دستور همزمان فراهم شد.
در فناوری HT دو یا چند هستهی منطقی به ازاء هر هستهی فیزیکی ایجاد میشود و رفتار سیستمعامل با این هستههای منطقی درست مثل هستههای فیزیکی است. به این ترتیب تسکها به صورت موازی پردازش شده و پردازنده با توان بیشتر شروع به پردازش امور میکند. در این حالت منابع پردازنده به دو بخش تقسیم میشوند. اگر یکی از هستههای مجازی پردازش تسک مورد نظر خود را به پایان برساند و به حالت انتظار برود ، منابع در دسترس آن به پردازش سریعتر دستورالعمل موازی آن به هستهی مجازی دیگر قرض داده میشود. در اکثر شرایط فناوری HT به خوبی شرایطی که پردازنده دو برابر هسته داشته باشد کار میکند.
پردازندههای جدید امروزی نه تنها از چند هسته بهره میبرند بلکه فناوری Hyper-Threading را نیز دارند. در این حالت مثلا پردازندهی دو هستهای با فناوری HT همچون پردازندهی ۴ هستهای در سیستمعامل شناخته میشود.
پردازنده های چند هسته ای: پردازندههای اولیه تک هستهای بودند این بدین معنی است که هر پردازنده تنها یک واحد پردازش مرکزی داشت. برای افزایش بازده و قدرت پردازنده، تولیدکنندگان به فکر افزایش هستهها در سی پی یو افتادند. در همین راستا پردازندههای دو هستهای تولید شدند که در واقع دو واحد پردازش مرکزی داشتند و سیستمعاملها نیز آنها را دو پردازنده مستقل میدیدند و تسکها را بصورت موازی به آنها ارسال میکردند.
برخلاف فناوری HT در این حالت دو هستهی فیزیکی وجود دارد که همچون دو پردازنده مستقل عمل میکنند با این تفاوت که هر دو پردازنده در دل یک تراشه قرار دارند. نزدیک شدن هستهها به یکدیگر ارتباط بین آنها را سریعتر کرده و دسترسی آنها به المانهای دیگر پردازنده مانند حافظههای کش و غیره را تسریع میکند.
امروزه پردازندههای ۴ هستهای، ۸ هستهای، ۱۶ هستهای یا حتی ۳۲ هستهای نیز وجود دارد و اکثر آنها نیز از فناوری HT یا فناوری مشابه آن پشتیبانی میکنند که باعث میشود تعداد هستههای منطقی و فیزیکی آنها به ۸، ۱۶ یا ۳۲ یا ۶۴ هسته افزایش یابد. مزیت اصلی افزایش هستهها در یک پردازنده آن است که نیازی به استفاده از ۴ یا ۸ سوکت در یک مادربرد نیست و همچنین ارتباط بین هستهها به مراتب بهینهتر انجام میشود.
سرعت پردازنده ها
سرعت سی پی یو، فرکانس کاری، Clock Speed یاClock Rate همگی به یک مفهوم اصلی اشاره دارند. واحد سنجش سرعت سی پی یو هرتز (Hertz) است و عموما به دلیل بزرگ بودن با واحد گیگاهرتز (Gigahertz) معرفی میشود. گیگاهرتز را به اختصاصی به صورت GHz نمایش میدهند. سرعت سی پی یو یا فرکانس کاری هر سی پی یو در واقع نشان میدهد که آن هستهی پردازشگر در هر ثانیه قادر به انجام چند دستور است. به عنوان مثال اگر گفته میشود که سرعت سی پی یو یا فرکانس کاری پردازندهای ۱٫۸گیگاهرتز است، یعنی این سی پی یو در هر ثانیه ۱,۸۰۰,۰۰۰,۰۰۰ دستور را پردازش میکند.
سرعت کلاک یا همان فرکانس یک پردازنده معادل است با حاصل ضرب فرکانس پایه(BCLK) (که معمولا ۱۰۰ مگاهرتز است) در یک ضریب که با عنوان مولتی پلایر (Multiplier) شناخته میشود. به عنوان مثال فرکانس یک پردازندهی ۳.۵ گیگاهرتزی از فرکانس پایهی ۱۰۰ مگاهرتز و ضریب ۳۵ به دست میآید.
فرکانس پایه توسط یک چیپ در مادربرد تولید میشود که تمامی عملکردهای کامپیوتر را یکسان و تنظیم میکند. در درون این چیپ از یک قطعه کریستال استفاده شده است که با اعمال جریان الکتریکی شروع به لرزش میکند و فرکانس پایه را تولید میکند. کوچکترین زمانی که قطعات کامپیوتر می توانند دادهها را ارسال یا دریافت کنند یک کلاک پلاس است.
سوکت: پردازندهها برای این که روی مادربرد نصب شوند، از اتصال دهندهای استفاده میکنند که در اصطلاح به آن سوکت گفته میشود .
انواع سوکت
سوکت PGA
سوکت PGA که مخففPin Grid Array است نوعی اتصال تقریبا مرسوم و حتی قدیمی پردازنده به حساب میآید. در این اتصال پین ها بروی پردازنده و سورخهای پین های مربوطه بروی سوکت طراحی میشود. فلز و سرامیک سازنده پین ها و سورخها می بایست تحمل زیادی برای گرمای ناشی از جریان زیاد عبوری در پردازنده داشته باشند.
سوکت LGA
سوکت LGA که مخفف عبارتLand Grid Array است، نسل جدید سوکت ها به حساب میآید. تفاوت این سوکت ها در این است که پین های اتصال در این روش در سوکت طراحی و پردازنده دارای سطوحی تماس است.
* سوکت نصب پردازندههای اینتل و AMD از زمین تا آسمان با هم فرق دارند. پردازندههای جدید اینتل دارای سوکت LGA هستند اما در پردازندههای AMD با سوکتAM4 شاهد استفاده از سوکت PGA هستیم (البته پردازندههای مدل AMD Threadripper از سوکتLGA استفاده میکنند). به غیر از تفاوت در نوع اتصال، تعداد پینهایی که در هر خانواده از پردازندهها استفاده میشود هم با خانوادهی قبلی از همان تولید کننده فرق دارد. به عنوان مثال در گذر از سوکتLGA 1150 اینتل به سوکت LGA 1151، اضافه شدن تنها یک پین اضافه باعث شد تا سازگاری این دو خانواده از نظر سوکت به هم بریزد و مصرفکننده نتواند محصول جدید را روی مادربرد قدیمی خود نصب کند. البته در پردازندههای نسل جدیدی اینتل Coffee Lake با اینکه مانند نسل قبل از سوکت LGA 1151 استفاده می کنند، اما با مادربردهای نسل قبل خود سازگاری ندارند.
اور کلاک و نحوهی اورکلاک سی پی یو
سرعت کلاک یا همان فرکانس یک سی پی یو معادل است با حاصلضرب فرکانس پایه(BCLK) (که معمولا ۱۰۰ مگاهرتز است) در یک ضریب که با عنوان مولتی پلایر (Multiplier) شناخته میشود. به عنوان مثال فرکانس یک پردازندهی ۳.۵ گیگاهرتزی از فرکانس پایهی ۱۰۰ مگاهرتز و ضریب ۳۵ به دست میآید. در دنیای حرفهایهای کامپیوتر، مفهومی به نام اورکلاک(Overclock) وجود دارد که با تغییرات در مشخصات فنی سختافزارها، عملکرد کامپیوتر را بهبود میدهد. یکی از راههای اورکلاک کردن کامپیوتر، دستکاری در فرکانس پایه و مولتی پلایر پردازنده است. اما معمولا در پردازندههای ارزان، ضریب مولتی پلایر توسط سازنده قفل (Locked) میشود و نمیتوان تغییری در آن به وجود آورد. چنانچه بخواهید در این پردازندهها به قدرت بیشتری دست پیدا کنید، تنها میتوانید اندکی (کمتر از ۱۰ مگاهرتز) در فرکانس پایه تغییر ایجاد کنید تا پردازندهتان کمی تغییر را به خود ببیند. اما در مدلهایی که مولتی پلایر باز (Unlocked) دارند، میتوانید هم فرکانس پایه و هم ضریب را تغییر دهید. اعمال تغییرات در مولتیپلایر و فرکانس مبنا کار سادهای نیست و به سالها تجربه و کار عملی نیاز دارد. در تولیدات اینتل مدلهایی که کدشان به K ختم میشوند دارای مولتیپلایر باز هستند ولی تمامی پردازندههای جدیدAMD دارای ضریب باز و قابل اورکلاک هستند. مدلهایی مثلCore i7-7700K اینتل یا Ryzen 7 1800X ایامدی از بهترین مدلهای روز هستند که مولتیپلایر باز دارند. دقت داشته باشید که استفاده از یک پردازندهی اورکلاک شده درست مثل استفاده از خودرویی است که موتور توربوشارژ دارد. با وجود این که قدرت بیشتری تحویل میگیرید، شاهد استهلاک بیشتری هم خواهید بود.