معماری رایانه

(تغییرمسیر از معماری کامپیوتر)

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

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

تاریخچهویرایش

اولین معماری مستند رایانه در مکاتبات چارلز بابیج و آدا لاولاس بود که موتور تحلیلی را توصیف می کرد. هنگام ساخت کامپیوتر Z1 در سال 1936 ، کنراد زوزه در دو برنامه ثبت اختراع برای پروژه های آینده خود توضیح داد که دستورالعمل های ماشین می توانند در همان حافظه ای که داده ها ذخیره شده اند ذخیره گردند. [۱] [۲] دو مثال اولیه و مهم دیگر عبارتند از:

اصطلاح "معماری" در ادبیات رایانه را می توان در آثار لایل آر جانسون و فردریک پی بروکس ، جونیور ، اعضای بخش سازمان ماشین در مرکز تحقیقات اصلی IBM در سال 1959 جستجو کرد. جانسون این فرصت را داشت که یک مقاله تحقیقاتی اختصاصی درباره Stretch ، ابررایانه IBM تولید شده برای آزمایشگاه ملی Los Alamos (در آن زمان به عنوان آزمایشگاه علمی Los Alamos)، بنویسد. وی برای توصیف سطح جزئیات برای بحث در مورد رایانه لوکس و مجلل، خاطرنشان کرد که توصیف او از قالب ها، انواع دستورالعمل ها، پارامترهای سخت افزاری و بالا بردن سرعت، در سطح "معماری سیستم" است، اصطلاحی که مفیدتر از "سازمان ماشین" به نظر می رسد " [۴]

متعاقبا بروكس، یک طراح Stretch ، فصل2 کتاب: Planning a Computer System: Project Stretch by stating را "معماری رایانه" نامید.

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

بروکس در ادامه به توسعه خط کامپیوترهای IBM System / 360 (که اکنون IBM zSeries نامیده می شود) کمک می کند، که در آن "معماری" به عنوان "آنچه کاربر باید بداند" تعریف می شود. [۵] بعدا کاربران رایانه از این اصطلاح به ندرت در موقعیت مناسب استفاده کردند.

اولین معماری های رایانه بر روی کاغذ طراحی شده و سپس مستقیماً در فرم نهایی سخت افزار ساخته شده اند. [۶] بعدها نمونه های اولیه معماری رایانه به صورت فیزیکی در قالب رایانه ترانزیستور - منطق ترانزیستور (TTL) - مانند نمونه های اولیه 6800 و PA-RISC - ساخته و قبل از تعهد به فرم سخت افزاری نهایی، ساخته شدند. از دهه 1990 ، معماری های رایانه جدید معمولاً "ساخته" می شوند ، آزمایش می شوند و اصلاح می شوند (در برخی دیگر از معماری های رایانه در شبیه ساز معماری رایانه)؛ یا داخل یک FPGA به عنوان یک ریزپردازنده نرم؛ یا هر دو (قبل از تعهد به فرم سخت افزاری نهایی). [۷]

زیر مجموعه هاویرایش

رشته معماری کامپیوتر دارای سه زیر مجموعه اصلی است:

فناوری های دیگری نیز در معماری کامپیوتر وجود دارد. فن آوری های زیر در شرکت های بزرگتر مانند اینتل مورد استفاده قرار می گیرد و در سال 2002 تخمین زده شد که 1٪ از کل معماری رایانه را شامل می شود:

  • معماری کلان : لایه های معماری انتزاعی تر از معماری خرد است
  • معماری مجموعه دستورالعمل های اسمبلی: یک اسمبلر هوشمند ممکن است یک زبان اسمبلی انتزاعی را که برای گروهی از ماشین ها متداول است، برای اجراهای مختلف به زبان ماشین کمی متفاوت تبدیل کند .
  • معماری کلان قابل مشاهده توسط برنامه نویسان : ابزارهای زبان های سطح بالاتر مانند کامپایلرها ممکن است یک رابط یا قرارداد******** ثابت برای برنامه نویسان با استفاده از آنها تعریف کنند ، تفاوت بین ISA ، UISA و ریز معماری های اساسی را انتزاع کنند. به عنوان مثال ، استانداردهای C ، C ++ یا Java ، معماری های مختلف قابل مشاهده توسط برنامه نویس را تعریف می کنند.
  • Microcode : میکرو کد نرم افزاری است که دستورالعمل های کار با تراشه را ترجمه می کند. مانند یک پوشش در اطراف سخت افزار عمل می کند و نسخه مطلوبی از رابط مجموعه دستورالعمل سخت افزار را ارائه می دهد. این امکان ترجمه دستورالعمل ها، انتخاب های انعطاف پذیری را به طراحان تراشه می دهد: به عنوان مثال: 1) نسخه جدید تراشه بهبود یافته می تواند با استفاده از میکرو کد دقیقاً همان دستورالعمل نسخه قبلی تراشه را ارائه دهد، بنابراین تمام نرم افزارهایی که این مجموعه دستورالعمل ها را هدف قرار می دهند بدون نیاز به تغییر روی تراشه جدید اجرا می شوند. به عنوان مثال 2) میکرو کد می تواند مجموعه دستورالعمل های متنوعی را برای همان تراشه زیربنایی ارائه دهد ، که به آن امکان می دهد تا نرم افزارهای متنوعی را اجرا کند.
  • UISA : دستور العمل کاربر برای مجموعه معماری، به یکی از سه زیر مجموعه دستورالعمل CPU RISC ارائه شده توسط پردازنده های PowerPC RISC اشاره دارد. زیر مجموعه UISA ، دستورالعمل های RISC مورد علاقه توسعه دهندگان برنامه هستند. دو زیر مجموعه دیگر دستورالعمل های VEA (معماری محیط مجازی) است که توسط توسعه دهندگان سیستم مجازی سازی استفاده می شود و OEA (معماری محیط عملیاتی) که توسط توسعه دهندگان سیستم عامل استفاده می شود. [۸]
  • معماری پین : عملکردهای سخت افزاری که یک ریزپردازنده باید در اختیار یک پلتفرم سخت افزاری قرار دهد ، مثلاً پایه های x86 A20M ، FERR / IGNNE یا FLUSH. همچنین پیام هایی که پردازنده باید منتشر کند تا حافظه نهان خارجی آزاد شود. توابع معماری پین انعطاف پذیرتر از توابع ISA است زیرا سخت افزار خارجی می تواند با رمزگذاری های جدید سازگار شود یا از پین به پیام تغییر کند. اصطلاح "معماری" مناسب است ، زیرا توابع باید برای سیستم های سازگار ارائه شوند ، حتی اگر روش دقیق تغییر کند.

نقش هاویرایش

تعریفویرایش

معماری رایانه مربوط به متعادل سازی عملکرد ، کارایی ، هزینه و قابلیت اطمینان یک سیستم رایانه ای است. مجموعه دستورالعمل های پیچیده تر ، برنامه نویسان را قادر می سازد تا برنامه هایی با فضای کمتری بنویسند ، زیرا یک دستورالعمل می تواند برخی از انتزاعات سطح بالاتر را رمزگذاری کند (مانند دستورالعمل حلقه x86). با این وجود، رمزگشایی دستورالعمل های طولانی تر و پیچیده تر برای پردازنده زمان بیشتری می برد و پیاده سازی آنها می تواند هزینه بیشتری داشته باشد. پیچیدگی بیشتر دستورالعمل های بزرگ، احتمال بیشتری برای قابل اعتماد نبودن در هنگام تعامل دستورالعمل ها به روش های غیرمنتظره ایجاد می کند.

این پیاده سازی شامل طراحی مدار مجتمع ، بسته بندی ، قدرت و خنک سازی است. بهینه سازی طراحی، نیاز به آشنایی با کامپایلرها، سیستم عامل ها برای طراحی منطقی، و بسته بندی دارد. [۹]

مجموعه دستورالعمل معماریویرایش

معماری مجموعه دستورالعمل ها (ISA) رابط بین نرم افزار و سخت افزار رایانه است و همچنین می تواند به عنوان نمای برنامه نویسان از ماشین مشاهده شود. رایانه ها زبان های برنامه نویسی سطح بالا مانند جاوا ، C ++ یا بیشتر زبان های برنامه نویسی مورد استفاده را نمی فهمند. پردازنده فقط دستورالعمل های رمزگذاری شده را به صورت عددی ، معمولاً به عنوان اعداد دودویی ، می فهمد. ابزارهای نرم افزاری ، مانند کامپایلرها ، زبان های سطح بالا را به دستورالعمل هایی تبدیل می کنند که پردازنده می تواند آنها را درک کند.

علاوه بر دستورالعمل ها ، ISA مواردی را که در دسترس یک برنامه است در رایانه تعریف می کند — به عنوان مثال ، انواع داده ها ، ثبات ها ، حالت های آدرس دهی و حافظه. دستورالعمل ها، این موارد موجود را با فهرست های ثبت (یا نام ها) و حالت های آدرس دهی حافظه پیدا می کنند.

ISA یک کامپیوتر معمولاً در یک کتابچه راهنمای کوچک شرح داده می شود که نحوه کدگذاری دستورالعمل ها را شرح می دهد. همچنین ، ممکن است اسامی کوتاه (مبهم) برای دستورالعمل ها تعریف شود. نام ها را می توان با یک ابزار توسعه نرم افزار به نام اسمبلر تشخیص داد. اسمبلر یک برنامه رایانه ای است که یک فرم ISA قابل خواندن توسط انسان را به فرم قابل خواندن توسط کامپیوتر ترجمه می کند. دیس اسمبلر ها نیز به طور گسترده در دسترس هستند، معمولاً در اشکال زدایی و برنامه های نرم افزاری، برای جداسازی و اصلاح اشکال ها در عملکرد در برنامه های باینری کامپیوتر به کار می روند.

ISA از نظر کیفیت و کامل بودن متفاوت است. ISA خوب بین راحتی برنامه نویس (آسان بودن درک کد)، اندازه کد (مقدار کد که برای انجام یک عمل خاص مورد نیاز است) ، هزینه کامپیوتر برای تفسیر دستورالعمل ها (پیچیدگی بیشتر به معنی سخت افزار بیشتر برای رمزگشایی و اجرای دستورالعمل ها است) و سرعت رایانه (با پیچیدگی بیشتر رمزگشایی، زمان رمزگشایی سخت افزار هم بیشتر می شود) تعادل برقرار می کند. بخش حافظه نحوه تعامل دستورالعمل ها با حافظه و نحوه تعامل حافظه با خود را تعریف می کند.

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

سازمان رایانهویرایش

سازمان رایانه به بهینه سازی محصولات مبتنی بر عملکرد کمک می کند. به عنوان مثال ، مهندسان نرم افزار باید قدرت پردازش پردازنده ها را بدانند. شاید برای دستیابی به بیشترین عملکرد با کمترین قیمت، نیاز به بهینه سازی نرم افزار داشته باشند. این امر می تواند به تجزیه و تحلیل کاملاً دقیق سازمان کامپیوتر نیاز داشته باشد. به عنوان مثال ، در کارت SD ، ممکن است لازم باشد طراحان کارت را مرتب کنند تا بیشترین داده ها به سریع ترین شکل پردازش شوند.

سازمان رایانه ای همچنین به برنامه ریزی برای انتخاب پردازنده برای یک پروژه خاص کمک می کند. پروژه های چندرسانه ای ممکن است به دسترسی سریع داده ها نیاز داشته باشند ، در حالی که ماشین های مجازی ممکن است به وقفه های سریع نیاز داشته باشند. بعضی اوقات بعضی از کارها به اجزای اضافی نیز احتیاج دارند. به عنوان مثال ، رایانه ای که قادر به راه اندازی یک ماشین مجازی باشد، به سخت افزار حافظه مجازی نیاز دارد تا حافظه رایانه های مختلف مجزا از هم، جدا شود. سازماندهی و ویژگیهای رایانه همچنین بر مصرف برق و هزینه پردازنده تأثیر می گذارد.

پیاده سازیویرایش

هنگامی که یک مجموعه دستورالعمل و معماری خرد طراحی شد ، باید یک ماشین عملی ساخته شود. به این فرآیند طراحی پیاده سازی گفته می شود . پیاده سازی معمولاً به عنوان طراحی معماری در نظر گرفته نمی شود، بلکه مهندسی طراحی سخت افزار محسوب می شود. پیاده سازی را می توان به چندین مرحله تقسیم کرد:

  • پیاده سازی منطقی مدارهای مورد نیاز را در سطح گیت منطقی طراحی می کند .
  • پیاده سازی مدار ، طراحی سطح ترانزیستور از عناصر اساسی (به عنوان مثال ، دروازه ها ، مالتی پلکسرها ، قفل ها ) و همچنین برخی بلوک های بزرگتر ( ALU ها ، حافظه پنهان و غیره) را که ممکن است در سطح دروازه منطقی یا حتی در سطح فیزیکی اجرا شود، ادر صورتی که طرح آنرا بخواهد انجام می دهد.
  • اجرای فیزیکی مدارهای فیزیکی را ترسیم می کند. اجزای مختلف مدار در یک طبقه از تراشه یا یک صفحه قرار می گیرند و سیم های اتصال دهنده آنها ایجاد می شود.
  • اعتبار سنجی طراحی ، رایانه را به عنوان یک کل آزمایش می کند تا ببیند در همه شرایط و همه زمان ها کار می کند. هنگامی که فرآیند اعتبار سنجی طراحی شروع می شود ، طراحی در سطح منطقی با استفاده از شبیه سازهای منطقی آزمایش می شود. با این حال ، این معمولاً برای اجرای یک آزمون واقع بینانه بسیار کند است. بنابراین ، پس از انجام اصلاحات بر اساس آزمون اول ، نمونه های اولیه با استفاده از آرایه های دروازه ای قابل برنامه ریزی ( FPGA ) ساخته می شوند. بیشتر پروژه های سرگرمی در این مرحله متوقف می شوند. مرحله آخر آزمایش نمونه های اولیه مدارهای مجتمع است که ممکن است به چندین طراحی مجدد نیاز داشته باشد.

برای پردازنده ها ، کل روند پیاده سازی به گونه ای متفاوت سازماندهی می شود و اغلب از آن به عنوان طراحی CPU یاد می شود.

افزایش فرکانس ساعت در مقایسه با بهبودهای کاهش قدرت طی چند سال گذشته با سرعت کمتری رشد کرده است. این امر با پایان قانون مور و تقاضا برای دوام باتری بیشتر و کاهش اندازه فناوری تلفن همراه صورت گرفته است. این تغییر در تمرکز از نرخ کلاک بالاتر به مصرف انرژی و کوچک سازی را می توان با کاهش قابل توجهی در مصرف برق ، تا 50٪ ، که توسط اینتل در انتشار ریز معماری Haswell گزارش شده ، نشان داد. جایی که آنها معیار مصرف برق خود را از 30-40 وات به 10-20 وات کاهش دادند. [۱۰] مقایسه این با افزایش سرعت پردازش 3 گیگاهرتز تا 4 گیگاهرتز (2002 تا 2006) [۱۱] می شود که تمرکز در تحقیق و توسعه از فرکانس ساعت دور شده و به سمت مصرف انرژی کمتر و اشغال فضای کمتری حرکت می کند.

همچنین ببینیدویرایش

منابعویرایش

  1. Williams, F. C.; Kilburn, T. (25 September 1948), "Electronic Digital Computers", Nature, 162 (4117): 487, Bibcode:1948Natur.162..487W, doi:10.1038/162487a0, archived from the original on 6 April 2009, retrieved 2009-04-10
  2. Susanne Faber, "Konrad Zuses Bemuehungen um die Patentanmeldung der Z3", 2000
  3. Reproduced in B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", Oxford University Press, 2005, pp. 369-454.
  4. Johnson, Lyle (1960). "A Description of Stretch" (PDF). p. 1. Retrieved 7 October 2017.
  5. "System 360, From Computers to Computer Systems". IBM100. Retrieved 11 May 2017.
  6. ACE underwent seven paper designs in one year, before a prototype was initiated in 1948. [B. J. Copeland (Ed.), "Alan Turing's Automatic Computing Engine", OUP, 2005, p. 57]
  7. Schmalz, M.S. "Organization of Computer Systems". UF CISE. Retrieved 11 May 2017.
  8. Frey, Brad (2005-02-24). "PowerPC Architecture Book, Version 2.02". IBM Corporation.
  9. Martin, Milo. "What is computer architecture?" (PDF). UPENN. Retrieved 11 May 2017.
  10. "Measuring Processor Power TDP vs ACP" (PDF). Intel. April 2011. Retrieved 5 May 2017.
  11. "History of Processor Performance" (PDF). cs.columbia.edu. 24 April 2012. Retrieved 5 May 2017.
  • John L. Hennessy و دیوید پترسون (2006). معماری کامپیوتر: رویکرد کمی (ویرایش چهارم). مورگان کافمن شابک John L. Hennessy John L. Hennessy
  • بارتون ، رابرت اس. ، "طراحی عملکردی رایانه ها" ، ارتباطات ACM 4 (9): 405 (1961).
  • بارتون ، رابرت اس. ، "رویکرد جدیدی به طراحی کاربردی رایانه دیجیتال" ، مجموعه مقالات کنفرانس مشترک رایانه ای غربی ، مه 1961 ، صص. 393–396. درباره طراحی رایانه Burroughs B5000 .
  • بل ، سی گوردون ؛ و نیول ، آلن (1971). "ساختارهای رایانه ای: قرائت و مثالها" ، مک گرا-هیل.
  • Blaauw ، GA و Brooks ، FP ، جونیور ، "ساختار سیستم / 360 ، قسمت اول-رئوس مطالب ساختار منطقی" ، IBM Systems Journal ، جلد 1. 3 ، نه 2 ، ص. 119–135 ، 1964.
  • Tanenbaum, Andrew S. (1979) سازمان رایانه ای ساخت یافته . صخره های Englewood ، نیوجرسی : Prentice-Hall. شابک Tanenbaum, Andrew S. Tanenbaum, Andrew S.

لینک های خارجیویرایش