موضوع مقاله: معماری رایانه | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # معماری رایانه | مقدمه: خطوط سیاه جریان داده را نشان می‌دهند، در حالی که خطوط قرمز جریان کنترل را نشان می‌دهند. | ## بخش 1: معماری رایانه | معماری رایانه در مهندسی رایانه، مجموعه ای از قوانین و روش‌هاست که عملکرد، سازماندهی و روند اجرای سیستم‌های رایانهای را توصیف می‌کند. برخی تعاریف معماری، آن را به عنوان توصیف توانایی‌ها و مدل برنامه‌نویسی رایانه، تعریف می‌کنند که در عین حال جنبه اجرایی ندارد. در تعاریف دیگر، معماری رایانه شامل طراحی مجموعه معماری، طراحی معماری خرد، طراحی منطق و پیاده‌سازی است. تاریخچه اولین معماری مستند رایانه در مکاتبات چارلز بابیج و آدا لاولاس بود که موتور تحلیلی را توصیف می‌کرد. هنگام ساخت رایانه Z1 در سال ۱۹۳۶، کنراد زوزه در دو برنامه ثبت اختراع برای پروژه‌های آینده خود توضیح داد که دستورالعمل‌های ماشین می‌توانند در همان حافظه‌ای که داده‌ها ذخیره شده‌اند ذخیره گردند. ماشین حساب الکترونیکی آلن تورینگ که جزئیات بیشتری دارد، پیشنهاد شده برای موتور محاسبات اتوماتیک، همچنین در سال ۱۹۴۵ به مقاله جان فون نویمان اشاره کرده است.Reproduced in B. اصطلاح "معماری" در ادبیات رایانه را می‌توان در آثار لایل آر جانسون و فردریک پی بروکس جونیور، اعضای بخش سازمان ماشین در مرکز تحقیقات اصلی IBM در سال ۱۹۵۹ جستجو کرد. مانند سایر معماری‌ها، هنر، تعیین نیازهای کاربر از یک سازه و سپس طراحی آن برای رفع نیازها تا حد ممکن با توجه به محدودیت‌های اقتصادی و فناوری است. 57] بعدها نمونه‌های اولیه معماری رایانه به صورت فیزیکی در قالب رایانه ترانزیستور - منطق ترانزیستور (TTL) - مانند نمونه‌های اولیه ۶۸۰۰ و PA-RISC - ساخته و قبل از تعهد به فرم سخت‌افزاری نهایی، ساخته شدند. از دهه ۱۹۹۰، معماری‌های رایانه جدید معمولاً «ساخته» می‌شوند، آزمایش می‌شوند و اصلاح می‌شوند (در برخی دیگر از معماری‌های رایانه در شبیه‌ساز معماری رایانه)؛ یا داخل یک FPGA به عنوان یک ریزپردازنده نرم؛ یا هر دو (قبل از تعهد به فرم سخت‌افزاری نهایی). زیر مجموعه‌ها رشته معماری رایانه دارای سه زیر مجموعه اصلی است: معماری مجموعه دستورالعمل‌ها (ISA): کد ماشین را که پردازنده می‌خواند و بر اساس آن عمل می‌کند، بعلاوه اندازه کلمه، حالت آدرس دهی، ثبات و نوع داده را تعریف می‌کند. به عنوان مثال اندازه حافظه نهان پردازنده رایانه، مسئله‌ای است که به‌طور کلی هیچ ارتباطی با ISA ندارد. طراحی سیستم‌ها: شامل سایر مولفه‌های سخت‌افزاری درون یک سیستم محاسباتی مانند پردازش داده غیر از CPU (به عنوان مثال دسترسی مستقیم به حافظه)، مجازی سازی و پردازش چندگانه فناوری‌های دیگری نیز در معماری رایانه وجود دارد. فن آوری‌های زیر در شرکت‌های بزرگتر مانند اینتل مورد استفاده قرار می‌گیرد و در سال ۲۰۰۲ تخمین زده شد که ۱٪ از کل معماری رایانه را شامل می‌شود: معماری کلان: لایه‌های معماری انتزاعی‌تر از معماری خرد است. معماری مجموعه دستورالعمل‌های اسمبلی: یک اسمبلر هوشمند ممکن است یک زبان اسمبلی انتزاعی را که برای گروهی از ماشین‌ها متداول است، برای اجراهای مختلف به زبان ماشین کمی متفاوت تبدیل کند. معماری کلان قابل مشاهده توسط برنامه نویسان: ابزارهای زبان‌های سطح بالاتر مانند کامپایلرها ممکن است یک رابط یا قرارداد ثابت برای برنامه نویسان با استفاده از آنها تعریف کنند، تفاوت بین ISA , UISA و ریز معماری‌های اساسی را انتزاع کنند. برای مثال، استانداردهای C ,C ++ یا Java، معماری‌های مختلف قابل مشاهده توسط برنامه‌نویس را تعریف می‌کنند. میکرو کد (ریزبرنامه سازی): میکروکد نرم‌افزاری است که دستورالعمل‌های کار با تراشه را ترجمه می‌کند. مانند یک پوشش در اطراف سخت‌افزار عمل می‌کند و نسخه مطلوبی از رابط مجموعه دستورالعمل سخت‌افزار را ارائه می‌دهد. این امکان ترجمه دستورالعمل‌ها، انتخاب‌های انعطاف‌پذیری را به طراحان تراشه می‌دهد: به عنوان مثال: نسخه جدید تراشه بهبود یافته می‌تواند با استفاده از میکروکد دقیقاً همان دستورالعمل نسخه قبلی تراشه را ارائه دهد، بنابراین تمام نرم‌افزارهایی که این مجموعه دستورالعمل‌ها را هدف قرار می‌دهند بدون نیاز به تغییر روی تراشه جدید اجرا می‌شوند. میکروکد می‌تواند مجموعه دستورالعمل‌های متنوعی را برای همان تراشه زیربنایی ارائه دهد، که به آن امکان می‌دهد تا نرم‌افزارهای متنوعی را اجرا کند. دو زیر مجموعه دیگر دستورالعمل‌های VEA (معماری محیط مجازی) است که توسط توسعه دهندگان سیستم مجازی سازی استفاده می‌شود و OEA (معماری محیط عملیاتی) که توسط توسعه دهندگان سیستم عامل استفاده می‌شود. | ## بخش 2: معماری رایانه | توابع معماری پین انعطاف پذیرتر از توابع ISA است زیرا سخت‌افزار خارجی می‌تواند با رمزگذاری‌های جدید سازگار شود یا از پین به پیام تغییر کند. اصطلاح «معماری» مناسب است، زیرا توابع باید برای سیستم‌های سازگار ارائه شوند، حتی اگر روش دقیق تغییر کند. نقش‌ها تعریف معماری رایانه مربوط به متعادل سازی عملکرد، کارایی، هزینه و قابلیت اطمینان یک سیستم رایانه‌ای است. مجموعه دستورالعمل‌های پیچیده‌تر، برنامه نویسان را قادر می‌سازد تا برنامه‌هایی با فضای کمتری بنویسند، زیرا یک دستورالعمل می‌تواند برخی از انتزاعات سطح بالاتر را رمزگذاری کند (مانند دستورالعمل حلقه x86). با این وجود، رمزگشایی دستورالعمل‌های طولانی‌تر و پیچیده‌تر برای پردازنده زمان بیشتری می‌برد و پیاده‌سازی آنها می‌تواند هزینه بیشتری داشته باشد. پیچیدگی بیشتر دستورالعمل‌های بزرگ، احتمال بیشتری برای قابل اعتماد نبودن در هنگام تعامل دستورالعمل‌ها به روش‌های غیرمنتظره ایجاد می‌کند. بهینه‌سازی طراحی، نیاز به آشنایی با کامپایلرها، سیستم عامل‌ها برای طراحی منطقی، و بسته‌بندی دارد. مجموعه دستورالعمل معماری معماری مجموعه دستورالعمل‌ها (ISA) رابط بین نرم‌افزار و سخت‌افزار رایانه است و همچنین می‌تواند به عنوان نمای برنامه نویسان از ماشین مشاهده شود. رایانه‌ها زبان‌های برنامه‌نویسی سطح بالا مانند جاوا، C ++ یا بیشتر زبان‌های برنامه‌نویسی مورد استفاده را نمی‌فهمند. پردازنده فقط دستورالعمل‌های رمزگذاری شده را به صورت عددی، معمولاً به عنوان اعداد دودویی، می‌فهمد. ابزارهای نرم‌افزاری، مانند کامپایلرها، زبان‌های سطح بالا را به دستورالعمل‌هایی تبدیل می‌کنند که پردازنده می‌تواند آنها را درک کند. علاوه بر دستورالعمل‌ها، ISA مواردی را که در دسترس یک برنامه است در رایانه تعریف می‌کند — به عنوان مثال، انواع داده‌ها، ثبات‌ها، حالت‌های آدرس دهی و حافظه. دستورالعمل‌ها، این موارد موجود را با فهرست‌های ثبات (یا نام‌ها) و حالت‌های آدرس دهی حافظه پیدا می‌کنند. ISA یک رایانه معمولاً در یک کتابچه راهنمای کوچک شرح داده می‌شود که نحوه کدگذاری دستورالعمل‌ها را شرح می‌دهد. اسمبلر یک برنامه رایانه‌ای است که یک فرم ISA قابل خواندن توسط انسان را به فرم قابل خواندن توسط رایانه ترجمه می‌کند. دیس اسمبلر‌ها نیز به‌طور گسترده در دسترس هستند، معمولاً در اشکال زدایی و برنامه‌های نرم‌افزاری، برای جداسازی و اصلاح اشکال‌ها در عملکرد در برنامه‌های باینری رایانه به کار می‌روند. ISA خوب بین راحتی برنامه‌نویس (آسان بودن درک کد)، اندازه کد (مقدار کد که برای انجام یک عمل خاص مورد نیاز است)، هزینه رایانه برای تفسیر دستورالعمل‌ها (پیچیدگی بیشتر به معنی سخت‌افزار بیشتر برای رمزگشایی و اجرای دستورالعمل‌ها است) و سرعت رایانه (با پیچیدگی بیشتر رمزگشایی، زمان رمزگشایی سخت‌افزار هم بیشتر می‌شود) تعادل برقرار می‌کند. بخش حافظه نحوه تعامل دستورالعمل‌ها با حافظه و نحوه تعامل حافظه با خود را تعریف می‌کند. در طول شبیه‌سازی طراحی، شبیه‌سازها می‌توانند برنامه‌هایی را که در یک مجموعه دستورالعمل پیشنهادی نوشته شده‌اند، اجرا کنند. شبیه‌سازهای مدرن می‌توانند اندازه، هزینه و سرعت را اندازه‌گیری کنند تا مشخص کنند آیا ISA خاصی اهداف خود را برآورده می‌کند. شاید برای دستیابی به بیشترین عملکرد با کمترین قیمت، نیاز به بهینه‌سازی نرم‌افزار داشته باشند. برای مثال، در کارت SD، ممکن است لازم باشد طراحان کارت را مرتب کنند تا بیشترین داده‌ها به سریع‌ترین شکل پردازش شوند. | ## بخش 3: معماری رایانه | سازمان رایانه‌ای همچنین به برنامه‌ریزی برای انتخاب پردازنده برای یک پروژه خاص کمک می‌کند. پروژه‌های چندرسانه‌ای ممکن است به دسترسی سریع داده‌ها نیاز داشته باشند، در حالی که ماشین‌های مجازی ممکن است به وقفه‌های سریع نیاز داشته باشند. به عنوان مثال، رایانه‌ای که قادر به راه اندازی یک ماشین مجازی باشد، به سخت‌افزار حافظه مجازی نیاز دارد تا حافظه رایانه‌های مختلف مجزا از هم، جدا شود. سازماندهی و ویژگی‌های رایانه همچنین بر مصرف برق و هزینه پردازنده تأثیر می‌گذارد. پیاده‌سازی هنگامی که یک مجموعه دستورالعمل و معماری خرد طراحی شد، باید یک ماشین عملی ساخته شود. پیاده‌سازی معمولاً به عنوان طراحی معماری در نظر گرفته نمی‌شود، بلکه مهندسی طراحی سخت‌افزار محسوب می‌شود. پیاده‌سازی را می‌توان به چندین مرحله تقسیم کرد: پیاده‌سازی منطقی مدارهای مورد نیاز را در سطح گیت منطقی طراحی می‌کند. پیاده‌سازی مدار، طراحی سطح ترانزیستور از عناصر اساسی (به عنوان مثال، دروازه‌ها، مالتی پلکسرها، لچ‌ها) و همچنین برخی بلوک‌های بزرگتر (ALUها (واحد محاسبه و منطق)، حافظه نهان و غیره) را که ممکن است در سطح دروازه منطقی یا حتی در سطح فیزیکی اجرا شود، در صورتی که طرح آن را بخواهد انجام می‌دهد. اجزای مختلف مدار در یک طبقه از تراشه یا یک صفحه قرار می‌گیرند و سیم‌های اتصال دهنده آنها ایجاد می‌شود. اعتبار سنجی طراحی، رایانه را به عنوان یک کل آزمایش می‌کند تا ببیند در همه شرایط و همه زمان‌ها کار می‌کند. هنگامی که فرایند اعتبار سنجی طراحی شروع می‌شود، طراحی در سطح منطقی با استفاده از شبیه‌سازهای منطقی آزمایش می‌شود. با این حال، این معمولاً برای اجرای یک آزمون واقع بینانه بسیار کند است؛ بنابراین، پس از انجام اصلاحات بر اساس آزمون اول، نمونه‌های اولیه با استفاده از آرایه‌های دروازه‌ای قابل برنامه‌ریزی (FPGA) ساخته می‌شوند. مرحله آخر آزمایش نمونه‌های اولیه مدارهای مجتمع است که ممکن است به چندین طراحی مجدد نیاز داشته باشد. برای پردازنده‌ها، کل روند پیاده‌سازی به گونه‌ای متفاوت سازماندهی می‌شود و اغلب از آن به عنوان طراحی CPU یاد می‌شود. معماری رایانه معمولاً تعادل بین استاندارد و قدرت را در مقابل عملکرد، هزینه، ظرفیت حافظه، تاخیر (تأخیر زمانی است که برای انتقال اطلاعات از یک گره به منبع لازم است) و توان تولید را برقرار می‌کند. بعضی اوقات ملاحظات دیگر مانند ویژگی‌ها، اندازه، وزن، قابلیت اطمینان و قابلیت ارتقا نیز از عوامل دیگر هستند. رایج‌ترین طرح، تجزیه و تحلیل عمیق نیرو را انجام می‌دهد و نحوه کم کردن مصرف برق با حفظ عملکرد کافی را مشخص می‌کند. تغییر تقاضای بازار افزایش فرکانس ساعت در مقایسه با بهبودهای کاهش قدرت طی چند سال گذشته با سرعت کمتری رشد کرده است. این امر با پایان قانون مور و تقاضا برای دوام باتری بیشتر و کاهش اندازه فناوری تلفن همراه صورت گرفته است. این تغییر در تمرکز از نرخ کلاک بالاتر به مصرف انرژی و کوچک سازی را می‌توان با کاهش قابل توجهی در مصرف برق، تا ۵۰٪، که توسط اینتل در انتشار ریز معماری Haswell گزارش شده، نشان داد. مقایسه این با افزایش سرعت پردازش ۳ گیگاهرتز تا ۴ گیگاهرتز (۲۰۰۲ تا 2006) می‌شود که تمرکز در تحقیق و توسعه از فرکانس ساعت دور شده و به سمت مصرف انرژی کمتر و اشغال فضای کمتری حرکت می‌کند. | ## جمع‌بندی | "رویکرد جدیدی به طراحی کاربردی رایانه دیجیتال"، مجموعه مقالات کنفرانس مشترک رایانه ای غربی، مه ۱۹۶۱، صص.