زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم

20.04.2002 میخائیل کوزمینسکی

مقاله تجزیه و تحلیل شرکت پیشنهادی است معماری AMD x86-64 و برخی از مزایا و معایب آن را در مقایسه با سایر معماری های 64 بیتی ، در درجه اول Intel / HP IA-64 در نظر گرفت. مختصراً از ریزگردها در پردازنده های AMD Hammer ، که در آن معماری x86-64 برای اولین بار اجرا می شود ، آورده شده است. عملکرد Hammer با سایر پردازنده های با کارایی بالا امروز و فردا مقایسه می شود.

اگر کلیه معماری های ریز پردازنده با کارایی بالا RISC که از اواخر دهه 90 منتشر شده اند 64 بیتی (Сompaq / DEC Alpha ، SGI / MIPS R1x000 ، IBM Power ، HP PA-8x00 ، Sun UltraSPARC) ، سپس معماری اصلی CISC (Intel x86 ، IBM S / 390 هم اکنون از 32 به 64 بیت منتقل می شوند (IA-64، IBM z / Architecture).

حرکت از S / 390 به z / Architecture به نظر می رسد یک پسوند طبیعی به اندازه کافی است ، در حالی که انتقال از x86 (اکنون IA-32) به IA-64 به معنای تغییر ، در واقع تغییر کاملی در سیستم آموزش است. فکر می کنم این به این دلیل باشد که x86 توسعه تاریخی خود را با سیستم های 8 و سپس 16 بیتی آغاز کرد. بنابراین ، مجموعه دستورالعمل ، که به دلایل سازگاری برای سالهای متمادی ثابت باقی مانده است ، با گذشت زمان از نظر سایر پردازنده های 32 بیتی تبدیل به "غیر طبیعی" شده است.

بنابراین ، اگر IBM به سکوی 64 بیتی تغییر یافته است ، حرکت از x86 به IA-64 یک انقلاب است. سازگاری فقط از طریق شبیه سازی سخت افزار تضمین می شود. هنوز مشخص نیست که آیا اینتل بخواهد IA-32 را به طور کلی در آینده به نفع IA-64 رها کند ، اما این واقعیت که همه نرم افزارهای IA-64 حداقل باید دوباره برگردانده شوند - برای ذکر بهینه سازی بیشتر برای IA-64 - روشن به نظر می رسد ... بدیهی است که انتقال به پلتفرم IA-64 بسیار طول خواهد کشید و بسیار گران خواهد بود.

AMD مسیری کاملاً متفاوت را طی کرد. او نوسازی خود را از معماری x86 ارائه داد ، که (مانند مورد IBM) یک تکامل طبیعی است - دقیقاً همانطور که x86 زمانی از 16 به 32 بیت ارتقا یافته بود.

به همین دلیل است که سیستم عامل های CISC 32 بیتی اکنون 64 بیتی شده است ، اگرچه چندین سال پیش نیاز به برنامه های 64 بیتی بسیار زیاد شده است؟ علاوه بر پیچیدگی قبلاً ذکر شده در انتقال (آشکار در مورد IA-64 و z / Architecture) ، باید به کاهش شدید قیمت نیز اشاره کرد حافظه دسترسی تصادفی در حالی که ظرفیت ماژول های حافظه را افزایش می دهد. در نتیجه ، حد مجاز ظرفیت 4 گیگابایت برای سیستمهای 32 بیتی در رایانه های مدرن در حال حاضر کاملاً قابل دستیابی است. بنابراین چرا با افزودن حافظه بیشتر ، عملکرد کامپیوتر سرور خود را تقویت نمی کنید ، زیرا این امر گران نمی شود؟

معماری X86-64

به نظر می رسد تفاوت بین معماری x86-64 و IA-32 حتی از تفاوت های بین IBM z / Architecture و S / 390 نیز کمتر است. AMD تلاش خود را انجام می دهد تا تأکید کند که تغییرات ایجاد شده حداقل هستند ، اگرچه این تحلیل است توضیحات کامل به شما امکان می دهد تعداد کافی از تفاوت های ظریف کوچک را در مورد توسعه دهندگان سیستم شناسایی کنید نرم افزار، برنامه های کاربردی نیست

در x86-64 در مقایسه با وضعیت فعلی IA-32 واقعاً تغییرات اساسی چندانی وجود ندارد و آنها به معنایی شبیه به مواردی هستند که در هنگام گذار از معماری 1686 به 32 بیتی x86 معرفی شده اند. این نوآوری ها عبارتند از:

  • آدرس های مجازی 64 بیتی (در یک اجرای خاص ، عمق کمی پایین تر امکان پذیر است)؛
  • فضای آدرس "مسطح" (مسطح) با یک فضای واحد از کدها ، داده ها و پشته.
  • پیشخوان فرمان 64 بیتی (RIP)؛
  • حالت آدرس دهی نسبت به پیشخوان فرمان؛
  • ثبت های گسترش همه منظوره (عدد صحیح) تا 64 بیت؛
  • علاوه بر این 8 رجیستر جدید برای اهداف عمومی (R8-R15).
  • علاوه بر این 8 SSE دیگر XMM8-XMM15 را با عمق 128 بیتی ثبت می کند (مربوط به پسوند SSE2 است که توسط اینتل پیشنهاد شده است).
شکل: 1. نمونه ای از گسترش ثبت های عمومی

ثبت ها و اندازه های داده "نکات" به عنوان پیشوند فرمان وارد می شوند. مجموعه ثبت های اصلی x86-64 در شکل نشان داده شده است. 1. ثبت ها 64 بیتی هستند ، بجز ثبت EFLAGS 32 بیتی ، ثبات های HMM 128 بیتی و ثبات های ST 80 بیتی شناور. معماری x86-64 ، از جمله ، افزونه های IA-32 SSE2 که در پنتیوم 4 معرفی شده است ، را شامل می شود.

در شکل 1 نشان می دهد که چگونه ثبت های 64 بیتی جدید نسبت به ثبت های 32 بیتی در IA-32 گسترش می یابد. ثبت نام A به عنوان AX برای عملیات 16 بیتی ، EAX برای عملیات 32 بیتی و RAX برای عملیات 64 بیتی خطاب شده است. هنگام انجام عملیات 32 بیتی که در آن یک رجیستر عدد صحیح به عنوان یک نتیجه ثبت می شود ، مقادیر 32 بیتی با مقادیر صفر تا 64 بیتی پر می شوند. 8- عملیات ثبت عدد صحیح 8- و 16 بیتی مهمترین بیت ها را بدون تغییر نگه می دارد.

برای کار با آدرس دهی 64 بیتی در x86-64 ، حالت Long Mode معرفی می شود (بیایید آن را "حالت طولانی" بنامیم). حالت عملیاتی توسط بیت کنترل LMA (Long Mode Active) تنظیم شده است ، که هنگام تغییر میکرو پردازنده به حالت طولانی شارژ می شود. در حالت گسترده ، بخش های ثبات ES ، DS ، FS ، GS ، SS را نادیده می گیرند. ثبت CS (توصیف کننده بخش کد) شامل بیتهایی است که حالت های عملکرد ریز پردازنده را مشخص می کنند.

در x86-64 ، حالت گسترده دارای دو حالت "زیر حالت" است: حالت 64 بیتی و حالت سازگاری. حالت سازگاری سازگاری باینری را با حالتهای x86 16 و 32 بیتی فراهم می کند. انتخاب Submode توسط بیت CS.L کنترل می شود. در صورت تنظیم 0 (حالت سازگاری) ، یک سیستم عامل 64 بیتی که در حالت LMA کار می کند می تواند برنامه های قدیمی تر 16 بیتی و 32 بیتی x86 را اجرا کند. بیت CS.D وظیفه انتخاب اندازه عملوند را بر عهده دارد.

به طور پیش فرض ، در حالت 64 بیتی (LMA بیدمشک ، CS.L \u003d 1 ، CS.D \u003d 0) از آدرس های 64 بیتی و عملگرهای 32 بیتی استفاده می شود. با استفاده از پیشوندهای فرمان ، می توانید اندازه عملوند را تغییر دهید (آن را روی 64 یا 16 بیت تنظیم کنید) و همچنین اندازه آدرس را تغییر دهید (آن را روی 32 بیت تنظیم کنید). جداول 1 و 1 انواع اصلی حالت های پردازنده و حالت های عملکرد سیستم عامل و برنامه های کاربردی را نشان می دهد.

این داده ها نشان می دهد که پردازنده های با معماری x86-64 می توانند با سیستم عاملهای موجود 16 بیتی و 32 بیتی و سیستم عاملهای 64 بیتی جدید کار کنند. در حالت دوم ، در حالت سازگاری ، می توان همزمان با تنظیم بیت های مربوطه در بخش های کدهای جداگانه ، برنامه های 16 و 32 بیتی را نیز اجرا کرد. با این حال ، برنامه های 32 بیتی می توانند از 4 گیگابایت اول حافظه مجازی استفاده کنند.

برای فهم خصوصیات ریز پردازنده ها با معماری x86-64 ، لازم است رجیستری های EAX / EBX / ECX / EDX را تجزیه و تحلیل کنید ، که در آن نتایج دستور CPUID قرار می گیرد (هنگام فراخوانی با آن ، مانند گذشته ، 8000_0000h را در EAX قرار دهید). اگر بیت 29 در EAX 1 باشد ، ریزپردازنده در حالت طولانی است.

تعدادی پیشرفت های جالب در x86-64 وجود دارد ، به خصوص برای کارهای برنامه نویسی سیستم. به عنوان نمونه ، ما معرفی یک اولویت کاری TPR را ثبت می کنیم که برای سرعت بخشیدن به پردازش متوقف شده استفاده می شود. برای جزئیات بیشتر به توضیحات x86-64 مراجعه کنید.

ریزگرد معماری چکش

پردازنده Athlon متعلق به نسل هفتم معماری x86 است که توسط AMD اجرا شده است. اولین پردازنده هایی که معماری x86-64 را به کار گرفتند با نام Hammer کدگذاری شدند و نسل هشتم پردازنده های x86 را از AMD ارائه می دهند. تمایل به عزیمت خاص مجموعه دستورالعملهای پردازنده های AMD از هویت کامل با Intel x86 در آنها ادامه دارد. با این حال ، اگر پیش از این اختلافات با مقدمه همراه بود AMD جدید دستورات 3DNow! ، اکنون Hammer برخلاف x86 ، 64 بیتی می شود. هامر از "اتوبوسهای" داخلی 64 بیتی که برای ارتباط استفاده می شود ، استفاده می کند. فضای آدرس مجازی 48 بیتی است و فضای آدرس فیزیکی 40 بیتی است.

اهداف AMD در ایجاد این خانواده از ریز پردازنده ها ، علاوه بر هدف بارز حمایت از x86-64 ، عبارت بودند از:

  • در صورت امکان ، حداقل افزایش در سطح ریزگردها.
  • ایجاد فرصت هایی برای رشد بیشتر بدون محدودیت فرکانس ساعت پردازنده در سطح فعلی توسعه فناوری.
  • در حالی که شتاب را برای هر دو برنامه 64 و 32 بیتی فراهم می کند. یک ایده کلی از میکروارضایی Hammer در شکل ارائه شده است. 2

قدرتمندترین پردازنده های امروز RISC تمایل به ادغام حافظه نهان بزرگ ظرفیت L2 را در ریز پردازنده دارند. اینتل و AMD هر دو در پردازنده های با کارایی بالا اخیراً ظرفیت کش L2 را از 512KB به 256KB کاهش داده اند ، در حالی که همزمان آن را در پردازنده ادغام می کنند. اما در پنتیوم 4 Northwood ، توسعه دهندگان اینتل دوباره حافظه نهان L2 را به 512KB گسترش دادند. هیچ اطلاعات رسمی مربوط به Hammer وجود ندارد. با این حال ، ظرفیت حافظه نهان L2 می تواند تا حد زیادی بر عملکرد آن تأثیر بگذارد. به گفته برخی تحلیلگران ، ظرفیت حافظه پنهان L2 در مدل های قدیمی تر Hammer چهار برابر بیشتر از مدل های مدرن Athlon خواهد بود.

بافرهای ارسال سریع در این پردازنده نسبت به Athlon به روز شده است. Hammer's Level 1 I-TLB دارای ظرفیت 40 خط (16 خط بیشتر از گذشته) است و کاملاً ارتباطی است. سطح 1 D-TLB ویژگی های یکسانی دارند. هر دو TLB از صفحات حافظه 4KB ، 2MB و 4MB پشتیبانی می کنند.

I-TLB های سطح دوم ، مانند D-TLB های سطح دوم ، حاوی 512 خط (هر دو برابر Athlon) هستند و 4 کانال تا حدی وابسته هستند. همانطور که در TLB نشان داده شده است ، زمان تاخیر در مقایسه با Athlon کاهش می یابد. علاوه بر این ، قابلیت تقسیم TLB بین چندین فرآیند در سخت افزار پیاده سازی شده است (برای این کار "فیلتر آتش سوزی" ویژه ای ارائه شده است).

بدیهی است افزایش ظرفیت TLB و پشتیبانی از صفحات حافظه اندازه های بزرگ برای استفاده در سیستم هایی با ظرفیت حافظه زیاد در نظر گرفته شده اند. این برای برنامه های 64 بیتی طبیعی است. توانایی تقسیم TLB به نوبه خود می تواند عملکرد سیستم عامل های چند وظیفه ای را در برنامه های سرور بهبود بخشد.

جهت سنتی بهبود ریزپردازنده های مدرن ، بهبود دقت پیش بینی شاخه ها است. هامر دارای یک آدرس خط پرش 2K و همچنین یک جدول تاریخچه پرش جهانی است که دارای پیشخوان های 16 بیتی 16K (4 برابر بیشتر از Athlon) است. سرانجام ، ظرفیت پشته آدرس برگشتی 12 خط است.

یکی از ویژگی های مهم افزایش عملکرد ، ادغام یک کنترلر RAM در Hammer است. این کار باعث افزایش پهنای باند و کاهش تأخیر می شود. این خصوصیات به طور خودکار با افزایش فرکانس پردازنده بهبود می یابند. این ویژگی برای معماری x86 بی نظیر است. Compaq با جدیدترین پردازنده های Alpha EV7 خود مسیری مشابه را دنبال می کند.

کنترلر حافظه دارای یک رابط 8 یا 16 بایت به حافظه DDR خواهد بود. در مورد دوم می آید حافظه DDR کانال دوگانه ، 4 ضبط DIMM در هر کانال. AMD وعده پشتیبانی از DIMM های ثبت شده و بدون مانع را برای حافظه DDR PC1600 / PC2100 / PC2700 فراهم می کند. هنگام استفاده از PC2700 در نسخه کانال دوگانه توان RAM به 5.3 گیگابایت در ثانیه می رسد. برای مقایسه ، پردازنده اینتل مک کینلی که به دلیل معماری IA-64 به پهنای باند حافظه نیاز دارد ، تنها با کمی سریعتر - 6.4 گیگابایت در ثانیه به یک باس سیستم مجهز خواهد شد.

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

قسمت جلوی خط لوله شامل واکشی و رمزگشایی دستورالعمل است (شکل 2). منطق عملکرد این مراحل در Hammer پیچیده تر شده است ، درجه بسته بندی دستورالعمل های ارسال شده توسط رمزگشاها به برنامه ریزان افزایش یافته است. در مقایسه با Athlon ، طول این قسمت از خط لوله 2 مرحله افزایش یافته است ، به طوری که طول کل خط لوله عدد صحیح Hammer 12 و خط لوله شناور 17 مرحله است. به گفته توسعه دهندگان ، این امر باید به افزایش یکدست در فرکانس ساعت پردازنده کمک کند زیرا فناوری تولید بهبود می یابد. برنامه اولیه استفاده از فن آوری عایق سیلیکون روی عایق 0.13 میکرون است. در نیمه دوم سال 2003 انتقال به 0.09 میکرون برنامه ریزی شده است.

لازم به ذکر است که هیچ گونه اطلاعات رسمی در مورد منطقه اشغال شده توسط Hammer در دست نیست. در همین حال ، گزارش هایی وجود دارد مبنی بر اینکه پردازنده ClawHammer تنها مساحتی برابر با 105 میلی متر مربع خواهد داشت ، در حالی که Athlon / Palomino که با استفاده از همین فناوری روی 0.13 میکرون ساخته شده است ، دارای 80 میلی متر مربع خواهد بود. برای مقایسه ، منطقه مک کینلی ، با قضاوت بر اساس داده های ارائه شده توسط اینتل در کنفرانس بین المللی ISSCC 2002 ، 464 میلی متر مربع است.

معایب و مزایای خطوط لوله طولانی به خوبی مشهور است: افزایش فرکانس ساعت آسانتر است ، اما در سرریزهای خط لوله ، به ویژه اگر شاخه نادرست باشد ، تلفات بیشتری وجود دارد. جالب است که طول نوار نقاله هامر را با دیگر مدرن ها مقایسه کنید ریزپردازنده های اینتل... پنتیوم 4 که رکورد ساعت 2.2 گیگاهرتز را به دست آورد ، طول خط لوله را در مقایسه با پنتیوم III با استفاده از فناوری HyperPipeline دو برابر کرد و به 20 مرحله رسید. همین هدف را داشت که اجازه دهد سرعت ساعت بدون نظارت افزایش یابد. اینتل تا سال 2005-2006 در مورد 10 گیگاهرتز صحبت می کند. در مقابل ، مک کینلی طول خط لوله را به 8 مرحله در مقابل 10 در Itanium کاهش داد ، اما فرکانس مورد انتظار آن 1 گیگاهرتز است.

همانطور که می دانید عملکرد نه تنها به فرکانس ساعت بستگی دارد بلکه به تعداد دستورالعمل های اجرا شده در هر چرخه ساعت نیز بستگی دارد. AMD می گوید که این تعداد در Hammer افزایش می یابد. اما در چه فرکانسی چکش کار خواهد کرد گزارش نشده است. می توانیم فرض کنیم که این رقم در حدود 2 گیگاهرتز خواهد بود.

سیستم های ساختمانی مبتنی بر Hammer

ما به استثنای استفاده از فناوری HyperTransport ، ویژگی های اصلی ریزگرد معماری Hammer را مرور کردیم. در Hammer هم برای اتصال سیستم I / O و هم برای سازماندهی ارتباطات بین پردازنده استفاده می شود. در حقیقت ، به لطف کنترل رم داخلی Hammer و استفاده از فناوری HyperTransport ، Hammer عملکردهای اصلی چیپست (دقیق تر ، پل شمالی) را ادغام می کند.

فناوری HyperTransport به خودی خود توسط کنسرسیومی به همین نام ساخته شده است که توسط AMD ، Sun Microsystems ، Cisco Systems ، Nvidia ، Transmeta و Apple Computer تأسیس شده است. من فکر می کنم که نیاز به توسعه چنین فناوری در درجه اول با ظهور دیکته شده بود تنگناها در سیستم های I / O در یک کامپیوتر و به طور کلی با استفاده از اتوبوس های PCIویژگی های عملکردی آنها الزامات عملکرد بالا مدرن را برآورده نمی کند کارت های شبکه و کانالهای I / O برای درایوهای سخت.

کانال های HyperTransport با پین های مشابه PCI ، پهنای باند بسیار بالاتری را ارائه می دهند ، با حداکثر 3.2 GB / s در اوج. کانال های HyperTransport 16 بیت عرض دارند و در هر جهت 1.6 میلیارد انتقال در ثانیه را ارائه می دهند. HyperTransport اجازه می دهد تا اتصالات نقطه به نقطه با پردازش کامل تراکنش های دوگانه و تقسیم شده را انجام دهد. چنین ویژگی های این فناوری امکان استفاده از آن را برای سازماندهی ارتباطات بین پردازنده امکان پذیر می کند. در حالت دوم ، برخلاف I / O ، از گزینه HyperTransport با انسجام حافظه نهان استفاده می شود.

شکل: 3. طرح ساخت سیستم های 4 پردازنده مبتنی بر Hammer

پردازنده های چکش سه پورت برای کانال های HyperTransport (شکل 3) به همراه یک درگاه به کنترلر RAM دارند. بنابراین ، پردازنده شامل سوئیچ XBOX است که دستورات و داده ها را بین این پورت ها و رابط درخواست سیستم (صف SRQ) مسیریابی می کند. این صف 24 خط طول دارد و صف به کنترلر DRAM (Memory Command Queue) 20 خط است. برای برقراری ارتباط با زیر سیستم I / O در Hammer ، از Bridge Host استفاده می شود ، سپس از دو کانال دیگر HyperTransport در ارتباطات interprocessor استفاده می شود.

تنها چیزی که در Hammer ساخته نشده است رابط AGP است. بنابراین ، تراشه ای که جای پل شمالی را می گیرد (شکل 4) برای پشتیبانی از این رابط نیاز دارد. قرار است AGP 8X باشد.

پل جنوبی به این ریزگرد وصل شده است. اگرچه AMD به طور سنتی تراشه ای را برای پردازنده های جدید خود ارائه می دهد و بدیهی است که این کار را برای Hammer انجام می دهد ، Nvidia و VIA Technologies قبلاً از توسعه پل جنوبی برای این پردازنده آگاه هستند. علاوه بر این ، یک "دروازه" بین HyperTransport و PCI-X در سیستم های چند پردازنده پیش بینی شده است. استفاده از وسایل مشابه برای سایر استانداردهای I / O امکان پذیر است.

شکل: 4- معماری سیستم های چند پردازنده مبتنی بر هامر

الف) سیستم تک پردازنده

ب) سیستم دو پردازنده

ب) سیستم چهار پردازنده

نمودارهای نشان داده شده در شکل. 4 ، بهره وری از سیستم های چند پردازنده ساختمان بر اساس Hammer را نشان می دهد. در چنین رایانه هایی ، با افزایش تعداد پردازنده ها ، نه تنها قدرت محاسباتی ، ظرفیت و پهنای باند رم بلکه منابع مقیاس زیر سیستم I / O نیز وجود دارد. بنابراین ، در یک سیستم 8 پردازنده ، 64 (8x8) DIMMs (حداکثر 128 گیگابایت) و 4 کانال HyperTransport با پهنای باند کلی 25 گیگابایت در ثانیه برای انتقال مضاعف در دسترس خواهند بود.

AMD چیپست سری 8000 را معرفی کرده است که در سه ماهه چهارم سال 2002 عرضه خواهد شد. این شامل تراشه های AMD-8151 (رابط ها با AGP 3.0) ، AMD-8131 (پل از HyperTransport به PCI-X) و AMD-8111 (مرکز اطلاعات I / O ، پشتیبانی از PCI-32/33 مگاهرتز ، USB ، IDE و غیره است). .پ.).

جالب است که تأمین انسجام کش را با استفاده از کانال های HyperTransport با تعداد پردازنده های 4 و بالاتر ترتیب دهید: چندین مسیر بین پردازنده های تشکیل شده توسط کانال های HyperTransport در پردازش درخواست های مربوطه نقش دارند ، که این امر به تسریع کار کمک می کند. در اصل ، ساختن سیستمهایی با بیش از 8 پردازنده Hammer امکان پذیر است ، اما این امر به سوئیچ HyperTransport نیاز دارد.

تأخیرها هنگام کار با رم محلی (نزدیک به ریز پردازنده) هنگام دسترسی به حافظه "از راه دور" کمی افزایش می یابد. در یک سیستم 4 پردازنده بدون بار ، زمان تاخیر 140 نانومتر است ، در یک سیستم 8 پردازنده مشابه 160 نانومتر است. این به ما امکان می دهد تا در مورد معماری SMP صحبت کنیم ، نه ccNUMA. در عین حال ، استفاده از فناوری سوئیچینگ به جای اتوبوس های سیستم ، دستیابی به عملکرد بالا از نظر پهنای باند حافظه را ممکن می سازد. برای عملیاتی مانند کپی کردن ، برای سیستم 4 پردازنده 8 گیگابایت در ثانیه است که طبق گفته AMD ، به طور قابل توجهی بالاتر از معماری های اتوبوس است.

منتظر چکش

چکش تقریباً در سه ماهه سوم سال 2002 آغاز خواهد شد. اولین ریزپردازنده در این خانواده ClawHammer خواهد بود که روی سیستم های تک و دو پردازنده متمرکز شده است. سپس SledgeHammer ظاهر می شود. اگرچه در حقیقت همر باید با ریزپردازنده های معماری IA-64 رقابت کند (مک کینلی باید تا آن زمان ظاهر شود) ، اما می توان فرض کرد که در آینده همر قادر خواهد بود Athlon را در تمام طیف برنامه های کاربردی پیوند دهد (اما ممکن است این بیش از یک سال طول بکشد). ... همچنین این بدان معنی است که هامر می تواند با پنتیوم 4 رقابت کند.

علاوه بر سیستم عامل های 32 بیتی موجود ، NetBSD ، FreeBSD و Linux و همچنین طعم دهنده های مدرن ویندوز به معماری 64 بیتی Hammer منتقل می شوند.

مزایای x86-64 و Hammer عبارتند از:

  • سازگاری با برنامه های 16 و 32 بیتی با سطح بالایی از عملکرد اجرایی.
  • نسبی (در مقایسه با IA-64) سهولت انتقال از x86 و بر این اساس ، عدم نیاز به هزینه های اضافی مالی برای این انتقال.
  • خطر کمتر از شکست معماری جدید؛
  • سهولت توسعه و اجرای؛
  • ردپای کوچک ، که عملکرد را افزایش می دهد و مقیاس بندی ساعت را تسهیل می کند.

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

مزایای ذکر شده با لحظه های بالقوه "خطرناک" برای AMD همراه است. معماری x86-64 به اندازه IA-64 "انقلابی" نیست. علاوه بر این ، تعداد رجیسترها در مقایسه با پردازنده های مدرن RISC به اندازه کافی بزرگ به نظر نمی رسند ، که ، همانطور که می دانید ، بهینه سازی برنامه را پیچیده می کند.

AMD باید ثابت کند که ارتفاعات عملکرد در درجه اول از طریق فناوری قابل دستیابی است (و سرعت ساعت مربوطه افزایش می یابد) ، نه معماری. تاکنون این امر با موفقیت به ویژه توسط پنتیوم 4 به اثبات رسیده است ، اما شواهد معکوس از IA-64 هنوز دریافت نشده است.

برای ایجاد برنامه های 64 بیتی ، باید کامپایلرهای بهینه سازی را تهیه کنید ، اطلاعاتی درباره آن هنوز در دسترس نیست. سرانجام ، صنعت رایانه مدرن در آستانه انتخاب استانداردهای جدید I / O قرار دارد - Infiniband، PCI-X، 3GIO، HyperTransport. محکم بودن به فناوری HyperTransport می تواند AMD را به سمت بالا سوق دهد ، اما خطر خاصی نیز به همراه دارد.

در مورد مناطقی که در آنجا به معماری 64 بیتی نیاز است ، AMD اول از همه به DBMS ، CAD ، ابزارهایی برای ایجاد "محتوای" دیجیتالی اشاره دارد. به گفته نویسنده ، پردازنده های Hammer ممکن است در یک بخش بازار که به سرعت در حال رشد است ، تقاضای فعال داشته باشند - خوشه ها (در واقع خوشه های Linux) با گره های پردازنده دوگانه.

در حال حاضر ، چنین سکوی مبتنی بر Athlon MP بسیار محبوب است. سیستم های مشابه مبتنی بر پنتیوم 4 / Xeon بسیار گران تر هستند. اگر این نسبت حفظ شود ، AMD قادر به موفقیت در این بخش از بازار خواهد بود.

این کار توسط بنیاد روسیه برای تحقیقات اساسی ، پروژه 01-07-90072 پشتیبانی شده است.

ادبیات
  1. میخائیل کوزمینسکی ، "مروری کوتاه درباره IA-64". "سیستم های باز" ، 1999 ، شماره 9-10
  2. میخائیل کوزمینسکی ، "ریزگرد معماری ایتالیا". سیستم های باز ، شماره 9 ، 2001
  3. میخائیل کوزمینسکی ، "معماری Z. مدرن اصلی 64 بیتی از IBM". "سیستم های باز" ، 2001 ، شماره 10
  4. "کاغذ سفید فناوری x86-64" ، 2001 ، AMD
  5. "AMD 64-bit Technology. نمای کلی برنامه نویسان معماری AMD x86-64" ، AMD ، 2001 ، ژانویه
  6. "معماری پردازنده هشت نسل AMD. کاغذ سفید" ، AMD ، 2001 ، اکتبر
  7. F. Weber ، "معماری ریزپردازنده نسل بعدی نسل بعدی" ، انجمن ریزپردازنده ، 2001

میخائیل کوزمینسکی ( [ایمیل محافظت شده]) - محقق ارشد ، مرکز پشتیبانی رایانه ، انستیتو شیمی آلی ، RAS (مسکو).



نویسنده به اندازه کافی ریسک کرده است ، از جمله این مطالب در کتاب درسی ، زیرا اطلاعات منتشر شده در زمان ما در مورد مدل های خاص ریزپردازنده ها در حالی که هنوز در زیر چاپخانه منسوخ می شود. با این حال ، به دلیل کامل بودن در مورد معماری مدرن 64 \u200b\u200bبیتی ، این فصل حضور خود را در این آموزش توجیه می کند.

10.1 معماری Intel Core 2

نسل هشتم پردازنده های اینتل با نام Core 2 را می توان بدون تکه تردید انقلابی خواند.

مهندسان اینتل پس از مدت ها عقب ماندن از AMD ، به یک معماری کاملاً جدید دست نیافتند. طبق معمول ، همه چیز قدیمی به خوبی فراموش شده است. Conroe مبتنی بر پیشرفت های موبایل Pentium M است - یک پردازنده چنان موفقیت آمیز که برخی از تولید کنندگان شروع به استفاده از آن نه تنها برای رایانه های لپ تاپ ، بلکه برای ایستگاه های کاری دسک تاپ کردند. به نوبه خود ، پنتیوم M نیز از ابتدا ظاهر نشد. پیشرو آن Pentium III است که به عنوان یک ادامه تکاملی Pentium Pro شناخته می شود.

زنجیره تکاملی مربوطه به شرح زیر است: Pentium Pro  Pentium II  Pentium III  Pentium M  Core 2.

این مورد نمونه ای است که یک قدم به عقب یک گام مهم به جلو بود. اگر بیش از حد از جزئیات انتزاع کنیم ، توسعه دهندگان اینتل موارد زیر را انجام دادند. تا سال 1995 ، ما یک پردازنده نسبتاً موفق Pentium Pro ایجاد کردیم ، قدرت آن را افزایش دادیم (Pentium II ، Pentium III) ، ساز و کاری را برای کاهش مصرف انرژی ایجاد کردیم (پنتیوم M) ، ایجاد سیستم مؤثر تعامل چند هسته پردازنده (هسته 2). این طرح نسبتاً دلخواه است ، زیرا در هر یک از مراحل پیشرفت های چشمگیر دیگری (مانند انتقال به معماری 64 بیتی) وجود داشته است ، اما برخی از ویژگی های ارثی همچنان حفظ شده است.

بسته به بخش هدف ، پردازنده ها ویژگی های فن آوری خاص خود را دارند. برای سیستم های دسک تاپ ، Conroe-L (یک هسته) ، Allendale (دو هسته) ، Conroe و Wolfdale (دو هسته) ، Kentsfield و Yorkfield (چهار هسته) وجود دارد. نام های رمزگذاری شده Merom و Penryn محصولاتی را در اختیار بخش موبایل بازار قرار می دهند. آخرین تجدید ساختار معماری Core 2 ، پردازنده های شش هسته ای Dunnington خواهد بود.

نسل بعدی پردازنده ها پس از Core 2 با نام تجاری Core i7 (معماری Nehalem) به فروش می رسد.

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

چه چیزی در Intel Core 2 در مقایسه با پنتیوم 4 تغییر کرده است؟ یكی از تفاوتهای مهم فاصله گرفتن از معماری با خط لوله طولانی NetBrust است كه وظیفه اصلی آن ارائه مزیت مشخص در شرایط "مسابقه gigahertz" بود. علاوه بر این ، کاهش قابل توجهی در طول نقاله وجود دارد. در معماری Core طول آن 14 مرحله است ، در حالی که در نسل قبلی پردازنده ها 31 مرحله (هسته Prescott) بوده است که این بیش از یک کاهش دو برابری است. اما اولین پردازنده های NetBrust در هسته Northwood از 1.6 به 3.4 گیگاهرتز اورکلاک شدند. به یاد بیاورید که چنین افزایش فرکانس ساعت مملو از مصرف بیش از حد انرژی بود (برای پردازنده های TDP از سطح بالا به 160-170 وات رسیده است). با این حال ، همانطور که عمل نشان داده است ، تمام این gigahertz بسیار اندک به رشد بهره وری تبدیل شده اند.

ظرفیت حافظه نهان L2 مدلهای جدید از 3 مگابایت برای Wolfdale-3M تا 12 مگابایت برای Yorkfield متغیر است.

قبل از اینکه به مطالعه نمودار ساختاری بپردازیم ، به نکات کلیدی فن آوری که زیر بنای معماری هسته است توجه می کنیم:

    اجرای پویا گسترده Intel - در هر چرخه ساعت حداکثر پنج میکرو آپشن را فراهم می کند.

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

    Intel Advanced Smart Cache - به معنای وجود حافظه نهان مشترک L2 برای همه هسته ها است که بسته به کارهایی که انجام می شود بین آنها بصورت پویا تخصیص می یابد.

    دسترسی به حافظه هوشمند اینتل مجموعه ای از فناوری ها برای بهینه سازی الگوریتم های دسترسی به حافظه و پیش بارگذاری داده ها است.

    Intel Advanced Digital Media Boost یک فناوری طراحی شده برای بهینه سازی رمزگشایی محتوای چندرسانه ای است. اجازه می دهد تا تمام دستورات 128 بیتی SSE ، SSE2 و SSE3 که معمولاً در برنامه های چندرسانه ای و گرافیکی در یک چرخه ساعت استفاده می شوند را پردازش کنید.

    Intel 64 Technology - حالت 64 بیتی (EM64T) عدد صحیح و حسابی آدرس. این امکان را به شما می دهد تا با تعداد پهنای بیت بزرگ و همچنین آدرس بیش از 1 TB حافظه کار کنید. معماری 32 بیتی مجاز به پرداخت بیش از 4 گیگابایت رم نیست. این کار محدودیت های خاصی را هنگام کار با مقادیر زیاد داده تحمیل می کند.

مقاله معنای اصطلاح "64 بیت" را فاش می کند. در این مقاله به طور مختصر تاریخچه توسعه سیستمهای 64 بیتی بررسی شده است ، رایج ترین در حال حاضر پردازنده های 64 بیتی معماری Intel 64 و سیستم عامل 64 بیتی ویندوز است.

مقدمه

در چارچوب معماری رایانه ، اصطلاح 64 بیتی به معنی اعداد صحیح 64 بیتی و انواع دیگر داده ها با اندازه 64 بیت است. سیستمهای "64 بیتی" می توانند به معماری های ریز پردازنده 64 بیتی (مانند EM64T ، IA-64) یا سیستم عامل های 64 بیتی (به عنوان مثال Windows XP Professional x64 Edition) مراجعه کنند. ما می توانیم درباره کامپایلرهایی که کد برنامه 64 بیتی تولید می کنند صحبت کنیم.

در این مقاله نکات مختلف مربوط به فناوریهای 64 بیتی مورد بحث قرار خواهد گرفت. این مقاله برای برنامه نویسانی است که می خواهند برنامه های 64 بیتی را شروع کنند و برای توسعه دهندگان ویندوز در نظر گرفته شده است ، زیرا برای آنها موضوع آشنایی با سیستم های 64 بیتی بیشترین اهمیت را دارد.

تاریخچه سیستمهای 64 بیتی

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

1961: IBM ابر رایانه IBM 7030 Stretch را منتشر می کند ، که از کلمات داده 64 بیتی ، دستورالعمل های دستگاه 32 بیتی یا 64 بیتی استفاده می کند.

1974: Control Data Corporation سوپر رایانه وکتور CDC Star-100 را راه اندازی کرد ، که از معماری 64 بیتی کلمه ای استفاده می کند (سیستم های CDC قبلی دارای معماری 60 بیتی بودند).

1976: Cray Research اولین ابر رایانه Cray-1 را منتشر کرد ، که معماری کلمه 64 بیتی را پیاده سازی می کند و به عنوان پایه ای برای همه ابر رایانه های بعدی بردار Cray عمل می کند.

1985: Cray UNICOS را اجرا کرد ، اولین اجرای 64 بیتی سیستم عامل یونیکس.

1991: MIPS Technologies اولین پردازنده 64 بیتی با نام R4000 را تولید می کند که سومین تکرار معماری MIPS را در شرکت خود اجرا می کند. این پردازنده در ایستگاه های کاری گرافیکی SGI با شروع مدل IRIS Crimson استفاده می شود. Kendall Square Research اولین رایانه رایانه ای خود را ، KSR1 ، بر اساس معماری اختصاصی 64 بیتی RISC خود که OSF / 1 را اجرا می کند ، منتشر کرد.

1992: شرکت تجهیزات دیجیتالی (DEC) معماری آلفا همه 64 بیتی را معرفی می کند ، و ایده های پروژه PRISM است.

1993: DEC سیستم عامل 64 بیتی مانند یونیکس DEC OSF / 1 AXP (بعداً به Tru64 UNIX تغییر نام داد) را برای سیستمهای مبتنی بر آلفا منتشر کرد.

1994: اینتل برنامه هایی را برای توسعه معماری 64 بیتی IA-64 (با شرکت هیولت پاکارد) ، جانشین پردازنده های 32 بیتی IA-32 خود اعلام کرد. تاریخ انتشار برای 1998-1999 تعیین شده است. SGI IRIX 6.0 را با پشتیبانی 64 بیتی از تراشه R8000 منتشر می کند.

1995: Sun خانواده پردازنده 64 بیتی SPARC UltraSPARC را راه اندازی کرد. سیستم های رایانه ای HAL ، یک شرکت تابعه Fujitsu ، ایستگاه های کاری را بر اساس پردازنده 64 بیتی 64 بیتی SPARC64 به طور مستقل توسط HAL توسعه داده است. IBM میکرو پردازنده های A10 و A30 و پردازنده های 64 بیتی PowerPC AS را تولید می کند. IBM همچنین یک بروزرسانی سیستم 64 بیتی AS / 400 را منتشر می کند که می تواند سیستم عامل ، بانک اطلاعاتی و برنامه های کاربردی را تغییر دهد.

1996: نینتندو ارائه می دهد کنسول بازی Nintendo 64 بر اساس نوع ارزان تر MIPS R4000. HP اجرای 64 بیتی 2.0 از معماری PA-RISC PA-8000 خود را منتشر کرد.

1997: IBM خط RS64 پردازنده های 64 بیتی PowerPC / PowerPC AS خود را راه اندازی می کند.

1998: Sun Solaris 7 را با پشتیبانی کامل 64 بیتی UltraSPARC منتشر می کند.

1999: اینتل مجموعه دستورالعمل هایی را برای معماری IA-64 منتشر کرد. AMD در حال اعلام عمومی مجموعه الحاقی 64 بیتی خود برای IA-32 است که x86-64 نامگذاری شده است (بعداً به AMD64 تغییر نام داد).

2000: IBM اولین حافظه اصلی 64 بیتی zSery z900 ، سازگار با ESA / 390 و سیستم عامل جدید z / OS را منتشر می کند.

2001: سرانجام اینتل خطی از پردازنده های 64 بیتی را که اکنون به نام Itanium خوانده می شود ، برای سرورهای با کارایی بالا راه اندازی کرد. این پروژه به دلیل تاخیرهای زیاد در انتشار IA-64 به بازار انتظارات را برآورده نکرد. NetBSD اولین سیستم عامل است که از زمان انتشار ، روی پردازنده Intel Itanium اجرا می شود. علاوه بر این ، مایکروسافت همچنین Windows XP 64-Bit Edition را برای معماری Itanium IA-64 منتشر می کند ، اگرچه این قابلیت را برای اجرای برنامه های 32 بیتی با استفاده از رابط WoW64 حفظ می کند.

2003: AMD خطوط پردازنده Opteron و Athlon 64 را بر اساس معماری AMD64 معرفی می کند ، که اولین معماری پردازنده 64 بیتی مبتنی بر معماری x86 است. اپل پردازنده 64 بیتی "G5" PowerPC 970 را از IBM معرفی می کند. اینتل ادعا می کند که تراشه های پردازنده Itanium تنها پردازنده 64 بیتی تولید شده توسط اینتل خواهند بود.

2004: در پاسخ به موفقیت تجاری AMD ، اینتل اعتراف كرد كه آنها در حال ساختن یك كلون با پسوند AMD64 به نام IA-32e بودند (بعداً به EM64T تغییر نام دادند و سپس دوباره Intel 64). اینتل همچنین با پشتیبانی از دستورالعمل های جدید ، نسخه های به روز شده ای از خانواده های پردازنده Xeon و Pentium 4 را منتشر می کند.

2004: VIA Technologies پردازنده 64 بیتی Isaiah خود را معرفی می کند.

2005: Sun Solaris 10 را با پشتیبانی از پردازنده های AMD64 / Intel 64 در تاریخ 31 ژانویه منتشر می کند.در تاریخ 30 آوریل ، مایکروسافت ویندوز XP Professional x64 Edition را برای پردازنده های AMD64 / Intel 64 منتشر می کند.

2006: سونی ، آی بی ام و توشیبا پردازنده 64 بیتی Cell را برای پلی استیشن 3 ، سرورها ، ایستگاه های کاری و موارد دیگر راه اندازی می کنند. مایکروسافت ویندوز ویستا را با 64 بیت فعال برای پردازنده های AMD64 / Intel 64 منتشر می کند ، که از سازگاری 32 بیتی پشتیبانی می کند. همه برنامه ها و اجزای ویندوز 64 بیتی هستند ، اما بسیاری از آنها نسخه های 32 بیتی به دلایل سازگاری در سیستم دارند.

2009: مانند ویندوز ویستا ، ویندوز 7 مایکروسافت دارای نسخه کامل 64 بیتی برای پردازنده های AMD64 / Intel 64 است و بیشتر رایانه های جدید به صورت پیش فرض با 64 بیت همراه هستند. سیستم عامل بیرون می آید سیب Mac OS X 10.6 ، "پلنگ برفی" که دارای یک هسته 64 بیتی است و برای پردازنده های AMD64 / Intel 64 طراحی شده است ، با این حال ، این سیستم به طور پیش فرض فقط در برخی از آخرین مدل های رایانه های اپل نصب شده است. اکثر برنامه های ارسال شده با Mac OS X 10.6 هم اکنون 64 بیتی هستند.

می توانید در مورد تاریخچه توسعه سیستم های 64 بیتی در مقاله جان مشا "جاده طولانی 64 بیت" و در مقاله دائره المعارف ویکی پدیا "64 بیتی" اطلاعات بیشتری کسب کنید.

برنامه نویسی کاربردی و سیستمهای 64 بیتی

در زمان این نوشتن در سال 2010 ، معروف ترین و گسترده ترین دو معماری ریز پردازنده 64 بیتی: IA64 و Intel 64.
  1. IA-64 معماری ریزپردازنده 64 بیتی که بطور مشترک توسط اینتل و هیولت پاکارد ساخته شده است. در ریزپردازنده های Itanium و Itanium 2 پیاده سازی شده است برای آشنایی بیشتر با معماری IA-64 ، به مقاله های ویکی پدیا زیر مراجعه کنید: "IA-64" ، "Itanium" ، "Itanium 2". معماری Itanium توسط تعداد زیادی از فروشندگان سرور پشتیبانی می شود: Bull ، Fujitsu ، Fujitsu Siemens Computer ، Hitachi ، HP ، NEC ، SGI و Unisys. این فروشندگان به اینتل و میزبان توسعه دهندگان نرم افزار پیوسته اند تا اتحاد راه حل های Itanium را برای پیشرفت معماری و سرعت بخشیدن به سرعت انتقال نرم افزار بسازند.
  2. اینتل 64 (AMD 64) / x86-64 / x64 / EM64T) - این معماری فرمت معماری x86 با سازگاری کامل به عقب است. نام های این نوع معماری انواع زیادی وجود دارد ، که منجر به سردرگمی می شود ، اگرچه ، در واقع ، همه این نام ها به معنای یک چیز مشابه هستند: x86-64 ، AA-64 ، معماری Hammer ، AMD64 ، Yamhill Technology ، EM64T ، IA-32e ، Intel 64، x64 برای اطلاعات بیشتر در مورد چگونگی نام های مختلف ، به مقاله ویکی پدیا "X86-64" مراجعه کنید. پردازنده های معماری Intel 64 بسیار مورد استفاده قرار می گیرند کامپیوترهای شخصی... و به احتمال زیاد رایانه شما به یک پردازنده با این معماری مجهز است.
درک این نکته مهم است که IA-64 و Intel 64 (AMD64) کاملاً متفاوت ، با معماری ریز پردازنده با یکدیگر ناسازگار هستند. علاوه بر این در مقاله ما فقط معماری Intel 64 (x64 / AMD64) را در نظر خواهیم گرفت که محبوب ترین آن در بین توسعه دهندگان نرم افزار کاربردی برای سیستم عامل ویندوز است. برای کوتاه بودن ، مدل برنامه نویسی Intel 64 با 64 بیتی در دسترس برنامه نویس است سیستم ویندوزWin64 نامیده می شوند.

معماری Intel 64 (AMD64)

معماری Intel 64 مورد بحث یک پسوند سازگار با عقب اما در عین حال قدرتمند با معماری میراث صنعتی x86 است. این فضای آدرس 64 بیتی را اضافه می کند و منابع ثبت را برای پشتیبانی از عملکرد بهتر برنامه های 64 بیتی recompiled گسترش می دهد. این معماری پشتیبانی از کد برنامه های کاربردی و سیستم عامل های قدیمی 16 بیتی و 32 بیتی را بدون تغییر یا جبران اعتبار آنها فراهم می کند.

از ویژگی های بارز اینتل 64 پشتیبانی از شانزده رجیستر 64 بیتی با هدف کلی (x86-32 هشت ثبت 32 بیتی داشت). عملیات حسابی و منطقی 64 بیتی روی اعداد صحیح پشتیبانی می شوند. آدرس های مجازی 64 بیتی پشتیبانی می شوند. برای پرداختن به رجیسترهای جدید برای دستورات ، "پیشوندهای افزودنی ثبت نام" معرفی شد ، که دامنه کدهای 40h-4Fh انتخاب شد ، برای دستورات INC استفاده شد<регистр> و DEC<регистр> در حالت های 32 و 16 بیتی. دستورالعمل های INC و DEC در حالت 64 بیتی باید به صورت کلی و دو بایت رمزگذاری شوند.

ثبت ها:

16 رجیستر عدد صحیح 64 بیتی (RAX، RBX، RCX، RDX، RBP، RSI، RDI، RSP، R8 - R15) ،
8 رجیستر 80 بیتی شناور (ST0 - ST7) ،
8 رجیستر افزونه های چند رسانه ای 64 بیتی (MM0 - MM7 ، فضای مشترک با ثبات های ST0 - ST7)
16 رجیستر SSE 128 بیتی (XMM0 - XMM15) ،
نشانگر RIP 64 بیتی و ثبت 64 بیتی پرچم های RFLAGS.

نیاز به یک معماری 64 بیتی توسط برنامه های کاربردی که به یک فضای بزرگ آدرس نیاز دارند تعیین می شود. اول از همه ، اینها سرورهای با کارایی بالا ، سیستم های مدیریت پایگاه داده ، سیستم های CAD و البته بازی ها هستند. چنین برنامه هایی از فضای آدرس 64 بیتی و افزایش تعداد ثبت ها به طور چشمگیری بهره مند می شوند. تعداد کمی از ثبت های موجود در معماری میراث x86 عملکرد محاسباتی را محدود می کند. افزایش تعداد ثبت ها عملکرد کافی را برای بسیاری از برنامه ها فراهم می کند.

بیایید بر مزایای اصلی معماری x86-64 تأکید کنیم:

  • فضای آدرس 64 بیتی؛
  • مجموعه گسترده ای از ثبت ها؛
  • مجموعه ای از دستورات آشنا برای توسعه دهندگان؛
  • امکان اجرای برنامه های 32 بیتی قدیمی در 64 بیتی سیستم عامل;
  • توانایی استفاده از سیستم عامل های 32 بیتی.

سیستم عامل های 64 بیتی

تقریباً تمام سیستم عاملهای مدرن اکنون دارای نسخه هایی برای معماری Intel 64 هستند.به عنوان مثال ، مایکروسافت ویندوز XP x64 را ارائه می دهد. توسعه دهندگان عمده سیستم های UNIX نسخه های 64 بیتی مانند Linux Debian 3.5 x86-64 را نیز ارسال می کنند. با این حال ، این بدان معنی نیست که کل کد چنین سیستمی کاملاً 64 بیتی است. برخی از کد سیستم عامل و بسیاری از برنامه ها ممکن است 32 بیتی باقی بمانند ، زیرا اینتل 64 سازگاری عقب با برنامه های 32 بیتی را ارائه می دهد. مثلاً 64 بیتی نسخه ویندوز از یک حالت ویژه WoW64 (Windows-on-Windows 64) استفاده می کند که تماس از برنامه های 32 بیتی را به منابع یک سیستم عامل 64 بیتی تبدیل می کند.

WoW64

Windows-on-Windows 64-bit (WoW64) یک سیستم فرعی ویندوز است که به شما امکان می دهد برنامه های 32 بیتی را در تمام نسخه های 64 بیتی ویندوز اجرا کنید.

زیر سیستم WoW64 از برنامه های زیر پشتیبانی نمی کند:

  • برنامه های تهیه شده برای سیستم عامل های 16 بیتی.
  • برنامه های حالت هسته برای سیستم عامل های 32 بیتی گردآوری شده است.
بسته به معماری پردازنده ، تفاوت هایی در WoW64 وجود دارد. به عنوان مثال ، نسخه 64 بیتی ویندوز که برای پردازنده Intel Itanium 2 طراحی شده است از WoW64 برای تقلید دستورالعمل های x86 استفاده می کند. چنین تقلیدی نسبت به WoW64 برای معماری Intel 64 کاملاً منابع فشرده است ، زیرا هنگام اجرای برنامه های 32 بیتی ، از حالت 64 بیتی به حالت سازگاری تغییر می کند.

معماری WoW64 در Intel 64 (AMD64 / x64) نیازی به شبیه سازی دستورالعمل ندارد. در اینجا ، زیر سیستم WoW64 فقط به دلیل داشتن یک لایه اضافی بین یک برنامه 32 بیتی و 64 بیتی ، فقط از یک محیط 32 بیتی تقلید می کند. API ویندوز... در جایی این لایه نازک است ، در جایی نه خیلی. برای یک برنامه متوسط \u200b\u200b، از دست دادن بهره وری به دلیل وجود چنین لایه ای حدود 2٪ خواهد بود. برای برخی از برنامه ها ، این مقدار ممکن است بیشتر باشد. دو درصد زیاد نیست ، اما باید در نظر داشت که برنامه های 32 بیتی تحت سیستم عامل های ویندوز 64 بیتی اندکی کندتر از محیط های 32 بیتی عمل می کنند.

تدوین کد 64 بیتی نه تنها نیاز به WoW64 را از بین می برد ، بلکه عملکرد اضافی را نیز فراهم می کند. این به دلیل تغییرات معماری در ریزپردازنده ، از جمله افزایش تعداد ثبت های عمومی است. برای یک برنامه متوسط \u200b\u200b، می توانید 5/15٪ افزایش عملکرد را از یک جبران ساده انتظار داشته باشید.

به دلیل وجود لایه WoW64 ، برنامه های 32 بیتی در یک محیط 64 بیتی کارایی کمتری نسبت به برنامه 32 بیتی دارند. با این وجود ، برنامه های ساده 32 بیتی می توانند از مزایای اجرای آنها در یک محیط 64 بیتی بهره ببرند. احتمالاً می دانید که اگر یک سیستم عامل 32 بیتی ویندوز با سوئیچ / 3gb شروع شود ، می توانید تا 3 گیگابایت حافظه اختصاص دهید. بنابراین ، همین برنامه 32 بیتی که روی یک سیستم 64 بیتی اجرا می شود ، می تواند تقریباً 4 گیگابایت حافظه اختصاص دهد (در عمل ، حدود 3.5 گیگابایت).

زیر سیستم WoW64 با هدایت مجدد دسترسی به پرونده ها و رجیستری ، برنامه های 32 بیتی را از برنامه های 64 بیتی جدا می کند. این مانع از دسترسی تصادفی توسط برنامه های 32 بیتی به داده های برنامه های 64 بیتی می شود. به عنوان مثال ، یک برنامه 32 بیتی که پرونده DLL را از فهرست٪ systemroot٪ \\ System32 اجرا کند ، ممکن است به طور اتفاقی به یک فایل DLL 64 بیتی که با برنامه 32 بیتی ناسازگار است دسترسی پیدا کند. برای جلوگیری از این امر ، زیر سیستم WoW64 از پوشه٪ systemroot٪ \\ System32 به پوشه٪ systemroot٪ \\ SysWOW64 دسترسی پیدا می کند. این تغییر مسیر با نیاز به پرونده DLL که به طور خاص برای کار با برنامه های 32 بیتی طراحی شده است ، به جلوگیری از خطاهای سازگاری کمک می کند.

بیشتر با مکانیسم های تغییر مسیر سیستم فایل و رجیستری را می توان در بخش MSDN "اجرای برنامه های 32 بیتی" یافت.

مدل برنامه نویسی Win64

دقیقاً مانند Win32 ، اندازه صفحه در Win64 4 کیلوبایت است. اولین فضای 64Kb آدرس هرگز نمایش داده نمی شود ، بنابراین کمترین آدرس معتبر 0x10000 است. برخلاف Win32 ، DLL های سیستم بالای 4 گیگابایت بارگیری می شوند.

ویژگی کامپایلرهای اینتل 64 این است که آنها می توانند به جای استفاده از پشته ، از رجیسترها برای عبور پارامترها به توابع استفاده کنند. این امر به سازندگان معماری Win64 اجازه می دهد تا از چنین مفهومی مانند کنوانسیون فراخوان (کنوانسیون فراخوان) خلاص شوند. در کنوانسیون های مختلف می توان در Win32 استفاده کرد: __stdcall ، __cdecl ، __fastcall و غیره. فقط یک کنوانسیون فراخوان در Win64 وجود دارد. بیایید به نمونه ای از نحوه عبور چهار آرگومان عدد صحیح در رجیسترها نگاه کنیم:

  • RCX: اولین استدلال
  • RDX: استدلال دوم
  • R8: استدلال سوم
  • R9: استدلال چهارم
آرگومان ها بعد از چهار عدد صحیح اول روی پشته منتقل می شوند. برای آرگومان float ، از رجیسترهای XMM0-XMM3 استفاده می شود ، همچنین از پشته استفاده می شود.

تفاوت کنوانسیون های فراخوانی به این معنی است که شما نمی توانید از کد 64 و 32 بیتی در همان برنامه استفاده کنید. به عبارت دیگر ، اگر برنامه برای حالت 64 بیتی گردآوری شده باشد ، باید کلیه کتابخانه های استفاده شده (DLL) نیز 64 بیتی باشند.

عبور پارامترها از طریق رجیسترها یکی از نوآوری هایی است که باعث می شود برنامه های 64 بیتی کارایی بیشتری نسبت به نسخه های 32 بیتی داشته باشند. با استفاده از انواع داده 64 بیتی می توان سود اضافی عملکرد را بدست آورد.

فضای آدرس

در حالی که یک پردازنده 64 بیتی از لحاظ تئوری می تواند 16 اگزابایت حافظه (2 ^ 64) را مورد بررسی قرار دهد ، Win64 در حال حاضر از 16 ترابایت (2 ^ 44) پشتیبانی می کند. چندین دلیل برای این وجود دارد. پردازنده های فعلی فقط می توانند به 1 ترابایت دسترسی داشته باشند (2 ^ 40) حافظه فیزیکی... معماری (اما نه سخت افزاری) می تواند این فضا را به 4 پتایت (2 ^ 52) گسترش دهد. با این حال ، در این حالت ، برای میزهای صفحه بندی که حافظه را نقشه می کنند ، مقدار زیادی حافظه لازم است.

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

ویندوز XP حرفه ای - 128 Gbyte؛
ویندوز سرور 2003 ، استاندارد - 32 گیگابایت؛
ویندوز سرور 2003 ، سازمانی - 1 Tbyte؛
ویندوز سرور 2003 ، دیتاسنتر - 1 Tbyte؛
ویندوز سرور 2008 ، دیتاسنتر - 2 Tbyte؛
ویندوز سرور 2008 ، سازمانی - 2 Tbyte؛
ویندوز سرور 2008 ، استاندارد - 32 گیگابایت؛
ویندوز سرور 2008 ، سرور وب - 32 گیگابایت؛
Vista Home Basic - 8 Gbyte؛
حق بیمه داخلی ویستا - 16 گیگابایت؛
ویستا تجارت - 128 گیگابایت؛
تصدی ویستا - 128 گیگابایت؛
Vista Ultimate - 128 Gbyte؛
Windows 7 Home Basic - 8 Gbyte؛
Windows 7 Home Premium - 16 Gbyte؛
ویندوز 7 حرفه ای - 192 Gbyte؛
ویندوز 7 تصدی - 192 Gbyte؛
ویندوز 7 نهایی - 192 گیگابایت؛

توسعه برنامه های 64 بیتی

کامل ترین مسائل مربوط به توسعه برنامه های 64 بیتی در این دوره در نظر گرفته شده است "

سوال: معماری پردازنده - چیست؟
پاسخ: اصطلاح "معماری پردازنده" در حال حاضر مبهم است. از نظر برنامه نویسان ، معماری یک پردازنده به معنای توانایی آن در اجرای مجموعه خاصی از کدهای دستگاه است. اکثر پردازنده های دسکتاپ مدرن x86 یا پردازنده های سازگار با اینتل با معماری IA32 (معماری پردازنده 32 بیتی اینتل) هستند. پایه و اساس آن توسط Intel در پردازنده i80386 گذاشته شده است ، اما در نسل های بعدی پردازنده ها هم توسط خود اینتل تکمیل و توسعه یافته است (مجموعه دستورالعمل جدید MMX، SSE، SSE2 و SSE3 معرفی شده اند) و توسط تولید کنندگان شخص ثالث (مجموعه های دستورالعمل EMMX، 3DNow!) و تمدید شده اند 3DNow! ، توسعه یافته توسط AMD). با این حال ، توسعه دهندگان سخت افزار رایانه مفهوم کمی متفاوت را در مفهوم "معماری پردازنده" قرار می دهند (گاهی اوقات ، برای اینکه به کلی دچار سردرگمی نشویم ، از اصطلاح "microarchitecture" استفاده می شود). از نظر آنها ، معماری پردازنده اصول اساسی را منعکس می کند سازمان داخلی خانواده های پردازنده خاص. به عنوان مثال ، معماری پردازنده های Intel Pentium به عنوان پردازنده های P5 ، Pentium II و Pentium III - P6 و Pentium 4 شناخته شده در گذشته های اخیر ، متعلق به معماری NetBurst بود. پس از اینکه اینتل معماری P5 را به روی تولید کنندگان شخص ثالث بسته کرد ، رقیب اصلی آن AMD ، مجبور شد معماری خود را توسعه دهد ، K7 for پردازنده های Athlon و Athlon XP و K8 برای Athlon 64.

سوال: کدام پردازنده ها بهتر ، 64 بیتی یا 32 بیتی هستند؟ و چرا؟
پاسخ: یک پسوند 64 بیتی نسبتاً موفق از معماری 32 بیتی کلاسیک IA32 در سال 2002 توسط AMD (در ابتدا x86-64 ، اکنون AMD64) در پردازنده های K8 پیشنهاد شد. پس از مدتی ، اینتل نام خود را ارائه داد - EM64T (حافظه پیشرفته 64 بیتی). اما فارغ از نام ، ذات معماری جدید یکسان است: میزان تلخ بودن رجیسترهای اصلی داخلی پردازنده های 64 بیتی دو برابر شده است (از 32 به 64 بیت) و دستورالعمل های 32 بیتی کد x86 همتای 64 بیتی را دریافت کرده اند. علاوه بر این ، به دلیل گسترش عرض اتوبوس آدرس ، میزان حافظه خطاب شده توسط پردازنده به میزان قابل توجهی افزایش یافته است.

و همه چیز. بنابراین ، کسانی که انتظار دارند که از عملکرد CPU های 64 بیتی بهره قابل توجهی کسب کنند ، ناامید خواهند شد - عملکرد آنها در اکثر قریب به اتفاق برنامه های مدرن (که بیشتر برای IA32 تیز شده اند و بعید است که در آینده قابل پیش بینی برای AMD64 / EM64T جبران شوند) همان پردازنده های خوب 32 بیتی قدیمی. پتانسیل کامل معماری 64 بیتی فقط در آینده ای دور قابل آشکار خواهد بود ، هنگامی که مقادیر عظیم برنامه ها (برای نمایش معماری جدید) بهینه می شوند (یا ممکن است ظاهر نشوند). در هر صورت ، موثرترین انتقال به 64 بیتی برای برنامه هایی است که با بانکهای اطلاعاتی ، برنامه های CAD / CAE و برنامه هایی برای کار با محتوای دیجیتال کار می کنند.

سؤال: چیست هسته پردازنده?
پاسخ: در همان معماری ، پردازنده های مختلف می توانند کاملاً متفاوت از یکدیگر باشند. و این اختلافات در انواع هسته های پردازنده که مجموعه مشخصی از مشخصات کاملاً تعریف شده دارند ، تجسم می یابد. بیشتر اوقات ، این اختلافات در فرکانس های مختلف سیستم اتوبوس (FSB) ، اندازه حافظه نهان L2 ، پشتیبانی از مجموعه های جدید دستورالعمل یا فرآیندهای فن آوری که توسط آنها پردازنده تولید می شود ، تجسم می یابد. غالباً تغییر هسته در همان خانواده پردازنده مستلزم تعویض سوکت پردازنده است که منجر به بروز مشکلات سازگاری بیشتر مادربردها می شود. با این حال ، در روند بهبود هسته ، تولید کنندگان باید تغییرات جزئی در آن ایجاد کنند ، که نمی تواند وانمود کند که "نام مناسب" است. چنین تغییراتی به اصطلاحات هسته گفته می شود و بیشتر آنها توسط ترکیبات alphanumeric مشخص می شوند. با این حال ، در تجدید نظرهای جدید در مورد همان هسته ، ممکن است نوآوری های کاملاً چشمگیر وجود داشته باشد. به عنوان مثال ، اینتل پشتیبانی از معماری 64 بیتی EM64T را در پردازش های فردی Pentium 4 دقیقاً در فرآیند تغییر این نسخه اصلاح کرد.

س: مزیت پردازنده های دو هسته ای نسبت به پردازنده های تک هسته ای چیست؟
پاسخ: مهمترین واقعه سال 2005 ظهور پردازنده های دو هسته ای بود. در این زمان ، CPU های تک هسته ای کلاسیک به دلیل افزایش در فرکانس عملیاتی ، تقریباً به طور کامل ذخایر رشد بهره وری خود را خسته کرده بودند. گیر افتادن نه تنها اتلاف حرارت خیلی زیاد پردازنده هایی که در فرکانس های بالا کار می کنند بلکه مشکل در پایداری آنها نیز وجود دارد. بنابراین یک مسیر گسترده برای توسعه پردازنده ها برای سالهای آینده سفارش داده شد و تولید کنندگان آنها ، ویل-نیلی ، مجبور بودند بر یک روش جدید و فشرده برای افزایش عملکرد محصول تسلط داشته باشند. چالش برانگیز ترین بازار پردازنده دسکتاپ ، مثل همیشه ، اینتل بود که اولین کسی بود که دو هسته ای را اعلام کرد پردازنده های اینتل پنتیوم D و اینتل نسخه افراطی... با این حال ، AMD با Athlon64 X2 به معنای واقعی کلمه تا چند روز از رقبای عقب مانده است. مزیت بدون شک پردازنده های دو هسته ای نسل اول ، که شامل پردازنده های فوق می باشد ، سازگاری کامل آنها با موجود است مادربردها (به طور طبیعی ، آنهایی کاملاً مدرن ، که فقط باید BIOS آن را به روز کنید). بویژه نسل دوم پردازنده های دو هسته ای هسته اینتل 2 Duo ، "به چیپست های مخصوص طراحی شده" نیاز دارد "و با مادربردهای قدیمی کار نمی کند.

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

با این حال ، اگر امروز در انتخاب پردازنده برای رایانه شخصی بازی از محدوده قیمت متوسط \u200b\u200bیا بالاتر سؤالی پیش آمده است ، در هر صورت بهتر است پردازنده دو هسته ای یا حتی 4 هسته ای را به یک آنالوگ تک هسته ای با فرکانس کمی بالاتر ترجیح دهید ، زیرا بازار به طور پیوسته به سمت سیستم های چند هسته ای و محاسبات موازی بهینه شده این روند در سالهای آینده حاکم خواهد شد ، به طوری که سهم نرم افزارهای بهینه شده برای چند هسته به طور پیوسته افزایش می یابد و خیلی زود ممکن است لحظه ای فرا رسد که multicore به یک نیاز فوری تبدیل شود.

سؤال: حافظه نهان چیست؟
پاسخ: کلیه پردازنده های مدرن دارای حافظه پنهان (به انگلیسی - cache) - آرایه ای از حافظه دسترسی سریع فوق العاده سریع ، که یک بافر بین کنترل کننده حافظه سیستم نسبتاً کند و پردازنده است. این بافر بلوک های داده ای را که CPU در حال حاضر با آن کار می کند ، ذخیره می کند و این باعث کاهش چشمگیر تعداد مکالمات پردازنده به حافظه سیستم بسیار کند (در مقایسه با سرعت پردازنده) می شود. این به طور قابل توجهی عملکرد کلی پردازنده را افزایش می دهد.

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

دو نوع حافظه پنهان وجود دارد: کش انحصاری و غیر انحصاری. در حالت اول ، اطلاعات موجود در انبارهای همه سطوح به طور واضح مشخص شده است - هر یک از آنها حاوی اطلاعاتی منحصراً اصلی هستند ، در حالی که در صورت حافظه نهان غیر اختصاصی ، می توان اطلاعات را در تمام سطوح حافظه کپی کرد. امروز دشوار است که بگوییم کدام یک از این دو طرح صحیح تر است - هر دو معایب و مزایا وجود دارد. یک برنامه انحصاری ذخیره سازی در استفاده می شود پردازنده های AMD، در حالی که منحصر به فرد نیست - در پردازنده های اینتل.

سوال: اتوبوس پردازنده چیست؟
پاسخ: اتوبوس پردازنده (در غیر این صورت - سیستم) ، که اغلب به آن FSB (جلو سمت جانبی اتوبوس) گفته می شود ، مجموعه ای از خطوط سیگنال است که با توجه به هدف آنها (داده ها ، آدرس ها ، کنترل) ترکیب می شوند که دارای موارد خاص هستند مشخصات الکتریکی و پروتکل های انتقال اطلاعات بنابراین ، FSB به عنوان یک کانال تنه بین پردازنده (یا پردازنده) و سایر دستگاه های موجود در رایانه عمل می کند: حافظه ، کارت ویدیو ، هارد دیسک و غیره. مستقیما به اتوبوس سیستم فقط CPU متصل است ، بقیه دستگاه ها از طریق کنترل کننده های ویژه به آن متصل می شوند ، که عمدتا در پل شمالی مجموعه منطق سیستم متمرکز است (چیپست) مادربرد... اگرچه ممکن است استثنائاتی وجود داشته باشد - به عنوان مثال ، در پردازنده های AMD از خانواده K8 ، کنترلر حافظه بطور مستقیم در پردازنده یکپارچه می شود ، در نتیجه یک رابط حافظه CPU بسیار کارآمدتر از راه حل های اینتل ارائه می دهد که به کانون های کلاسیک سازماندهی رابط خارجی پردازنده وفادار است. پارامترهای اصلی FSB برخی پردازنده ها در جدول نشان داده شده است

پردازنده فرکانس FSB ، مگاهرتز نوع FSB توان تئوری FSB ، Mb / s
اینتل پنتیوم سوم 100/133 AGTL + 800/1066
اینتل پنتیوم 4 100/133/200 QPB 3200/4266/6400
اینتل پنتیوم D 133/200 QPB 4266/6400
Intel Pentium 4 EE 200/266 QPB 6400/8533
هسته اینتل 133/166 QPB 4266/5333
Intel Core 2 200/266 QPB 6400/8533
AMD Athlon 100/133 EV6 1600/2133
AMD Athlon XP 133/166/200 EV6 2133/2666/3200
AMD Sempron 800 HyperTransport <6400
AMD Athlon 64 800/1000 HyperTransport 6400/8000

پردازنده های اینتل از اتوبوس سیستم QPB (Quad Pumped Bus) استفاده می کنند ، که داده ها را چهار بار در هر چرخه منتقل می کند ، در حالی که اتوبوس سیستم EV6 پردازنده های AMD Athlon و Athlon XP داده ها را دو بار در هر چرخه منتقل می کند (Double Data Rate). معماری AMD64 که توسط AMD در پردازنده های Athlon 64 / FX / Opteron مورد استفاده قرار می گیرد ، از رویکرد جدیدی برای سازماندهی رابط CPU استفاده می کند - در اینجا ، به جای اتوبوس پردازنده FSB و برای ارتباط با سایر پردازنده ها ، از آنها استفاده می کنند: سریال پر سرعت (پکیج) اتوبوس HyperTransport ، که مطابق با طرح Peer ساخته شده است. -to-Peer (نقطه به نقطه) ، با ارائه سرعت بالا در تبادل داده ها با تأخیر نسبتاً کم.

انتقال به ریزپردازنده های 16 بیتی - i8086 و دیگر قدرت محاسبات مشابه - با یک جهش کیفی در تمام خصوصیات اصلی نماینده مجلس مشخص شد: نه فقط افزایش در عمق بیت بلکه تغییر قابل توجهی در معماری ، سیستم فرمان ، اصول سازماندهی سازه. علاوه بر نمونه نشان داده شده در شکل. 2.4 ، دستگاه i8086 کاربر شامل 1M حافظه بایت و دو قسمت درگاه ورودی و خروجی ، هر 64K خواهد بود.

"دستگاه کاربر" را بر اساس i8086 (К1810ВМ86) در نظر بگیرید:

7 0 7 0
تبر ق AL باتری
رون Bx BH BL پایه
CX CH CL پیشخوان
DX DH DL داده ها
15 0
ثبت SP نشانگر پشته
نشانگرها BP نشانگر پایه
فهرست مطالب SI فهرست عملکرد
ثبت دی فهرست نتایج
15 0
CS بخش کد
سگمنتال DS بخش داده
ثبت SS بخش پشته
ES بخش اضافه کنید. داده ها
15 0
IP پیشخوان فرمان
شلاق ها ثبت ویژگی ها

شکل: 2.4 MP i8086 - دستگاه کاربر

توسعه دهندگان i8086 سعی کردند احتمال تداوم نرم افزار i8080 را حفظ کنند ، بنابراین می توان زیر مجموعه ای از ثبت های i8080 را در i8086 تشخیص داد (زیر مجموعه مربوطه نیز در سیستم دستورالعمل ذخیره می شود). علاوه بر عملیات هایی که دارای 16 رجیستری برای اهداف کلی (RON) AX..DX هستند ، دسترسی به هر بایت از این ثبت ها - AL..DL ، AH..DH مجاز است. در بعضی از دستورات ، RON ها عملکردهای پیش فرض پیشخوان ها ، ثبات ها و غیره را انجام می دهند. (نگاه کنید به شکل 2.4).

از ثبت های 16 بیتی BP ، SI ، DI برای شکل دادن آدرس های حافظه اجرایی استفاده می شود (به شکل زیر مراجعه کنید) ، SP نشانگر پشته است ، IP پیشخوان برنامه (SC) است ، F ثبت نام پرچم ها است. بایت پایین F به طور کامل قالب ثبت ویژگی i8080 را تکرار می کند ، و بایت بالا اثری دارد. قالب:

DF جهت تغییر آدرس های آرایه در دستورات زنجیره ای (افزایش یا کاهش آدرس) را تعیین می کند.

اگر یک وقفه خارجی را در ورودی INT ماسک می کند (با IF \u003d 1 ، وقفه را فعال کنید)؛

TF عملکرد گام به گام ریز پردازنده را کنترل می کند. اگر TF \u003d 1 ، پس از اجرای هر فرمان ، قطع با بردار 4 به صورت خودکار ایجاد می شود (بخش 7 را ببینید).

اختصاص فضای آدرس.

فضای آدرس MP در i8086 با عرض آدرس / داده + باس آدرس مشخص می شود و 2 20 \u003d 1M bytes است. در این فضای آدرس MT ، چهار بخش به طور هم زمان در دسترس است که دو بخش آن (DS و ES) برای قرار دادن داده ها در نظر گرفته شده است ، CS یک بخش کد (برای قرار دادن یک برنامه) و SS یک بخش پشته است.

اندازه قطعات با عرض کمی آدرسهای منطقی دستورات ، داده ها و پشته ها تعیین می شود. آدرس های منطقی دستورالعمل ها و پشته (تاپ ها) به ترتیب در IP های ثبت شده 16 بیتی IP و SS ذخیره می شوند و آدرس منطقی داده ها در دستور محاسبه می شود (شکل زیر را ببینید) و همچنین 16 بیت است. بنابراین ، اندازه هر بخش در i8086 64K بایت است. موقعیت بخش در فضای آدرس (آدرس شروع آن) با محتویات ثبت نام قطعه به همین نام تعیین می شود. شکل گیری آدرس فیزیکی توسط نمودار موجود در شکل نشان داده شده است. 2.5.

از شکل 2.5 دیده می شود که مرز بخش در فضای آدرس می تواند به طور دلخواه تنظیم نشود ، اما به گونه ای که آدرس بخش اولیه مضرب 16 باشد.

15 0
ثبت نام بخش .0 0 0 0
15 0
آدرس منطقی
19 0
آدرس جسمی

شکل: 2.5. تشکیل یک آدرس فیزیکی

به طور پیش فرض ، ثبات ها برای تشکیل آدرس دنباله فیزیکی انتخاب می شوند. روش: هنگام خواندن یک دستور توسط آدرس IP ، هنگام دسترسی به داده ها - DS یا ES ، هنگام دسترسی به پشته - SS از CS استفاده می شود. با کمک پیشوندهای خاص به فرمان (پیشوند) ، می توانید یک رجیستر قطعه دلخواه را برای استفاده اختصاص دهید (به جز جفت CS: IP ، که قابل اصلاح نیست). مرزهای بخش ها به گونه ای انتخاب می شوند که بخش ها از یکدیگر جدا شوند ، از هم جدا شوند و یا حتی کاملاً همزمان شوند. به عنوان مثال ، اگر CS \u003d SS \u003d DS \u003d ES \u003d 0 را بارگیری می کنید ، تمام بخش ها با یکدیگر همزمان می شوند و از آدرس صفر شروع می شوند - نوعی از سازماندهی فضای آدرس i8080.

روشهای پرداختن

و روش های تشکیل آدرس اجرایی

دستور i8086 می تواند از 1 تا 6 بایت باشد. قالب فرمان در شکل نشان داده شده است. 2.6.

1 بایت 2 بایت 3..6 بایت
CPC د W وزارت دفاع ثبت R / M [جانبداری. داده ها]
7 2 1 0 7 6 5 3 2 0

شکل: 2.6. فرمت فرمان MP i8086

بیشتر دستورالعمل های i8086 دارای آدرس دوگانه هستند که یک آدرس دارای یک ثبت پردازنده و دیگری حافظه یا ثبت نام می باشد. زمینه های فرماندهی اهداف زیر را دارند:

د - جهت انتقال اطلاعات را مشخص می کند: با D \u003d 1 REG یک گیرنده است ، در غیر این صورت - یک منبع.

W - طول عملوندهای موجود در فرمان را تعیین می کند: برای W \u003d 1 ، طول عملوندها 16 بیت (کلمه - کلمه) است ، در غیر این صورت - 8 بیت (بایت).

REG - با استفاده از برگه ، رجیستری را برای اولین بار به شرح زیر معرفی می کند. 2.3:

REG (R / M) ثبت نام
W \u003d 0 W \u003d 1
AL تبر
CL CX
DL DX
BL Bx
ق SP
CH BP
DH SI
BH دی

قسمت های R / M و MOD نحوه تشکیل آدرس عمل دوم را که بیشتر در حافظه قرار دارد تعیین می کند. جدول. 2.4 روش های ایجاد آدرس های حافظه را برای دو مقدار از زمینه MOD نشان می دهد.

R / M وزارت دفاع \u003d 00 MOD \u003d 01
آدرس منطقی بخش آدرس منطقی بخش
BX + SI DS BX + SI + d8 DS
BX + DI DS BX + DI + d8 DS
BP + SI SS BP + SI + d8 SS
BP + DI SS BP + DI + d8 SS
SI DS SI + d8 DS
دی DS DI + d8 DS
d16 DS BP + d8 DS
Bx DS BX + d8 DS

جدول. 2.4 d8 و d16 به ترتیب برابر با 8- و 16 بیتی (3 بایت فرمان 3 و 3). در حین عملیات با d8 "پسوند علامت" آن به 16 بیت انجام می شود - بیت 15-8 مقدار بیت 7 را (علامت) می گیرد.

هنگامی که MOD \u003d 10 ، از همان رجیسترهایی استفاده می شود که MOD \u003d 01 (جدول 2.4 را ببینید) ، اما به جای d8 از d16 استفاده می شود.

هنگامی که MOD \u003d 11 باشد ، عملیات دوم فرمان ، ثبتی است که توسط قسمت R / M طبق Tab مشخص شده است. 2.3

بنابراین ، عملوند در حافظه می تواند به طور مستقیم (MOD \u003d 00 ، R / M \u003d 110) یا به طور غیر مستقیم از طریق محتویات ثبت نام های پایه (BP ، BX) یا فهرست (SI ، DI) و همچنین مبلغ آنها مورد خطاب قرار گیرد. حالت های آدرس دهی برای اجرای کارآمد زبانهای سطح بالا طراحی شده است. به عنوان مثال ، به یک متغیر ساده در حالت آدرس دهی مستقیم قابل دسترسی است و از طریق BX ، SI می توانید به یک عنصر آرایه دسترسی داشته باشید. حالت آدرس دهی از طریق BP برای دسترسی به داده ها از بخش پشته در نظر گرفته شده است ، که هنگام اجرای مراحل بازگشتی و کامپایلرهای سطح بالا زبان مناسب است.

زنگ

کسانی هستند که این خبر را قبل از شما می خوانند.
برای دریافت آخرین مقالات مشترک شوید.
پست الکترونیک
نام
نام خانوادگی
چگونه می خواهید The Bell را بخوانید
بدون اسپم