تحقیق فرمت فایل word تعداد صفحات 13
واحد پردازش مرکزی CPU
دراین تحقیق موارد زیر برسی مشوند :
سیپییو (به انگلیسی: Central Processing Unit یا CPU) یا پردازنده (به انگلیسی: Processor)، یکی از اجزاء رایانه میباشد که فرامین و اطلاعات را مورد پردازش قرار میدهد. واحدهای پردازش مرکزی ویژگی پایهای قابل برنامهریزیشدن را در رایانههای رقمی فراهم میکنند، و یکی از مهمترین اجزاء رایانهها هستند. یک پردازندهٔ مرکزی، مداری یکپارچه میباشد که معمولاً به عنوان ریزپردازنده شناخته میشود. امروزه عبارت CPU معمولاً برای ریزپردازندهها به کار میرود.
تاریخچه
در اصطلاح عامیانه CPU به عنوان مغز رایانه شناخته میشود.
ترانزیستورهای گسسته و مدارات مجتمع (واحد پردازش مرکزی)
ریزپردازندهها
عملکرد ریزپردازندهها
طراحی و پیاده سازی
دامنه صحیح
پالس ساعت
منبع:
رایانهها چگونه کار میکنند؟
از زمان رایانههای اولیه که در سال ۱۹۴۱ ساخته شده بودند تا کنون فناوریهای دیجیتالی رشد نمودهاست، معماری فون نوِیمن یک رایانه را به چهار بخش اصلی توصیف میکند: واحد محاسبه و منطق(Arithmetic and Logic Unit یا ALU)، واحد کنترل یا حافظه، و ابزارهای ورودی و خروجی (که جمعاً I/O نامیده میشود). این بخشها توسط اتصالات داخلی سیمی به نام گذرگاه(buss) با یکدیگر در پیوند هستند.
حافظه تصویری از یک هارددیسکدر این سامانه، حافظه بصورت متوالی شماره گذاری شده در خانهها است، هرکدام محتوی بخش کوچکی از دادهها میباشند. دادهها ممکن استدستورالعملهایی باشند که به رایانه میگویند که چه کاری را انجام دهد باشد. خانه ممکن است حاوی اطلاعات مورد نیاز یک دستورالعمل باشد. اندازه هر خانه، وتعداد خانهها، در رایانهٔ مختلف متفاوت است، همچنین فناوریهای بکاررفته برای اجرای حافظه نیز از رایانهای به رایانه دیگر در تغییر است (از بازپخشکنندههای الکترومکانیکی تا تیوپها و فنرهای پر شده از جیوه و یا ماتریسهای ثابت مغناطیسی و در آخرترانزیستورهای واقعی و مدار مجتمعها با میلیونها فیوز نیمه هادی یا MOSFETهایی با عملکردی شبیه ظرفیت خازنی روی یک تراشه تنها).
پردازش تصویری از یک CPU یا واحد پردازشگر مرکزیواحد محاسبه و منطق یا ALU دستگاهی است که عملیات پایه مانند چهار عمل اصلی حساب (جمع و تفریق و ضرب و تقسیم)، عملیات منطقی (و، یا، نقیض)، عملیات قیاسی (برای مثال مقایسه دوبایت برای شرط برابری) و دستورات انتصابی برای مقدار دادن به یک متغیر را انجام میدهد. این واحد جائیست که «کار واقعی» در آن صورت میپذیرد.
البته CPUها به دو دسته کلی RISC و CISC تقسیمبندی میشوند. نوع اول پردازشگرهای مبتنی بر اعمال ساده هستند و نوع دوم پردازشگرهای مبتنی بر اعمال پیچیده میباشند. پردازشگرهای مبتنی بر اعمال پیچیده در واحد محاسبه و منطق خود دارای اعمال و دستوراتی بسیار فراتر از چهار عمل اصلی یا منطقی میباشند. تنوع دستورات این دسته از پردازندهها تا حدی است که توضیحات آنها خود میتواند یک کتاب با قطر متوسط ایجاد کند. پردازندههای مبتنی بر اعمال ساده اعمال بسیار کمی را پوشش میدهند و در حقیقت برای برنامهنویسی برای این پردازندهها بار نسبتاً سنگینی بر دوش برنامهنویس است. این پردازندهها تنها حاوی ۴ عمل اصلی و اعمال منطقی ریاضی و مقایسهای به علاوه چند دستور بیاهمیت دیگر میباشند. هرچند ذکر این نکته ضروری است که دستورات پیچیده نیز از ترکیب تعدادی دستور ساده تشکیل شدهاند و برای پیادهسازی این دستورات در معماریهای مختلف از پیادهسازی سختافزاری (معماری CISC) و پیادهسازی نرمافزاری (معماری RISC) استفاده میشود.
(قابل ذکر است پردازندههای اینتل از نوع پردازنده مبتنی بر اعمال پیچیده میباشند)
واحد کنترل همچنین این مطلب را که کدامین بایت از حافظه حاوی دستورالعمل فعلی اجرا شوندهاست را تعقیب میکند، سپس به واحد محاسبه و منطقاعلام میکند که کدام عمل اجرا و از حافظه دریافت شود و نتایج به بخش اختصاص داده شده از حافظه ارسال گردد. بعد از یک بار عمل، واحد کنترل به دستورالعمل بعدی ارجاع میکند (که معمولاً در خانه حافظه بعدی قرار دارد، مگر اینکه دستورالعمل جهش دستورالعمل بعدی باشد که به رایانه اعلام میکند دستورالعمل بعدی در خانه دیگر قرار گرفتهاست).
ورودی/خروجی تصویری از یک رایانه، صفحه نمایشگر(Monitor) نقش خروجی و صفحه کلید(keyboard) نقش ورودی را دارد.بخش ورودی/خروجی (I/O) این امکان را به رایانه میدهد تا اطلاعات را از جهان بیرون تهیه و نتایج آنها را به همانجا برگرداند. محدوده فوقالعاده وسیعی از دستگاههای ورودی/خروجی وجود دارد، از خانواده آشنای صفحهکلیدها، نمایشگرها، نَرمدیسک گرفته تا دستگاههای کمی غریب مانند رایابینها (webcamss). (از سایر ورودی/خروجیها میتوان موشواره mouse، قلم نوری، چاپگرها (printer)، اسکنرها، انواع لوحهای فشرده(CD, DVDD) را نام برد).
چیزی که تمامی دستگاههای عمومی در آن اشتراک دارند این است که آنها رمزکننده اطلاعات از نوعی به نوع دیگر که بتواند مورد استفاده سیستمهای رایانهدیجیتالی قرار گیرد، هستند. از سوی دیگر، دستگاههای خروجی آن اطلاعات به رمز شده را رمزگشایی میکنند تا کاربران آنها را دریافت نمایند. از این رو یک سیستم رایانه دیجیتالی یک نمونه از یک سامانه دادهپردازیمیباشد.
دستورالعملهاهر رایانه تنها دارای یک مجموعه کمتعداد از دستورالعملهای ساده و تعریف شده میباشد. از انواع پرکاربردشان میتوان به دستورالعمل «محتوای خانه ۱۲۳ را در خانه ۴۵۶ کپی کن!»، «محتوای خانه ۶۶۶ را با محتوای خانه ۰۴۲ جمع کن، نتایج را در خانه ۰۱۳ کن!»، «اگر محتوای خانه ۹۹۹ برابر با صفر است، به دستورالعمل واقع در خانه ۳۴۵ رجوع کن!» اشاره کرد.
دستورالعملها در داخل رایانه بصورت اعداد مشخص شدهاند - مثلاً کد دستور العمل (copy instruction) برابر ۰۰۱ میتواند باشد. مجموعه معین دستورالعملهای تعریف شده که توسط یک رایانه ویژه پشتیبانی میشود را زبان ماشین مینامند. در واقعیت، اشخاص معمولاً به زبان ماشین دستورالعمل نمینویسند بلکه بیشتر به نوعی از انواع سطح بالای زبانهای برنامهنویسی،برنامهنویسیمیکنند تا سپس توسط برنامه ویژهای (تفسیرگرها (interpreters) یا همگردانها(compilers) به دستورالعمل ویژه ماشین تبدیل گردد. برخی زبانهای برنامهنویسی از نوع بسیار شبیه و نزدیک به زبان ماشین که اسمبلر (یک زبان سطح پایین) نامیده میشود، استفاده میکنند؛ همچنین زبانهای سطح بالای دیگری نیز مانند پرولوگ نیز از یک زبان انتزاعی و چکیده که با زبان ماشین تفاوت دارد بجای دستورالعملهای ویژه ماشین استفاده میکنند.
معماریهادر رایانههای معاصر واحد محاسبه و منطق را به همراه واحد کنترل در یک مدار مجتمع که واحد پردازشی مرکزی (CPU) نامیده میشود، جمع نمودهاند. عموماً، حافظه رایانه روی یک مدار مجتمع کوچک نزدیک CPU قرار گرفته. اکثریت قاطع بخشهای رایانه تشکیل شدهاند از سامانههای فرعی (به عنوان نمونه، منبع تغذیه رایانه) و یا دستگاههای ورودی/خروجی.
برخی رایانههای بزرگتر چندین CPU و واحد کنترل دارند که بصورت همزمان با یکدیگر درحال کارند. اینگونه رایانهها بیشتر برای کاربردهای پژوهشی و محاسبات علمی بکار میروند.
کارایی رایانهها بنا به تئوری کاملاً درست است. رایانه دادهها و دستورالعملها را از حافظهاشواکشی (fetch) میکند. دستورالعملها اجرا میشوند، نتایج ذخیره میشوند، دستورالعمل بعدیواکشیمیشود. این رویه تا زمانی که رایانه خاموش شود ادامه پیدا میکند. واحد پردازنده مرکزی در رایانههای شخصی امروزی مانند پردازندههای شرکت ای-ام-دی و شرکت اینتل از معماری موسوم به خط لوله استفاده میشود و در زمانی که پردازنده در حال ذخیره نتیجه یک دستور است مرحله اجرای دستور قبلی و مرحله واکشی دستور قبل از آن را آغاز میکند. همچنین این رایانهها از سطوح مختلفحافظه نهانگاهی استفاده میکنند که در زمان دسترسی به حافظه اصلی صرفهجویی کنند.
برنامههابرنامه رایانهای فهرستهای بزرگی از دستورالعملها (احتمالاً به همراه جدولهائی از داده) برای اجرا روی رایانه هستند. خیلی از رایانهها حاوی میلیونها دستورالعمل هستند، و بسیاری از این دستورها به تکرار اجرا میشوند. یک رایانه شخصی نوین نوعی (درسال ۲۰۰۳) میتواند در ثانیه میان ۲ تا ۳ میلیارد دستورالعمل را پیاده نماید. رایانهها این مقدار محاسبه را صرف انجام دستورالعملهای پیچیده نمیکنند. بیشتر میلیونها دستورالعمل ساده را که توسط اشخاص باهوشی «برنامه نویسان» در کنار یکدیگر چیده شدهاند را اجرا میکنند. برنامهنویسان خوب مجموعههایی از دستورالعملها را توسعه میدهند تا یکسری از وظایف عمومی را انجام دهند (برای نمونه، رسم یک نقطه روی صفحه) و سپس آن مجموعه دستورالعملها را برای دیگر برنامهنویسان در دسترس قرار میدهند. (اگر مایلید «یک برنامهنویس خوب» باشید به اینمطلب مراجعه نمایید)
رایانههای امروزه، قادرند چندین برنامه را در آن واحد اجرا نمایند. از این قابلیت به عنوانچندکارگی (multitasking) نام برده میشود. در واقع، CPU یک رشته دستورالعملها را از یک برنامه اجرا میکند، سپس پس از یک مقطع ویژه زمانی دستورالعملهایی از یک برنامه دیگر را اجرا میکند. این فاصله زمانی اکثراً بهعنوان یک برش زمانی (time slice) نام برده میشود. این ویژگی که CPUU زمان اجرا را بین برنامهها تقسیم میکند، این توهم را بوجود میآورد که رایانه همزمان مشغول اجرای چند برنامهاست. این شبیه به چگونگی نمایش فریمهای یک فیلم است، که فریمها با سرعت بالا در حال حرکت هستند و به نظر میرسد که صفحه ثابتی تصاویر را نمایش میدهد. سیستمعامل همان برنامهای است که این اشتراک زمانی را بین برنامههای دیگر تعیین میکند.
سیستمعاملکامپیوتر همیشه نیاز دارد تا برای بکار انداختنش حداقل یک برنامه روی آن در حال اجرا باشد. تحت عملکردهای عادی این برنامه همان سیستمعامل یا OS که مخفف واژههای Operating System است. سیستم یا سامانه عامل بر اساس پیشفرضها تصمیم میگیرد که کدام برنامه برای انجام چه وظیفهای اجرا شود، چه زمان، از کدام منابع (مثل حافظه، ورودی/خروجی و…) استفاده شود. همچنین سیستمعامل یک لایه انتزاعی بین سختافزار و برنامههای دیگر که میخواهند از سختافزار استفاده کنند، میباشد، که این امکان را به برنامه نویسان میدهد تا بدون اینکه جزئیات ریز هر قطعه الکترونیکی از سختافزار را بدانند بتوانند برای آن قطعهبرنامهنویسی نمایند. در گذشته یک اصطلاح متداول بود که گفته میشد با تمام این وجود کامپیوترها نمیتوانند برخی از مسائل را حل کنند که به این مسائل حل نشدنی گفته میشود مانند مسائلی که در مسیر حلشان در حلقه بینهایت میافتند. به همین دلیل نیاز است که با کمک روشهای خاص بطور مثال به چند بخش تقسیم نمودن مسئله یا روشهای متداول دیگر از رخ دادن این خطا تا حد امکان جلوگیری نمود. از جمله سیستم عاملهای امروزی میتوان به مایکروسافت ویندوز، مکینتاش اپل و لینوکس و بی اس دی اشاره کرد.
معماری کامپیوتر دانش طراحی مفهومی و شناخت اجزای رایانه است.
عنوان یکی از گرایشهای کامپیوتر است. در این گرایش با اجزای داخلی کامپیوتر که مراحل انجام یک دستور را بر عهده دارند و چگونگی کار آنها آشنا میشویم. در این گرایش واحد کنترل مرکزی و حافظه به عنوان دو بخش اصلی کامپیوتر معرفی میشوند و در ادامه به بررسی ارتباط آنها و ساختار درونی آنها میپردازند. برای درک موضوعات مطرح شده در این گرایش آشنائی با مبحث مدارهای منطقی لازم و ضروری است.
فهرست مطالب:
فصل اول: رئوس مطالب در معماری و سازماندهی کامپیوتر
معنای معماری
مراحل در سازماندهی کامپیوتر
انضباط در معماری
تصویر بزرگ
عوامل موثر در معماری کامپیوتر
مجموعه دستورالعملهای یک محیط بحرانی
مهندسی و معماری کامپیوتر کجاست؟
اجزای ترکیب شده کامپیوتر
تکنولوژی کامپیوتر
چگونه یک CPU طراحی می شود؟
روش کلاسیک طراحی مرحله ای معماری مجموعه دستورالعمل
کل استراتژی شبیه سازی
کارایی شبیه سازی ها
و...
فصل دوم: معماری مجموعه دستورالعمل ها
مراحل اجرای یک دستورالعمل
چه چیزی در یک ISA (معماری مجموعه دستورالعمل) مشخص می شود؟
یک ISA ساده:حافظه به حافظه
مدل حافظه
ترجمه کد ساده
استفاده از یک مکان موقتی
مشکلات در معماری حافظه به حافظه
ماشین مبتنی بر انباشتگر
ماشین مبتنی بر انباشتگر که (A=(B+C)*(D+E را انجام می دهد
ضعف ماشینهای مبتنی بر انباشتگر
ماشینهای مبتنی بر انباشتگر هنوز در کامپیوترهای اولیه معمول بودند
پیشنهادات برای ماشینهای مبتنی بر انباشتگر
ماشین مبتنی بر پشته
معماری مجموعه دستورالعمل ماشینهای مبتنی بر پشته
کاربرد ماشینهای مبتنی بر پشته
ماشین مبتنی بر ثبات
ثباتهای عام منظوره-خاص منظوره
اندازه های داده های متفاوت
حافظه های MIPS
روش های آدرس دهی
ثبات ها
قراردادهای ثبات استاندارد
عملیات MIPS
قالب های دستورالعمل MIPS
فیلدها در دستورالعملهای MIPS
ماشین نمایش دستورالعملهای MIPS
عملوندهای ALU
نمایش ماشینی
ضرب و تقسیم صحیح در MIPS
دستورالعملهای انتقال داده ها
انشعاب ها
طبقه بندی انشعاب ها
دستورالعمل های انشعاب
بدنه سوئیچ در MIPS
فراخوانی تابع در MIPS
و...
فصل سوم: نمایش اعداد و محاسبات کامپیوتر
بیت ها و اعداد
عدد صحیح بدون علامت
عدد صحیح با علامت
سیستم مکمل دو
جمع و تفریق
سرریز
کار CPU در برابر سرریزی چیست؟
دستورالعمل ها
طراحی پردازش
طراحی ALU
روش تقسیم و غلبه
محیط ALU
طراحی با بلاک دیاگرام سطح پایین تر
بلاک ALU یک بیتی
تمام جمع کننده Full Adder
واحدهای محاسبه منطق (ALU) بزرگتر
محاسبه تعداد گیت ها
تاخیر گیت
بیت نقلی
واحد محاسبه و منطق 16 بیتی
ضرب و تقسیم صحیح
سخت افزار ضرب
ضرب علامت دار
سخت افزار تقسیم
و...
فصل چهارم: سنجش کارایی
کارایی و هزینه
تعاریف کارایی
درک کارایی
ساعت کامپیوتر
معیارهای پایه ارزیابی
چه تعداد چرخه برای یک برنامه نیاز است؟
محاسبه زمان CPU
فاکتورهای موثر در کارایی CPU
محاسبه CPI
آزمون های کارایی کامپیوتر
SPEC
و...
فصل پنجم: روش های پیاده سازی معماری پردازشگر
چه طور یک پردازشگر طراحی می شود؟
یادآوری:قالب های دستورالعمل های MIPS
ثبات منطقی انتقال
مرحله 1: تعیین پیش نیازهای مجموعه دستورالعمل
مرحله 2: اجزاء مسیر داده
مرحله 3: مقدمه واحد واکشی دستورالعمل
مرحله 3: جنع و تفریق
مرحله 3: عمل منطقی
مرحله 3: عمل بار کردن
مرحله 3: عمل ذخیره سازی
مرحله 3: دستورهای انشعاب
مرحله 4: مسیر داده
کنترل ALU
و...
فصل ششم: خط لوله ای کردن و معماری خط لوله ای شده
مفهوم پایه
خط لوله ای کردن به عنوان یک تکنیک معماری
محدودیتهای کارایی در یک خط لوله
روی هم اندازی (Overlap) در برابر خط لوله ای
خط لوله پویا و ایستا
خط لوله MIPS
نمایش منقوش خط لوله
چرا خط لوله؟
آیا خط لوله می تواند برای ما مشکل ایجاد کند؟
هزاردهای ساختاری کارایی را محدود می کند
راه حل های هزارد کنترلی
هزاردهای داده ای روی r1
راه حل هزارد داده ای
طراحی یک مسیر داده خط لوله ای شده
خط لوله ای کردن دستورالعمل بارکردن
و...
فصل هفتم: طراحی سیستم حافظه
سلسله مراتی حافظه
مشخصات برنامه ها و سازماندهی حافظه
حافظه با دستیابی تصادفی
کارایی حافظه
حافظه نهان
مکانهایی با احتمال دستیابی بالا
همجواری
نسبت برخورد
سازمان دهی کش
و...