Процессоры изнутри. Процессоры изнутри Особенности архитектуры 64 разрядных процессоров

  • 31.10.2019

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

Целью данной статьи является изучение такого нетрадиционного вида банковских услуг как электронный банкинг.

Электронный банкинг – понятие, которое включает в себя интернет- и мобильный банкинг.

Интернет-банкинг – это услуги, предоставляемые банком, по мониторингу, управлению счетами и осуществлению банковских транзакций через интернет. Управление банковскими счетами через Интернет и Web-браузер в режиме онлайн, или по-другому интернет-банкинг, является наиболее динамичным и представительным направлением финансовых интернет-решений, в силу наиболее широкого спектра банковских услуг, представленных в системах интернет-банкинга. Более 1500 банков по всему миру предоставляют услуги интернет-банкинга, а 26 банков работают исключительно через интернет.

Классический вариант системы интернет-банкинга включает в себя полный набор банковских услуг, предоставляемых клиентам – физическим лицам в офисах банка, естественно, за исключением операций с наличными деньгами.

Сегодня c помощью систем интернет-банкинга, можно покупать и продавать безналичную валюту, оплачивать коммунальные услуги, доступ в Интернет, счета мобильной связи, проводить безналичные внутри- и межбанковские платежи, переводить средства по своим счетам, и, конечно, отслеживать все банковские операции по своим счетам за любой промежуток времени .

Преимуществами интренет-банкинга являются: 1) дистанционное управление счётом: интернет-банкинг позволяет осуществлять полномасштабное управление счётом с любого компьютера, подключённого к сети интернет. Таким образом, клиент не привязан ни к физическому местоположению банка, ни к компьютеру в своём офисе, как в случае с системой клиент-банк; 2) благодаря использованию клиентского программного обеспечения, интегрированного с веб-сайтом банка, которое не нуждается в установке на компьютере клиента, упрощается процедура установления доступа к своему счёту. Для этого клиенту необходимо только знать логин и пароль, выданный ему банком; 3) снижается нагрузка на банк по очному обслуживанию клиентов, так как большинство операций производятся автоматически, нет нужды в присутствии сотрудника банка при этих операциях. Таким образом сокращаются операционные расходы.

Но в то же время имеются и такие недостатки: 1) относительно более низкий уровень защиты по сравнению с системой «клиент-банк» или документарным оформлением транзакций. Хотя технология SSL и является стандартом интернет-безопасности, она в силу своей распространённости хорошо известна потенциальным взломщикам и не может гарантировать тот же уровень безопасности, что и система «клиент-банк», которая работает, как правило, в замкнутых интранет-сетях, не имеющих выхода в интернет; 2) высокие начальные капиталовложения. Для запуска одной системы интернет-банкинга требуется, как правило, от 1 до 5 миллионов долларов США .

Растущая популярность интернет-банкинга, не только на Западе, но и в Украине, лишний раз подтверждает, что на этот нетрадиционный вид банковских услуг появился устойчивый и платежеспособный спрос. Полный Интернет-банкинг на сегодняшний день в Украине своим клиентам предоставляют в основном крупные банки: «Аваль», «ВТБ», «ПриватБанк», «УкрСиббанк», «Укрэксимбанк», банк «Финансы и Кредит» и ряд других. В итоге, по данным опроса «Власть Денег» среди финансистов, доля денежных переводов в общем количестве операций online выросла с 50% в 2008-м до 60% летом 2009-го .

Мобильный (GSM) банкинг – предоставление оперативной информации об операциях по карточному счету на мобильный телефон. Услуга действительна для всех мобильных операторов стандарта GSM: МТС, KievStar, Beeline, Life и т. д.

Преимуществами мобильного банкинга является: 1) получение на телефон оперативных SMS-сообщений с информацией о суммах проведенных операций и балансе карточного счета; 2) получение на телефон SMS-сообщений с информацией о суммах зачислений на картсчет; 3) предоставление информации о состоянии карточного счета по запросу. Недостатком является не единоразовая оплата, как при интернет-банкинге, а ежемесячна абонентская плата.

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

Литература: Суденко А.А. Банки как субъекты электронной коммерции – http://www.mas- ters.donntu. edu.ua/2003/fvti/sudenko/library/art6.htm Украинский интернет-банкинг в период кризиса – http://bankomet.com.ua Макогон Ю.В. Христиановский В.В. Интернет-банкинг в Украине: современное состояние и перспективы развития – http://www.desa.donbass.com

Общая характеристика 64-разрядных процессоров

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

Расширенное 64-битное адресное пространство теоретически позволяет процессору работать с 16 экзабайт (2 64) физической памяти в рамках плоской модели организации. И хотя современные 64-разрядные процессоры на практике могут обеспечить доступ лишь к 1 терабайту (2 40) памяти, данный показатель всё равно уже значительно превосходит возможности 32-битной адресации. Увеличение объема доступной памяти в свою очередь, даёт возможность исключить или сильно сократить количество крайне медленных операций по подкачке данных с диска.

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

Стоит помнить, что для получения реального прироста производительности на 64-разрядном процессоре необходимо транспонировать программу с применением 64-битной версии компилятора, учитывая изменение модели данных (новые размерности типов). Запуск неадаптированного для 64-битной платформы приложения наоборот может, в зависимости от особенностей архитектуры используемого процессора, привести к существенным потерям в производительности.

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

64-битное расширение классической 32-битной архитектуры IA32 было предложено в 2002 году компанией AMD (первоначально называлось x86-64, сейчас - AMD64) в процессорах семейства К8. Спустя некоторое время компанией Intel было предложено собственное обозначение - EM64T (Extended Memory 64-bit Technology). Но, независимо от названия, суть новой архитектуры одна и та же: разрядность основных внутренних регистров 64-битных процессоров удвоилась (с 32 до 64 бит), а 32-битные команды x86-кода получили 64-битные аналоги. Кроме того, за счет расширения разрядности шины адресов объем адресуемой процессором памяти существенно увеличился.

Особенности построения и функционирования

Выпуск микропроцессорных комплектов больших интегральных схем (МПК БИС) с каждым годом неуклонно возрастает. Для удовлетворения запросов потребителей в настоящее время осуществляется производство микропроцессоров и периферийного оборудования, обеспечивающего их работу, разрядностью от 8 до 64 бит. На рис. 3 приведены зависимости, характеризующие объемы производства микропроцессоров и микроконтроллеров различной разрядности с 1994 г. по 2000 г. включительно.

Рис. 3. Объемы производства МП

и микроконтроллеров

Из рис. 3 очевидно, что рост 4-разрядных МП и микроконтроллеров с 1997 г. прекратился. Выпуск 8 - разрядных устройств, по крайней мере, до 2000 г., будет продолжать расти. Основу этого роста составляют микроконтроллеры, применяемые при разработке различных устройств промышленного (станкостроение, приборостроение, машиностроение, химическая промышленность и т.д.) и бытового назначения.

Рост высокоразрядных МП (выше 16 разрядов) менее заметен на фоне низкоразрядных процессоров, но он обладает устойчивостью на ближайшие 10-15 лет.

Наибольшее внимание при разработке новых МП уделяется повышению их разрядности. В настоящее время наибольшее общетехническое применение нашли 32- и 64-разрядные МП американских фирм Intel, Cyrix, AMD, Apple, Motorola, SUN Microsystems и др.

32-разрядные МП фирмы INTEL 80386 и 80486 были наиболее популярными микропроцессорами до появления Pentium. В этих МП реализованы многие логические свойства, которые еще недавно считались принадлежностью крупных ЭВМ (защита памяти, кэш - память, сегментированная виртуальная память и т.д.).

Фирмой Intel было разработано и выпущено несколько модификаций МП 80386 и 80486 (табл. 1).

Таблица 1

Микропроцессор Год выпуска Разрядность ШД Разрядность ША Тактовая частота * , МГц Объем па- мяти ОЗУ, Мбайт Объем кэш – памяти, Кбайт
80386 SX 25,33,40 -
80386 DX 25,33,40 -
80386 SL 25,33,40 -
80486 DX 33,40,50
80486 SX
80486 DX2
80486 DX4

* - тактовые частоты различных изготовителей могут несколько отличаться от табличных значений.

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



Микропроцессоры 80386 Микропроцессоры Intel 80386 -

крупный шаг в развитии технологии и архитектуры микропроцессорных средств. Они были изготовлены по КМОП - технологии с проектной нормой на ширину проводников 1,5 мкм, позволившей на кристалле площадью примерно 100 мм 2 разместить около 275 000 транзисторов. При тактовой частоте 33 Мгц МП выполняют до 12 млн. оп/с. Кристалл находится в керамическом корпусе со 132 выводами.

К основным особенностям архитектуры МП 80386 следует отнести:

Наличие средств, обеспечивающих реализацию мультипрограммного (многозадачного) и многопользовательского режимов работы МП и режима “системы виртуальных машин”, при котором пользовательские программы могут выполняться параллельно во времени под управлением разных операционных систем;

Непосредственный доступ к физическому адресному пространству в 4 Гбайт и виртуальной памяти емкостью 64 Тбайт (примерно 70 триллионов байт) (для 80386 DX);

Сегментно - страничная организация памяти;

Высокая производительность, в 2 - 3 раза превосходящая производительность МП 80286 и достигаемая за счет большей тактовой частоты, более быстрого доступа к памяти благодаря использованию размещенных на кристалле МП кэш - па­мяти, блока управления и защиты памяти (в том числе блока быстрого преобразования адресов);

Система команд МП является расширением системы команд МП 8086, обеспечивается программная совместимость с МП 8086 и 80286 (на уровне двоичных кодов программ);

Обработка данных различных типов: целые числа, числа с плавающей точкой, десятичные числа, байты, строки символов, цепочки бит до 4 Гбит;

Использование в командах 32- , 16- , 8 - разрядных операндов;

Наличие встроенных средств самотестирования, запускаемых сигналом сброса и проверяющих примерно 75 % всех транзисторов, расположенных на кристалле.

Упрощенная структура МП 80386 приведена на рис. 4.

Рис. 4. Структура МП 80386

Блок данных содержит восемь 32 - разрядных общих регистров. В целях создания условий для выполнения операций с 16- и 8 - разрядными словами (в том числе для совместимости с МП 8086 и 80286) в каждом общем регистре адресуемо младшее полуслово, а в каждом из четырех 16 - разрядных регистров адресуемо в отдельности старший и младшие байты. Для повышения быстродействия МП в блок данных введены 4 - разрядный сдвиговый регистр (“сдвигатель”) и аппаратурные средства ускоренного выполнения операций умножения и деления.

Вектор состояния процессора образуют содержимые 32 - разрядных счетчика команд (смещение адреса команды относительно базового адреса) и регистра признаков (флажков). В регистре признаков формируются три группы признаков:

Признаки результата (знака результата, нуля, переноса, переполнения и др.);

Признаки управления (направление и др.);

Системные признаки (разрешение прерывания, режим виртуальной памяти, порог прерывания и др.).

Микропроцессор через шинный интерфейс имеет доступ к внешним 32 - разрядной шине адреса, 32 - разрядной двунаправленной шине данных, линиям управления шинами, линиями: захват (Hold), подтверждение захвата (Hold Acknowledge) запроса сопроцессора (PERCC).

Устройство управления (УУ), содержащее управляющую память (УП) микропрограмм, с учетом внешних сигналов (занято - Busy, ошибка - Error, прерывание - INTR, NMI, сброс - Reset, двойная тактовая частота - DFG) вырабатывает управляющие сигналы, инициирующие соответствующие микрооперации. В МП выполняется конвейерная обработка команд на восьми позициях, образованных восемью его основными блоками.

Используемая пользователем память может быть разделена на несколько сегментов, каждый размером до 4 Гбайт. Сегменты состоят из страниц размером 4 Кбайта.

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

МП содержит следующие сегментные регистры: CS - сегмент командных кодов; DS - сегмент данных; SS - сегмент стека; ES, FS, GS - дополнительные сегменты данных. Сегментные регистры хранят “селекторы”, адресующие соответствующие дескрипторы в кэш - памяти таблицы дескрипторов сегментов. Сами сегментные регистры в командах явно не адресуются (подразумеваемая адресация).

Рис. 5. Организация сегментирования

Формирование “линейного адреса” в сегментированной памяти поясняется рис. 5,б. Адресный указатель, образованный смещением в команде и содержащимся в сегментном регистре селектором, определяющим соответствующий дескриптор сегмента, преобразуется в 32 - разрядный линейный адрес.

Микропроцессор 80386 в состоянии одновременно выполнять программы, предназначенные для МП 8086, 80286 и 80386. МП 80386 возможны два режима работы:

Реальный режим,

Защищенный режим виртуальной памяти.

В реальном режиме МП эмулирует с повышенной скоростью МП 8086/8088, работая в однопрограммном режиме с адресным пространством, ограниченным 1 Мбайт.

В защищенном режиме МП может использовать все свое адpecнoe пространство и реализовывать “систему виртуальных 80 ´ 86 - машин” с распределением памяти согласно рис. 4.

Рис. 4. Режим виртуальных процессоров 8086

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

Однако возникают некоторые затруднения при попытках одновременного использования несколькими программами МП 8086 периферийных устройств, например, экрана дисплея. Вопрос может решаться путем применения специальной программы “виртуальный монитор”, перехватывающей обращения к операциям ввода - вывода программ виртуальных МП 8086 и организующей “виртуальный экран”.

ный микропроцессор 80486 (i486) обеспечивает более высокую скорость (до 40 млн. оп/с) выполнения прикладных программ, написанных для операционных систем DOS, OS/2, Windows и UNIX, чем все предыдущие модели МП 80´86. Он программно совместим с микропроцессорами 80286, 80386 DX & SX и содержит около 1,2 млн. транзисторов (вместе с кэш - памятью, расположенной на одном с МП кристалле).

Для увеличения производительности в процессор введены математический сопроцессор (кроме моделей SX), дополнительная сверхбыстрая кэш-память для хранения часто используемой информации объемом 8 Кбайт, конвейерная обработка и т.д. Часто используемые операции выполняются за один цикл, что сравнимо со скоростью выполнения RISC - команд. Кэш-память соединена с шиной пакетного обмена данными и позволяет проводить обмен информацией со скоростью 80/106 Мбайт/сек при частоте 25/33 МГц.

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

Возможности микропроцессора 80486 включают в себя:

Полную программную совместимость с МП 80386 DX, 80386 SX, встроенным 80376(TM) процессором, процессорами 80286, 8086 и 8088;

Реализацию блоком выполнения команд часто встречающихся операций за один цикл;

32 - разрядный процессор для выполнения арифметических и логических операций;

Встроенный модуль обработки арифметических операций с плавающей точкой для поддержки 32, 64, и 80 -разрядных форматов;

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

Сигналы управления шиной для поддержки непротиворечивости кэш-памяти в многозадачных системах;

Сегментацию, осуществляющую управление памятью для создания независимых, защищенных адресных пространств;

Постраничное разбиение, позволяющее управление памятью таким образом, что обеспечивается доступ к структурам данных, превышающим доступное пространство памяти за счет хранения данных частично в памяти, частично на диске;

Перезапускаемые операторы, которые позволяют перезапуск программы после исключения (необходимы для поддержки постраничного доступа к виртуальной памяти);

Конвейерное выполнение команд, перекрывающееся по времени с интерпретацией других команд;

Регистры отладки для аппаратной поддержки контрольных точек в командах и данных;

Микропроцессор 80486 имеет три режима выполнения программ:

Защищенный режим, где используется естественное множество 32 - разрядных команд процессора. В данном режиме доступны все команды и все его архитектурные возможности.

Режим реальной (прямой) адресации (называемый также “реальным режимом”), в котором осуществляется эмуляция программной среды процессора 8086, с некоторыми дополнительными возможностями (такими, например, как возможность прервать данный режим). При перезагрузке процессор устанавливается именно в этот режим.

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

Программно - доступные регистры МП. Процессор 80486 содержит блок регистров из 16 программно - доступных регистров, которые могут использоваться программистами. В него входят:

32 - разрядные регистры общего назначения,

Сегментные регистры, содержащие селекторы сегментов, соответствующих различным формам доступа к памяти.

Системные регистры.

1. Регистры общего назначения - это 32 - битные регистры EAX, EBX, ECX, EDX, EBP, ESP, ESI и EDI. Данные регистры используются для хранения операндов логических и арифметических команд. Кроме того, они могут использоваться для хранения операндов при вычислении адресов (кроме регистра ESP, который не может быть использован как индексный операнд).

Все РОН могут использоваться для адресных вычислений и для получения результатов большинства арифметических и логических операций. Однако некоторые команды используют фиксированные регистры для хранения операндов.

2. Сегментные регистры CS, DS, SS, ES, FS и GS содержат 16 - разрядные селекторы сегментов, которые указывают на таблицу распределения памяти. Данная таблица содержит базовые адреса сегментов и другую информацию, регламентирующую доступ к памяти.

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

Селектор сегмента кода, содержащего последовательность исполняемых команд, содержится в регистре CS. Процессор 80486 выбирает команды из этого сегмента, используя содержимое указателя команд ЕIP как относительный адрес внутри сегмента. Содержимое регистра CS изменяется в результате выполнения межсегментных команд управления потоком, прерываний и исключений.

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

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

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

В некоторых случаях (при сложной структуре данных) может возникнуть необходимость иметь доступ к более чем к четырем сегментам данных. Доступ к дополнительным сегментам осуществляется путем перезагрузки регистров DS, ES, FS и GS прикладной программой в процессе выполнения.

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

Они делятся на следующие категории:

Регистр флагов EFLAGS,

Регистры управления памятью,

Управляющие регистры,

Отладочные регистры,

Тестовые регистры.

Регистр флагов EFLAGS управляет вводом / выводом, маскируемыми прерываниями, отладкой, переключением между задачами, а также виртуальным режимом 8086. Прикладными программами эти флаги должны игнорироваться, а попытки модификации их состояния из прикладных программ недопустимы. В большинстве систем попытка изменения системного флага из прикладной программы приводит к возникновению исключения (особой ситуации).

Регистр флагов включает:

Флаг AC, обеспечивающий режим контроля выравнивания в виртуальной памяти (виртуальный режим 8086),

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

Флаг NT - флаг вложенности задачи. Микропроцессор использует флаг вложенности задачи для управления последовательностью выполнения прерванных и вызванных задач.

Флаг IOPL - уровень привилегий ввода/вывода. Уровень привилегированности ввода/вывода используется механизмом защиты для управления доступом к адресному пространству ввода/вывода.

Флаг IF разрешения прерываний переводит процессор в режим, в котором он отвечает на запросы маскируемых прерываний (прерывания INTR). Очистка флага IF отменяет эти прерывания. Флаг IF не оказывает воздействия на особые ситуации или немаскируемые (NMI) прерывания.

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

Регистры управления памятью микропроцессора 40486 задают расположение структур данных, которые управляют организацией сегментированной памяти. К ним относятся:

Регистр таблицы глобальных дескрипторов GDTR, который содержит 32 - битовый базовый адрес и 16 -битовую границу сегмента для таблицы глобальных дескрипторов.

Регистр таблицы локальных дескрипторов LDTR, который содержит 32 - битовый базовый адрес, 16 - битовую границу сегмента и 16 - битовый селектор сегмента для таблицы локальных дескрипторов.

Регистр таблицы дескриптора прерываний IDTR, который содержит 32 - разрядный базовый адрес и 16 -разрядную границу сегмента для таблицы дескрипторов прерываний. Когда происходит прерывание, вектор прерывания используется в качестве индекса для получения из данной таблицы дескриптора шлюза. Последний сдержит указатель, используемый для запуска обработчика прерываний.

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

Управляющие регистры CR0, CR1, CR2 и CR3. В большинстве систем загрузка управляющих регистров из прикладных программ невозможна (хотя в незащищенных системах такая загрузка разрешается). Прикладные программы имеют возможность считывать эти регистры для определения наличия математического сопроцессора.

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

Регистр CR1 резервируется для выполнения отдельных программ, имеющих сложную структуру данных.

Регистр CR2 содержит 32 - разрядный линейный адрес, вызвавший это исключение.

Регистр CR3 является базовым регистром страничного каталога.

Отладочные регистры дают микропроцессору 80486 расширенные возможности отладки, включая контрольные точки данных и средство устанавливать контрольные точки команд без модификации кодовых сегментов (что может быть полезным при отладке ПЗУ - резидентного программного обеспечения). Доступ к этим регистрам имеют только программы с наивысшим уровнем привилегированности.

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

Операции со стеком поддерживаются тремя регистрами микропроцессора:

Регистр сегмента стека SS. Стек размещается в памяти. Количество стеков в системе ограничивается только максимальным числом сегментов. Размер стека не может превышать 4 Гбайт, что соответствует максимальному размеру сегмента для процессора 80486. В каждый момент времени доступен только тот стек, селектор сегмента которого содержится в регистре SS. Этот стек называется текущим. Регистр SS автоматически используется процессором для выполнения всех операций со стеком.

Регистр указателя стека ESP. В регистре ESP содержится относительный адрес вершины стека в текущем сегменте стека. Его значение используется командами вызова подпрограмм и возврата, исключениями и прерываниями. При занесении элемента в стек, процессор уменьшает значение регистра ESP, а затем записывает элемент по адресу новой вершины.

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

При использование регистра EBP для хранения адреса памяти, текущий сегмент обязательно должен быть выбран (установлен регистр SS). Т. к. нет необходимости указывать сегмент стека в каждой команде, их кодирование становится более компактным. Для обеспечения удобного доступа к переменным регистр EBP может также использоваться для адресации других сегментов.

Указатель команд EIP содержит смещение в текущем сегменте кода следующей подлежащей выполнению команды. Указатель команд непосредственно не доступен программисту, но он управляется явно командами управления потоком (переходы, возвраты и т. д.), прерываниями и исключениями. Значение регистра EIP увеличивается, указывая последовательно на границы исполняемых команд.

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

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

Для эффективного управления памятью используются такие средства, как сегментация памяти и подкачка страниц.

1. Сегментация памяти, как уже указывалось ранее, представляет собой разбиение всего адресного пространства памяти на отдельные блоки - сегменты. Доступ к сегментам управляется данными, в которых описаны их размер, уровень привилегированности, который нужен для доступа к ним, типы ссылок к памяти, применимые к этому сегменту (выборка команды, помещение или извлечение из стека, операция чтения, операция записи и т. д.), а также его присутствие в памяти.

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

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

Аппаратное обеспечение сегментации транслирует сегментированный (логический) адрес в адрес непрерывного, несегментированного адресного пространства, который называется линейным адресом. Если разрешена подкачка страниц, то аппаратное обеспечение подкачки транслирует линейный адрес в физический адрес. Если подкачка страниц не разрешена, то в качестве физического адреса используется сразу линейный адрес.

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

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

Если операционной системой не разрешен механизм подкачки страниц, то линейные адреса будут одновременно являться и физическими адресами. Это может быть в тех случаях, когда разработка, которая была сделана для 16 -разрядного процессора, адаптируется для использования 32 - разрядного процессора.

Операционная система, написанная для 16 - разрядного процессора, не использует механизма подкачки страниц, поскольку размер ее адресного пространства настолько мал (64Кбайт), что гораздо более эффективным является механизм свопинга между оперативной памятью и диском целых сегментов, нежели отдельных страниц памяти.

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

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

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

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

Линейный адрес, выработанный устройством сегментации, используется непосредственно как физический адрес. Для преобразования линейного адреса в физический используется устройство подкачки страниц. Устройство подкачки страниц обеспечивает другой уровень организации памяти. Оно разбивает линейное адресное пространство на блоки фиксированной длины (4Кбайт) - страницы. Логическое адресное пространство отображается в линейное адресное пространство, которое отображается на несколько страниц. Страницы могут находиться как в памяти, так и на диске.

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

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

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

Сегментированное адресное пространство с различными сегментами для пространств кода, данных и стека. Может быть использовано до 16383 линейных адресных пространств, размером до 4 Гбайт каждое.

Обе эти модели, кроме того, могут обеспечивать защиту памяти.

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

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

Сегментированная модель. В сегментированной модели организации памяти логическое адресное пространство содержит до 16383 сегментов, размером до 4 Гбайт каждый, т. е. общий объем может достигать 2 46 байт (64 Тбайт). МП отображает это 64 - терабайтовое логическое адресное пространство в физическое адресное пространство (до 4 Гбайт).

Преимущество сегментированной модели заключается в том, что смещение внутри каждого адресного пространства проверяется отдельно и доступ к каждому сегменту контролируются индивидуально. Размер сегмента определяется программистом, что позволяет делать его равным размеру содержащегося в нем модуля.

Доступ к сегментированному адресному пространству осуществляется с помощью указателя, который состоит из двух частей:

16 - разрядного поле селектора сегмента, которое идентифицирует сегмент.

Смещения, которое представляет собой 32 -разрядный адрес внутри сегмента.

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

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

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

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

был разработан процессор Pentium P5 класса 80´86, использующий архитектурную концепцию CISC (Completed Instruction Set Computer). Корпус процессора квадратный с 321 контактными выводами матричного типа, то есть выводы расположены по всему периметру корпуса в несколько рядов (конструктив Socket 7).

Он имеет тактовую частоту до 100 МГц и более, выполнен по субмикронной технологией (с шириной проводников менее 1 мкм), позволившей разместить на кристалле около 3,1 млн. транзисторов. Благодаря такой компактности сокращается время передачи данных внутри микропроцессора, и тем самым обеспечивается более высокая производительность работы системы в целом (до 200 млн. оп/с).

Процессор имеет выполненную на кристалле процессора кэш-память первого уровня (L1) объемом 32 Кбайт, разбитую на два банка: кэш-память данных и кэш-памяти команд, каждая из которых имеет объем 16 Кбайт. Кэш-память предназначена для временного хранения многократно используемых программой команд и данных, что позволяет процессору реже обращаться за ними к внешней медленнодействующей основной памяти (ОП). Каждый банк памяти соединяется с ядром собственной шиной и обеспечивает высокоскоростной обмен информацией по двум физически разнесенным шинам. Такая архитектура обеспечивает устранение конфликтов в системе при передаче команд и данных.

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

Несмотря на большую вычислительную мощность процессора Р5, обработка программ трехмерной графики, число которых неуклонно возрастает, является самым узким местом при обработке команд. Увеличение же производительности процессора за счет повышения тактовой частотой малоэффективно. Это связано с тем, что повышение тактовой частоты в два раза ведет к увеличению производительности в интервале 15 - 45%% в зависимости от тактовой частоты (чем выше тактовая частота процессора, тем меньше прирост производительности). Данное обстоятельство поставило задачу поиска иных путей повышения производительности процессоров.

Одним из таких путей является увеличение емкости кэш-памяти первого уровня с 16 до 32 Кбайт, второй путь - внедрение технологии ММХ (ММХ - Multi Media Extension).

Увеличения емкости кэш-памяти обеспечивает увеличение вероятности нахождения данных в кэш-памяти при их считывании процессором. Так при объеме кэш-памяти 8 Кбайт процессор в более чем в 80% случаев обращения к памяти без «промаха» находит данные в кэш-памяти. Двукратное увеличение объема кэш-памяти обеспечивает 5% прирост «попаданий», а четырехкратное увеличение – прирост около 8%. Очевидно, что дальнейшее наращивание оказывает­ся неоправданным: каждое последующее удвоение объема приносит лишь процент (или менее) увеличения вероятности «попадания». Иными словами, 32 Кбайт - опти­мальный объем, и поэтому кэш-память нового про­цессора Pentium была увеличена только вдвое.

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

В конвейер команд была введена до­полнительная ступень определения взаи­мозависимости инструкций, благодаря че­му сказалось возможным усовершенство­вать механизм предсказания ветвлений. Все описанные меры позволили увеличить производительность примерно на 10-20%%.

Второй путь, связанный с внедрением технологии ММХ, обязан широкому использованию мультимедийных программ. ММХ – это архитектура процессора, обеспечивающая эффективное выполнение команд трехмерной графики за счет высокоскоростной обработки вещественных чисел (чисел с плавающей точкой). Она включает специальные наборы команд и устройств, которые используют принцип выполнения одного потока команд над множеством потоков данных - SIMD (Single Instruction Multiplay Data). В этом случае обеспечивается конвейеризация при выполнении команд: например, в 64-разрядном арифметико-логическом устройстве одновременно могут выполняться две 32 - разрядные, четыре 16-разрядные или восемь 8 – разрядных операций; введены комбинированные команды типа “умножение со сложением”, инструкции упаковки - распаковки данных и т.д.

Так, если для выполнения большинства офисных задач хватало да­же производительности 100 МГц Pentium, то полноразмерное экранное видео с одновременной обработкой звуко­вой информации оказывалось на пределе возможностей самых производительных процессоров. В то же время обработку ау­дио- и видеоинформации вполне можно было бы поручить специализированному встроенному сопроцессору, подобно имеющемуся в Pentium для ускорения опе­раций с плавающей запятой. Длятого, что­бы как можно меньше переделывать уст­ройство дешифрации команд, коды мультимедийных инструкций были сделаны совпада­ющими с кодами математического сопро­цессора и запрещена его одновременная работа со встроенным мультимедийным сопроцессором. В результате при обработ­ке мультимедиа информации включается одни сопроцессор, при математических расчетах - другой. Переключение осуществляется установкой или сбросом соответствующего флага. Таким образом, подобный мультимедийный процессор может работать с аудио- и видеоинформацией на 50-80%% быстрее своего не мультимедийного аналога.

Первые мультимедийные процессоры на 166 МГц P5 ММХ и на 200 МГц P5 ММХ появились в январе 1997 г. Корпуса процессоров P5 и P5 MMX аналогичны по исполнению Р5.

Архитектурно-структурные особенности. Характерной чертой процессоров Р5 являются многочисленные архитектурно-структурные особенности, которые включают следующие:

Использование суперскалярной архитектуры;

Раздельное кэширование программного кода и данных;

Наличие буфера адреса ветвления;

Использование высокопроизводительного блока вычислений с плавающей запятой;

Наличие расширенной 64 - битовой шины данных;

Обеспечение поддержки многопроцессорного режима работы;

Применение средств задания размера страницы памяти;

Использование средств обнаружения ошибок и функциональной избыточности;

Управление производительностью;

Наращиваемость с помощью Intel Overdrive процессора.

Суперскалярная архитектура. Суперскалярная архитектура Р5 представляет собой совместимую только с INTEL двухконвейерную архитектуру, позволяющую процессору достигать новых уровней производительности посредством выполнения более, чем одной команды за один период тактовой частоты.

Термин “суперскалярная” обозначает микропроцессорную архитектуру, которая содержит более одного вычислительного блока. Эти вычислительные блоки, или конвейеры, являются узлами, где происходят все основные процессы обработки данных и команд. Возможность выполнять множество команд за один период тактовой частоты существует благодаря тому, что Р5, имея два конвейера, может выполнять две инструкции одновременно. Двойной конвейер Р5 выполняет простую команду за пять этапов:

Предварительная подготовка,

Первое декодирование (декодирование команды),

Второе декодирование (генерация адреса),

Выполнение,

Обратная выгрузка.

Поэтапное выполнение команд позволяет нескольким командам находиться в различных стадиях выполнения, увеличивая тем самым вычислительную производительность.

Двухконвейерная обработка данных осуществляется двумя секциями обработки данных - U и V (рис. 5).

Каждая из них включает блок формирования адреса и АЛУ. Первичная U - секция может выполнять все операции над целыми числами и операции с плавающей запятой. Вторичная V-секция может выполнять только простые операции с целыми числами и частично - операции с плавающей запятой. Входящие в секции блоки чтения-записи разделены на блоки чтения и блоки записи. Каждое из них снабжено своим буфером-накопителем. Такое исполнение ядра процессора позволяет последовательно идущие команды чтения и записи вести одновременно, что полностью исключает конфликтные ситуации в магистрали и повышает скорость при вводе-выводе команд.

Рис. 5. Архитектура микропроцессора Pentium Р5

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

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

P5 использует аппаратное выполнение команд, заменяющее множество микрокоманд, используемых в предыдущих семействах микропроцессоров. Эти инструкции включают загрузки, запоминания и простые операции АЛУ, которые могут выполняться аппаратными средствами процессора, без использования микрокода.

Раздельное кэширование программного кода и данных является другим важнейшим усовершенствованием, реализованным в Р5. В нем имеется кэш-память первого уровня L1, разбитая на две кэш-памяти по 8 (позже по 16) Кбайт каждый - программный кэш и кэш данных, управляемые своим контроллером. Схемы кэш - контроллера и сами блоки кэш-памяти размещены на кристалле МП. В кэш-память из различных областей системного ОЗУ копируется информация - данные и программные коды.

AMD64 (также x86-64 или x64) - 64-битная архитектура микропроцессора и соответствующий набор инструкций, разработанные компанией AMD. Это расширение архитектуры x86 с полной обратной совместимостью. Набор инструкций x86-64 в настоящее время поддерживается процессорами AMD Athlon 64, Athlon 64 FX, Athlon 64 X2, Turion 64, Opteron, последними моделями Sempron. Интересно, что этот набор инструкций был поддержан основным конкурентом AMD - компанией Intel под названием EM64T или IA-32e в поздних моделях процессоров Pentium 4, а также в Pentium D, Pentium Extreme Edition, Celeron D, Core 2 Duo и Xeon. Корпорация Microsoft использует для обозначения этого набора инструкций термин x64.

Режимы работы

Процессоры архитектуры поддерживают два режима работы: Long mode («длинный» режим) и Legacy mode (режим совместимости с x86).

Long Mode

«Длинный» режим - «родной» для процессоров AMD64. Этот режим позволяет воспользоваться всеми дополнительными возможностями, предоставляемыми архитектурой AMD64. Для использования этого режима необходима 64-битная операционная система, например, Windows XP Professional x64 Edition или 64-битный вариант GNU/Linux. Этот режим позволяет выполнять 64-битные программы; также (для обратной совместимости) предоставляется поддержка выполнения 32-битного кода, например, 32-битных приложений, хотя 32-битные программы не смогут использовать 64-битные системные библиотеки, и наоборот. Чтобы справиться с этой проблемой, большинство 64-разрядных операционных систем предоставляют два набора необходимых системных файлов: один - для родных 64-битных приложений, и другой - для 32-битных программ. (Этой же методикой пользовались ранние 32-битные системы - например, Windows 95 - для выполнения 16-битных программ)

Legacy Mode

Данный режим позволяет процессору AMD64 выполнять инструкции, рассчитанные для процессоров x86, и предоставляет полную -совместимость с 32/16-битным кодом и операционными системами. В этом режиме процессор ведёт себя точно так же, как x86-процессор, например Pentium 4, и дополнительные функции, предоставляемые архитектурой AMD64 (например, дополнительные регистры) недоступны. В этом режиме 64-битные программы и операционные системы работать не будут.

Особенности архитектуры

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

Архитектура x86_64 имеет

    16 целочисленных 64-битных регистра общего назначения (RAX, RBX, RCX, RDX, RBP, RSI, RDI, RSP, R8 - R15),

    8 80-битных регистров с плавающей точкой (ST0 - ST7)

    8 64-битных регистров Multimedia Extensions (MM0 - MM7, имеют общее пространство с регистрами ST0 - ST7)

    16 128-битных регистров SSE (XMM0 - XMM15)

    64-битный указатель RIP и 32-битный регистр флагов EFLAGS

Opteron (кодовое название Sledgehammer или K8) - первый микропроцессор фирмы AMD, основанный на 64-битной технологии AMD64 (также называемой x86-64). AMD создала этот процессор в основном для применения на рынке серверов, поэтому существуют варианты Opteron для использования в системах с 1-16 процессорами.

В июне 2004 года в Top500 суперкомпьютеров десятое место занял Dawning 4000A - китайский суперкомпьютер построенный на процессорах Opteron. В ноябре 2005 он опустился на 42 место, в связи с появлением более производительных конкурентов. Тогда в ноябрьском Top500 10 % суперкомпьютеров были построены на базе процессоров AMD64 Opteron. Для сравнения, на базе процессоров Intel EM64T Xeon были построены 16.2 % суперкомпьютеров. Две ключевые особенности

Двумя важными технологиями воплощёнными в процессоре Opteron являются: Прямая (без эмуляции) поддержка 32-битных x86 приложений без потери скорости Прямая (без эмуляции) поддержка 64-битных x86-64 приложений (линейная адресация более 4 ГБ ОЗУ)

Первая технология примечательна тем, что во время анонса процессора Opteron единственным 64-битным процессором с заявленной поддержкой 32-битных x86 приложений был Intel Itanium. Но Itanium выполнял 32-битные приложения со значительной потерей скорости.

Вторая технология, сама по себе не так примечательна, так как основные производители RISC процессоров (SPARC, DEC, HP, IBM, MIPS и другие) имели 64-битные решения уже много лет. Но совмещение в одном продукте этих 2-х свойств, напротив, принесло Opteron признание, так как он предлагал доступное и экономичное решение для запуска существующих x86 приложений с последующим переходом на более перспективные 64-битные вычисления.

Процессоры Opteron имеют интегрированный контроллер памяти DDR SDRAM. Это позволило существенно уменьшить задержки при обращении к памяти и исключить необходимость в отдельном чипе северного моста на материнской плате.

В мае 2005 года AMD представила первый «многоядерный» процессор Opteron. В настоящее время термин «многоядерный» компания AMD использует для обозначения «двухъядерных» процессоров; в каждом процессоре Opteron размещено 2 отдельных процессорных ядра. Это фактически удваивает вычислительную мощность доступную каждому процессорному разъёму на материнских платах, поддерживающих эти процессоры.

Одним из “топовых” процессоров AMD сегодня считается - Athlon X2 6000+ на ядре Windsor под сокет AM2. Этот процессор содержит два ядра Athlon 64, объединённых на одном кристалле с помощью набора дополнительной логики. Ядра имеют в своём распоряжении двухканальный контроллер памяти, базирующийся на Athlon 64 степпинга E, и в зависимости от модели, от 512 до 1024 КБ КЭШа 2-го уровня на каждое ядро. Athlon 64 X2 поддерживают набор инструкций SSE3 (которые ранее поддерживались только процессорами компании Intel), что позволило запускать с максимальной производительностью код, оптимизированный для процессоров Intel. Эти улучшения не уникальны для Athlon 64 X2 и так же имеются в релизах процессоров Athlon 64, построенных на ядрах Venice и San Diego. AMD официально начала поставки Athlon 64 X2 на выставке Computex 1 июня 2005 года.

Основным преимуществом, которое даёт двуядерные процессоры Athlon 64 X2 является возможность разделения запущенных программ на несколько одновременно выполняемых потоков. Способность процессора выполнять одновременно несколько программных потоков называется параллелизм на уровне потоков (thread-level parallelism или (TLP)). При размещении двух ядер на одном кристале, Athlon 64 X2 обладает двойным TLP по сравнению с одноядерным Athlon 64 при той же скорости. Необходимость в TLP зависит от конкретной ситуации в большей степени и в некоторых ситуациях она просто бесполезна. Большинство программ написаны с расчётом на работу в однопоточном режиме, и поэтому просто не могут задействовать вычислительные мощности второго ядра. Программы, написанные с учётом работы в многопоточном режим и способные использовать вычислительные мощности второго ядра, включают в себя множество приложений для обработки музыки и видео. Имея два ядра, Athlon 64 X2 обладает увеличенным количеством транзисторов на кристалле. Процессор Athlon 64 X2 с 1МБ КЭШа 2-го уровня имеет 233.2 миллиона транзисторов , в отличие от Athlon 64, имевшего всего 114 миллиона транзисторов . Такие размеры требуют использования для производства более тонкого технологического процесса, который позволяет добиться выхода необходимого количества исправных процессоров с одной кремневой пластины. Athlon 64 X2 построен на ядрах: Toledo; Manchester; Windsor по 90 нм техпроцессу. Совсем недавно компания AMD официально представила свою новую платформу для настольных ПК под кодовым названием AMD Spider.

Платформа Spider

Состав платформы Spider

Основным компонентом данной платформы является процессор линейки AMD Phenom, совместно с чипсетом семейства AMD 7-Series.

Платформа AMD Spider: общие характеристики

Представляя вниманию широкой публике новые технологии, AMD делает акцент именно на платформенном характере инноваций. Ключевым компонентом платформы Spider являются многоядерные процессоры AMD Phenom (вплоть до 4-ядерных), выполненные с соблюдением норм 65 нм техпроцесса и предназначенные для работы с системными платами, оснащёнными разъёмом Socket AM2+. Помимо этого, в состав платформы Spider входит новое поколение чипсетов AMD 7 Series для создания системных плат с поддержкой технологий CrossFireX и AMD OverDrive, а также графика семейства ATI Radeon HD 3800 с поддержкой Microsoft DirectX 10.1.

Схема платформы AMD Spider

Если отбросить в сторону многословие пресс-релизов, основной инновацией, реализованной в платформе AMD Spider, можно назвать значительное повышение параметра “производительность на ватт”, главным образом, за счёт энерго-эффективного дизайна 65 нм процессоров AMD Phenom, 65 нм чипсетов AMD 7-Series и 55 нм графических чипов семейства ATI Radeon HD 3800. Наряду с этим, платформа AMD Spider обладает поддержкой ряда специфических технологий экономии энергии: ATI PowerPlay, Cool’n’Quiet 2.0, Microsoft DirectX 10.1, HyperTransport 3.0 и PCI Express 2.0. В частности, технология Cool’n’Quiet 2.0 позволяет снижать энергопотребление процессоров AMD Phenom, обладающих TDP 95 Вт, до средних 32 Вт в бытовых и средних 29 Вт в коммерческих приложениях. В то же время технология AMD CoolCore, реализованная в чипсетах AMD 7-Series, обеспечивает работу ядер процессора на разных частотах и, соответственно, снижение энергопотребления, при этом TDP чипсетов в среднем составляет порядка 10-12 Вт.

Другая инновация платформы AMD Spider – значительная её масштабируемость, беспрецедентная для решений на базе процессоров AMD. Так, системные платы на базе чипсетов AMD 7-Series, благодаря технологии ATI CrossFireX и поддержке до 42 линий PCI Express, обладают возможностью работы с тремя или четырьмя графическими картами ATI Radeon HD 3800. С точки зрения микроархитектуры процессоров AMD, новые чипы 4-ядрные чипы Phenom для настольных ПК, выполненные на базе архитектуры Stars (ядро Agena), являются “ближайшими родственниками” новых 4-ядерных серверных процессоров AMD Opteron на базе ядра Barcelona.

В полной аналогии с ядром Barcelona, архитектура Stars обладает 128-битным контроллером памяти с поддержкой до DDR2-1066, который также обладает возможностью работы в 2-канальном 64-битном режиме для независимого выполнения операций записи и чтения памяти. Физическое адресное пространство при этом увеличилось до 48 бит, а поддержка памяти до 256 Тб.

Каждое из четырёх ядер процессора Phenom обладает собственным 64 Кб собственной кэш-памяти L1 для инструкций и 64 Кб кэш-памяти L1 для данных, что в сумме составляет 512 Кб кэш-памяти L1 на процессор. Суммарный объём кэш-памяти L2 составляет 2 Мб, по 512 Кб на каждое ядро. Помимо этого, архитектуры Barcelona и Stars подразумевают наличие 2 Мб кэш-памяти L3. В отличие от кэш-памяти уровней L1 и L2, эксклюзивных для каждого ядра, кэш-память L3 динамически распределяется между всеми ядрами.

Среди ключевых характеристик, присущих новым 4-ядерным процессорам Phenom, следует отметить следующие ключевые функциональные возможности: Наличие нового планировщика задач с плавающей запятой, теперь поддерживающего 36 новых 128-битных операций Поддержка 128-битных операций SSE, появившихся в дополнение к возможностям прежней 64-битной архитектуры Возможность обработки двух операций SSE и одного SSE переноса за такт Буфер модуля выборки инструкций стал 32 байтным (ранее 16 байт) Модуль предсказания ветвлений с 512-ходовым предсказанием непрямых ветвлений Производительность кэша данных увеличена с одной 64-битной загрузки за такт до одной 128-битной загрузки за такт Производительность кэша данных L2 - контроллера памяти увеличена с 64-битной загрузки на такт до 128-битной загрузки за такт Реализация шины HyperTransport 3.0 позволила увеличить пропускную способность до 20,8 Гб/с Реализация технологии AMD Virtualization Technology с функцией быстрой индексации Rapid Page Indexing

Согласно информации, полученной от источника из среды тайваньских производителей системных плат, компания AMD на днях известила своих партнеров о намерении начать отгрузку трехъядерных процессоров Phenom X3 (Toliman) уже в феврале 2008 года, а не в марте, как планировалось ранее. Двухъядерные процессоры Kuma появятся только в конце второго квартала будущего года.

Напомним, что первые трехъядерные процессоры, модели 7700 и 7600, будут работать на частотах 2,5 ГГц и 2,3 ГГц, соответственно, тепловыделение моделей установлена в 89 Вт. Тактовые частоты процессоров Kuma, моделей 6250 и 6050, пока не называются, известно лишь, что их TDP будет на уровне 65 Вт.

20.04.2002 Михаил Кузьминский

В статье проанализирована предложенная компанией AMD архитектура x86-64 и рассмотрены некоторые ее достоинства и недостатки по сравнению с другими 64-разрядными архитектурами, в первую очередь Intel/HP IA-64. Дан краткий обзор микроархитектуры процессоров AMD Hammer, в которых впервые будет реализована архитектура x86-64. Характеристики Hammer сопоставлены с другими современными и перспективными высокопроизводительными процессорами.

Если все высокопроизводительные микропроцессоры RISC-архитектуры, выпускающиеся с конца 90-х годов, являются 64-разрядными (Сompaq/DEC Alpha, SGI/MIPS R1x000, IBM Power, HP PA-8x00, Sun UltraSPARC), то основные CISC-архитектуры (Intel x86, IBM S/390) переходят от 32 к 64 разрядам только сейчас (IA-64 , IBM z/Architecture ).

Переход от S/390 к z/Architecture выглядит достаточно естественным расширением, в то время как переход от x86 (ныне IA-32) к IA-64 означает, по сути, полную смену системы команд. Думаю, это обусловлено тем, что х86 начала свое историческое развитие с 8-ми, а затем 16-разрядных систем. Поэтому остававшаяся по соображениям совместимости относительно статичной в течение очень многих лет система команд со временем стала довольно «неестественной» с точки зрения других 32-разрядных процессоров.

Итак, если IBM перешла к 64-разрядной платформе эволюционным путем, переход от х86 к IA-64 - это революция; совместимость обеспечивается лишь путем аппаратной эмуляции. Пока непонятно, хочет ли Intel в будущем вообще отказаться от IA-32 в пользу IA-64, но то, что все программное обеспечение для IA-64 нужно как минимум перетранслировать - не говоря уже о дальнейшей оптимизации под IA-64 - это кажется ясным. Очевидно, переход на платформу IA-64 займет немало времени и будет стоить весьма дорого.

Совершенно другим путем пошла компания AMD. Она предложила собственную модернизацию архитектуры x86, которая (как и в случае с IBM) является естественным эволюционным развитием - подобно тому, как х86 в свое время была модернизирована с 16 до 32 разрядов.

Почему же 32-разрядные CISC-платформы становятся 64-разрядными только сейчас, хотя потребности в 64-разрядных приложениях стали достаточно большими уже несколько лет назад? Кроме уже отмеченной сложности перехода (очевидной в случае IA-64 и z/Architecture) следует указать и на резкое удешевление оперативной памяти при одновременном росте емкости модулей памяти. В результате 4-гигабайтный предел емкости для 32-разрядных систем оказывается вполне достижим уже в современных ПК. Так почему бы не поднять производительность ПК-сервера за счет установки дополнительной памяти, коль скоро это становится не так дорого?

Архитектура х86-64

Представляется, что отличия архитектуры х86-64 от IA-32 даже меньше, чем отличия IBM z/Architecture от S/390. В AMD всячески стараются подчеркнуть, что внесенные изменения минимальны , хотя анализ полного описания позволяет выявить достаточное количество мелких нюансов, касающихся, правда, в первую очередь разработчиков системного программного обеспечения, а не приложений.

Ключевых же изменений х86-64 по сравнению с сегодняшним состоянием IA-32 действительно не так много и они в определенном смысле аналогичны тем, которые были внесены при переходе от 16-ти к 32-разрядной архитектуре х86. Эти нововведения включают:

  • 64-разрядные виртуальные адреса (в конкретной реализации возможна меньшая разрядность);
  • "плоское" (flat) адресное пространство с единым пространством кодов, данных и стека;
  • 64-разрядный счетчик команд (RIP);
  • режим адресации относительно счетчика команд;
  • расширение регистров общего назначения (целочисленных) до 64 разрядов;
  • добавление 8 новых регистров общего назначения (R8-R15);
  • добавление еще 8 SSE-регистров XMM8-XMM15 разрядностью 128 (соответствует предложенному Intel расширению SSE2).
Рис. 1. Пример расширения регистров общего назначения

«Указания» на дополнительные регистры и размеры данных вводятся как префикс команд. Набор основных регистров x86-64 представлен на рис. 1. Регистры являются 64-разрядными, за исключением 32-разрядного регистра EFLAGS, 128-разрядных регистров ХММ и 80-разрядных регистров с плавающей запятой ST. Архитектура x86-64 включает, в частности, SSE2-расширения IA-32, представленные в Pentium 4.

На рис. 1 показано, каким образом расширены новые 64-разрядные регистры относительно 32-разрядных регистров в IA-32. Для выполнения 16-разрядных операций регистр А адресуется как АХ, для выполнения 32-разрядных операций - как EAX, а для выполнения 64-разрядных - как RAX. При выполнении 32-разрядных операций, в которых целочисленный регистр служит регистром результата, 32-разрядные значения дополняются нулями до 64-разрядных. 8-ми и 16-разрядные операции над целочисленными регистрами сохраняют старшие разряды неизменными .

Для работы с 64-разрядной адресацией в х86-64 введен режим Long Mode (назовем его «расширенным режимом»). Режим работы задается управляющим битом LMA (Long Mode Active), который взводится, если микропроцессор переходит в расширенный режим. В расширенном режиме регистры сегментов ES, DS, FS, GS, SS игнорируются. В регистре CS (дескриптор сегмента кода) находятся биты, уточняющие режимы работы микропроцессора.

В х86-64 расширенный режим имеет два «подрежима»: 64-разрядный режим и режим совместимости. В режиме совместимости обеспечивается двоичная совместимость с 16-ти и 32-разрядными режимами х86. Выбором подрежима управляет бит CS.L. Если он установлен в 0 (режим совместимости), 64-разрядная операционная система, работая в режиме LMA, может выполнять старые 16-ти и 32-разрядные х86-приложения. За выбор размера операнда отвечает бит CS.D.

По умолчанию, в 64-разрядном режиме (взведен бит LMA, CS.L = 1, CS.D = 0) применяются 64-разрядные адреса и 32-разрядные операнды. Используя префиксы команд, можно изменить размер операнда (установить его равным 64 или 16 разрядам), а также изменить размер адреса (установить равным 32 разрядам). В таблицах 1 и указаны основные допустимые типы режимов процессора и режимов работы операционной системы и приложений.

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

Для выяснения особенностей микропроцессоров с архитектурой х86-64 необходимо анализировать регистры EAX/EBX/ECX/EDX, в которые помещаются результаты выполнения команды CPUID (при ее вызове, как и ранее, в EAX нужно положить 8000_0000h). Если 29-й бит в EAX равен 1, микропроцессор работает в расширенном режиме.

В х86-64 имеется еще ряд интересных усовершенствований, особенно для задач системного программирования. В качестве примера отметим введение нового регистра приоритета задач TPR, который используется для ускорения обработки прерываний. За подробностями отсылаем читателей к описанию x86-64 .

Микроархитектура Hammer

Процессор Athlon относится к седьмому поколению архитектуры x86, реализованному компанией AMD. Первые процессоры, в которых будет реализована архитектура х86-64, получили кодовое название Hammer и представляют собой восьмое поколение х86-процессоров от AMD. В них продолжилась тенденция определенного отхода системы команд процессоров AMD от полной тождественности с Intel x86. Однако если прежде отличия были связаны с введением AMD новых команд 3DNow!, то теперь Hammer, в отличие от х86, становится 64-разрядным. В Hammer применяются 64-разрядные внутренние «шины», используемые для обмена данными. Виртуальное адресное пространство является 48-разрядным, а пространство физических адресов - 40-разрядным.

Целями AMD при создании данного семейства микропроцессоров, помимо очевидной цели поддержи х86-64, были :

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

В современных наиболее мощных RISC-процессорах имеется тенденция интеграции в микропроцессор кэш-памяти второго уровня большой емкости. Как Intel, так и AMD в своих высокопроизводительных процессорах не так давно уменьшили емкость кэша второго уровня с 512 Кбайт до 256 Кбайт, одновременно интегрировав его в процессор. Но в Pentium 4 Northwood разработчики Intel вновь расширили кэш второго уровня до 512 Кбайт. Соответствующие официальные данные по Hammer отсутствуют; между тем емкость кэша второго уровня может сильно повлиять на его производительность. По мнению некоторых аналитиков, емкость кэша второго уровня в старших моделях Hammer будет вчетверо выше, чем у современных моделей Athlon.

Буферы быстрой переадресации в данном процессоре по сравнению с Athlon модернизированы. I-TLB первого уровня в Hammer имеет емкость 40 строк (на 16 строк больше, чем раньше) и является полностью ассоциативным. У D-TLB первого уровня те же характеристики. Оба буфера TLB обеспечивают работу со страницами памяти емкостью 4 Кбайт, 2 Мбайт и 4 Мбайт.

I-TLB второго уровня, как и D-TLB второго уровня, содержат по 512 строк (вдвое больше, чем в Athlon) и являются 4-канальными частично-ассоциативными. Как указано в , TLB обладают уменьшенными по сравнению с Athlon задержками. Кроме того, аппаратно реализована возможность разделения TLB между несколькими процессами (для этого предусмотрен специальный «фильтр поджога»).

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

Традиционным направлением совершенствования современных микропроцессоров является улучшение точности предсказания переходов. В Hammer имеется массив адресов переходов емкостью 2К строк, а также таблица глобальной истории переходов, содержащая 16К 2-разрядных счетчиков (в 4 раза больше, чем у Athlon). Наконец, емкость стека адресов возврата - 12 строк.

Важной особенностью, способствующей повышению производительности, является интеграция в Hammer контроллера оперативной памяти. Это позволяет и пропускную способность увеличить, и уменьшить задержки. Данные характеристики будут автоматически улучшаться с ростом частоты процессора. Для архитектуры х86 эта особенность уникальна; Compaq же в своих новейших процессорах Alpha EV7 идет по такому же пути.

Контроллер памяти будет иметь интерфейс шириной 8 или 16 байт к оперативной памяти типа DDR. В последнем случае речь идет о двухканальной DDR-памяти, по 4 регистровых DIMM-модулей на канал. AMD обещает поддержку как регистровых, так и небуферизованных DIMM-модулей для памяти типа DDR PC1600/PC2100/PC2700. При использовании PC2700 в двухканальном варианте пропускная способность оперативной памяти достигнет значения 5,3 Гбайт/с. Для сравнения, процессор Intel McKinley, который вследствие особенностей архитектуры IA-64 нуждается в повышенной пропускной способности оперативной памяти, будет снабжен системной шиной лишь немного быстрее - 6,4 Гбайт/с.

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

Фронтальная часть конвейера включает выборку и декодирование команд (рис. 2). Логика работы этих стадий в Hammer усложнилась, возросла степень упаковки команд, направляемых декодерами к планировщикам. По сравнению с Athlon длина этой части конвейера возросла на 2 стадии, так что общая длина целочисленного конвейера Hammer равна 12, а конвейера с плавающей запятой - 17 стадий . По мнению разработчиков, это должно способствовать беспроблемному росту тактовой частоты процессора по мере совершенствования технологии изготовления. Первоначально планируется использовать 0,13-микронную технологию «кремний-на-изоляторе»; во второй половине 2003 года планируется переход к 0,09 мкм.

Надо отметить, официальные данные о площади, занимаемой Hammer, отсутствуют. Между тем, появились сообщения о том, что процессор ClawHammer будет обладать площадью всего 105 мм 2 , в то время как Athlon/Palomino, выполненный по той же технологии на 0,13 мкм - 80 мм 2 . Для сравнения, площадь McKinley, судя по представленным Intel на международной конференции ISSCC ?2002 данным, - 464 мм 2 .

Недостатки и достоинства длинных конвейеров хорошо известны: легче увеличивать тактовую частоту, но больше потери на перезаполнения конвейера, в частности, при неправильном предсказании перехода. Интересно сопоставить длину конвейера Hammer с другими современными микропроцессорами Intel. В Pentium 4, добившемся рекордных частот в 2,2 ГГц, по сравнению с Pentium III длина конвейера благодаря использованию технологии HyperPipeline возросла вдвое - до 20 стадий. Это имело ту же цель - обеспечение беспрепятственного роста тактовой частоты; в Intel говорят о 10 ГГц к 2005-2006 годам. В McKinley длину конвейера, наоборот, сократили - до 8 стадий против 10 в Itanium, но его ожидаемая частота - 1 ГГц.

Производительность, как известно, зависит не только от тактовой частоты, но и от числа реально выполняемых за такт команд. По утверждению AMD , в Hammer число это повысится. А вот на какой частоте будет работать Hammer, не сообщается; можно предположить, что этот показатель окажется около 2 ГГц.

Построение систем на базе Hammer

Мы рассмотрели основные особенности микроархитектуры Hammer, за исключением применения технологии HyperTransport. Она используется в Hammer как для подсоединения системы ввода-вывода, так и для организации межпроцессорных связей. Фактически благодаря встроенному в Hammer контроллеру оперативной памяти и применению технологии HyperTransport в Hammer интегрированы основные функции набора микросхем (точнее говоря, северного моста).

Собственно технология HyperTransport развивается одноименным консорциумом, основанном компаниями AMD, Sun Microsystems, Cisco Systems, Nvidia, Transmeta и Apple Computer. Думаю, потребности в разработке такой технологии диктовались в первую очередь возникновением узких мест в системах ввода/вывода в ПК и вообще использованием шин PCI, характеристики производительности которых не удовлетворяют требованиям современных высокопроизводительных сетевых плат и каналов ввода/вывода для жестких дисков.

Каналы HyperTransport при том же числе контактов, что и PCI, обеспечивают гораздо более высокую пропускную способность: пиковая величина ее составляет 3,2 Гбайт/с. Каналы HyperTransport имеют ширину 16 разрядов, обеспечивая 1,6 миллиардов передач в секунду в каждом направлении. HyperTransport позволяет осуществить соединения типа «точка-точка» с полнодуплексным режимом и расщепленной обработкой транзакций. Такие характеристики данной технологии позволяют использовать ее и для организации межпроцессорных связей; в последнем случае, в отличие от ввода/вывода, применяется вариант HyperTransport с поддержанием когерентности кэша.

Рис. 3. Схема построения 4-процессорных систем на базе Hammer

Процессоры Hammer имеют по три порта для каналов HyperTransport (рис. 3), плюс порт к контроллеру оперативной памяти. Поэтому в состав процессора введен коммутатор ХВОХ , который маршрутизирует команды и данные между этими портами и интерфейсом системных запросов (очередь SRQ). Эта очередь имеет длину 24 строки, а очередь к DRAM-контроллеру (Memory Command Queue) - 20 строк . Для связи с подсистемой ввода/вывода в Hammer используется мост Host Bridge, тогда два других канала HyperTransport задействуются в межпроцессорных обменах.

Единственное, что не встроено в Hammer - это интерфейс с AGP; поэтому микросхеме, занимающей место северного моста (рис. 4), необходимо поддерживать этот интерфейс. Предполагается, что это будет AGP 8X.

С этой микросхемой соединен южный мост. Хотя AMD традиционно предлагает набор микросхем для своих новых процессоров и сделает это, очевидно, и для Hammer, уже известно о разработках южного моста для этого процессора компаниями Nvidia и VIA Technologies. Кроме того, в многопроцессорных системах ожидается применение «шлюза» между HyperTransport и PCI-X ; возможно применение аналогичных средств для других стандартов ввода/вывода.

Рис. 4. Архитектура многопроцессорных систем на базе Hammer

А) однопроцессорная система

Б) двухпроцессорная система

В) четырехпроцессорная система

Схемы, представленные на рис. 4, демонстрируют эффективность построения многопроцессорных систем на базе Hammer. В таких компьютерах с ростом числа процессоров масштабируются не только вычислительная мощность, емкость и пропускная способность оперативной памяти, но и ресурсы подсистемы ввода/вывода. Так, в 8-процессорной системе доступными будут 64 (8х8) DIMM-модуля (до 128 Гбайт) и 4 канала HyperTransport с суммарной пропускной способностью 25 Гбайт/с для дуплексной передачи.

AMD анонсировала набор микросхем серии 8000, который будет доступен в четвертом квартале 2002 года. Он включает микросхемы AMD-8151 (организует интерфейс с AGP 3.0), AMD-8131 (мост от HyperTransport к PCI-X) и AMD-8111 (концентратор ввода/вывода, обеспечивает поддержку PCI-32/33 МГц, USB, IDE и т.п.).

Интересно организовано обеспечение когерентности кэша с использованием каналов HyperTransport при числе процессоров от 4 и выше: в обработке соответствующих запросов участвуют несколько образуемых каналами HyperTransport путей между процессорами , что способствует ускорению работы. В принципе возможно построение систем с числом процессоров Hammer, большем 8, но для этого понадобится коммутатор HyperTransport.

Задержки при работе с локальной (ближней к микропроцессору) оперативной памятью незначительно возрастают при обращении к «удаленной» памяти. На ненагруженной 4-процессорной системе задержка равна 140 нс, на аналогичной 8-процессорной системе - 160 нс. Это позволяет говорить об архитектуре SMP, а не ссNUMA. Вместе с тем применение технологии коммутации вместо системных шин позволяет достигнуть высоких показателей и по пропускной способности оперативной памяти. Для операций типа копирования она составляет 8 Гбайт/с для 4-процессорной системы, что, по утверждению AMD, существенно выше, чем в шинных архитектурах .

В ожидании Hammer

Начало продаж Hammer начнется ориентировочно в третьем квартале 2002 года. Первым микропроцессором данного семейства станет ClawHammer, ориентированный на одно- и двухпроцессорные системы; затем появится SledgeHammer. Хотя по сути Hammer должен вступить в конкуренцию с микропроцессорами архитектуры IA-64 (к тому времени должен появиться и McKinley), можно предположить, что в будущем Hammer окажется в состоянии вытеснить Athlon на всем спектре применений (но на это может уйти не один год). Это означает также, что Hammer может стать конкурентом Pentium 4.

Кроме существующих 32-разрядных операционных систем, на 64-разрядную архитектуру Hammer переносятся NetBSD, FreeBSD и Linux, а также современные разновидности Windows.

Преимуществами х86-64 и Hammer являются:

  • совместимость с 16-ти и 32-разрядными приложениями при высоком уровне производительности выполнения;
  • относительная (по сравнению с IA-64) простота перехода от х86 и соответственно отсутствие необходимости чрезмерных финансовых затрат на этот переход;
  • меньший риск неудачи новой архитектуры;
  • простота разработки и реализации;
  • небольшая площадь, что повышает выход годных и облегчает масштабирование по тактовой частоте.

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

Перечисленные преимущества сопровождаются и некоторыми потенциально «опасными» для AMD моментами. Архитектура х86-64 не столь «революционна», как IA-64; более того, число регистров по сравнению с современными RISC-процессорами не выглядит достаточно большим, что, как известно, усложняет оптимизацию программ.

AMD придется продемонстрировать, что высоты производительности достижимы главным образом за счет технологии (и соответствующего роста тактовой частоты), но не за счет архитектуры. Пока это успешно доказывает, в частности, Pentium 4, а вот обратных доказательств со стороны IA-64 пока не получено.

Для создания 64-разрядных приложений понадобится разработать оптимизирующие компиляторы, информация о которых пока отсутствует. Наконец, современная компьютерная индустрия стоит на пороге выбора новых стандартов ввода/вывода - Infiniband, PCI-X, 3GIO, HyperTransport. Жесткая привязка к технологии HyperTransport способна вывести AMD в лидеры, но и несет в себе определенный риск.

Что касается областей применения, где нужна 64-разрядная архитектура, то AMD указывает в первую очередь на СУБД, САПР, средства создания цифрового «содержания». По мнению автора, процессоры Hammer могут оказаться активно востребованы на быстро растущем сегменте рынка - кластерах (в первую очередь, Linux-кластерах) с двухпроцессорными узлами.

В настоящее время очень популярной является такая платформа на базе Athlon MP; аналогичные системы на базе Pentium 4/Xeon стоят заметно дороже. При сохранении такого соотношения AMD сможет рассчитывать на успех и в этой части рынка.

Работа поддержана РФФИ, проект 01-07-90072.

Литература
  1. Михаил Кузьминский, "Краткий обзор IA-64" . "Открытые системы", 1999, № 9-10
  2. Михаил Кузьминский, "Микроархитектура Itanium" . Открытые системы, № 9, 2001
  3. Михаил Кузьминский, "Z-архитектура. Современные 64-разрядные мэйнфреймы IBM" . "Открытые системы", 2001, № 10
  4. "x86-64 Technology White Paper", 2001, AMD
  5. "AMD 64-Bit Technology. The AMD x86-64 Architecture Programmers Overview", AMD, 2001, Jan.
  6. "AMD Eight-Generation Processor Architecture. White Paper", AMD, 2001, Oct.
  7. F. Weber, "AMD Next Generation Microprocessor Architecture", Microprocessor Forum, 2001

Михаил Кузьминский ([email protected]) - старший научный сотрудник Центра компьютерного обеспечения ИОХ РАН (Москва).