Компютърни системи с 64-битови процесори на Intel и amd. Основни характеристики Кратка хронология на 64-битовите процесори



Дата26.08.2016
Размер59.83 Kb.
#7372
Компютърни системи с 64-битови процесори на Intel и AMD.

Основни характеристики
1.Кратка хронология на 64-битовите процесори

От появата на компютрите с първите 32-битови процесори 80386 през 1986 г., всички процесори за PC, които се произвеждат в продължение на около 15 години (до Intel Pentium 4 и AMD Athlon XP), са 32-битови, каквито и подобрения в архитектурата да имат.

Едва през 2001 г., Intel представят първия 64-битов процесор за сървъри Itanium (произнася се ai’teiniəm) последван през 2002 г. от подобрения Itanium 2. През 2003 г. AMD представя първите 64-битови процесори за x86-съвместими настолни компютри Athlon 64 и Athlon 64FX и първия 64-битов процесор за сървъри Opteron. През 2004 г. Intel представя серия от версии на процесора Pentium 4 за настолни компютри, които поддържат 64-битовото разширение Intel 64. След това през 2005 г., Intel въвеждат 64-битовите версии на процесорите Xeon за работни станции и сървъри и двуядрените 64-битови процесори Pentium D и Pentium Extreme Edition, които са последните процесори, използващи NetBurst. След изчерпване възможностите на NetBurst архитектурата, Intel създават редица 64-битови процесори, базирани на микроархитектурите Core, Atom и Nehalem. Успоредно с развитието на процесорите на Интел и в конкуренция с тях се развиват и процесорите на AMD. През 2005 г. са представени 64-битовите процесори от семейството Athlon 64 X2, които са първите двуядрени процесори за настолни компютри на AMD. През 2007 г. започва производството на 64-битови процесори с новата архитектура AMD K10, с кодово име Phenom.

2.Подходи при създаването на 64-битови процесори

При създаването на 64-битови процесори се използват два основни подхода:



  • създаване на изцяло нова 64-битова архитектура, несъвместима с архитектурата х86 – използван от Intel и Hewlett Packard в архитектурата IA-64, приложена в процесорите Itanium и Itanium 2. Основното предназначение на тази архитектура е за сървъри. Отначало се предлагала и в качеството на платформа за настолни компютри, но след появата на архитектурата AMD64, запазваща съвместимостта с x86, производителите, в това число и Intel, се отказват да я използват за друго, освен за сървъри; въпреки че в края на 2001 г. е създадена специална 64-битова версия на Windows XP за IA-64.

  • еволюция на съществуващата x86 архитектура, чрез добавяне на 64-битови изчислителни възможности – предложена от AMD през 1999 г. и за пръв път приложена през 2003 г. за процесорите Opteron – за сървъри и Athlon 64 и Athlon 64FX – за настолни компютри. Следвайки AMD, Интел създават своя версия на тази архитектура и за пръв път я използват през 2004 г. в процесорите Xeon с кодово име Nocona. Такава технология се осъществява и от други фирми като Via.

При първия подход архитектурата IA-64 (наречена по-късно Itanium) е основана на технологията EPIC (explicitly parallel instruction computing – изчислeния с явна паралелност на инструкциите), което позволява да се извършват до 20 операции за такт. Технологията EPIC съчетава в себе си силните страни на архитектурите RISC и VLIW.

Според Джон Крофорд (John Crawford)1, един от създателите на Itanium архитектурата, особеностите на архитектурата EPIC са:



  • Явен паралелизъм в машинния код. Търсенето на зависимости между командите се извършва от компилатора (програмата за превод на машинен език), а не от процесора;

  • Голямо количество регистри;

  • Мащабируемост на архитектурата до голямо количество функционални устройства;

  • Предикация (Predication). Командите от различните разклонения на условния оператор се снабдяват с предикатни полета (полета за условия) и се стартират паралелно;

  • Зареждане по предположение (Speculative loading). Данните от бавната основна памет се зареждат предварително.

Главният принцип на EPIC е да се даде възможност на програмиста или компилатора явно да укаже вътрешната паралелност на инструкциите в програмата, като в същото време позволява и на апаратната част да открива участъците, подходящи за разпаралелване.

С други думи, при тази технология компилаторът взема решения кои инструкции да се изпълняват паралелно за разлика от другите суперскаларни архитектури, които разчитат на сложни схеми в процесора, за да се следят зависимостите на инструкциите по време на изпълнение.

Архитектурата е с 64-битови регистри. Базовата дума за данни е 64 бита, байт адресируема. Логическото адресно пространство е 264 байта. Архитектурата реализира предикация, предположения (speculation) и предсказване на разклоненията. Тя използва хардуерен механизъм за преименуване на регистъра. Същият механизъм се използва и за разрешаване на паралелно изпълнение на циклите. Предположенията, прогнозите, предикацията и преименуването са под управление на компилатора: всяка дума с инструкция включва допълнителни битове за това. Този подход е отличителната характеристика на архитектурата.

Архитектурата IA-64 реализира 128 целочислени регистри, 128 регистри с плаваща запетая, 64 еднобитови предикати (твърдения) и осем регистъра на разклоненията. Регистрите с плаваща запетая са 82 бита дълги, за да се запази точността за междинните резултати.



Вторият подход (еволюционен) е разработен от Advanced Micro Devices (AMD) като алтернатива на коренно новата архитектура IA-64 на Intel и Hewlett Packard. При него се добавят 64-битови изчислителни възможности към съществуващата x86 архитектура.

Оригиналното наименование на 64-битовото разширение на набора инструкции за x86, специфициран от Advanced Micro Devices (AMD) е x86-64. При него се осигуряват 64-битови процесорни регистри за обща употреба, удвоява се широчината на целочислените регистри за аритметични и логически операции от 32 до 64 бита, увеличава се броят на целочислените регистри, разширяват се виртуалните и физически адресни пространства, и други разширения и усъвършенствания. То е напълно обратно съвместимо с 32-битовия код, без намаляване на производителността. По-късно този набор инструкции се представя от AMD под името AMD64, а реализацията на Intel отначало се нарича EM64T (Extended Memory 64 Technology), а от 2006 г. е под името Intel 64 (подобно на начина на именуване на AMD).



Най-значимите промени на x86-64 са:

  • 64-битови възможности за целите числа: Всички регистри за обща употреба са разширени от 32 на 64 бита и всички аритметични и логически операции, операции „памет към регистър” и „регистър към памет” могат да работят директно с 64-битови цели числа. Поставянията и свалянията на данни от стека са винаги в 8-байтови крачки и указателите са широки 8 байта.

  • Допълнителни регистри. Като допълнение към увеличения размер на регистрите за обща употреба, броят на именуваните регистри за обща употреба е увеличен от 8 (eax, ebx, ecx, edx, ebp, esp, esi, edi) при 32-битовата архитектура, на 16 (rax, rbx, rcx, rdx, rbp, rsp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15). Следователно е възможно да се съхраняват повече локални променливи в регистрите, отколкото в стека, и се позволява на регистрите да държат често използвани константи. Аргументите за малки и бързи процедури могат също да бъдат подадени в регистрите в по-голям обхват. При все това AMD64 има значително по-малък брой регистри в сравнение с други 64-битови машини като RISC ISA (32-64 регистъра) или Itanium (128 регистъра)

  • Допълнителни XMM (SSE) регистри: Броят на 128-битовите XMM регистри (използвани за Streaming SIMD инструкциите) също е увеличен от 8 на 16

  • По-голямо пространство на виртуални адреси: При 32-битовите x86 то е 4 GB1 (232 байта), а при AMD64 е увеличено на 256 TB (248 байта), с възможности за увеличение в бъдещи реализации до 16 EB (264 байта).

  • По-голямо пространство на физическите адреси: При 32-битовите x86 то е 64 GB (236 байта). Сегашните реализации (от AMD К10) могат да адресират до 256 TB (248 байта) RAM, а архитектурата позволява разширяване до 4 PB (252 байта).

  • Указателят към инструкциите е относителен спрямо достъпа до данните: Инструкциите могат сега да се обръщат към данните спрямо указателя на инструкции (RIP регистър). Това прави независимия от позицията код 2 по-ефективен.

  • SSE инструкции: Оригиналната AMD64 архитектура възприема SSE и SSE2 като инструкции на ядрото. Инструкциите SSE3 са добавени през април 2005. SSE2 инструкциите използват 32-битова или 64-битова математика с плаваща запетая. Инструкциите SSE и SSE2 също са разширени да оперират с новите осем XMM регистри. Освен това тези инструкции са по-бързи и дублират повечето от традиционните x87 инструкции MMX и 3DNow!

  • NX бит (No-Execute bit - бит за неизпълнение) е бит 63 от таблицата на страницата, който позволява на операционната система да определи кои страници от пространството на виртуални адреси могат да съдържат изпълним код и кои не могат. Опитът да се стартира код от страница, маркирана като „неизпълнима” ще доведе до забрана за достъп до паметта, подобно на опита да се записва в страница „само за четене”. Това прави по-трудно за вредния код да поема управлението върху системата чрез атаки от типа „препълване на буфера” или „непроверен буфер”.



Литература

  1. Mueller, Scott Upgrading and Repairing Pcs, 17th Edition. Que. 2006.

  2. Mueller, Scott Upgrading and Repairing Pcs, 19th Edition. USA, Que, 2009.

  3. Официален сайт на Интел http://www.intel.com

  4. Официален сайт на AMD http://www.amd.com

1 John H. Crawford е виден инженер на Интел, със съществен принос в разработването на процесорите 80386, 80486, Pentium, Itanium и др. (виж http://www.intel.com/pressroom/kits/bios/crawford.htm)

1 Представките на мерните единици се четат така: G- гига - 10003, T –тера – 10004, P- пета – 10005, E- екса- 10006

2 Независимият от позицията код (Position-independent code - PIC) е машинна инструкция, която се стартира правилно, независимо от това, къде се намира в паметта. Такъв код често се използва в споделени библиотеки и в код, зареждан по време на изпълнение.





Сподели с приятели:




©obuch.info 2024
отнасят до администрацията

    Начална страница