Понятие программной модели x86

Автор работы: Пользователь скрыл имя, 27 Ноября 2011 в 21:27, реферат

Описание

Различными являются способы, средства и используемые ресурсы, с помощью которых компьютер функционирует как единый механизм. Чтобы собрать воедино все понятия, характеризующие компьютер с точки зрения его функциональных программно-управляемых свойств, существует специальный термин - архитектура ЭВМ.

Содержание

Введение………………………………………………………………………………………..
1.Понятие программной модели……………………………………………………………...
2.Программная модель х86…………………………………………………………………....
2.1 Особенности моделей x86…………………………………………………………………
2.2 Историческое развитие линейки процессоров x86……………….……………………..
Заключение…………………………………………………………………………………….
Список используемых источников……………

Работа состоит из  1 файл

Реферат х86.docx

— 54.21 Кб (Скачать документ)

       BIOSами персональных компьютеров. Следует отметить, что в процессоре 80286 также была возможность загрузки нестандартных значений дескрипторного кеша при помощи недокументированной команды LOADALL; что было особенно актуально, поскольку процессор 80286 не позволял сбрасывать флаг PE (из защищенного режима выходили с помощью сброса процессора, что сказывалось на производительности).

       Страничная  организация памяти

       В процессорах начиная с 80386 появилось  мощное MMU, позволяющее организовать отображение страниц памяти что было еще одним поводом перехода на плоскую модель с приходом 32-разрядных вычислений. Используя трансляцию страниц операционная система может создать собственное линейное адресное пространство для каждого процесса; также каждая страница имеет атрибуты прав доступа. Только в отличие от сегментов, таких уровней существует только 2: пользователь и супервизор. Но для большинства современных операционных систем этого вполне достаточно. Следует отметить, что страничное MMU доступно только в защищенном режиме. 
 
 
 
 
 
 
 
 
 
 
 
 

       
    1.  Историческое развитие линейки процессоров х86
 
 

       Эволюция  микропроцессоров исторически подразумевала  увеличение разрядности целочисленных  регистров процессора, т.е. максимального  числа бит, образующих числа, над  которыми можно было выполнять элементарные арифметические действия путём исполнения соответствующих команд. Также от этого параметра зависит объём  линейно (без всяческих ухищрений, замедляющих работу) адресуемой оперативной  памяти, к которой может обращаться процессор.

       Самый первый микропроцессор Intel 4004 был 4-битным, а основатель семейства x86, т.е. первый процессор, использующий наиболее популярный до сих пор базовый набор команд, Intel 8086 был 16-битным. Эпоха 32-битных микропроцессоров началась с 1985 года с процессором Intel 386, с тех пор вплоть до Intel Pentium4 и AMD AthlonXP включительно система команд процессоров только дополнялась (MMX, SSE/SSE2/SSE3, 3Dnow!), но, несмотря на увеличение разрядности внешних шин и шин кэшей вплоть до 256-бит в некоторых случаях, число разрядов целочисленных регистров общего назначения оставалось равным 32.

       Тем временем, практически все высокопроизводительные процессоры более поздних, нежели x86, архитектур (преимущественно - варианты RISC) уже давно были 64-битными. (Первый такой процессор, MIPS R3000, появился в 1994 году и был известен в основном по рабочим станциям и серверам SGi). Более того, Intel продвигала уже второе поколение собственных изначально 64-битных процессоров с архитектурой IA64(базирующейся на технологии VLIW) с коммерческим названием Itanium, не обладавших программной x86-совместимостью. 
Однако в 2002 году компания AMD представила развитие архитектуры x86 под названием AMD64, представляющее собой очередное расширение набора команд x86, но рассчитанное на работу с 64-битными целочисленными регистрами общего назначения. В "железе" этот набор команд впервые был реализован на процессорах семейства AMD K8: Opteron/Athlon64, полностью программно совместимых и с обычными x86 процессорами.

       В течении последующих двух лет стало ясно, что полная реализация потенциала этих процессоров возможна только при работе в операционной системе, использующей соответствующий набор команд и 64-битную адресацию памяти, что, в первую очередь, позволяло без всяких ограничений работать с линейными массивами данных объемом более 4Гб.

       В первую очередь на новые процессоры были портированы ОС семейства Linux вместе с достаточно представительным набором критичных к скорости процессора и требующих больших объёмов памяти приложений. Скорость и стабильность работы новых процессоров, а также принципиальные трудности с созданием настольного процессора с архитектурой Intel IA64 сподвигли компанию Microsoft заняться портированием своих ОС на эту платформу.

       С этого момента стало ясно, что  набор команд AMD64 станет новым индустриальным стандартом, и Intel не осталось ничего другого, как добавить в свои процессоры полный аналог набора команд AMD64, в реализации Intel названный EM64T (Extended Memory 64-bit Technology)

       Чем принципиально 64-битные x86 процессоры отличаются от 32-битных?

       Помимо  возможности быстрой работы с  целыми 64-битными числами и прямой адресации несравнимо больших объёмов  как виртуальной, так и физической памяти, новый индустриальный стандарт для x86 процессоров ликвидировал три  принципиальных недостатка этой архитектуры:

  1. Удвоение числа целочисленных регистров общего назначения - по этому параметру все потомки Intel 386 очень сильно отставали от современных RISC и VLIW процессоров. Использование компилятором этих регистров позволяет заметно улучшить эффективность реализации многих алгоритмов.
  2. Использование для операций с плавающей точкой не стека, а регистров, используемых в наборе команд SSE2. Очень заметно отражается на производительности, но также требует перекомпиляции программного обеспечения.
  3. DEP - Data Execution Protection (защита от передачи на выполнение содержимого сегмента данных при возникновении ошибки переполнения), также называется EVP (Enhanced Virus Protection), сильно затрудняет работу определённых классов вредоносных программ, в первую очередь - червей и троянцев. Не требует перекомпиляции ПО, поддерживается и 32-битными ОС Microsoft, начиная с WindowsXP SP2 и Wndows 2003 Server SP1

       Что нужно для работы 64-битных x86 приложений на моём ПК?

       1)64-битный x86 процессор. На момент написания  FAQ это были процессоры AMD с поддержкой  технологии AMD64 и Intel c EM64T, соответственно. Конкретно речь идёт о AMD Opteron/Athlon64/Turion 64(мобильный аналог Athlon64)/Sempron 64/Phenom64. У Intel поддержка EM64T присутствует у процессоров Celeron D 3X1/3X6, Pentium4 5X1/5X6/6XX, Pentium D, Pentium XE (не Pentium4 XE!), всех Xeon DP с 800МГц с шиной и XeonMP c 667МГц шиной, а также у большинства будущих процессоров Intel за исключением Pentium M и Сeleron M. 
 

       Дополнение  от января 2008 года - на данный момент набор  команд AMD64/EM64T окончательно стал стандартом для  всех производимых мобильных, настольных и серверных x86 процессоров Intel и AMD

       Также надо убедиться, что процессор корректно  опознаётся BIOS'ом материнской платы (это означает, что в него загружен необходимый микрокод, несоблюдение этого условия может привести к серьёзным проблемам в работе компьютера). В некоторых ситуациях может потребоваться обновление BIOS материнской платы. В первую очередь это касается процессоров Intel, поскольку не все LGA775-материнские платы изначально поддерживали такие процессоры.

       2)Операционная  система

       На  момент написания FAQ доступны следующие  ОС:

       Microsoft Windows XP Professional x64 Edition, Microsoft Windows 2003 Server x64 Editions (Standart/Enterprise/Datacenter), Windows Server 2008, также на платформу AMD64 перенесены Sun Solaris и различные варианты Linux и FreeBSD,(детальное рассмотрение особенностей unix-подобных ОС выходит за рамки данного FAQ), Windows Vista также имеет x64 версии всех редакций кроме начальных.

       3)Драйверы. Все драйверы, работающие в ядре  системы должны быть 64-битными,  обратной совместимости не предусмотрено.  Для наиболее распространённых комплектующих (видеокарты nVidia GeForce и ATi Radeon, чипсеты и дисковые контроллеры Intel, VIA, nVidia) такие драйверы уже написаны.

       Будут ли работать обычные  приложения на 64-битной ОС Windows?

       1)32-битные  приложения для Microsoft Windows - да, будут, при этом в некоторых ситуациях возможен прирост производительности по сравнению с выполнением на том же компьютере, но под 32-битной ОC(особенно если приложение использует очень большие объёмы оперативной памяти), но при этом 32-битные приложения не могут обращаться к 64-битным DLL и элементам Active Controls и наоборот. (На практике это выразилось в том, что в составе 64-х битных Windows Internet Explorer оставлен 32-битным для корректной работы со страницами, содержащими ActiveX элементы.)

       2) 16-битные приложения для Microsoft Windows - нет, за исключением нескольких программ-инсталляторов. 
3) DOS-приложения - нет. (На момент написания FAQ стало известно о портировании на 64-битные версии Windows прекрасно зарекомендовавшего себя OpenSource эмулятора DosBox, что почти полностью снимает возможные проблемы)

       4)Приложения  Windows для IA64(Itanium) - нет

       Что всё это даст мне  в данный момент и  что это может  дать в будущем?

       Для обычных пользовательских повседневных программ перенос их в данный момент на 64-битную платформу не даёт какого-либо качественно скачка в производительности. Исключением, (да и то относительным) являются только некоторые новейшие высокотехнологичные игры.

       Наибольшую  пользу от перехода на 64-бита получают программы для работы с базами данных, причём чем больше объём используемых данных, тем более заметен выигрыш, программы для CAD/CAE (автоматизированное проектирование, моделирование и т.п.), а также программы для создания цифрового контента (обработка изображений, звука, видео), более подробную информацию уже, как правило, можно узнать на сайте фирмы-разработчика используемого вами ПО - как правило, из сроков готовности 64-битных версий секретов никто не делает.

       Из  программ, портирование которых на 64-бит Windows завершено или близится к завершению стоит упомянуть Microsoft SQL Server 2000 и 2005, Cakewalk Sonar 4.0, CryTek FarCry, Epic Unreal Tournament 2004, SiSoft Sandra 2005

       Сравнительная таблица ограничений по максимальному  объёму используемой оперативной памяти и числу процессоров для 32 и 64-битных версий операционных систем от Microsoft:

       Таблица 1.- Ограничения по максимальному  объему используемой ОП

Общие ограничения по объёму используемой памяти 32-Bit 64-Bit
Полное  виртуальное адресное пространство 4 ГБ 16 TБ
Виртуальное адресное пространство для 32-битного  процесса 2 ГБ (3 ГБ c ключом загрузки /3ГБ ) 4 ГБ если  программа откомпилирована с  ключом /LARGEADDRESSAWARE (2 ГБ без этого)
Виртуальное адресное пространство для 64-битного  процесса Не применимо 8 TБ
Paged pool(Выгружаемый стек) 470 МБ 128 ГБ
Non-paged pool(Невыгружаемый стек) 256 МБ 128 ГБ
System Page Table Entry(PTE) 660 МБ to 900 МБ 128 ГБ
Ограничения по физическому объёму памяти и количеству процессоров 32-Bit 64-Bit
Windows XP Professional 4 ГБ / до 2 CPU 128 ГБ / до 2 CPU

       Продолжение таблицы 1

Windows Server 2003, Standard Edition 4 ГБ / до 4 CPU 32 ГБ / до 4 CPU
Windows Server 2003, Enterprise Edition 64 ГБ / до 8 CPU 1 TБ / до 8 CPU
Windows Server 2003, Datacenter Edition 64 ГБ / 8 - 32 CPU TБ / 8 - 64 CPU
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Заключение 
 

       В заключение стоит отметить, что программная  модель x86 является сыграла немалую роль в развитии информационных технологий. По прошествии всех изменений, происходящий с данной моделью на протяжении всех лет ее исторического развития, архитектура предстает на новом качественном уровне, предлагаю набор различных расширенных возможностей. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

       Список  используемых источников 
 

       
    1. www.wikipedia.org . – Википедия – свободная энциклопедия;
    2. www.theory-a.ru;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение А

Словарь терминов 

       1.Программная модель процессора – это базовая совокупность систем и характеристик процессора "видимая" программистам, работающим на нижних, "машинных" уровнях программирования, например, на языке ассемблере.

       2. x86 (англ.Intel 80x86)—архитектура процессора c одноименным набором команд, впервые реализованная в процессорах компании Intell

       3. CISC (англ сomplex instruction set computing, или англ.complex instruction set computer — компьютер с полным набором команд) — концепция проектирования процессоров, которая характеризуется следующим набором свойств:

Информация о работе Понятие программной модели x86