• مشکی
  • سفید
  • سبز
  • آبی
  • قرمز
  • نارنجی
  • بنفش
  • طلایی
انجمن ها > انجمن کامپیوتر > صفحه اول بحث
لطفا در سایت شناسائی شوید!
کامپیوتر (بازدید: 3430)
شنبه 22/3/1389 - 0:21 -0 تشکر 205055
کلیه مباحث و نکات مربوط به معماری 32 بیتی و 64 بیتی

کلا 32 بیتی و 64 بیتی به چه معناست؟

32 بیتی

در معماری کامپیوتر به اعداد صحیح 32 بیتی, آدرس های حافظه و یا واحدهای داده دیگری که در نهایت 32 بیت عرض دارن گفته میشه. همچنین عموما به نسلی از کامپیوترها گفته میشه که دارای پردازنده 32 بیتی هستند.

مقادیر صحیحی که می تونه در 32 بیت ذخیره بشه از صفر تا 4294967295 هست در نتیجه یک پردازنده با آدرس های حافظه 32 بیتی می تونه مستقیما به 4 گیگابایت (= 2 به توان 32) حافظه دسترسی پیدا کنه. آدرس های خارجی و گذرگاه های داده معمولا عریض تر از 32 بیت هستند اما هردوی این ها به عنوان کمیت های 32 بیتی در درون پردازنده ذخیره و دستکاری میشن. به عنوان نمونه پردازنده Pentium Pro یک دستگاه 32 بیتی است اما باس ادرس خارجی 36 بیت و باس داده خارجیش 64 بیت عرض داره.

64 بیتی

در معماری کامپیوتر به اعداد صحیح 64 بیتی, آدرس های حافظه و یا واحدهای داده دیگری که در نهایت 64 بیت عرض دارن گفته میشه. همچنین به پردازنده هایی که بر اساس ثبات ها, باس های آدرس و باس های داده ای با عرض 64 بیت هستند نیز گفته میشه.

پردازنده های 64 بیتی در سوپرکامپیوترها از دهه 60 (1960) و در سرورها و ایستگاه های کاری از اوایل دهه 90 (1990) وجود داشته. در سال 2003 این پردازنده ها به عرصه کامپیوترهای شخصی معرفی شدن.

جالبه بدونید Nintendo 64 و PlayStation 2 هر دو ماکروپروسسور 64 بیتی داشتند. قبل از این که این تکنولوژی وارد کامپیوترهای شخصی (PC) بشه.

یک معماری کامپیوتری 64 بیتی دارای عدد صحیح و رجیسترهایی با عرض 64 بیت هست که اجازه دسترسی مستقیم به آدرس ها و انواع داده های 64 بیتی رو میده. اگرچه ممکنه است پردازنده باس های آدرس یا داده خارجی بزرگتر از 64 بیت داشته باشه.

با معماری 64 بیتی سقف حافظه به 2 به توان 64 افزایش پیدا می کنه که تقریبا معادل 17.2 میلیارد گیگابایت هست, به عبارت دیگه 16.8 میلیون ترابایت و یا 16 اگزابایت.

عیب اصلی معماری 64 بیتی اینه که نسبت به معماری 32 بیتی, داده یکسان فضای بیشتری در حافظه اشغال می کنه و این باعث میشه حافظه بیشتری برای پردازش داده شده لازم باشه.

////////////////////////////////////////////////////////////////////////////////

حالا بیشتر به کامپیوترهای شخصی می پردازیم.

ماکزیموم حافظه ای که توسط ویندوزهای 32 بیتی Server 2008, Vista, Server 2003, XP, 2000 حمایت میشه 4 گیگابایت هست. هر چند قابلیتی بنام PAE اجازه میده که از حافظه بیشتری حمایت کنند.

PAE مخفف Physical Address Extension به معنای توسیه آدرس فیزیکی هست و به پردازنده اجازه میده تا تعداد بیت هایی که می توانند برای آدرسی دهی حافظه فیزیکی بکار روند رو از 32 به 36 بیت افزایش بده. این قابلیت توسط پردازنده ای مثل اینتل فراهم شده و ویندوزهای 32 بیتی هم توسط ماکروسافت از اون حمایت می کنند.

این قابلیت در ویندوزهای سرور پیش فرض فعال هست. با کمک PAE ویندوزهای 32 بیتی

Windows 2000 Advanced Server مقدار 8 گیگابایت RAM فیزیکی
Windows 2000 Datacenter Server و Windows Server 2003 Enterprise Edition مقدار 32 گیگابایت RAM فیزیکی
Windows Server 2003 Datacenter Edition مقدار 64 گیگابایت RAM فیزیکی

رو ساپورت می کنند.

نکته: ویندوزهای 64 بیتی اصلا از قابلیت PAE حمایت نمی کنند.
نکته: PAE مشکلاتی در سازگاری (مثلا درایورها) بوجود میاره و سریع هم نیست. در نتیجه 64 بیتی بودن بهتر از 32 بیتی با قابلیت PAE هست.

حالا بریم سراغ محدودیت حافظه ویندوزها:

نکته: نسخه های 32 بیتی که محدودیتی بیش از 4 گیگ براشون نوشته شده, با در نظر گرفتن قابلیتی مثل PAE هست.

Windows NT 4.0 نوع 32 بیتی 4 گیگابایت
64 بیتی ندارد.

Windows 2000 Professional نوع 32 بیتی 4 گیگابایت
Windows 2000 Server نوع 32 بیتی 4 گیگابایت
Windows 2000 Advanced Server نوع 32 بیتی 8 گیگابایت
Windows 2000 Datacenter Server نوع 32 بیتی 32 گیگابایت
64 بیتی ندارد.

Windows XP نوع 32 بیتی 4 گیگابایت
Windows XP نوع 64 بیتی 128 گیگابایت
Windows XP Starter Edition نوع 32 بیتی 512 مگابایت

Windows Vista Home Basic, Home Premium, Business, Enterprise, Ultimate نوع 32 بیتی 4 گیگابایت
Windows Vista Home Basic نوع 64 بیتی 8 گیگابایت
Windows Vista Home Premium نوع 64 بیتی 16 گیگابایت
Windows Vista Business, Enterprise, Ultimate نوع 64 بیتی 128 گیگابایت
Windows Vista Starter نوع 32 بیتی 1 گیگابایت

برای ویندوزهای Server 2003 و Server 2008 لینک زیر رو چک کنید:

کد:
http://msdn.microsoft.com/en-us/library/aa366778.aspx
////////////////////////////////////////////////////////////////////////////////

تقسیم حافظه:

ویندوز در حالت پیش فرض 50% حافظه فیزیکی (RAM) رو برای خودش (Kernel) رزرو می کنه و 50% درصد دیگر رو برای پردازش های دیگر (Programs) باقی میزاره. به عنوان مثال اگر ما 4 گیگ رم داشته باشیم, 2 گیگ سهم هسته ویندوز و 2 گیگ سهم برنامه های دیگر خواهد شد.

قرار دادن سوییچ /3GB (اسلش در سمت چپ) در boot.ini باعث میشه که ویندوز فقط 1 گیگ رو برای خودش رزرو کنه و 3 گیگ برای برنامه ها باقی بمونه.

////////////////////////////////////////////////////////////////////////////////

تشخیص 32 بیتی یا 64 بیتی بودن ویندوز:

در Vista
در پنجره System قسمت System روبروی عبارت System type نوع ویندوز شما نوشته شده است. برای دستیابی به پنجره System روی Computer کلیک راست کنید و گزینه Properties را انتخاب کنید. همچنین در Control Panel در حالت Classic View گزینه ای بنام System وجود دارد که همین پنجره را باز می کند.

اگر روبروی System Type نوشته شده باشد 64 بیتی یعنی ویندوز شما 64 بیتی است. از آنجایی که ویندوز 64 بیتی فقط روی سیستمی با پردازنده 64 بیتی نصب می شود در نتیجه پردازنده شما هم 64 بیتی است.

اما اگر نوشته شده باشد 32 بیتی یعنی ویندوز شما 32 بیتی است. چون ویندوز 32 بیتی روی پردازنده 64 بیتی هم نصب می شود در این حالت نمی توان راجع به پردازنده شما اظهار نظر کرد که چند بیتی هست.

////////////////////////////////////////////////////////////////////////////////

تشخیص 32 بیتی یا 64 بیتی بودن پردازنده:

برنامه کم حجم CPU-Z مشخصات کامل پردازنده شما را نشان می دهد. پس از اجرای این برنامه در همان Tab اول, روبروی قسمت Instructions وجود عبارت EM64T یا x86-64 نشان دهنده 64 بیتی بودن پردازنده شماست. عدم وجود عبارات ذکر شده معمولا نشان دهنده 32 بیتی بودن پردازنده است. بسته به مادربورد و بایوستون ممکنه این عبارت رو هنگام راه اندازی کامپیوتر هم ببینید.

////////////////////////////////////////////////////////////////////////////////

در حال حاضر معماری 64 بیتی از نبود معادل برنامه های 32 بیتی رنج می برد. حادترین مشکل درایورهای قطعات برای Microsoft Windows هست. اگر چه بیشتر نرمافزارهارو در حالت سازگاری 32 بیتی در معماری 64 بیتی میشه اجرا کرد (همون حالت شبیه سازی به عنوان مثال تکنولوژِی WoW64 از Mivrosoft برای IA64) اما تقریبا غیر ممکنه که یک درایور یا نرمافزاری شبیه اون رو در اون حالت اجرا کرد. چون این موارد معمولا بین سیستم عامل و سخت افزار اجرا میشن و اینجا شبیه سازی رو نمیشه بکار گرفت.

////////////////////////////////////////////////////////////////////////////////

موارد جالب و استثناها

پردازنده ها از زمان 80386 Intel (یعنی از سال 1986) 4 گیگابایت RAM رو ساپورت می کردن اما این مادربوردها و سیستم عامل ها بودن که حمایت نمی کردن.


////////////////////////////////////////////////////////////////////////////////

سوال و جواب کوتاه

س: آیا پردازنده های 64 بیتی, دستورات و نرمافزارهای 32 بیتی رو نسبت به پردازنده های 32 بیتی کندتر اجرا می کنند؟

ج: خیر. اکثر معماری های پردازنده 64 بیتی کدهای 32 بیتی اون معماری رو بدون هیچ گونه کاهشی در کارایی اجرا می کنند. این ساپورت bi-arch یا راحت تر بخواهیم بگیم multi-arch نامیده میشه.

س: مگه سیستم 32 بیتی تا 4 گیگ حافظه پشتیبانی نمی کنه! چرا مقدار RAM من کمتر از 4 گیگ نشون داده میشه و 4 گیگ نیست؟

ج: منابع سخت افزاری سیستم احتیاج به فضای آدرس دارن. بنابر این مقداری از 4 گیگ آدرس به اونها اختصاص داده میشه. هر چقدر آدرس باقی بمونه به RAM شما میرسه. بسته به سخت افزارهای سیستم معمولا 3 تا 3.5 گیگ از RAM شما در دسترس خواهد بود.

حتی نمونه هایی داریم که 2 گیگ از 4 گیگ RAM در دسترس هست. این تفاوت زیاد معمولا بخاطر حافظه کارت گرافیک هست. مثلا کسی که کارت گرافیکش 512 مگ هست, سیستم عامل مجبوره 512 مگ آدرس صرف آدرس دهی حافظه کارت گرافیکش کنه. در نتیجه همینطوریش از 4 گیگ محدودیت 3.5 گیگ باقی میمونه. تازه سخت افزارهای دیگر هم که قبلا گفته شد نیاز به آدرس دهی دارن و از 3.5 گیگ هم مطمئنا کمتر خواهد شد.

تذکر: این رو با حافظه Shared در بحث کارت گرافیک (مخصوصا Onboard) اشتباه نکنید. اون اصلا ربطی به این بحث نداره.

س: فعال سازی PAE در ویندوز؟

در سیستم عامل های جدید مثل Win XP SP3 و Vista SP1 قابلیت PAE پیش فرض فعال هست. اما به هر حال روش فعال سازیش اینه که پارامتر /PAE (اسلش در سمت چپ) رو به انتهای خط بوت سیستم عامل مورد نظر در فایل boot.ini اضافه کنید.

حالا چند نکته در نظر داشته باشید

اولا تا جایی که می دونم در XP سی دو بیتی امکانش نیست تا بیش از 4 گیگ RAM فیزیکی بکار گرفته بشه. دلیلش هم این بوده که Microsoft نخواسته ناسازگارهایی که با افزایش عرض آدرس به بیش از 32 پیش میاد بروز کنه, مخصوصا مشکلات درایورها.

دوما کسانی که 4 گیگ RAM دارن بعد این عمل هم 4 گیگ رمشون در دسترس نخواهد بود. دلیلش گفته شد. همون اختصاص فضای آدرس به قطعات دیگر.

////////////////////////////////////////////////////////////////////////////////

محدودیت تئوری حافظه در معماری 32 بیتی و 64 بیتی بدون استفاده از قابلیت هایی مثل PAE:

Virtual Memory = حافظه مجازی = روشی برای توسعه حافظه اصلی روی سیستم.
32 بیتی - 4 گیگابایت
64 بیتی - 16 ترابایت

Paging File = فایلی بر روی دیسک که کامپیوتر برای ذخیره سازی فیزیکی حافظه مجازی استفاده میکنه.
32 بیتی - 16 ترابایت
64 بیتی - 256 ترابایت

Hyperspace
4 مگابایت
8 گیگابایت

Paged Pool
470 مگابایت
128 گیگابایت

Non-paged Pool
256 مگابایت
128 گیگابایت

System Cache
1 گیگابایت
1 ترابایت

System PTEs
660 مگابایت
128 گیگابایت

برو به انجمن
انجمن فعال در هفته گذشته
مدیر فعال در هفته گذشته
آخرین مطالب
  • آلبوم تصاویر بازدید از کلیسای جلفای...
    آلبوم تصاویر بازدید اعضای انجمن نصف جهان از کلیسای جلفای اصفهان.
  • بازدید از زیباترین کلیسای جلفای اصفهان
    جمعی از کاربران انجمن نصف جهان، در روز 27 مردادماه با همکاری دفتر تبیان اصفهان، بازدیدی را از کلیسای وانک، به عمل آورده‌اند. این کلیسا، یکی از کلیساهای تاریخی اصفهان به شمار می‌رود.
  • اعضای انجمن در خانه شهید بهشتی
    خانه پدری آیت الله دکتر بهشتی در اصفهان، امروزه به نام موزه و خانه فرهنگ شهید نام‌گذاری شده است. اعضای انجمن نصف جهان، در بازدید دیگر خود، قدم به خانه شهید بهشتی گذاشته‌اند.
  • اطلاعیه برندگان جشنواره انجمن‌ها
    پس از دو ماه رقابت فشرده بین کاربران فعال انجمن‌ها، جشنواره تابستان 92 با برگزاری 5 مسابقه متنوع در تاریخ 15 مهرماه به پایان رسید و هم‌اینک، زمان اعلام برندگان نهایی این مسابقات فرارسیده است.
  • نصف جهانی‌ها در مقبره علامه مجلسی
    اعضای انجمن نصف جهان، در یك گردهمایی دیگر، از آرامگاه علامه مجلسی و میدان احیا شده‌ی امام علی (ع) اصفهان، بازدیدی را به عمل آوردند.