Конференция работает на сервере Netberg

Radeon.ru

Конференция Radeon.ru

Страница 1 из 1 [ Сообщений: 25 ]  Версия для печати [+]
Показать сообщения за  Поле сортировки  
Благо, и повод очень неплохой есть: вышла статья нашего коллеги, Павла Болотова.

Поздравим Павла с публикацией, а вообще тема интересная. И слегка даже подзабытая :)

Что думает по поводу Альфы уважаемый All?
1. Поздравляю автора со статьей.
2. А что там с реплеем :) у альфы? Может я был невнимателен при прочтении?
U2
А что там с реплеем у альфы?
Есть такое дело :D Правда, он там заметно отличается от реплея в П4 — и идеологически, и по исполнению.
Впрочем, появится автор, сам расскажет ;)
U2

Если подразумевать под риплеем "технологию предварительного запуска инструкций с поддержкой переисполнения", то частный вариант ее присутствует в процессорах EV6 и выше. Если коротко, то это reissue, то есть перезапуск инструкций. В статье упоминается, что в EV6 имеется буфер переупорядочиваний на 80 инструкций, от которого идут две очереди, E-queue (20 инструкций) и F-queue (15 инструкций). Из этих очередей команды уходят на выполнение, не дожидаясь данных; если на момент подхода к функциональному устройству приходит негативный отклик из D-cache, то инструкция снимается с конвейера, и ожидает данных в своей очереди, из которой она и не убиралась. В случае позитивного отклика инструкция продолжает путь по конвейеру, и убирается из очереди. Если скормить процессору цепочку зависимостей, то по заполнении очереди он просто будет ожидать данных для первой из отложенных команд, а конвейер будет либо остановлен, либо спущен вхолостую. Вероятность такого развития событий в естественных условиях невелика, так как и очереди не из коротких, и размеры D-cache в EV6 довольно велики (64Кб), к тому же он поддерживается довольно быстрым и очень большим (от 2 до 16Мб) S-cache. В любом случае, если команда и будет отложена, негативные последствия будут минимальны.
Walter S. Farrell
А что с независимыми командами, они могут продвигаться, пока зависимые ждут данных, или конвейер полностью останавливается?
Yury_Malich

Думаю, что могут. Ведь очередь представляет собой своеобразный буфер, с неким образом нумерованными позициями (для определения приоритетности исполнения), то есть это не петля и не FIFO-буфер. Вот в EV4 и EV5 после выборки инструкции, для которой отсутствуют данные, целевой конвейер был бы точно остановлен.

Между прочим, каждая инструкция в EV6 после выборки получает свой уникальный 8-битный номер, который ее сопровождает вплоть до самой отставки. Так что восстановить порядок следования инструкций можно в любой момент времени. Да, уточню, инструкция удаляется из очереди ровно на 3-м такте после запуска, при условии наличия данных в D-cache (2 такта уходит на чтение D-tag).


Последний раз редактировалось Walter S. Farrell 10:50 14.04.2005, всего редактировалось 1 раз.
Walter S. Farrell
Т.е . EV6 умеет полностью отслеживать цепочку зависимости, уже покинувших планировщик инструкций и после негативного отклика способен сориентироватся какие инструкции дальше можно отправлять, а какие нет?
Yury_Malich

Планировщик не сможет произвести выборку инструкции из буфера в любую из очередей, если она полна; в этой ситуации, он будет вынужден приостановить дальнейшую выборку. В принципе, задачей планировщика есть избегание выборки цепочек зависимых инструкций, которые могут привести к переполнению очередей и остановке конвейеров; в этом отчасти и заключается смысл внеочередного исполнения... Насколько эффективен его механизм предсказания, утверждать не могу -- нет нужного железа...
Walter S. Farrell
К слову, не более. В одной работе было указан именно механизм реплея, использумый в альфе 21264 и проходящий под термином flush replay:

If the load instruction misses in the cache, these dependent instructions will be re-executed. This re-execution is referred to as replay. There are two popular replay mechanisms in the literature: flush replay (used in the integer pipeline of Alpha) and selective replay (used by Pentium 4). In flush replay, all instructions in the STE window are flushed and re-executed whether they are related to the load operation or not.

или он также известен как squashing replay, или под общим названием non-selective replay.

Yury_Malich
А что с независимыми командами, они могут продвигаться, пока зависимые ждут данных, или конвейер полностью останавливается?
выходит, что так ...
all dependent and independent instructions issued after the load scheduling miss are invalidated and replayed.
U2

Вполне возможно. В DEC'овских патентах тоже проскакивает определение replay. Tочнее, и в значительной мере, replay есть разработка DEC, патенты уходят к 1991-у году, а может, и далее; Intel же кросс-лицензировал все патенты DEC в 1997. Просто чтобы избежать путаницы, риплеем именуем именно реализацию в P4. А можно ссылку на документ?
Walter S. Farrell
Вполне возможно. В DEC'овских патентах тоже проскакивает определение replay. Tочнее, и в значительной мере, replay есть разработка DEC, патенты уходят к 1991-у году, а может, и далее; Intel же кросс-лицензировал все патенты DEC в 1997. Просто чтобы избежать путаницы, риплеем именуем именно реализацию в P4. А можно ссылку на документ?
Я давал ссылку — Precise Instruction Scheduling в др. треде — Pentium 4: от Willamette до Prescott. Только там вверхняя фраза по сути и приведена. Работа посвящена изучению selective replay, а точнее иного подхода в сравн. с Р4
U2

Цитата из документа:

In this document we focus on only selective replay.

А жаль. Надеялся что-то интересное по EV6 вычитать. Занятно другое:

The SimpleScalar 3.0 [18] simulator is used to measure the effects of the proposed techniques.

The applications are compiled with using DEC C V5.9-008 and Compaq C++ V6.2-024 on Digital UNIX 4.0

Так что и тут без Альфы не обошлось :)
Шоу продолжается, просьба всем оставаться на своих местах!

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

http://forum.ixbt.com/0008/019286-4.html
Walter S. Farrell
Забыл линк дать на этот док. Тут немного есть.
The issue-queue-based replay model is similar to the one that is used in the Alpha 21264, where an instruction can leave the issue queue only after it is verified to be correctly executed. The shortcoming of this approach is that many issue queue entries can be unnecessarily held by correctly scheduled instructions, which reduces the effective size of the window. However, issued instructions can monitor all wakeup and rescheduling activities, which enables instructions to be dynamically scheduled after replay events are detected.

Хотя работа посвящена больше selective replay и ее нового подхода, но кое-что есть по реплею в альфе, точнее его аналога.

P.S. Что интересно там вкратце даны (в целом) разновидности реплея, один из кот-ых применим в Р4, о чем в соседнем треде говорят.
Walter S. Farrell
Также производились экспериментальные образцы 21264C и 21264D, но информации по ним очень мало.

Это кот-ые 21264CB и 21264DC что ли? Если они, то 1GHz/1,250/1,330 @ 1.7v. Эта инфа и пр. по ним в мануале же доступно.
U2

Что-то вроде этого. Кое-где в Инете проскакивают 21264C и 21264D, их часто сопоставляют с EV68CB и EV68DC. Тот же EV68CB часто именуют просто EV68C (copper), и я в том числе. Мне кажется, EV68DC является тем же EV68CB, только под LGA сокет; правда, в доке указывается, что они оба под LGA, но я своими глазами когда-то видел EV68C 1,25ГГц под PGA-599! В общем, тут Compaq напуталa порядочно. Я выступал из вот каких соображений: по традиции, DEC добавлял новую букву к 21х64 после смены детализации техпроцесса. Так как в обоих случаях техпроцесс оставался 0,18мкм, как и у EV68A, то я вообще склонен списать их всех в 21264B. Но окончательно не определился, может чего и поправлю.

Compaq'овская дока явлюется простой интерполяцией EV68A, только кое-какие мелочи поправили. Так в ней и не нашёл, чем же CB от DC отличается :(

Кстати, тактовые частоты у них до 1250МГц, выше никак по причине нехватки коэффициентов умножения (15х83,33=1250).
Walter S. Farrell
Так в ней и не нашёл, чем же CB от DC отличается
btw, тоже не понял пока в чем разница. Если CB = copper (based?), то для DC = (D? + copper) что ли?

Кстати, тактовые частоты у них до 1250МГц, выше никак по причине нехватки коэффициентов умножения
Да, КУ до 8 даны, тем не менее, зачем указывать 1,330 MHz @1,7V?
U2

КУ от 0 до 15, насколько помню; кто и где изобрёл эти 1330, надо бы выяснить и расстрелять за намеренную дезинформацию ;)
Walter S. Farrell
надо бы выяснить и расстрелять за намеренную дезинформацию
Есть еще один вариант — легкий "разгон" шины до примерно 89МГц...
Walter S. Farrell
кто и где изобрёл эти 1330, надо бы выяснить и расстрелять за намеренную дезинформацию
Это было в предпоследней ревизии хардманула, а в последней упоминание об этом уже было убрано. Да и кого теперь расстреливать ? :)
matik

Я тебя и многих, наверное, удивлю, но в Альфах разгон шины не приводит к разгону процессора, а совсем наоборот: разгон процессора приводит к разгону шины! То есть процессор принимает несущую дифференциальную частоту от внешнего генератора (равную 2х тактовой частоты ядра), собственно ступенчато запускается, и делит частоту ядра на коэффициент умножения (который, по сути, является "коэффициентом деления") для получения частоты системной шины, генератором которой он и есть. :)
Walter S. Farrell
ну и здорово — даем на проц повышенную частоту от тактового генератора пусть делит и разгоняет шину.
или это уже у тактового генератора чипсета нет возможности выдавать необходимую частоту?
P.S. я думаю разговоры про маркетинг и ошибки надо заявязывать, более того может быть даже уменьшить отведенное в статье на них место
Я тут порыскал по документации, и уловил некоторую неточность: 21264 действительно поддерживал КУ в 16, так что 1330МГц были теоретически возможны, и даже более. Спутал с 21164, тот держал действительно до 15. Mea culpa. Причины такого различия лежат в совершенно разных схемах управления генераторами тактовых частот.

В EV4 до EV5 использовалась уже упомянутая схема с подачей 2x дифференциальной частоты на процессор. EV56 уже мог принимать частоту 1x, хотя DEC это в своих доках не рекомендовала, но сама использовала :) EV6 и потомки работали кардинально иначе. У них входящая частота равнялась частоте системной шины, а встроенный PLL умножал её на КУ, и уменьшал при необходимости (реализация power management согласно стандарту Energy Star). Логика управления внешними генераторами у Альфа-систем отличается от генератора к генератору; некоторые были вообще непрограммируемыми.

Пристальное изучение моей AlphaPC 164LX показало, что она имеет MC12439, который держит полосу частот от 50 до 800 МГц, и управляется по последовательному или параллельному интерфейсу. Возникает дельный вопрос, что им управляет? Процессор явно не может сам себя программировать. Как показало вдумчивое изучение разводки и документации, генератором управляют те же 4 джампера, что и задают КУ процессора :) Так как на вход генератора заведено 16,66МГц, то надо лишь завести 1-й джампер на 3-й контакт последовательного интерфейса генератора, 2-й -- на 4-й, 3-й -- на 5-й, 4-й на 6-й, а 1-й, 2-й и 7-й контакты повесить на землю. То есть, простой сдвиг на 2. Теперь понятно, почему в EV6 и потомках удалось внедрить 16х КУ при тех же 4 джамперах -- битовые значения КУ не обязаны совпадать с логическими! ;)

На маме живёт ещё один зверь, CY2308, так называемый system clock PLL; живёт между модулями памяти и PCI-слотами, недалеко от процессора. По моему пониманию, этот zero delay buffer используется для генерации тактового сигнала для шины PCI и промежуточной буферизации сигнала для системной шины. На вход, по идее, подаётся тактовый сигнал с процессора (ClkOut).

Ещё один момент о EV6 и потомках. На вход его PLL (ClkIn) подаётся удвоенная дифференциальная частота, равная удвоенной реальной частоте системной шины, или рабочей DDR. Таким образом, частотный предел линейки 21264 по KУ на Tsunami составляет 16x166,66=2666МГц!

8)
Walter S. Farrell
Согласен с ISA_user, что разговоры про маркетинг и ошибки надо заявязывать, более того может быть даже уменьшить отведенное в статье на них место и давать побольше инфы как в последнем посте (о найденных неточностях)
U2

Я думаю эту и другую подобную инфу загнать в следующую статью, эта уже и так перегружена. О маркетинге и пр. уже достаточно написано, согласен, только некоторые факты к завтрему подкорректирую.
Новая тема    Ответить  [ Сообщений: 25 ] 


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

Сейчас этот форум просматривают: Yandex [Bot] и гости: 49


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

Найти:
Перейти:  

Удалить cookies конференции

Пишите нам | Radeon.ru