На сколько я знаю Intel скопировал эту архитектуру у AMD. Мне хотелось бы узнать полностью ли они совместимы. Доку по EM64T еще несмотрел. Вот и интересно стоит ли.
Из того, что успел почитать - вроде бы один к одному... Самый простой способ проверить я уже себе придумал: поставить Win64 на свой рабочий Prescott и посмотреть, что будет
AFAIK обе компании имеют соглашение о расширения процессора - опкоды декодируются и воспринимаются процессорами обоих фирм одинаково, результат операций одинаков, но способ внутреннего исполнения команд разный, он то и сокрыт от реализации. Короче говоря фирмы могут использовать расширения профессора другой фирмы (пример SSEx on AMD), но используя свою логику в исполнении. Не исключение и данные 64битные расширения.
asmfan Да, но соглашение по названию SSEx - совершенно однозначное, только поначалу AMD обзывали у себя поддержку SSE как 3DNow! Professional, но потом исправились. А здесь полный бардак - кто называет амд-шное расширение AMD64, хотя это по-хорошему все же название архитектуры, типа IA-32, кто говорит x86-64. А вот Intel называет EM64T. Я немного утомился ковырять ихние мануалы по схеме "найди десять отличий", весьма утомительно, учитывая достаточно различную манеру изложения. Не нашел ни одного, но кто говорит, что их нет? Но познавательно, например с удивлением нашел у интела SYSCALL/SYSRET. Казалось бы - АМД городили SYSENTER/SYSEXIT для совместимости с Интел, а Интел чего - для совместимости с АМД, что ли? Или оно лучше работает? (каюсь, вот эти хитрые команды не изучал)
3DNow! и 3DNow!+ это не одно и то же, что и SSEx, смотрите справочник по инструкциям. AMD64 - это 64битный процессор (и его архитектура) у AMD. EMT64 - эмуляция архитектуры у Intel.
Самое главное чтобы количество всех добавленных общедоступных регистров совпадало 16х ХММ и дофига генерал пурпос регистерс... Ну и чтобы логика работы команд совпадала ну и их машинное представление желательно тоже...до кучи
IceStudent 3DNow!+ это 3DNow! Extention, а 3DNow+ вместе с SSE (только, без SSE2 и т.п.) AMD называла некоторое время 3DNow Professional.
IceStudent Пофлеймить что ли насчет "реализации" ) Если подходить философски и не заниматься разборками, кто из титанов что первый придумал, то AMD64 и EM64T по сути есть различные названия одной и той же технологии - а именно очередного расширения архитектуры IA-32. В отличие от кардинальных изменений, сделанных в IA-64 (благодаря которым она и не получила широкого распространения), нововедения AMD64/EM64T при желании вполне можно поставить в один ряд с PAE36, MMX и SSExxx. Поэтому присваивать этой технологии славное имя AMD64 как-то не очень корректно, учитывая немалые заслуги Intel в развитии архитектуры IA-32. Ну и разумеется смириться с таким названием Intel никак не может и придумывает свое индифферентное название EM64T, которое на мой взгляд больше соответсвует действительному положению вещей. А что касается "реализации", то это уже из области не архитектуры, а микроархитектуры, которая как правило хранится за семью печатями и выявляется на свет только в общих обрывочных представлениях, слухах и домысливаниях исследователей железа
для прикладного программиста различий вроде нет между интеловской EM64T и AMD64. imho вся эта 64-битность -- всего лишь повод для амд/мисрософт срубить капусты на лохах, которые ведутся на модные цифры '64', наивно полагая, что всё станет в 2 раза быстрее и лучше. Лично не вижу никакой потребности в 64х битах, ни в памяти, ни в регистрах, ни в чем либо. Размер программ/данных увеличится, возрастут требования к размеру памяти/кэшей, неудобней программировать станет, цены подскочут вверх за то, что почти не будет использоваться... stupid crowd...
Я вот думаю а почему Intel не пошла по пути дальнейшего проталкивания Итиниум на ранок? Я думаю при желании можно было сделать эмуляцию x86 на приемлемой скорости. Или опять таки пока закон Мура действует париться не следует? Насколько я знаю AMD64 всетаки немного олтичалось от EMT64 в некоторых "старых" процессорах. В AMD64 были доступны 2 дополнительные команды, сугубо для тестирования. но щас вроде как 1к1
_BC_, я тоже так думаю. Если не ошибаюсь P3 мог работать до 64ГБ. И для персоналок это помоему будет достаточно еще лет 20. для прикладного программиста различий вроде нет это хорошо. Интерсно как на счет "перехода в 64bit режим" и "основных регистров упр. памятью, прерываний и т.д.".
Глупо говорить, что нету смысла в 64 битности )))))))) " imho вся эта 64-битность -- всего лишь повод для амд/мисрософт срубить капусты на лохах, которые ведутся на модные цифры '64' " Самое идиотское высказывания. 64-разряда нужны, я бы сказал необходимы для дальнейшего совершенствования ПО. И эта технология AMD64 разрабатывалась, если мне память не изменяет около 5 лет несколькими корпорациаями, в том числе и славным AMD. Intel же слизала эту технологию, переименовав. А то что добавилось в неё 8 регистров общего назначения это ооооооооооооооооооочень важно поверьте!!!!!! К тому же кто вам сказал что всё должно в 2 раза быть быстрее?? Это просто революционная архитектура, ведь на 32 разряда перешли около 10 лет назад. Вообще не знаете - не пишите! Ламеры.. >:-|
Ты не забывай, что для доступа к 64-х разрядным регистрам перед командой должен вставляться определенный преффикс (кроме комманд PUSH POP и некоторыми другими) в том числе и для доступа к этим дополнительным 8-ми регистрам - т.е. объем программы "автоматически" увеличивается раза в полтора взамен сомнительного "увеличения" скорости работы. P.S. ПО теме можно почитать статью КК: http://www.insidepro.com/kk/072/072r.shtml
Приведи примеры, которые покажут острую потребность для x86 в 64-битных регистрах/операндах/данных и 2^64 байтах памяти для наиболее распространенных программ. Специфические задачи типа мат.алгоритмов не в счет, они весьма редки. Я такие примеры придумать не могу. Память? Даже на данный момент компьютеры с >2 Гб памяти -- редкость, не говоря о 4Гб или PAE'вских 64Гб. Про псевдо-суперпригодность x86-64 для математики -- всё равно все серьёзные вещи будут сводиться к сопроцессору, размер РОН особо не повлияет на скорость мат.вычислений. Насчет криптоалгоритмов -- в x86 уже заложено много возможностей (не воспользованных, как правило) для их оптимизации по скорости (тому пример MMX-реализация AES, встреченная в AlphaAgent'е). Так найди же достойные примеры, чтобы "Ламеры" увидели и уверовали. следуя твоей логике, амд слизала у Intel всю архитектуру IA32, x87, и тд. Intel возможно просто руководствовалась здравым смыслом, не тратя сил и времени на бредовые (пока) идеи вроде x86-64, м.б., учитывая свой опыт с IA64. P.S. обязательно купи лицензионную висту.
_BC_ Пожалуйста. Фильтр. Кодеки. Сжатие и разжатие. Шифрование. - Все это должно работать в 64/32 раза быстрее. Копирования памяти. Поиск в памяти. Сравнение строк. Итд. Многие алгоритмы получат, прирос в скорости. Да ты прав MMX и SSEx не сильно у нас востребованы. Но когда основная логика перейдет на 64Бита. Ты волей не волей должен будешь их использовать. Вот поэтому только и стоит переходить на 64. Тогда многие(все) программы обретут прирост в скорости. Да пока смысла в нет. Но все не стоит на мести, еще каких то лет 5 и 4Гб будет мало. _BC_ А почему ты говоришь x86, а не 8086 или 8080? Сидели бы дальше на 8080 с 8 разрядными регистрами.
Pavia Ты хорошо подумал, прежде чем взяться за перо )) 64 бита для побайтных алгоритмов поиска и сравнения строк !!! До такого аргумента наверное даже пиарщики M$, AMD и Intel вместе взятые наверное не додумались бы. Для копирования памяти есть способы и покруче (movntq, movntdq). И алгоритмов шифрования, завязанных на 32 и 16 битные данные тоже предостаточно. Одним словом "должно работать в 64/32 раза быстрее" только то, что по своей природе является 64 битным (или кратным), а такого добра, как заметил _BC_, не так уж и много. Но главное то опять проблема совместимости. Если уж повсеместное использование SSEх тормозится по причине совместимости, то что говорить о 64 битах - ведь тут кроме процессоров еще и 64-битные ОС должны наводнить рынок. Пока этого не произодейт repne будет наслаждаться 8-ю дополнительными регистрами и чесать репу - куда бы их прикрутить, кроме как к собственной кофеварке, ну или писать свои проги в двух вариантах - один для отсталых 32-мерных ламеров, другой для 64-битной души во имя прогресса. А вот тут то за счет удвоения ВВП, гигабайты и полезут вверх и настанет писец ламерам и светлое будущее для остального прогрессивного человечества ))
Вроде бы MMX/SSEx как раз специально для фильтров и аудио/видео-кодеков делали, с учетом типовых операций в них используемых. Не думаю, что банальное увеличение в 2 раза числа и размера регистров лучше чем специализированные команды. Насчет шифрования -- afair, многие алгоритмы разрабатывались специально заточенными под определенный размер слова машины и, к тому же, у некоторых размер блока более 64 бит -- так что явное преимущество 64-битных регистров перед тем же распараллеливанием в MMX/SSE весьма сомнительно. Для ассиметрики вроде должен быть хороший бонус от 64 бит... но это всё из 'редких' задач. мм, здесь afaik узкое место не разрядность, а быстродействие памяти. Разрядность внешних операций уже и так давно не 32 бита. Не спорю, есть некоторые алгоритмы, где будет выигрыш (вплоть до х2)... но что-то их маловато. Это почему же? Какая связь между наборами инструкций для параллельной обработки данных (их основное назначение) и размером регистров общего назначения (к примеру)? х86 = 8086 -- PIV+ (и вообще, всё совместимое с IA32)