Какой смысл использовать встроенные аппаратные ускорители вместо того, чтобы эти функции добавлялись в качестве инструкции для ISA? - PullRequest
0 голосов
/ 16 октября 2018

Я понимаю, что если известно, что специализированная операция является распространенной, имеет смысл делать это аппаратно.Но в этот момент, почему бы не сделать его частью ISA, чтобы он мог быть еще быстрее?Есть ли преимущество в том, что он превращается в сопроцессор, который обменивается данными через общую память?

1 Ответ

0 голосов
/ 16 октября 2018

Это немного волнисто, потому что я на самом деле не проектирую аппаратное обеспечение, но я думаю, что знаю достаточно, чтобы сказать что-то хотя бы правдоподобное.


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

Даже с учетом менее сложных ускорителей (например, для криптографии):

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

Intel стремится добавить что-то в ISA, например AES и SHA, потому что основные процессоры x86 имеют пропускную способность команд и векторные регистры для передачи данных в исполнительные блоки, выполняющие один раундAES, например.

Если ускорительимеет большой физический размер, но обычно не нужен нескольким ядрам одновременно, если группы ядер имеют общий ресурс, что более естественно при некоторой компоновке сопроцессора, чтобы изолировать ядро ​​от задержки возврата из ядра для вычисления чего-либо.


Также для графических процессоров, графический процессор имеет большую вычислительную пропускную способность, чем вы можете уместить суперскалярный конвейер обычного процессора.FLOPS встроенного графического процессора обычно намного больше, чем одно ядро ​​современного процессора Intel, даже с 2-мя 256-битными модулями FMA.Таким образом, вам понадобится инструкция CPU, такая как «run shader», которая запускает программу GPU, используя свой собственный отдельно программируемый машинный код.Планирование инструкций графического процессора легче, чем даже обычного штатного процессора.

...