Читаем Журнал «Компьютерра» №41 от 08 ноября 2005 года полностью

Второе «слабое место» 64-битных процессоров в том, что обработка 64-битных данных заведомо требует больше времени, чем обработка 32-битных, и, что еще важнее, 64-битные программы и данные к ним занимают в оперативной памяти гораздо больше места. А поскольку оперативная память - ресурс медленный и дефицитный (кэш-память, особенно кэши первого уровня, имеет конечные размеры), то вместе с возросшей вычислительной сложностью это приводит к сильному падению «чистой» производительности процессора в 64-битных режимах. А что вы хотели, за все нужно платить, и в классическом варианте за поддержку большого объема памяти, устранение «проблемы мусора» и упрощение процедуры маппинга файлов на память приходится расплачиваться сравнительно невысоким быстродействием процессора, подсистемы оперативной памяти и несовместимостью с ранее написанными драйверами. Разумеется, в перспективе мы никуда от этого не уйдем, но сегодня потенциальные недостатки 64-битности для обычного пользователя перевешивают ее потенциальные достоинства.

Но кто сказал, что x86-64 - это только 64-битные указатели, команды и регистры GPR?..


IA-32 versus x86-64


Переделывая почти весь процессор и весь набор поддерживаемых им инструкций, мы все равно получаем несовместимость в 64-битном режиме со старыми программами. Так почему бы заодно не исправить ошибки предшественников и не убрать из x86 устаревшие ограничения? 64-битный режим не просто улучшенная версия IA-32 ISA, фактически это следующая версия архитектуры x86, во многом лишенная «родовых травм» этого семейства, начинавшегося с микроконтроллеров и долгое время не претендовавшего на «серьезное» использование.

Первое и, пожалуй, главное преимущество, которое получила архитектура x86-64, - долгожданная поддержка шестнадцати регистров общего назначения и шестнадцати регистров XMM. На первый взгляд это чисто количественное изменение, но на самом деле - принципиальная во всех отношениях доработка архитектуры IA-32. Судите сами: у современного IA-32 восемь регистров общего назначения (EAX, EBX, ECX, EDX, EDI, ESI, EBP и ESP), восемь 64-битных регистров MMX (MMX0-MMX7) и восемь же регистров SSE (XMM0-XMM7). Не замечаете ничего странного? Откуда вообще взялась цифра восемь? Для ответа на этот вопрос нам потребуется обратиться к «основам основ» - к формату x86-инструкций.

Каждая инструкция представляет собой длинную комбинацию из пяти составляющих: а) опкода (operation code, opcode), описывающего, что нужно сделать с данными, б) поля ModR/M, в котором записывается «подвид» инструкции, режим адресации памяти (как и у всякого CISC-процессорa, этих подвидов у x86 много) и один или два регистра, используемых инструкцией, в) поля SIB (Scale-Index-Base), в котором при некоторых режимах адресации памяти записываются еще два регистра (база и индекс) и масштаб, г) полей Displacement и Immediate, в них записываются используемые инструкцией константы, д) набора «приставок» (prefixes), позволяющих задать «нестандартные» режимы использования инструкции. Обязательным является только поле опкода, все остальные опциональны и могут отсутствовать[Теперь понимаете, что имелось в виду под «непомерной сложностью декодирования CISC-инструкций»?].

Оставим в стороне вопрос о том, для чего нужна столь сложная конструкция и как она работает, и сосредоточимся на одном-единственном интересующем нас аспекте: как в x86 кодируются используемые инструкциями операнды. Смотрите: поля Reg/Opcode[В принципе здесь может быть записан не регистр, а (для некоторых инструкций) дополнительный опкод, указывающий на ту или иную разновидность одной и той же инструкции] и R/M[Здесь тоже не всегда записывается регистр - иногда это поле используют для кодирования одной из 24 разновидностей режимов адресации памяти. В x86 много подобных «тонкостей»] занимают по три бита, поля Index и Base в SIB - тоже трехбитные. А трехбитных комбинаций, как легко посчитать, всего восемь, именно столько регистров может быть одновременно доступно любой программе. Так было задумано еще три десятка лет назад, при проектировании Intel 8086, и с тех пор ничего не изменилось, хотя Pentium 4 отличается от 8086, как небо от земли. Восемь регистров современных Athlon и Pentium не блажь разработчиков и не техническая необходимость, а фундаментальное ограничение самого набора инструкций x86.

Перейти на страницу:

Все книги серии Компьютерра

Похожие книги

«Если», 2003 № 03
«Если», 2003 № 03

Кейдж БЕЙКЕР. КАРАВАНЛюбители острых ощущений могут готовиться к походу. Путь неблизкий, мир странный, компания подобралась душевная — что еще надо?Геннадий ПРАШКЕВИЧ. ПЕРСТЕНЬ НА ТРИ ЖЕЛАНИЯА как у вас там с фамилией?Стивен ПАЙЗИКС. ЗАВИСИМОСТЬКто-то берется за спицы из любви к рукоделию, кто-то — успокоить нервы, а кто-то — совсем с иной целью.Кирилл БЕНЕДИКТОВ. КОНКИСТАДОР В СТРАНЕ СНОВПалач смакует свою роль, забавляясь наивным неведением «клиента». А тот все толкует о каком-то Пути Богов.Александр ЗОРИЧ. ВТОРОЙ ПОДВИГ ЗИГФРИДАПрекрасная Кримхильда видела много подвигов в свою честь, но о таком и помыслить не смела.Еугениуш ДЕМБСКИЙ. ВОЛЯ ДРАКОНАХотите рассмотреть изнанку героической фэнтези?Андрей ЛЕГОСТАЕВ. ТОСТ В ЧЕСТЬ ПОБЕДИТЕЛЯПраво же, так и вспоминается Олимпиада в Солт-Лейк-Сити…ВИДЕОДРОМДеликатесы города потерянных детей… Звонят, откройте телевизор… Экранизации не горят!.. Явление Горлума народу.ВЕРНИСАЖМы говорили — «героическая фэнтези», подразумеваем — «Фразетта».Виталий КАПЛАН. ДИНАМО-МАШИНА, ИЛИ ВЕЧНЫЙ ДВИГАТЕЛЬ ФАНТАСТИКИПисатели на скоростных магистралях… А может, притормозить?ЭКСПЕРТИЗА ТЕМЫ«В принципе, я согласен, но хочу возразить…»РЕЦЕНЗИИЗаглянем в книжный магазин.КУРСОРНовый Grand Master, творческие планы, неизвестная книга Дж. P.P. Толкина и прочие новости.Мария ГАЛИНА. УНИВЕРСАМ ПРОТИВ УНИВЕРСУМАПисателю хорошо известно, на чем стоит мир. Особенно, если мир плоский.АЛЬТЕРНАТИВНАЯ РЕАЛЬНОСТЬПредставляем второго победителя конкурса для начинающих фантастов.Глеб ЕЛИСЕЕВ. КОЛЛЕКТИВНЫЙ РАЗУМИтоги голосования на сайте «Русская фантастика».Бела КЛЮЕВА. ЗДРАВСТВУЙТЕ, Я ВАША БАБУШКА!…заявляет старейший редактор фантастики и имеет на это звание полное право.ПЕРСОНАЛИИИнтернациональный экипаж номера.

Белла Клюева , Виталий Каплан , Дмитрий Володихин , Евгениуш Дембский , Екатерина Постникова

Фантастика / Фэнтези / Эссе / Проза / Журналы, газеты / Научная Фантастика
«Если», 2000 № 07
«Если», 2000 № 07

ФАНТАСТИКАЕжемесячный журналСодержание:Марина и Сергей Дяченко. ПОСЛЕДНИЙ ДОН КИХОТ, повестьНельсон Бонд. КНИЖНАЯ ЛАВКА, рассказШ. Н. Дайер. НОСТАЛЬДЖИНАВТЫ, рассказВИДЕОДРОМ*Адепты жанра--- Сергей Кудрявцев. ФИНСКИЙ КРЕПКИЙ ОРЕШЕК, статья*Фестиваль--- Николай Кузнецов. ПОБЕДА ВИРТУАЛЬНОГО НАД КОСМИЧЕСКИМ, статья*Рецензии*Писатель о кино--- Сергей Лукьяненко. МАУС-АМЕРИКАНУС, ИЛИ ВИДОВАЯ ПОЛИТКОРРЕКТНОСТЬ, статья*Экранизация--- Сергей Шикарев. ХОРОШО ЗАБЫТОЕ СТАРОЕ, статьяДэвид Хэст. ЯЩИК ПАНДОРЫ, рассказЭнтони Бёрджесс. МУЗА, рассказОрсон Скотт Кард. СОВЕТНИК ПО ИНВЕСТИЦИЯМ, повестьЛитературный портрет*Вл. Гаков. ПРОПОВЕДЬ-БЕСТСЕЛЛЕР, статьяНиколь Монтгомери. НЕРАЗЛУЧНЫЕ, повестьВладимир Михайлов. ХОЖДЕНИЕ СКВОЗЬ ЭРЫ, начало эссеДмитрий Володихин. ПОТАНЦУЕМ?… статьяРецензииКрупный план*Виталий Каплан. НАЧАЛО ОТВЕТА, статья2100: история будущего*Леонид Кудрявцев. СЛУЧАЙНАЯ НАХОДКА, статьяКурсорКонсилиум*Борис Стругацкий: «ОТВЕТ ОЧЕВИДЕН И ОДНОЗНАЧЕН».PersonaliaНа обложке иллюстрация Игоря Тарачкова к повести Орсона Карда «Советник по инвестициям».Иллюстрации: С. Шехова, Т. Ваниной, О. Дунаевой, О. Васильева, А. Юрьевой, И. Тарачкова, А. Филиппова. 

Борис Натанович Стругацкий , Владимир Гаков , Журнал «Если» , Леонид Викторович Кудрявцев , Николай Викторович Кузнецов

Фантастика / Журналы, газеты / Научная Фантастика