Advanced: Тема повышенной сложности или важная.
А эти демоны вообще четырехядерный 8051 замутили)
https://www.electronicsweekly.com/news/design/eda-and-ip/micro-se… pace-2016-06/
innuendo
> в моих эротических фантазиях есть RISC типа zero level, где нету даже mul/div -
> всё самое простое, а потом уже можно делать на его основе всякие навороченные
innuendo
Думай, петька, думай! Что произойдет когда на выборке инструкций произойдет кешиисс, но конвеер будет еще забит под завязку? Все эти ухищрения вольно или. Даже невольно служат амортизаторами.
Mahagam
> ну получим прирост в 20 раз как по частоте так и по производительности.
Есть конкретика?
=A=L=X=
> Что произойдет когда на выборке инструкций произойдет кешиисс, но конвеер будет
> еще забит под завязку?
ну да, сбросится, и что ?
innuendo
> ну да, сбросится, и что ?
и что, просто сбросится и всё? без вариантов? а то что проц еще какое то время будет работать - ничего не значит? а про разные уровни кеша помним?
=A=L=X=
> а то что проц еще какое то время будет работать - ничего не значит? а про разные уровни кеша помним?
Да, ничего не значит. Ибо пропущенный цикл при выборке инструкций (да и на других стадиях конвейера) — это пропущенный цикл, без вариантов.
Только Out-of-Order системы умеют скрадывать задержки доступа к памяти, выполняя следующие инструкции не дожидаясь прихода данных.
Конвейер — это не какой-то там буфер или очередь, как в OoO системах, там четко 1 инструкция на каждую стадию.
}:+()___ [Smile]
> Конвейер — это не какой-то там буфер или очередь
Если конвеер без OoO не умели буферизировать, в чём сомневаюсь, ибо буферизировать умел даже 8086 без конвееров, то этого я не знал.
Например в конвеере сидят две инструкции сложения и умножения регистров, в память лезнть не надо, а дальше происходит cache miss выборки инструкции - разве конвеер без OoO не способен исполнять эти инструкции дожидаясь очередной порции инструкций из кеша/памяти?
По мне так конвеер без OoO это одна степень параллелизма, а OoO - это еще буст к ней.
Поэтому я вообще имел ввиду современные конвееры - с OoO включительно, так например:
=A=L=X=
ладно, какой правильный ответ?
innuendo
> ладно, какой правильный ответ?
Правильный ответ на что?
=A=L=X=
ох, на твой вопрос .... создай свою тему
innuendo
> ох, на твой вопроc
Человек спросил вопрос, а ты спрашиваешь этого человека какой на него ответ? Ты в своём уме?
Мне как раз и любопытно насколько быстрыми могут быть простые схемы на современных кристаллах без всяких осложнений в виде конвеера.
}:+()___ [Smile]
> это пропущенный цикл, без вариантов.
ну можно тупо остановить конвейер. пока из памяти очередная команда не придёт.
Mahagam
> ну можно тупо остановить конвейер. пока
nop?
Mahagam
> ну можно тупо остановить конвейер
А зачем его вообще останавливать? Он не может продолжать эксплуатировать блоки "ниже по течению" пока в блоки выше не поступит очередная порция? Как то странно не оптимизировать такое. До Out-of-order ведь даже дошли в процессе эволюции.