Микропроцессорная архитектура intel 64 bit реферат

Обновлено: 04.07.2024

Используемая вами версия браузера не рекомендована для просмотра этого сайта.
Установите последнюю версию браузера, перейдя по одной из следующих ссылок.

Архитектура Intel® 64 в сочетании с соответствующим программным обеспечением поддерживает 64-разрядные вычисления во встраиваемых устройствах 1 . Архитектура Intel® 64 повышает производительность, позволяя системам использовать более 4 ГБ виртуальной и физической памяти.

Архитектура Intel® 64 поддерживает следующие возможности:

  • 64-разрядное сплошное пространство виртуальных адресов
  • 64-разрядные указатели
  • 64-разрядные регистры общего назначения
  • 64-разрядная поддержка вычислений с целыми числами
  • До 1 ТБ адресного пространства платформы

Продукция, разработанная на основе архитектуры Intel® 64 2

Семейство процессоров Intel® Core™ vPro™ обеспечивает аппаратные функции безопасности, возможности управления и улучшенную производительность для корпоративных ПК.

Для настольных ПК семейство процессоров Intel® Core™ предлагает самые быстрые и интеллектуальные процессоры корпорации Intel. Подстраиваясь под потребности пользователей, технологии внутри новейшего семейства процессоров Intel® Core™ разработаны для того, чтобы автоматически изменять производительность и снижать энергопотребление.

Ноутбуки, оснащенные семейством процессоров Intel® Core™, предоставляют беспрецедентные мобильные технологии для интеллектуального обеспечения производительности в различных приложениях, от цифрового видео до ресурсоемких игр и бизнес-задач.

Процессоры Intel® Xeon® обеспечивают производительность разнообразных многоядерных 64-разрядных серверов и рабочих станций. Семейство процессоров Intel® Xeon® серии E5 предлагает универсальные односторонние и двухсторонние 64-разрядные многоядерные серверы и рабочие станции для широкого спектра инфраструктур, а также приложений для облачных сред и вычислений с высокой плотностью и производительностью. Семейство процессоров Intel® Xeon® серии E7 обеспечивает исключительную масштабируемую производительность и высокую надежность, которая очень важна для самых ресурсоемких приложений и проектов виртуализации.

Что нового

Узнайте о преимуществах новой микроархитектуры Intel®, которая поддерживает более быстрые и компактные платформы и улучшенную HD-графику, а также обеспечивает более высокий уровень безопасности, быстродействия и превосходную мобильность благодаря автоматическому беспроводному подключению.

Ресурсы для разработчиков

Узнайте больше о 22-нанометровой технологии Intel® — первой в мире технологии для массового трехмерного производства транзисторов.

Другие видеоролики

Информация о продукте и производительности

Для реализации 64-разрядных вычислений на основе архитектуры Intel® необходима вычислительная система на базе процессора, набора микросхем, BIOS, ОС, драйверов и приложений, поддерживающих технологию Intel® 64. При отсутствии поддержки архитектуры Intel® 64 в BIOS процессор работать не будет (в том числе и в 32-разрядном режиме). Реальные значения производительности могут изменяться в зависимости от конфигурации и настроек аппаратных средств и программного обеспечения. Для получения дополнительной информации свяжитесь с производителем системы.

Данные сторонних компаний. Веб-сайты и материалы могут содержать данные, предоставленные пользователями или сторонними компаниями. Такие данные, включающие профиль компании и историю бизнеса, могут быть не проверены, не утверждены или не рекомендованы Intel, и предоставляются исключительно для удобства наших клиентов и пользователей. Приведенное описание системы не должно толковаться как рекомендованное Intel. В частности, хотя корпорация Intel и предоставляет информацию о продукции, продаваемой третьими сторонами, она не делает предложение о продаже такой продукции. На изображениях настольных ПК, рабочих станций и серверов может присутствовать монитор, который может входить или не входить в стоимость системы. Корпорация Intel ни при каких обстоятельствах не может нести ответственность за материалы, предоставленные или размещенные третьими сторонами, в том числе за ошибки, упущения или ущерб любого рода. Загружая или другим образом получая материалы, вы принимаете на себя ответственность и возможные риски, связанные с этими материалами, а также признаете, что только вы несете ответсвенность за любой ущерб компьютеру или другим устройствам, или потрею данных, которые может повлечь загрузка любых таких материалов. Используя их, Вы соглашаетесь, что должны самостоятельно оценивать и принимать на себя все риски, связанные с открытием любых представленных третьими сторонами данных, включая их корректность, полноту или полезность. Все содержимое и использование веб-сайтов или Материалов является предметом исполнения данных Условий и любых других программ и положений, относящихся к конкретным сайтам.

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Содержание

Вступление
Два кристалла в одном корпусе
Pentium как точка отсчета
Основная проблема на пути повышения производительности
Решение принятое в P6
Архитектура P6
1. Устройство выборки/декодирования
2. Устройство диспетчирования/выполнения
3. Устройство отката
4. Интерфейс шины
5. Вывод
P6 как платформа для построения мощных серверов
Системы на основе P6
Следующее поколение процессоров
Заключение
Приложения
Литература

Вложенные файлы: 1 файл

Архитектура микропроцессоров семейства Intel.docx

Два кристалла в одном корпусе

Pentium как точка отсчета

Основная проблема на пути повышения производительности

Решение принятое в P6

1. Устройство выборки/ декодирования

2. Устройство диспетчирования/ выполнения

3. Устройство отката

4. Интерфейс шины

P6 как платформа для построения мощных серверов

Системы на основе P6

Следующее поколение процессоров

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Через три года фирма Intel выпустила процессор 8080, который мог выполнять уже 16-битные арифметические операции, имел 1б-разрядную адресную шину и, следовательно, мог адресовать до 64 Кбайт памяти (2 516 0=65536) . 1978 год ознаменовался выпуском процессора 8086 с размером слова в 16 бит (два байта) , 20-разрядной шиной и мог оперировать уже с 1 Мбайт памяти (2 520 0=1048576, или 1024 Кбайт) , разделенной на блоки (сегменты) по 64 Кбайт каждый. Процессором 8086 комплектовались компьютеры, совместимые с IBM PC и IBM PC/XT. Следующим крупным шагом в разработке новых микропроцессоров стал появившийся в 1982 году процессор 8028б. Он обладал 24-разрядной адресной шиной, мог распоряжаться 16 мегабайтами адресного пространства и ставился на компьютеры, совместимые с IBM PC/AT. В октябре 1985 года был выпущен 80386DX с 32- разрядной шиной адреса (максимальное адресное пространство - 4 Гбайт) , а в июне 1988 года - 80386SX, более дешевый по сравнению с 80386DX и обладавший 24-разрядной адресной шиной. Затем в апреле 1989 года появляется микропроцессор 80486DX, а в мае 1993 - первый вариант процессора Pentium (оба с 32-разрядной шиной адреса) .

В мае 1995 года в Москве на международной выставке Комтек-95 фирма Intel представила новый процессор - P6.

Одной из важнейших целей, поставленных при разработке P6, было удвоение производительности по сравнению с процессором Pentium. При этом производство первых версий P6 будет осуществляться по уже отлаженной "Intel" и используемой при производстве последних версий Pentium полупроводниковой технологии (О, 6 мкм, З, З В) .

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

При сравнении с альтернативными "Intel" процессорами семейства х86 выясняется, что микроархитектура Р6 имеет много общего с микроархитектурой процессоров Nx586 фирмы NexGen и K5 фирмы AMD, и, хотя и в меньшей степени, с M1 фирмы "Cyrix". Эта общность объясняется тем, что инженеры четырех компаний решали одну и ту же задачу: внедрение элементов RISC-технологии при сохранении совместимости с CISC-архитектурой Intel х86.

Два кристалла в одном корпусе

Главное преимущество и уникальная особенность Р6 - размещенная в одном корпусе с процессором вторичная статическая кэш-память размером 256 кб, соединенная с процессором специально выделенной шиной. Такая конструкция должна существенно упростить проектирование систем на базе Р6. Р6 - первый предназначенный для массового производства микропроцессор, содержащий два чипа в одном корпусе.

Кристалл ЦПУ в Р6 содержит 5,5 миллионов транзисторов; кристалл кэш-памяти второго уровня - 15,5 миллионов. Для сравнения, последняя модель Pentium включала около 3,3 миллиона транзисторов, а кэш-память второго уровня реализовывалась с помощью внешнего набора кристаллов памяти.

Столь большое число транзисторов в кэше объясняется его статической природой. Статическая память в P6 использует шесть транзисторов для запоминания одного бита, в то время как динамической памяти было бы достаточно одного транзистора на бит. Статическая память быстрее, но дороже.

Хотя число транзисторов на кристалле с вторичным кэшем втрое больше, чем на кристалле процессора, физические размеры кэша меньше: 202 квадратных миллиметра против 306 у процессора. Оба кристалла вместе заключены в керамический корпус с 387 контактами ("dual cavity pin-drid array") . Оба кристалла производятся с применением одной и той же технологии (0,6 мкм, 4-слойная металл - БиКМОП, 2,9 В) . Предполагаемое максимальное потребление энергии: 20 Вт при частоте 133 МГц.

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

Вторая причина объединения - повышение производительности.

Кзш второго уровня связан с процессором специально выделенной шиной шириной 64 бита и работает на той же тактовой частоте, что и процессор.

Первые процессоры Рentium с тактовой частотой 60 и 66 МГц обращались к вторичному кэшу по 64-разрядной шине с той же тактовой частотой. Однако с ростом тактовой частоты Pentium для проектировщиков стало слишком сложно и дорого поддерживать такую частоту на материнской плате. Поэтому стали применяться делители частоты. Например, у 100 МГц Pentium внешняя шина работает на частоте 66 МГц (у 90 МГц Pentium - соответственно 60 МГц) . Pentium использует эту шину как для обращений к вторичному кэшу, так и для обращения к основной памяти и другим устройствам, например к набору чипов PCI.

Использование специально выделенной шины для доступа к вторичному кэшу улучшает производительность вычислительной системы.

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

Объединение процессора и вторичного кэша в одном корпусе и их связь через выделенную шину является шагом по направлению к методам повышения производительности, используемым в наиболее мощных RISC-процессорах. Так, в процессоре Alpha 21164 фирмы "Digital" кэш второго уровня размером 96 кб размещен в ядре процессора, как и первичный кэш. Это обеспечивает очень высокую производительность кэша за счет увеличения числа транзисторов на кристалле до 9,3 миллиона. Производительность Alpha 21164 составляет 330 SPECint92 при тактовой частоте 300 МГц. Производительность Р6 ниже (по оценкам "Intel" - 200 SPECint92 при тактовой частоте 133 МГц) , однако Р6 обеспечивает лучшее соотношение стоимость/производительность для своего потенциального рынка.

При оценке соотношения стоимость/производительность следует учитывать, что, хотя Р6 может оказаться дороже своих конкурентов, большая часть других процессоров должна быть окружена дополнительным набором чипов памяти и контроллером кэша. Кроме того, для достижения сравнимой производительности работы с кэшом, другие процессоры должны будут использовать кэш большего, чем 256 кб размера.

"Intel", как правило, предлагает многочисленные вариации своих процессоров. Это делается с целью удовлетворить разнообразным требованиям проектировщиков систем и оставить меньше пространства для моделей конкурентов. Поэтому можно предположить, что вскоре после начала выпуска Р6 появятся как модификации с увеличенным объемом вторичной кэш-памяти, так и более дешевые модификации с внешним расположением вторичного кэша, но при сохраненной выделенной шине между вторичным кэшом и процессором.

Pentium как точка отсчетаПроцессор Pentium со своей конвейерной и суперскалярной архитектурой достиг впечатляющего уровня производительности.

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

В P6 для увеличения пропускной способности осуществлен переход к одному 12-стадийному конвейеру. Увеличение числа стадий приводит к уменьшению выполняемой на каждой стадии работы и, как следствие, к уменьшению времени нахождения команды на каждой стадии на 33 процента по сравнению с Pentium. Это означает, что использование при производстве P6 той же технологии, что и при производстве 100 МГц Pentium, приведет к получению P6 с тактовой частотой 133 МГц.

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

Новый подход связан с использованием так называемого пула команд и с новыми эффективными методами предвидения будущего поведения программы. При этом традиционная фаза "выполнение" заменяется на две: "диспетчирование/выполнение" и "откат". В результате команды могут начинать выполняться в произвольном порядке, но завершают свое выполнение всегда в соответствии с их исходным порядком в программе. Ядро P6 реализовано как три независимых устройства, взаимодействующих через пул команд (рис. 1) .

Основная проблема на пути повышения производительностиРешение об организации P6 как трех независимых и взаимодействующих через пул команд устройств было принято после тщательного анализа факторов, ограничивающих производительность современных микропроцессоров. Фундаментальный факт, справедливый для Pentium и многих других процессоров, состоит в том, что при выполнении реальных программ мощность процессора не используется в полной мере. Рассмотрим в качестве примера следующий фрагмент программы, записанный на некотором условном языке: r1 фрагмента загрузки из памяти в регистр r1 - оказалось, что содержимое соответствующей ячейки памяти отсутствует в кэше. При традиционном подходе процессор перейдет к выполнению команды 2 только после того, как данные из ячейки mem[r0] основной памяти будут прочитаны через интерфейс шины. Все время ожидания процессор будет простаивать.

В то время как скорость процессоров за последние 10 лет выросла по меньшей мере в 10 раз, время доступа к основной памяти уменьшилось только на 60 процентов. Это увеличивающееся отставание скорости работы с памятью по отношению к скорости процессора и было той фундаментальной проблемой, которую пришлось решать при проектировании P6.

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

Можно было попытаться решить проблему с использованием грубой силы, а именно увеличить размер кэша второго уровня, чтобы уменьшить процент случаев отсутствия необходимых данных в кэше.

Это решение эффективное, но тоже чрезвычайно дорогостоящее, особенно учитывая сегодняшние скоростные требования к компонентам кэша второго уровня. P6 проектировался с точки зрения эффективной реализации целостной вычислительной системы, и требовалось, чтобы высокая производительность системы в целом достигалась с использованием дешевой подсистемы памяти.

Решение, принятое в P6Решение сформулированной в предыдущем разделе проблемы памяти, принятое в P6, заключается в обращении к пулу команд, извлечении из него команд, следующих за командой, требующей обращения к памяти, и выполнения до момента завершения команды-тормоза максимума полезной работы. В приведенном в предыдущем разделе примере процессор не может выполнить команду 2 до завершения команды 1, так как команда 2 зависит от результатов команды 1. В то же время процессор может выполнить команды 3 и 4, не зависящие от результата выполнения команды 1. Мы будем называть такое выполнение команд опережающим выполнением. Результаты опережающего выполнения команд 3 и 4 не могут быть сразу записаны в регистры, поскольку мы должны изменять состояние вычислительной системы только в соответствии с правильным порядком выполнения программы.

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

Введение

В данной статье будут рассмотрены различные моменты, связанные с 64-битными технологиями. Статья предназначена для программистов, желающих начать разрабатывать 64-битные программы, и ориентирована на Windows-разработчиков, поскольку для них вопрос знакомства с 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-битную реализацию операционной системы Unix.

1991: MIPS Technologies производит первый 64-битный процессор, R4000, в котором реализована третья модификация разработанной в их компании архитектуры MIPS. Этот процессор используется в графических рабочих станциях SGI начиная с модели IRIS Crimson. Kendall Square Research выпускает свой первый суперкомпьютер KSR1, построенный на основе их собственной запатентованной 64-битной архитектуры RISC под операционной системой OSF/1.

1992: Digital Equipment Corporation (DEC) представляет полностью 64-битную архитектуру Alpha — детище проекта PRISM.

1993: DEC выпускает 64-битную Unix-подобную операционную систему DEC OSF/1 AXP (позже переименованную в Tru64 UNIX) для своих систем, построенных на архитектуре Alpha.

1995: Sun запускает 64-битный процессор семейства SPARC UltraSPARC. HAL Computer Systems, подчиненная Fujitsu, запускает рабочие станции, созданные на основе 64-битного процессора SPARC64 первого поколения, независимо разработанного компанией HAL. IBM выпускает микропроцессоры A10 и A30, а также 64-битные процессоры PowerPC AS. IBM также выпускает 64-битное обновление для системы AS/400, способное преобразовывать операционную систему, базы данных и приложения.

1996: Nintendo представляет игровую консоль 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: Intel выпускает набор команд для архитектуры IA-64. AMD публично объявляет о своем наборе 64-битных расширений для IA-32, который был назван x86-64 (позже переименован в AMD64).

2000: IBM выпускает свой первый 64-битный мэйнфрейм zSeries z900, совместимый с ESA/390, а также новую операционную систему z/OS.

2001: Intel наконец запускает линейку 64-битных процессоров, которые теперь получают название Itanium и рассчитаны на высокопроизводительные серверы. Проект не соответствует ожиданиям из-за многочисленных задержек при выпуске IA-64 на рынок. NetBSD становится первой операционной системой, которая запускается на процессоре Intel Itanium после его выхода. Кроме того, Microsoft также выпускает Windows XP 64-Bit Edition для архитектуры IA-64 семейства Itanium, хотя в ней сохраняется возможность запускать 32-битные приложения при помощи прослойки WoW64.

2004: В ответ на коммерческий успех AMD, Intel признается, что они разрабатывали клон расширений AMD64, которому дали название IA-32e (позже переименован в EM64T, и затем еще раз в Intel 64). Intel также выпускает обновленные версии семейств процессоров Xeon и Pentium 4 с поддержкой новых команд.

2004: VIA Technologies представляет свой 64-битный процессор Isaiah.

2005: 31 января Sun выпускает Solaris 10 с поддержкой процессоров AMD64 / Intel 64. 30 апреля Microsoft выпускает Windows XP Professional x64 Edition для процессоров AMD64 / Intel 64.

2006: Sony, IBM и Toshiba начинают выпуск 64-битного процессора Cell для PlayStation 3, серверов, рабочих станций и других устройств. Microsoft выпускает Windows Vista с включенной 64-битной версией для процессоров AMD64 / Intel 64, которая поддерживает 32-битную совместимость. Все Windows-приложения и компоненты являются 64-битными, однако многие из них имеют 32-битные версии, включенные в систему в виде плагинов в целях совместимости.

Более подробно с историей развития 64-битных систем можно познакомиться в статье Джона Машей "Долгая дорога к 64 битам" [1] и в энциклопедической статье в Wikipedia "64-bit" [2].

Прикладное программирование и 64-битные системы

  1. IA-64 64-битная микропроцессорная архитектура, разработанная совместно компаниями Intel и Hewlett Packard. Реализована в микропроцессорах Itanium и Itanium 2. Для более подробного знакомства с архитектурой IA-64 можно обратиться к следующим статьям в Wikipedia: "IA-64", "Itanium", "Itanium 2". Архитектуру Itanium поддерживает большое количество производителей серверов: Bull, Fujitsu, Fujitsu Siemens Computers, Hitachi, HP, NEC, SGI и Unisys. Эти производители присоединились к Intel и множеству разработчиков ПО для создания Itanium Solutions Alliance, с целью продвижения архитектуры и ускорения темпов портирования ПО.
  2. Intel 64 (AMD64 / x86-64 / x64 / EM64T) — данная архитектура представляет собой расширение архитектуры x86 с полной обратной совместимостью. Существует множество вариантов названия данной архитектуры, что приводит к путанице, хотя, по сути, все эти названия обозначают одно и тоже: x86-64, AA-64, Hammer Architecture, AMD64, Yamhill Technology, EM64T, IA-32e, Intel 64, x64. Более подробно узнать о том, как появилось так много названий, можно в статье из Wikipedia: "X86-64". Процессоры с архитектурой Intel 64 нашли широкое распространение персональных компьютерах. И скорее всего ваш компьютер оснащен именно процессором с данной архитектурой.

Архитектура Intel 64 (AMD64)

Рассматриваемая архитектура Intel 64 простое, но в то же время мощное обратно совместимое расширение устаревшей промышленной архитектуры x86. Она добавляет 64-битное адресное пространство и расширяет регистровые ресурсы для поддержки большей производительности перекомпилированных 64-битных программ. Архитектура обеспечивает поддержку устаревшего 16-битного и 32-битного кода приложений и операционных систем без их модификации или перекомпиляции.

Необходимость 64-битной архитектуры определяется приложениями, которым необходимо большое адресное пространство. В первую очередь это высокопроизводительные серверы, системы управления базами данных, САПР и, конечно, игры. Такие приложения получат существенные преимущества от 64-битного адресного пространства и увеличения количества регистров. Малое количество регистров, доступное в устаревшей x86 архитектуре, ограничивает производительность в вычислительных задачах. Увеличенное количество регистров обеспечивает достаточную производительность для многих приложений.

  • 64-битное адресное пространство;
  • расширенный набор регистров;
  • привычный для разработчиков набор команд;
  • возможность запуска старых 32-битных приложений в 64-битной операционной системе;
  • возможность использования 32-битных операционных систем.

64-битные операционные системы

Практически все современные операционные системы сейчас имеют версии для архитектуры Intel 64. Например, Microsoft предоставляет Windows XP x64. Крупнейшие разработчики UNIX систем также поставляют 64-битные версии, как например Linux Debian 3.5 x86-64. Однако это не означает, что весь код такой системы является полностью 64-битным. Часть кода ОС и многие приложения вполне могут оставаться 32-битными, так как Intel 64 обеспечивает обратную совместимость с 32-битными приложениями. Например, 64-битная версия Windows использует специальный режим WoW64 (Windows-on-Windows 64), который транслирует вызовы 32-битных приложений к ресурсам 64-битной операционной системы.

Далее в статье мы будем рассматривать только 64-битные операционные системы семейства Windows.

WoW64

Windows-on-Windows 64-bit (WoW64) — подсистема операционной системы Windows, позволяющая запускать 32-битные приложения на всех 64-битных версиях Windows.

  • программы, скомпилированные для 16-разрядных операционных систем;
  • программы режима ядра, скомпилированные для 32-разрядных операционных систем.

WoW64 на архитектуре Intel 64 (AMD64 / x64) не требует эмуляции инструкций. Здесь подсистема WoW64 эмулирует только 32-битное окружение, за счет дополнительной прослойки между 32-битным приложением и 64-битным Windows API. Где-то эта прослойка тонкая, где-то не очень. Для средней программы потери в производительности из-за наличия такой прослойки составят около 2%. Для некоторых программ это значение может быть больше. Два процента это немного, но следует учитывать, что 32-битные приложения работают немного медленнее под управлением 64-битной операционной системы Windows, чем в 32-битной среде.

Компиляция 64-битного кода не только исключает необходимость в WoW64, но и дает дополнительный прирост производительности. Это связано с архитектурными изменениями в микропроцессоре, такими как увеличение количества регистров общего назначения. Для средней программы можно ожидать в пределах 5-15% прироста производительности от простой перекомпиляции.

Подсистема WoW64 изолирует 32-разрядные программы от 64-разрядных путем перенаправления обращений к файлам и реестру. Это предотвращает случайный доступ 32-битных программ к данным 64-битных приложений. Например, 32-битное приложение, которое запускает файл DLL из каталога %systemroot%\System32, может случайно обратиться к 64-разрядному файлу DLL, который несовместим с 32-битной программой. Во избежание этого подсистема WoW64 перенаправляет доступ из папки %systemroot%\System32 в папку %systemroot%\SysWOW64. Это перенаправление позволяет предотвратить ошибки совместимости, поскольку при этом требуется файл DLL, созданный специально для работы с 32-разрядными приложениями.

Подробнее с механизмами перенаправления файловой системы и реестра можно познакомиться в разделе MSDN "Running 32-bit Applications".

Программная модель Win64

Также как и в Win32 размер страниц в Win64 составляет 4Кб. Первые 64Кб адресного пространства никогда не отображаются, то есть наименьший правильный адрес это 0x10000. В отличие от Win32, системные DLL загружаются выше 4Гб.

  • RCX: первый аргумент
  • RDX: второй аргумент
  • R8: третий аргумент
  • R9: четвертый аргумент

Разница в соглашениях о вызове приводит к тому, что в одной программе нельзя использовать и 64-битный, и 32-битный код. Другими словами, если приложение скомпилировано для 64-битного режима, то все используемые библиотеки (DLL) также должны быть 64-битными.

Передача параметров через регистры является одним из новшеств, делающих 64-битные программы более производительными, чем 32-битные. Дополнительный выигрыш в производительности можно получить, используя 64-битные типы данных.

Адресное пространство

Хотя 64-битный процессор теоретически может адресовать 16 экзабайт памяти (2^64), Win64 в настоящий момент поддерживает 16 терабайт (2^44). Этому есть несколько причин. Текущие процессоры могут обеспечивать доступ лишь к 1 терабайту (2^40) физической памяти. Архитектура (но не аппаратная часть) может расширить это пространство до 4 петабайт (2^52). Однако в этом случае необходимо огромное количество памяти для страничных таблиц, отображающих память.

Помимо перечисленных ограничений, объем памяти, который доступен в той или иной версии 64-битной операционной системе Windows зависит также от коммерческих соображений компании Microsoft. Ниже приведена информация по объему памяти, поддерживаемой различными версиями 64-биными версиями Windows:

Windows XP Professional — 128 Gbyte;
Windows Server 2003, Standard — 32 Gbyte;
Windows Server 2003, Enterprise — 1 Tbyte;
Windows Server 2003, Datacenter — 1 Tbyte;
Windows Server 2008, Datacenter — 2 Tbyte;
Windows Server 2008, Enterprise — 2 Tbyte;
Windows Server 2008, Standard — 32 Gbyte;
Windows Server 2008, Web Server — 32 Gbyte;
Vista Home Basic — 8 Gbyte;
Vista Home Premium — 16 Gbyte;
Vista Business — 128 Gbyte;
Vista Enterprise — 128 Gbyte;
Vista Ultimate — 128 Gbyte;
Windows 7 Home Basic — 8 Gbyte;
Windows 7 Home Premium — 16 Gbyte;
Windows 7 Professional — 192 Gbyte;
Windows 7 Enterprise — 192 Gbyte;
Windows 7 Ultimate — 192 Gbyte;

Разработка 64-битных приложений

Наиболее полно вопросы разработки 64-битных приложений рассмотрены в курсе "Уроки разработки 64-битных приложений на языке Си/Си++". Содержание:

Также рекомендую раздел с обзорами статей по тематике связанной с 64-битнми технологиями.

Все IBM-совместимые персональные компьютеры укомплектованы Intel-совместимыми процессорами. История развития микропроцессоров семейства Intel вкратце такова. Первый универсальный микропроцессор фирмы Intel появился в 1970 г. Он назывался Intel 4004, был четырехразрядным и имел возможность ввода/вывода и обработки четырехбитных слов. Быстродействие его составляло 8000 операций в секунду. Микропроцессор Intel 4004 был рассчитан на применение в программируемых калькуляторах с памятью размером в 4 Кбайт.

Через три года фирма Intel выпустила процессор 8080, который мог выполнять уже 16-битные арифметические операции, имел 1б-разрядную адресную шину и, следовательно, мог адресовать до 64 Кбайт памяти (2 516 0=65536) . 1978 год ознаменовался выпуском процессора 8086 с размером слова в 16 бит (два байта) , 20-разрядной шиной и мог оперировать уже с 1 Мбайт памяти (2 520 0=1048576, или 1024 Кбайт) , разделенной на блоки (сегменты) по 64 Кбайт каждый. Процессором 8086 комплектовались компьютеры, совместимые с IBM PC и IBM PC/XT. Следующим крупным шагом в разработке новых микропроцессоров стал появившийся в 1982 году процессор 8028б. Он обладал 24-разрядной адресной шиной, мог распоряжаться 16 мегабайтами адресного пространства и ставился на компьютеры, совместимые с IBM PC/AT. В октябре 1985 года был выпущен 80386DX с 32- разрядной шиной адреса (максимальное адресное пространство - 4 Гбайт) , а в июне 1988 года - 80386SX, более дешевый по сравнению с 80386DX и обладавший 24-разрядной адресной шиной. Затем в апреле 1989 года появляется микропроцессор 80486DX, а в мае 1993 - первый вариант процессора Pentium (оба с 32-разрядной шиной адреса) .

В мае 1995 года в Москве на международной выставке Комтек-95 фирма Intel представила новый процессор - P6.

Одной из важнейших целей, поставленных при разработке P6, было удвоение производительности по сравнению с процессором Pentium. При этом производство первых версий P6 будет осуществляться по уже отлаженной "Intel" и используемой при производстве последних версий Pentium полупроводниковой технологии (О, 6 мкм, З, З В) .

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

При сравнении с альтернативными "Intel" процессорами семейства х86 выясняется, что микроархитектура Р6 имеет много общего с микроархитектурой процессоров Nx586 фирмы NexGen и K5 фирмы AMD, и, хотя и в меньшей степени, с M1 фирмы "Cyrix". Эта общность объясняется тем, что инженеры четырех компаний решали одну и ту же задачу: внедрение элементов RISC-технологии при сохранении совместимости с CISC-архитектурой Intel х86.

Два кристалла в одном корпусе

Главное преимущество и уникальная особенность Р6 - размещенная в одном корпусе с процессором вторичная статическая кэш-память размером 256 кб, соединенная с процессором специально выделенной шиной. Такая конструкция должна существенно упростить проектирование систем на базе Р6. Р6 - первый предназначенный для массового производства микропроцессор, содержащий два чипа в одном корпусе.

Кристалл ЦПУ в Р6 содержит 5,5 миллионов транзисторов; кристалл кэш-памяти второго уровня - 15,5 миллионов. Для сравнения, последняя модель Pentium включала около 3,3 миллиона транзисторов, а кэш-память второго уровня реализовывалась с помощью внешнего набора кристаллов памяти.

Столь большое число транзисторов в кэше объясняется его статической природой. Статическая память в P6 использует шесть транзисторов для запоминания одного бита, в то время как динамической памяти было бы достаточно одного транзистора на бит. Статическая память быстрее, но дороже.

Хотя число транзисторов на кристалле с вторичным кэшем втрое больше, чем на кристалле процессора, физические размеры кэша меньше: 202 квадратных миллиметра против 306 у процессора. Оба кристалла вместе заключены в керамический корпус с 387 контактами ("dual cavity pin-drid array") . Оба кристалла производятся с применением одной и той же технологии (0,6 мкм, 4-слойная металл - БиКМОП, 2,9 В) . Предполагаемое максимальное потребление энергии: 20 Вт при частоте 133 МГц.

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

Вторая причина объединения - повышение производительности.

Кзш второго уровня связан с процессором специально выделенной шиной шириной 64 бита и работает на той же тактовой частоте, что и процессор.

Первые процессоры Рentium с тактовой частотой 60 и 66 МГц обращались к вторичному кэшу по 64-разрядной шине с той же тактовой частотой. Однако с ростом тактовой частоты Pentium для проектировщиков стало слишком сложно и дорого поддерживать такую частоту на материнской плате. Поэтому стали применяться делители частоты. Например, у 100 МГц Pentium внешняя шина работает на частоте 66 МГц (у 90 МГц Pentium - соответственно 60 МГц) . Pentium использует эту шину как для обращений к вторичному кэшу, так и для обращения к основной памяти и другим устройствам, например к набору чипов PCI.

Использование специально выделенной шины для доступа к вторичному кэшу улучшает производительность вычислительной системы.

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

Объединение процессора и вторичного кэша в одном корпусе и их связь через выделенную шину является шагом по направлению к методам повышения производительности, используемым в наиболее мощных RISC-процессорах. Так, в процессоре Alpha 21164 фирмы "Digital" кэш второго уровня размером 96 кб размещен в ядре процессора, как и первичный кэш. Это обеспечивает очень высокую производительность кэша за счет увеличения числа транзисторов на кристалле до 9,3 миллиона. Производительность Alpha 21164 составляет 330 SPECint92 при тактовой частоте 300 МГц. Производительность Р6 ниже (по оценкам "Intel" - 200 SPECint92 при тактовой частоте 133 МГц) , однако Р6 обеспечивает лучшее соотношение стоимость/производительность для своего потенциального рынка.

При оценке соотношения стоимость/производительность следует учитывать, что, хотя Р6 может оказаться дороже своих конкурентов, большая часть других процессоров должна быть окружена дополнительным набором чипов памяти и контроллером кэша. Кроме того, для достижения сравнимой производительности работы с кэшом, другие процессоры должны будут использовать кэш большего, чем 256 кб размера.

"Intel", как правило, предлагает многочисленные вариации своих процессоров. Это делается с целью удовлетворить разнообразным требованиям проектировщиков систем и оставить меньше пространства для моделей конкурентов. Поэтому можно предположить, что вскоре после начала выпуска Р6 появятся как модификации с увеличенным объемом вторичной кэш-памяти, так и более дешевые модификации с внешним расположением вторичного кэша, но при сохраненной выделенной шине между вторичным кэшом и процессором.

Pentium как точка отсчетаПроцессор Pentium со своей конвейерной и суперскалярной архитектурой достиг впечатляющего уровня производительности.

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

В P6 для увеличения пропускной способности осуществлен переход к одному 12-стадийному конвейеру. Увеличение числа стадий приводит к уменьшению выполняемой на каждой стадии работы и, как следствие, к уменьшению времени нахождения команды на каждой стадии на 33 процента по сравнению с Pentium. Это означает, что использование при производстве P6 той же технологии, что и при производстве 100 МГц Pentium, приведет к получению P6 с тактовой частотой 133 МГц.

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

Новый подход связан с использованием так называемого пула команд и с новыми эффективными методами предвидения будущего поведения программы. При этом традиционная фаза "выполнение" заменяется на две: "диспетчирование/выполнение" и "откат". В результате команды могут начинать выполняться в произвольном порядке, но завершают свое выполнение всегда в соответствии с их исходным порядком в программе. Ядро P6 реализовано как три независимых устройства, взаимодействующих через пул команд (рис. 1) .

1. Сейчас эта цена уже реально меньше ($200-300) - 22

1. Монитор N 3 1995г. Д. Бройтман "Микроархитектура процессора P6" с. 6-11.

3. Hard "n" Soft N 10 1995г.

Ошибка в тексте? Выдели её мышкой и нажми

Остались рефераты, курсовые, презентации? Поделись с нами - загрузи их здесь!

Читайте также: