PDA

مشاهده نسخه کامل : معماری سی پی یو



sun1000
28-07-13, 12:54
با سلام خدمت دوستان میخواستم راجع به معماری سی پی یو بدونم اصلا معماری در پردازش چه تاثیری داره چرا بعضی سیستم عامل ها فقط روی یه معماری خاص اجرا میشن بعد یه سوال دیگه که شاید بهم بخندید ولی واقعا ذهنمو مشغول کرده چرا سیستم ای 64 بیتی رو مینویسن x64 ولی32 بیتی رو نمینویسن x32 ,مینویسن x86 :1. (27):

Over_Cracker
28-07-13, 21:34
درود.

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

چرا بعضی سیستم عامل ها فقط روی یه معماری خاص اجرا میشن؟ سیستم عامل یک بستر نرم افزاری هستش برای استفاده از سخت افزار. CPU یک سخت افزار هستش که در زمان طراحی یک زبان براش طراحی( زبان 0 و 1 و یا ولتاژ های Low و High) میشه.برای استفاده از این CPU ،(طبق تعریف قبلی) باید یک سیستم عامل داشته باشیم. پس این سیستم عامل با زبان مخصوص CPU طراحی میشه! نتیجه اینکه هر سیستم عامل تنها قابل استفاده روی پردازنده ای هستش که از قبل برای اون CPU و با استفاده از دستورات مخصوص اون CPU طراحی و نوشته شده.

نکته:هر CPU بسته به کاربردش،زبان و دستورات مخصوص به خودش را داره.


چرا سیستم ای 64 بیتی رو مینویسن x64 ولی32 بیتی رو نمینویسن x32 ,مینویسن x86؟ x86 یک معماری از مجموعه دستورات (Instruction Set Architecture) مخصوص CPU هستش که برای اولین بار روی پردازنده های 8086 اینتل در سال 1976 پیاده سازی شده. این ست دستورات قابلیت های جدیدی داشتند از جمله پشتیبانی از برنامه های نوشته شده به زبان اسمبلی،پشتیبانی از پردازنده های 16 بیتی...این معماری دستورات x86 در پردازنده های بعدی اینتل نیز ادامه پیدا کرد و معماری واحدی برای طراحی پردازنده های PC مورد استقبال کمپانی های مختلف قرار گرفت. بعد از پردازنده های 8086،پردازنده های 80286 و نهایتا برای اولین بار در پردازنده های 32 بیتی 80386 پیاده سازی شد و i386 نامگذاری شد و چون همگی این پردازنده ها از معماری دستورات x86 استفاده می کردند، پردازنده های 16 بیتی x86-16 و پردازنده های 32 بیتی ،x86-32 و یا i386 نام گرفت و این رویه برای پردازنده های نسل بعد ادامه پیدا کرد و به خاطر این که مدت زمان زیادی پردازنده های x86-32 به همراه سیستم عامل های 32 بیتی بر سیستم های pc و سرورها حاکم بودند،اصطلاح x86-32 را کوتاه کردند و به جاش x86 و یا i386 را به کار بردند تا زمانی که AMD برای اولین بار نسل 64 بیتی معماری دستورات x86 را در پردازنده های k8 خودش پیاده سازی کرد که اون x86-64 نام گرفت و البته به آن amd64 نیز گفته می شود.

نکته:تمامی ست دستورات x86 که تاکنون پیاده سازی و توسعه داده شدند،از نسل قبلی خود پشتیبانی می کنند.(به این دلیل پردازنده های 64 بیتی از سیستم عامل های 32 بیتی پشتیبانی می کنند و همچنین پردازنده های 32 بیتی از سیستم عامل های 16 بیتی)

نتیجه گیری:استفاده از عبارت :"x86" برای اشاره به CPU های 32 بیتی به غلط مصطلح شده و اشتباه هست به دلیل اینکه X86 میتونه به هر یک از معماری های 16 بیتی،32 بیتی،64 بیتی...گفته بشه و بهتره به جاش از x86-32 و یا i386 و یا IA-32 استفاده کرد. (IA سر نام عبارت Instruction Set Architecture هستش،به معنی معماری مجموعه دستورات)

نتیجه گیری:x64 اشاره به مجموعه دستورات x86-64 داره و با واژه های معادل AMD64 ، IA-64 و یا Intel 64 شناخته میشه. هر جا واژه ی AMD64 به کار رفت،منظور در پیاده سازی AMD هست و هر جا x86-64 به کار رفت،منظور کلیه پردازنده های 64 بیتی x86 هستش و در سایر موارد مثل IA-64،Intel 64،IA-32e و EM64T اشاره به پیاده سازی معماری 64 بیتی دستورات x86 در پردازنده های اینتل دارد.

شاد باشید.

sun1000
29-07-13, 18:13
با سلام اقا خیلی ممنون از پاسخ کاملتون سر بلند باشید