Набор от инструкции (набор инструкции)
SSE, SSE2, SSE3 и се използва в съвременните AMD процесори.
Наборът от инструкции на съвременната процесори x86 инструкции включва всички предишни поколения. Инструкции могат да бъдат разделени на приложения, използвани от "Полезно" на приложения и системи, използвани от операционната система, за да се създаде среда, в която приложенията да работят. Фиг. 7.2 показва група от инструкции x86 процесори в реда, в който се появи в различни поколения и модели на процесори. Наличието на подмножества на инструкции затворен в овал, квадрат, могат да бъдат идентифицирани от знамената на архитектурни разширения, трябва, по инструкция CPUID.
Фиг. 7.2. Наборът от инструкции на съвременната процесори x86
инструкции за кандидатстване могат да бъдат разделени в няколко групи (в групата на картината
Обединените пунктирани линии).
общи команди - основни цели числа x86 инструкции се използват от почти всички програми. Тези инструкции се зареждат, съхраняват и обработват данните, намиращи се в регистрите на общи цели и паметта. Част от Инструкцията се използва, за да променя последователността на изпълнение - декларация за условни и безусловни клони, процедура изисква. Инструкциите за основни общо предназначение се прилагат във всички x86-базирани (с изключение на някои разпоредби, които могат да се определят
7.2. програмният модел на модерни x86 процесори
Усмихнати чрез инструкция CPUID). Инструкция 64-битов режим (инструкции дълъг режим)
се появява само в процесори с 64-битови разширения, и са на разположение само в съответните режими.
Инструкции с x87 плаваща запетая работа с FPU, те се използват в по-стари приложения, които изискват точни изчисления. Имайте предвид, че тези инструкции поддържат различни формати за данни за плаваща запетая (FP-номера): 80 бита - разширена точност от 64 бита - двойна точност 32 бита - единична точност. Той също така поддържа BCD формат и конвертира формати. 80-битов FP-формат осигурява максимална точност и максимален обхват от номера, включени. X87 набор инструкции постепенно се разширява, се появи в инструкции P6 условни трансфери, които намаляват броя на клоновете на програмата.
64bit разширения медийни инструкции работят на данни, разположени в 64-битови регистри MMX. Те изпълняват операции число и изчисления с плаваща точка в скаларни и векторни изпълнения, медийни приложения и са предназначени за работа с блокове данни. инструкции Vector целочислени появили в оригиналния набор MMX. техния състав разширени инструкции AMD разширение към MMX и SSE инструкции част (въведени Intel). Vector инструкции с плаваща запетая се появили в 3DNow. сета си разширена през AMD Разширения за 3DNow! Инструкции.
128-битови инструкции медии работят на данни, разположени в 128 най-прилепи - ПРАВИТЕЛСТВЕНА XMM регистрира. Те изпълняват операции число и изчисления с плаваща точка в скаларни (един набор от операнди) и вектор (с няколко комплекта, принцип SIMD) изпълнения. Тези инструкции са предназначени за висок клас медии и научни приложения, които работят с блокове от данни. В стрийминг разширителни SSE инструкции са определени с единична точност с плаваща запетая (32 бита) в SSE2 въведена инструкция двойна точност (64 бита) в SSE3 въведе 13 допълнителни инструкции (144 съществуващи в ССИ и SSE2), включително SIMDinstruktsii с FP-номера двойно прецизни цели числа, както и инструкции за управление на паметта и за кеширане.
Няколко указания са мостове между горните групи. Те осигуряват пренос на данни между блока MMX и XMM регистрира общ. Набор от инструкции (като цяло число или с плаваща запетая) може да изпълнява и двете блокове MMX (и FPU) и XMM в блокове.
Event- прекъсвания и изключения
Прекъсване (прекъсване) и изключения (изключение), наричани общо събития (събитие), пречи на нормалното изпълнение на програмата за обработка на външни събития или сигнализация при настъпването на специфични условия или грешка. Според едно събитие процесор магазини регистрира стека (Д) ЗНАМЕНА показалеца и CS: (Е) на IP по нареждане, че тя трябва да се извършват след работа на събитието. Тази инструкция ще бъде, следващ този, през който е настъпила изпълнението на събитието, или една и съща. защитното
Глава 7. процесори
schennom режим, когато редица изключения в стека все още е запазена и кода
грешка. След съхраняване на тези стойности на процесора пристъпва към изпълнение на кода за боравене със събития, определяне на входна точка в него чрез редица (0-255) на таблицата с прекъсване. артикул номер в таблицата с прекъсване вектор се нарича прекъсване. тя се определя от източника на събитието. манипулатор на събитието трябва да завършва със специален връщане инструкция IRET, според която показалеца на стека ще бъдат възстановени на CS: (Е) IP и знамената предишната стойност. За изключения, които се съхраняват и код за грешка, водачът преди инструкцията IRET е да се премахнат от кода на стека грешка.
Има четири вида събития:
♦ изключения (вътрешно прекъсване) процесор и копроцесор, векторът определя от вида на минало събитие.
♦ външен nonmaskable прекъсване NMI входния вектор е фиксиран (01).
♦ проби при външно прекъсване INT (или APIC автобус) влизане вектор прекъсване контролер се предава. реакция на процесора може да бъде потиснат (или по-скоро, по-късно) нулиране флаг IF (процесор реагира на прекъсване в очакване, когато флаг, ако е настроена).
♦ Софтуер причинени прекъсване вектор се определя от екипа.
Изключения (вътрешно прекъсване) на процесора се генерират в случай на специални условия за изпълнение на настоящата инструкция. Повечето от тях са не толкова асинхронния, като неочаквано за програмния код. вектор брой се определя от процесора в зависимост от произхода на изключението. Изключения са разделени на три типа.
♦ Липса (вина) - изключение, което се случва, преди изпълнение на инструкции, когато процесорът регистрира неизправност на изпълнение; състояние на машината не се променя. За повреди включват, например, е опит за достъп до паметта на липсващата страница (използван за виртуална памет).
♦ капан (капан) - изключение резултат от изпълнението на инструкции (например, разделете на нула), и състоянието на машината съгласно инструкциите на действие се променя.
♦ Липса (прекъсване) - изключение, за които не е възможно да се определи точно е довела до неговите инструкции (и невъзможно да се коригира действията да продължат). Към тях спадат двоен провал (с изключение на
7.2. програмният модел на модерни x86 процесори
изключение на обработката) и изключването на средствата за контрол на машината
Maskable външно прекъсване чрез преработка на сигнала на входа INT само когато прекъсне позволи флаг IF.
НИМ обработват от процесора независимо от прекъсване разрешение флага на държава, ако. Те са носени от прекъсване дойде по линия НИМ (Non-Maskable прекъсвания), а за процесори, които поддържат режима на системата за управление на, а дори и на SMI # линия (Система за управление на прекъсванията).
Всеки номер (0-255) съответства на прекъсване или изключение елемент в таблицата за прекъсване ЕВРОВОК (Прекъсване дескриптори маса, IDT), който се интерпретира в зависимост от режима на процесора.
В защитен режим маса съдържа IDT 8-байтови прекъсване описания.
Той може да се съхранява от 32 до 256 описания и се намира навсякъде в физическа памет. Описания могат да бъдат шлюзове. или порти (ключа), прекъсвам, капан, или задача. Входовете прекъсва и капани се използват процедури по обработка на повикване поставят в сегментите описани техните описания. Тези портали осигуряват защита за прехвърляне на контрола: трансферите управляващия процесор на манипулатора, само когато определени съотношения привилегии прекъснати код, водачът и кода на ЕВРОВОК привилегия. прекъсне треньор код не трябва да бъде по-малко, отколкото привилегирован задачата код прекъснат (в противен случай се работи защита изключение). Ако прекъсване на лечението се извършва на по-високо ниво на привилегия, процесорът автоматично превключва на стека (това е допълнително време, прекарано на достъп до паметта). Прекъсване (включително хардуер) е възможно, и превключване задачи за дескриптора на прекъсване трябва да бъде проблем шлюз.
В 64-битов режим (дълъг режим) дръжки има нов 16-байт структура, и тук други норми на превключвателя на стека. В допълнение, това приложение не извършва хардуерни превключване задачи.
При изключване (вътрешно прекъсване) в Intel процесори запазени вектори 0- 31 IDT маса, но в частта RS от тях се припокрива капани - BIOS услуги и DOS, както и хардуерни прекъсва. Тези подове са от особено значение за защитената режим; те усложни съчетания прекъсване на услугите.
В началото на всяко лечение (включително софтуер) прекъсват процесора автоматично се връща на прекъсване позволи флаг IF. Процедурата по приключване на преработката инструкция IRET, на която стека се записват автоматично регистри са възстановени (реконструиран регистър в прекъсване флаг е разрешено) и процесора започва изпълняващ инструкцията, следваща тази, която се изпълнява, след прекъсване. Разбира се, софтуера по време на прекъсване на услугата може да разисква или случайно измерим