OSDev

для всех
Текущее время: 28 апр 2024, 05:46

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
СообщениеДобавлено: 11 июн 2012, 11:30 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
о когда я смотрю на количество транзисторов в каждом следующем поколении процессоров, у меня возникают сомнения по поводу того насколько сильно разница в сложности набора команд влияет на сложность процессора. У меня складывается ощущение что большая часть сложности приходится на такие фишки как суперскалярность, out-of-order execution, параллельного выполнение одного потока инструкций на нескольких конвейерах, предсказание ветвлений и т.д. и т.п., то есть на вещи, которые напрямую не связаны с набором команд, но напрямую влияют на производительность.

Посмотри на ARM A9 ссылку я на форуме приводил. Там на все эти вещи вместе взятые тратится порядка 30к транзисторов. Так что в современных процессорах больше всего съедает кэш, а не эти примочки.

По поводу энергопотребления на одном форуме видел сравнение Atom с ARM сделанного по одним нормам 45нм.
Так вот Atom выигрывал в энерго эффективности. Условно будем считать сравнение честным, правильным. Так что у intel с этим нету проблем. А вот что касается производительности, то у ARM наблюдается отставание.

По поводу частоты. IBM может и имеет частоту 5ГГц. Но Intel умудряется выполнять сложение с частотой 0.3 такта. Там не только сложение, но и другие команды выполняются в 3 раза быстрее - умножение, деление да и вообще почти всё инструкции.
Так что эффективная частота Intel в 3 раза больше, те равна 7.5-9ГГц.
Так что говорить что сложный процессор не позволяет сделать большую частоту это не доказательство.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июн 2012, 11:42 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
pavia писал(а):
Дело в том, что x86 вытеснит GPU. А ARM будет дополнением для запуска GPU.

ИМХО, все эти GPGPU - реклама чистой воды.
Во-первых - на GPU нет НИКАКОГО стандарта. Т. е. если в IA-32 стандарт сильно мешает, в ARM - еще нет, то на GPU его просто не существует. И никогда не будет, т. к. сила GPU в прямом доступе к микроархитектуре. А если законсервировать микроархитектуру, то гарантировано получите монстра почище IA-32.
Во-вторых - GPU не предназначено для интерактивной обработки.
В-третьих - GPU - это молотилка чисел. В ПК он годен только на погонять какой-нибудь StarCraft, попилить какой-нибудь Bitcoin и похвастаться миллионом очков в каком-нибудь Folding@Home.

ИМХО, сейчас тенденции обратные. Часть ПК медленно, но верно превращается в интеллектуальные терминалы, а часть - сливается с малыми серверами.

Но все это только ИМХО.

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июн 2012, 14:24 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
pavia писал(а):
По поводу частоты. IBM может и имеет частоту 5ГГц. Но Intel умудряется выполнять сложение с частотой 0.3 такта. Там не только сложение, но и другие команды выполняются в 3 раза быстрее - умножение, деление да и вообще почти всё инструкции.
Так что эффективная частота Intel в 3 раза больше, те равна 7.5-9ГГц.


Интел не выполняет сложение с частотой 0,3 такта. "Нормальные" интеловские процессоры (в смысле -- не Атомы), если не изменяет память, способны выполнить до пяти микроопераций за такт за счёт того, что имеют пять исполнительных устройств в одном процессоре, в том числе три для такой арифметики, как сложение -- что приводит к теоретической производительности 5 команд за такт, в т.ч. 3 команды типа сложения. Но это не то же самое, что сложение за 0,3 такта, поскольку это суперскалярное выполнение. Ну а чтобы оно работало, надо не только свободные исполнительные блоки иметь, но ещё и не быть завязанным по данным. Например, последовательность ADD EAX, EBX / ADD EAX, ECX / ADD EDX, EAX займёт три такта, поскольку результат каждой команды используется в следующей. Таким образом, хотя пиковая производительность у интелов и зашкаливает за 10 млрд. оп/с (до 5 инструкций за такт), но достигается она редко, только при очень хорошей последовательности исходных команд.

С другой стороны, с чего Вы взяли, что процессоры мэйнфреймов -- не суперскалярные? Для старших моделей они таковыми были уже в 1970-е, когда каждый процессор занимал шкаф, а то и пару шкафов. А уж впоследствии это стало обязательным, ведь мэйнфреймы просто обязаны были быть существенно более производительными, чем мини-ЭВМ, а потом и ПК. Так что частота 5,2 ГГц отнюдь не означает, что каждый процессор z196 выполняет всего лишь 5,2 млрд. оп/с -- он выполняет больше. Сколько -- надо смотреть, наизусть не помню.

Но у мэйнфреймов ещё и другое достоинство есть: там чаще складываются ситуации, когда операции можно выполнять параллельно. Это является следствием намного более стройной и "ортогональной" архитектуры. Вспомним ту же пересылку строк, которая в ИА-32 завязана на регистры SI,DI,CX. Каждый раз, когда нужно выполнить команду из серии MOVS, программа сначала загружает значения в эти регистры, а нередко ещё и выполняет их сохранение в стеке, а после выполнения команды -- восстанавливает их значения. Эти операции далеко не во всём могут быть выполнены параллельно, что снижает производительность, ну а последующие за MOVS команды, возможно, вообще не смогут быть выполнены, поскольку должны использовать эти регистры как рабочие, а они пока заняты (переименование регистров тоже не всегда помогает). В мэйнфрейме с его 16 регистрами общего назначения, из коих 15 полностью равноправны (регистр 0 не может использоваться для адресации), в этом плане даёт программисту или компилятору куда большую гибкость, что и позволяет лучше распределять данные, а соответственно и использовать суперскалярную природу процессора.

ADD: Вот, посмотрел спецификации на z196: http://www-03.ibm.com/systems/z/hardware/zenterprise/z196.html. В итоге имеем в основе 4-ядерные процессоры, выполненные по давно уже устаревшей 45-нм технологии. Каждый из процессоров работает, как говорилось, на частоте 5,2 ГГц и выполняет до 52 млрд. оп/с, что даёт 13 млрд. на ядро -- грубо говоря, 2,5 команды на такт, что и отражает реальную способность к суперскалярной обработке. Вместе с тем, у каждого процессора имеется 24 Мбайта кэша третьего уровня, а у каждого ядра -- 1,5 Мбайта второго и 128 Кбайт первого уровней, т.е. по кэшам этот процессор превосходит интеловские в 3 раза. Соответственно, в 3 раза больше транзисторов уходит именно на кэш -- а напомню, процессоры z196 сделаны по 45-нм технологии, а отнюдь не по 22-нм. Таким образом, с точки зрения эффективного использования технологий ИБМ вчистую уделывает Интел (вспомните параметры даже лучших 45-нм кристаллов ИА-32). К этому можно добавить, что всего в машине 96 ядер, т.е. 24 физических процессора, и до 3 Тбайт ОЗУ. Такой вот небольшой сервер :)


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июн 2012, 14:32 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
418ImATeapot писал(а):
ИМХО, все эти GPGPU - реклама чистой воды.


Тут скорей не слишком удачное название. GP добавили в том смысле, что графический процессор используется не для графических вычислений, а для каких-то других, к графике отношения не имеющих. Но это, конечно, не делает его хорошим универсальным процессором: он как был, так и остаётся узкоспециализированным. Там, где надо перерабатывать данные в 100500 потоков по одинаковому алгоритму, они действительно проявляют себя великолепно, но на задачах, интенсивно использующих условные переходы и т.п. вещи (т.е. не "тупо-прямолинейных"), их производительность резко падает, а на не поддающихся распараллеливанию и вовсе существенно ниже, чем у обычных процессоров. Так что они как были, так и останутся специализированными вычислительными блоками и не смогут вытеснить обычные центральные процессоры.

А вот вытеснение ИА-32 АРМом с позиции ЦП, ИМХО, постепенно будет идти, поскольку единственное, что действительно удерживает ИА-32 в качестве основы современных ПК -- это море разработанного под Винду программного обеспечения и отсутствие возможности вот просто так взять и перенести всё это на АРМ.

Отставание же, причём существенное, в производительности АРМов от старших ИА-32 не играет существенной роли, поскольку оно, во-первых, вызвано отсутствием "тяжёлых" задач для АРМов (в силу особенностей бегающего на них ПО), а во-вторых, может быть в короткое время, буквально одним рывком, если не полностью преодолено, то очень существенно снижено, если в том возникнет необходимость, т.е. если появится спрос именно на очень производительные АРМы.

В общем, пожуём-увидим, и думаю, довольно скоро. Кардинальные изменения в положении процессоров не будут быстрыми, но тенденции проявятся.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 11 июн 2012, 15:15 
Аватара пользователя

Зарегистрирован: 16 май 2007, 23:46
Сообщения: 1126
Цитата:
Интел не выполняет сложение с частотой 0,3 такта. "Нормальные" интеловские процессоры (в смысле -- не Атомы), если не изменяет память, способны выполнить до пяти микроопераций за такт за счёт того, что имеют пять исполнительных устройств в одном процессоре, в том числе три для такой арифметики, как сложение -- что приводит к теоретической производительности 5 команд за такт, в т.ч. 3 команды типа сложения. Но это не то же самое, что сложение за 0,3 такта, поскольку это суперскалярное выполнение.

Скалярность тут не причём. Весь поток разбивается на микро команды и направляются в исполнительные устройства. Так вот каждое такое устройство может за такт обработать 3 инструкции.
Это говорит о том что частота их в 3 раза выше. Напрямую intel нигде не пишет, но таблица задержек косвенно объетом говорит. А вообще ещё в Pentium II второй сложение и умножение выполнялось на удвоенной скорости и обетом было прямо написано в руководстве по оптимизации.

Да зависимость по данным там накладывается. НО деление и умножение в C2D выполняется быстрее чем в P4 в 3 раза(причем как Latency так и Throughput ). А вы помните что они реализуются через сложение и вычитание, те циклически. А это и говорит о том что частота вычислений повышена.

По поводу теоретических 5 команд. Это не так, как я сказал частота больше в 3 раза то имеем 15. Да на практике это не достижима. Исключение синтетический тест с nop где все 15 нопов выполняются за 1 такт.
Но на практике интересно уменьшение Latency в 3 раза по командам которые требуют много тактов это дает большой плюс, хотя таких команд и немного. Это такие команды как умножение, деление, синус косинус, а в вычислительных задачах умножение играет немалую роль.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июн 2012, 13:53 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
SII писал(а):
Во-первых, в суперкомпьютеры она так и не выросла. Всякие там кластеры и т.п. -- это не "настоящий" суперкомпьютер, а просто множество отдельных весьма посредственных компьютеров, решающих некую очень хорошо распараллеливаемую задачу.

Как это не выросла? Рейтинг ТОП-500, в последнем рейтинге (ноябрь 2011) в первой десятке:
3 место - Cray XT5, Opteron
4 - Dawning TC3600, Xeon+Nvidia
5 - HP ProLiant, Xeon+Nvidia
6 - Cray XE6, Opteron
7 - Altix, Xeon
8 - Cray XE6, Opteron
10 - IBM BladeCenter, Cell+Opteron
Итого, 7 из 10 мощнейших суперкомпьютеров мира основаны на архитектуре x86/amd64.
Далее. Мы уже беседовали на тему суперкомпьютеров, но я повторюсь, - параллельность в той или иной форме была с самых первых суперкомпьютеров и корнями уходит в конвейеры времён Иллиака и CDC. Параллельность - неотъемлемая часть суперкомпьютерных вычислений.

SII писал(а):
В тех же случаях, когда задача не поддаётся распараллеливанию, толку от кластеров ровно 0: там нужен всего один процессор, но как можно более быстрый, а с этим у ИА-32 достаточно плохо.

И тут неправда. В расчёте на один поток ИА-32 хоть и не ставит абсолютного рекорда (если не ошибаюсь, рекорд действительно принадлежит IBM z196), но всё же прочно занимает 2-3 место. В данном случае я конечно говорю не о потенциале архитектуры, а о практических реализациях, т.е. работающих камнях.

SII писал(а):
Во-вторых, даже в плане кластеров в последние годы собственно ИА-32 уходят в тень, поскольку основную вычислительную мощь машин стали обеспечивать графические процессоры (от Невидии точно, насчёт АМД не скажу, но технически возможно), ну а ЦП там играют роль лишь управляющих процессоров, которые "скармливают" реальным "работникам" задачи и выполняют всякие вспомогательные функции вроде ввода-вывода.

И это тоже неправда. Nvidia CUDA, конечно популярная технология среди суперкомпьютеров и 3 из топ-10 суперкомпьютеров её используют, но она обладает рядом неприятных ограничений. Например, доступ к памяти сильно неоднороден, а количество родной памяти на одну процессорную единицу достаточно ограничено. В тех трёх суперкомпьютерных системах из топ-10, которые используют Nvidia, ситуация как раз обратная - именно они играют вспомогательную роль, решая те специфические задачи, которые могут эффективно на них выполняться.

SII писал(а):
В общем, ИА-32 -- самая известная и доступная для программирования архитектура, но не самая распространённая, не самая мощная и т.д.

И это не правда. Она, без сомнения, самая распространённая архитектура для настольных ПК. Конечно в абсолютном исчислении самая распространённая архитектура - ARM, но мы всё же не будем сравнивать смартфоны с десктопами. Это разные весовые категории.

SII писал(а):
Круг её применения будет только сокращаться, причём бить её будет АРМ -- далеко не идеальная, кстати, архитектура, но всё же намного более вменяемая, чем ИА-32. Главная причина здесь -- крайне высокая сложность процессоров ИА-32, объясняющаяся откровенно дурной системной архитектурой (все эти дурацкие ГДТ, ЛДТ, ИДТ, ТСС, сегменты и т.п.) и не менее дурной системой команд

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

SII писал(а):
бредовость системы команд была очевидна уже на момент появления 8086: слишком уж кривой и убогой она была по сравнению и с 16-разрядными современниками (Z8000 и 68000), и с более ранними мини-ЭВМ, особенно с PDP-11.

Ни Z8000, ни 68000, ни PDP-11 (с менеджером памяти) не являются истинно 16-битными. А у Z8000 к тому же своей кривизны хватает. PDP-11, кстати, тоже не идеал, с байтами работать в ней не просто. Что касается сегментов 8086, то и Z8000 и PDP-11 при 16-битности внутренней архитектуры имели аналогичный достаточно кривой менеджер памяти, чтобы адресовать больше 64к.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июн 2012, 14:32 
Аватара пользователя

Зарегистрирован: 20 апр 2011, 10:54
Сообщения: 145
Yoda писал(а):
ARM изначально задумывался не для настольных систем и мэйнфреймов, а исключительно для хэндхелд устройств, как предельно простая в плане реализации архитектура.

???
Домашний компьютер Acorn Archimedes выпуска 1987. CPU - ARM2 (одно из первых применений АРМ). :ugeek: Кстати сам АРМ - изделие той же компании.

_________________
Found a CPU. LAPIC ID: 00


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июн 2012, 15:17 
Аватара пользователя

Зарегистрирован: 14 мар 2011, 12:31
Сообщения: 970
Откуда: Дагоба
В то время ни BBC micro, ни Acorn Archimedes (как правильно подмечено, домашние компьютеры) ну никак не относились к категориям настольных систем (например, семейство PDP) и мейнфреймов (например IBM 360/370). Все эти Архимедесы задумывались как баловство и получились баловством.

_________________
Yet Other Developer of Architecture.
The mistery of Yoda’s speech uncovered is:
Just an old Forth programmer Yoda was.

<<< OS Boot Tools. >>>


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 13 июн 2012, 23:45 

Зарегистрирован: 28 окт 2007, 18:33
Сообщения: 1418
Yoda, знаете, дискутировать с Вами действительно бессмысленно, поскольку основная масса аргументов у Вас, скажем так, странновата, если не является вообще полным бредом. Так что не буду на этот раз тратить времени, замечу лишь, что в последнем Вашем посте к полному бреду однозначно относится утверждение о том, что Z8000, 68000 и PDP-11 -- не "истинно" 16-разрядные машины. То, что они при определённых условиях могли формировать физические адреса, превышающие 16 разрядов, не означает, что они не 16-разрядные. Иначе Вам надо записать в 16-разрядные 8080 и Z80 (которые на самом деле 8-разрядные), а в 24-разрядные -- 32-разрядные мэйнфреймы IBM. Да и способность в определённых случаях работать с данными удвоенного размера ничего не меняет: регистры-то 16-разрядные были, и для подобной обработки они спаривались. Ну и т.п. и т.д.

Что ж до суперкомпьютеров, возможно, Вы в чём-то и правы. Но лично я не считаю и не буду считать суперкомпьютером (в единственном числе) машину, состоящую из множества компьютеров. Для меня суперкомпьютер -- это единый агрегат, общение между узлами которого происходит по внутренним шинам с прямой адресацией (к примеру, PCI Express), а не внешним интерфейсам ввода-вывода (типа Ethernet, например); память которого обычно прямо доступна всем процессорам, пускай и с разной скоростью (хотя тут уже могут быть некоторые варианты -- очень уж специфические агрегаты); и управляемый одной-единственной копией операционной системы, а не кучей копий, пускай и идентичных, как в случае кластера. Соответственно, смею предположить, что мы с Вами расходимся из-за разницы в терминологии, и то, что для меня является суперкомпьютером, не только в десятку, но и во весь ТОП-500 не попадёт, поскольку суперпроизводительность достигается только суперпараллельностью, а в рамках одного компьютера она ограничена чисто физически (длины шин и т.п.).

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

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

Пы.Сы. А менеджер (или диспетчер, как переводили MMU в советской документации) памяти PDP-11 ну ничего общего с сегментацией 8086 не имел -- совсем другой принцип, который куда ближе к нормальной страничной организации виртуальной памяти с той лишь разницей, что таблица страниц хранилась в регистрах самого MMU, а не в ОЗУ, и имела всего по 8 записей для каждого из режимов работы. Вот в Z8000 действительно довольно близко к 8086, однако отдельных сегментных регистров не было -- в их роли выступали обычные РОНы, да и полноценная защита памяти обеспечивалась, что у Интел появилось только в 80286. А ещё для Z8000 была микросхема и для нормальной страничной виртуальной памяти, если склероз не изменяет, но смотреть документацию лениво...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 14 июн 2012, 02:24 

Зарегистрирован: 18 апр 2010, 15:59
Сообщения: 155
SII, без обид, но вы не совсем правы. Аргументация Yoda-ы выглядит достаточно убедительно, хоть и хромает местами (по поводу разрядности), хотя и ваша точка зрения весьма интересна и достаточно убедительна. Хотя не скрою, что вы выглядите весьма рьяным апологетом ARM (на грани фанатичности). В во всей этой дискуссии мне интересны два момента:
1) Почему вы так рьяно цепляетесь за систему команд (ее кривость, сложность выборки и т.д.), если ее реализация по сути скрыта от программиста, слабо влияет на сложность процессора (вы ранее указывали, что основная сложность нарастает за счет кэшей встроенных контроллеров и т.д.), и сильно влияет в лучшую сторону на производительность. Так как на мой взгляд, такие вещи как умножение и деление реализованные аппаратно будут более эффективные чем извращения с арифметикой на операциях сложения/вычитания/сдвига, ведь если я правильно помню, то в ранних ARM-ах, аппаратного умножения и деления не было. Чистые RISC-и если я правильно помню считались очень перспективными лет 15 назад, когда считалось, что за счет упрощения процессора удастся получить значительно более высокие рабочие частоты и в итоге более высокую производительность. Однако с тех прошло уже много времени, ничего по сути не изменилось и энтузиазм широких масс поугас. Тот же Apple приложивший руку к появлению компании ARM, в своих компьютерах использовал IBM-овские POWER-ы а потом и вовсе перешел на x86 и вроде как никогда не рыпался перейти на ARM. Я не могу понять, что по-вашему мнению, кроме ровной системы команд высокая ценность которой для меня не совсем понятна, ARM может противопоставить x86 в сфере высокопроизводительных вычислений?
2) Что вы понимаете под суперкомпьютером? Пока понятно только то, что вы оперируете каким-то своим собственным определением отличным от общепринятого, но не понятно каким, что вводит в некоторое замешательство. Могли бы вы развернуть свою точку зрения и привести примеры таких машин? Я пока себе не представляю высокопроизводительные вычисления без распараллеливания.

Сори если что не так. Это не троллинг :). Мне просто действительно интересно.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 25 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
cron
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB