Смекни!
smekni.com

«подклеиванию» (стр. 1 из 7)

Министерство науки и образования Украины

ЗНТУ

Реферат

Архитектура процессоров семейства
Athlon-64

Выполнила: ст. гр. ИВТ-523

Лукашевич А. С.

Принял: Рыбин В. О.

г. Запорожье

2005 год

Впервые со времен i386 архитектура х86 подвергается расширению — подчеркиваем, не «подклеиванию» новых наборов команд, а полноценному расширению. Дело здесь даже не в том, что теперь на каждом рабочем столе может стоять 64-битный компьютер — само по себе это не прибавляет производительности. Да и не так уж много у обычного потребителя задач, в которых это важно (разве что криптография, поскольку при переходе на 64 битовые вычисления она выигрывает едва ли не больше всех). Дело в том, что теперь архитектуре х86 (обновленной) вновь есть, куда расти. Кроме того, данная архитектура исправляет некоторые огрехи, присущие х86 от рождения — например, в 64 битном режиме применяется «плоская» модель памяти, количество регистров общего назначения расширено до 16 (чуть дальше автор покажет, какие дивиденды это приносит). Так что самое время задаться вопросом — а кто же выиграет от подобного расширения архитектуры? Для начала перечислим группы пользователей, которым 64 адресация и 64 битовые вычисления нужны уже сейчас:

  • пользователи CAD, систем проектирования, симуляторов уже давно нуждаются в объеме оперативной памяти больше 4 гигабайт. Хотя способы обходить это ограничение известны (к примеру, Intel PAE), за эти способы приходится расплачиваться производительностью. Действительно, процессоры Xeon поддерживают режим 36 битной адресации, в которой могут адресовать до 64GB оперативной памяти. Суть этой поддержки вкратце состоит в том, что оперативная память разбита на сегменты — и адрес состоит из номера сегмента и адреса ячейки внутри сегмента. Этот способ приводит к потере минимум 30% производительности при операциях с памятью. Да и программирование для «плоской» модели памяти в 64 разрядном адресном пространстве значительно проще и удобнее — благодаря большому адресному пространству ячейка имеет простой адрес, обрабатываемый за один раз. Не зря многие конструкторские бюро используют достаточно дорогие рабочие станции на RISC процессорах — там поддержка 64 битной адресации и большого объема памяти реализована давно.
  • в подобной же ситуации находятся пользователи баз данных. Любое крупное предприятие имеет немаленькую базу данных, и расширение максимального объема памяти плюс возможность адресовать данные в базе данных напрямую для них дорогого стоят. Как уже говорилось выше, хотя в специальных режимах 32 битная архитектура IA32 и может адресовать до 64GB памяти — но переход на «плоскую» модель памяти в 64 битном пространстве гораздо выгоднее. Переход на 64 битовую адресацию выгоден и с точки зрения скорости, и с точки зрения удобства программирования.
  • научные вычисления. Здесь ценен объем памяти, «плоская» модель памяти, и отсутствие ограничений на размер обрабатываемых данных. Кроме того, некоторые алгоритмы в 64 битном представлении имеют значительно более простой вид.
  • есть область, которая очень выигрывает от 64 битных целочисленных вычислений. Это криптография и приложения, созданные для обеспечения безопасности. В этой области применение х86-64 способно привести если не к революции, то к огромному рывку вперед.

Таким образом, некоторый круг потенциальных потребителей новой архитектуры сложился уже сейчас. Тем же из покупателей, которым эти возможности не нужны, нет нужды использовать их в данный момент — для 32 битовых приложений ничего не меняется. Вообще ничего. Кроме того, вполне можно пользоваться 32 битными приложениями в 64 битной операционной системе — эдакие 64 бита «в рассрочку». Похоже, добавление этой технологии не так дорого — по заверениям AMD, данная технология увеличивает количество транзисторов на 2%-3%. Это связано в основном с расширением TLB (сокращение от Translation Lookaside Buffer — буфер быстрого преобразования адреса, представляющий собой специальную кэш-память; используется для ускорения страничного преобразования), а также всевозможных буферов всех видов и сортов, да расширение всех конвейеров и путей данных до 64 бит. Кстати, AMD слегка «хитрит» в этой оценке — по количеству транзисторов они, возможно, и правы (тем более что есть кэш, в котором транзисторов немало), но вот прирост площади кристалла будет явно больше.

Не будем таить греха — хороша х86, или нет, но именно эта архитектура является доминирующей по числу и инсталлированных систем, и существующего программного обеспечения. До сих пор, во многом с подачи Intel, бытовала точка зрения, что, дескать, х86 доживает последние дни (забавно, но такой точке зрения уже больше десяти лет — хоронили х86, хоронили, а она многие RISC процессоры пережила) — в дальнейшем все будем постепенно переезжать на новую архитектуру. В роли таковой, вполне естественно, прочили IA64. Однако AMD продемонстрировала, что архитектуре х86 еще есть куда расти и развиваться, при этом сохраняя свое самое важное преимущество - инсталлированную базу программного обеспечения. Что ж, это хорошие новости — сомневаемся, чтобы даже наиболее оптимистично настроенные пользователи пришли в восторг, узнав, что для перехода на новую, совершенно замечательную и прогрессивную архитектуру IA64 ему нужно выложить немаленькую сумму за оборудование и намного большую сумму за программное обеспечение. Так что эволюционный подход надо признать правильным и щадящим для пользователя. Не говоря уже о том, что такой подход дает возможность нацелить продукт сразу на несколько сегментов рынка, что явно выгоднее с финансовой точки зрения….

Режимы работы процессора – что изменилось?

Фактически, кроме стандартных и известных со времен i386 режимов, введен особый режим — Long mode. Когда он включен (бит LME выставлен в единицу), есть два «частных» режима работы процессора. В одном из них процессор находится в режиме совместимости, во втором — в «честном» 64 битном режиме. Для чего понадобилось делать 2 «частных» режима для 64 битного режима? Все очень просто — когда Вы используете 32 битную операционную систему, тогда пользоваться 64 битовым режимом нет никакого смысла. Но как только вы стали работать на 64 битной ОС, далее у вас два варианта — вы можете использовать старое, 32 битное программное обеспечение (и тогда и нужен режим совместимости), а можете использовать новое, 64 битное. Кроме того, переключения «частных» режимов Long mode происходят весьма быстро, в отличие от переключения режимов работы процессора. Таким образом, введение таких режимов становится целесообразным. По-видимому, есть смысл привести таблицу, поясняющую доступные программисту режимы процессора, и режим работы в них:

LME

Атрибут сегмента кода

Режим

бит L

бит D

0

х

0

Обычный 16-битный

0

х

1

Обычный 32-битный

1

0

0

Совместимый 16-битный

1

0

1

Совместимый 32-битный

1

1

0

«Честный» 64-битный

1

1

1

Зарезервировано

Символ «х» обозначает, что при выставленном бите LME в значение «0» значение бита L игнорируется.

Как видно, у процессора есть и 64 битный режимы работы, и 32 битный, и 16 битный — собственно, поддерживаются все предыдущие режимы. Это и есть условие совместимости, не так ли?

Нельзя не отметить, что для того, чтобы пользователи смогли воспользоваться преимуществами х86-64, 8-ми дополнительными регистрами общего назначения, 8-ми дополнительными регистрами SSE2, и прочими программными «вкусностями» этих процессоров, необходим компилятор. И он — достаточно важная часть программы по продвижению этого процессора, и даже более важная для архитектуры х86-64! Ибо, если компилятора не будет, то мало кто начнет программировать под этот процессор вручную…. Если он будет, но будет неудобным — опять же, это скажется на количестве программистов, и, как следствие, на количестве пользователей (и финансовых показателях компании AMD). Таким образом, требования к компилятору достаточно высоки.

Надо отметить, что AMD хорошо это понимает — и работы над несколькими независимыми версиями компиляторов ведутся, вместе со всемирно известными компаниями-разработчиками программного обеспечения.

Чтобы продемонстрировать полную совместимость своего детища, AMD проверила системы на новом процессоре в более чем 50 (!) операционных системах. Вот некоторые примеры систем, совместимость с которыми проверена:

Windows (3.1, 9x, Me, 2000 Pro, 2000 Server, 2000 Advanced Server, WfW, XP)

Windows NT (3.51 WS, server, 4.0 w/SP6, NT 4 Workstations)

DOS (MSDOS 6.21, Novell DOS 7.0, PC DOS 6.1, 6.3, 7.0

Linux (Mandrake 7.0, 7.1, Redhat 6.0, 6.1, 6.20, 7.0, Slackware 1.2, 2.0, SuSE 7.0)

Unix (SCO, FreeBSD 3.0, Solaris 2.5, 2.6, 7, 8)

Misc (OS/2 Warp3.0, 4.0, BeOS 4.5, 5.0, Netware 4.11, 4.2, 5.0, 5.1)

Тем временем перейдем непосредственно к процессору, к его ядру.

Для начала дадим общую схему ядра, и затем пройдемся по некоторым блокам. Наибольший интерес представляют кэш и конвейеры декодирования.

Общая схема ядра

Сразу отметим несколько особенностей:

  • Контроллер памяти интегрирован в процессор.
  • Кэш первого уровня разбит на 2 части - кэш команд и кэш данных (впрочем, так было и в поколении K7 (Athlon/Athlon XP).
  • Главный конвейер содержит 3 канала декодирования. Как это используется мы рассмотрим ниже.
  • На каждый канал конвейера приходится по своему ALU ( Arithmetical & Logical Unit, арифметико-логическому устройству) и AGU (Address Generation Unit, устройство вычисления адреса).

Здесь необходимо сделать очень важный комментарий. Дело в том, что достоверно изветсно, что процессор имеет 3 FPU (опять же, по одному на канал), и отдельный (!) блок умножения. Если внимательно проследить по схеме, то так и есть (заметьте три стрелки, входящие в 36-entry Sceduler).