Нет необходимости проверять порты. Но появляется необходимость расставлять МОПы в линии.
TyyOx91 писал(а):
Мы вроде бы говорим про SSE4, который исполняется на FP pipeline который реализован как и интеловский - единый шедулер со специализированными портами. Причём здесь целочисленный конвейер?
Буфер планировщика для операций плавающей арифметики устроен совершенно иначе. Он организован в виде отдельной очереди, состоящей из 12 элементов (строк). Каждая строка состоит из трёх позиций — по одной на каждую позицию МОПа в группе. Если вновь поступившая группа МОПов содержит хотя бы одну операцию с плавающей точкой, то для неё отводится новая строка в буфере. РОПы (микрооперации) плавающей арифметики помещаются в позиции строки, соответствующие позициям исходного МОПа в группе (остальные позиции остаются незанятыми). В отличие от очереди ALU/AGU, эти позиции не связаны с конкретными функциональными устройствами. Функциональных устройств FPU тоже три, но они разделяются по типам — FADD для операций сложения, FMUL для операций умножения, и FMISC — для пересылок и прочих вспомогательных операций.
Цитата:
Когда все «непустые» РОПы из строки отправляются на исполнение, эта строка удаляется и очередь укорачивается, освобождая место для новой группы РОПов. Тем самым очередь планировщика FPU по своей организации напоминает игру «Тетрис» - только в ней удаление целой строки происходит при её опустошении (а не при заполнении, как в «Тетрисе»).
P8
Цитата:
К каждому из трёх первых портов подсоединены устройства, выполняющие операции целочисленной арифметики и логики, а также некоторые операции MMX и SSE. Самые простые операции могут исполняться в устройствах на всех трёх портах, а операции сдвига и операции целочисленного сложения MMX и SSE — на двух портах. К указанным портам подсоединены также специфические функциональные устройства. На одном из портов находится устройство для выполнения операций перехода (включая объединённые операции сравнения и условного перехода), а также так называемое устройство пересылок для арифметики с плавающей точкой, на другом — устройство сложения с плавающей точкой, и на третьем — устройство умножения и деления с плавающей точкой. Некоторые менее частые арифметические и логические операции также исполняются в специализированных функциональных устройствах на соответствующих портах.
Увеличение числа универсальных устройств с двух до трёх (вместе с увеличением количества портов запуска) позволяет значительно повысить производительность процессора на целочисленных и логических операциях. В сочетании с выносом устройства для выполнения переходов на отдельный порт это позволяет выполнять операции SSE в полном темпе, по две упакованные арифметические операции за такт. При отсутствии дополнительного порта и устройств ALU функциональные устройства SSE простаивали бы в моменты запуска вспомогательных операций и операций перехода, и не достигался бы полный темп.
_________________ Кратчайшее расстояние между двумя точками это точка.
Dogmatik Ну и что дальше? Вы только подтвердили моё утверждение. (Технически реализация немного отличается, но принцип тот же самый - единая очередь без привязки к конкретным портам с динамической отправкой микроинструкций на выполнение).
P8:
В процессоре P8 используется единая очередь планировщика размером в 32 элемента, общая для всех типов операций. МОПы выбираются на исполнение из этой очереди во внеочередном порядке, по мере готовности аргументов операций
K8:
РОПы (микрооперации) плавающей арифметики помещаются в позиции строки, соответствующие позициям исходного МОПа в группе (остальные позиции остаются незанятыми). В отличие от очереди ALU/AGU, эти позиции не связаны с конкретными функциональными устройствами. РОПы отсылаются на исполнение в соответствующие функциональные устройства FPU по мере готовности операндов. В каждом такте в каждое устройство может быть отправлен один РОП. Некоторые РОПы могут исполняться в различных функциональных устройствах — в этом случае алгоритм выборки пытается сформировать оптимальный набор операций для запуска на исполнение в текущем такте.
Кстати, вы так и не привели доводов за появление SSE4 уже в ближайших ревизиях.
Ну и что дальше? Вы только подтвердили моё утверждение.
а где вы там обнаружили специализированные порты? (К8)
Цитата:
Когда все «непустые» РОПы из строки отправляются на исполнение, эта строка удаляется и очередь укорачивается, освобождая место для новой группы РОПов. Тем самым очередь планировщика FPU по своей организации напоминает игру «Тетрис» - только в ней удаление целой строки происходит при её опустошении (а не при заполнении, как в «Тетрисе»).
а то что очередь передвигается по строкам – это не есть идеология AMD?
Dogmatik писал(а):
в очередной ревизии и прикрутят, и вообще сколько этих приложений?
TyyOx91 писал(а):
Не прикрутят, имхо, ранее 45 нм. процессоров. Необходима серьёзная переделка ФПУ.
matik писал(а):
FPU переделывать вообще не нужно: задача декодера представить ему работу в понятном для него виде.
TyyOx91 писал(а):
Кстати, вы так и не привели доводов за появление SSE4 уже в ближайших ревизиях.
по вашей логике: если серьезно переделывать – то SSE4 будет уже на 45нм, если просто ввести поддержку – тогда может и раньше, в чем противоречие? где доводы о степени серьезности переделки FPU? может я пропустил их? P.S.
TyyOx91 писал(а):
Часть инструкций SSE4 можно реализовать микрокодом, но тогда не стоит ожидать 50% прироста в DivX
уже 50%, вроде недавно еще 40% было?
TyyOx91 писал(а):
Переделывать - да. С нуля - нет. (С нуля процы уже давно никто не переделывает).
ну с этим еще можно согласиться; с нуля – это была попытка поставить вопрос ребром (виноват, сам подставился)
_________________ Кратчайшее расстояние между двумя точками это точка.
а где вы там обнаружили специализированные порты? (К8)
У К8 (и К10) три порта FP (FPMUL, FPADD, FPMISC), каждый может исполнять только определённую тип микроопераций - это имеется в виду под вырожением "специализированные порты".
Цитата:
а то что очередь передвигается по строкам – это не есть идеология AMD?
А какая разница как он передвигается? И как это опровергает моё утверждение о необходимости переделки шедулера (АМД не называет это шедулером, но сути это не меняет - пусть это будет называтся "алгоритмом выборки").
Цитата:
если просто ввести поддержку – тогда может и раньше, в чем противоречие?
А смысл такой поддержки? С "завтрашнего дня" никто не станет писать программы только под Penryn. Будут всегда предусматривать как минмиму реализацию с помощью SSE2/SSE - так это и сейчас делается. Кстати АМД не стала делать "номинальной" поддержки для SSE3, a ввели полноценную через год и 3 месяца после Интел. А там новых инструкций гораздо меньше, чем в SSE4. Кстати поддержку SSE3 задекларировали за год, до выхода Venice (аккурат после выхода Prescott). Станно, что сейчас они молчат (прям как рыба об лёд ).
Цитата:
где доводы о степени серьезности переделки FPU? может я пропустил их?
Ну пусть будет 40% (44% по утверждению divx.com) - разве это принципиальная разница? Какое это имеет отношение к теме?
Цитата:
ну с этим еще можно согласиться;
Моё изначальное предположение было о появлении SSE4 в 45 нм. процессорах АМД - как раз года полтора после первых Phenom и Penryn. И я аргументировал, почему я так думаю. Так с чем именно вы не согласны?
По поводу "задержки" с внедрением SSE3 и досих пор не реализованных SSSE3 тоже хотелось бы услушать ваших доводов.
SSE3 практически ни чего не дало AMD, на сайте www.fcenter.ru помнится и говорили о этой самой номинальной поддержке... зачем им тогда было торопиться?
TyyOx91 писал(а):
Ну давайте подсчитаем: 1. Декодер нужно переделать - должен опозновать новые команды и генерировать соответствующие микроинструкции.
нужно, едем дальше...
TyyOx91 писал(а):
2. Шедулер нужно переделать - должен уметь опозновать новые микроинструкции и направлять на соответсвующие порты.
да будет «шедулер», переделываем
TyyOx91 писал(а):
3. Некоторые порты и исполнительные юниты нужно переделать - должны уметь принимать и исполнять новые микроинструкции.
вы определитесь: «порты» или «исполнительные юниты», поскольку в обзоре нет ни слова о портах, а говориться только о «функциональных устройствах»
TyyOx91 писал(а):
4. В случае с инструкцией MOVNTDQA необходимо ещё серьёзно переделать MMU. 5 ... и т.д. и т.п.
допустим на переделку уже согласились, из этого например о степени серьезности не вытекает:
TyyOx91 писал(а):
Так дело ведь не только в процентах усложнения логики. Даже 10% - это уже серьёзное изменение. Написание модели на Verilog это только часть работы (имхо, самая маленькая часть) - после этого надо ещё рассчитать схему и переделать физразводку в соответствии с запланированными таймингами. После этого проц. должен пройти полный цикл тестинга и дебагинга. Помнится, АМД SSE3 почти год добавляла - а там всего 8 инструкций.
тут и далее насколько я понимаю идет речь про декодер и.т.д, но не про FPU. сообщите уже: переделка FPU для поддержки SSE4 будет очень сложной, сильно сложной, сложной или не очень сложной, ну вам трудно что ли?
TyyOx91 писал(а):
Ну пусть будет 40% (44% по утверждению divx.com) - разве это принципиальная разница? Какое это имеет отношение к теме?
удивился как циферки растут, кстати с H264/AVC такого большого прироста не будет, я так думаю.
TyyOx91 писал(а):
Моё изначальное предположение было о появлении SSE4 в 45 нм. процессорах АМД - как раз года полтора после первых Phenom и Penryn. И я аргументировал, почему я так думаю. Так с чем именно вы не согласны?
с чего вы взяли что я с вами спорю по поводу введут или не введут в 45нм? 45нм - 1,5 года, вы ориентируетесь на то сколько AMD вводила поддержку SSE3? тогда думаю лет 5 понадобиться
_________________ Кратчайшее расстояние между двумя точками это точка.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 22
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения