![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
если он ошибся, то конвейер чистится, и грузится по новой, с нужного места. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Сколько тактов длится этот процесс?
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#13 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
где то около того как Вы и говорили, то естьв одиночном случае это не много, в массовом это будет много.(честно, не мерял
![]() правда я слышал, что некоторые модели процев всегда сбрасывают конвейер если видят условный переход, но тот слух старый, думаю уже сильно умнее стали процы. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#14 | ||
Форумчанин
Регистрация: 05.09.2011
Сообщений: 869
|
![]()
Ссылку - легко )).
Wiki Но только там написано все же, что (болд везде мой): Цитата:
Загрузка конвеера - это да, это понятно. Она тоже требует времени, так что заблаговременная загрузка (при правильном предсказании) - это хорошо. Но КАК этот код будет выполняться, скажите?.. (давайте пока не будем говорить про параллельные вычисления, ограничимся одноядерными процессорами). Короче, я с недоверием отношусь к тому, что написано по той ссылке.. Я, конечно, посмотрел английский вариант этой статьи. В нем тоже говорится, что производится загрузка и speculative execution, причем для последнего понятия есть своя статья. Но, как это ни печально, нигде не сказано КАК это делается. То есть везде говорится о некоей принципиальной возможности.. ![]() Далее, в русском варианте (ссылка выше) есть ссылка на статью в PC Magazine/RE. И в той статье написано так: Цитата:
Короче, вопрос все-таки интересный, и ясности у меня по нему нет. Что скажете? pu4koff, тебе +1 за повторное поднятие вопроса )).
Предпочитаю на "ты".
|
||
![]() |
![]() |
![]() |
#15 | |||
Старожил
Регистрация: 22.05.2007
Сообщений: 9,091
|
![]() Цитата:
Цитата:
Цитата:
Мне кажется, что частично выполненная - это команда, которая не дошла до конца конвейера. Может уже расчеты выполнены, а всего-лишь результат не записался, а может данные еще даже не подгрузились. |
|||
![]() |
![]() |
![]() |
#16 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
![]()
Насколько я понимаю, предзагрузка на x86 включает в себя загрузку команды и её аргументов в процессор (конвеер/кэш). Это может включать в себя обращения к памяти (ОЗУ), так что это загрузка команды - операция медленная (в общем случае). Вот для чего нужна предзагрузка: чтобы к моменту выполнения инструкции процессором, она была уже готова.
Предзагрузка также включает в себя парсинг команды (анализ/разбор/декодирование). Но никак не выполнение. Именно это подразумевалось под "частично выполненные". Команды загружены, декодированы, но не выполнены. Предварительное выполнение в явном виде есть на IA-64 (не уверен насчёт автоматического предвыполнения).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
![]() |
![]() |