[an error occurred while processing this directive]
|
Он может запустить за один такт параллельно 2 преобразования int->float и еще 6 других операций, выполняемых не на L-unit'ах. Само преобразование занимает 4 (single precision) или 5 (double precision)такта, то есть результат операции будет занесен L-unit'ом в выходной регистр через три или четыре delay-слота. При этом L-unit latency равен 1, что означает, что на этом-же юните уже на первом такте delay-слота можно запускать какую-либо другую операцию. В случае, если результат операции (только касаемо double prec.) будет использован командами ADDDP, MPYDP, SUBDP и CMP*DP, то количество delay-слотов можно уменьшить на 1 за счет того, что чтение младшего слова этих операций будет происходить в параллель с записью старшего от преобразования, и на следующем такте старшее слово считается корректно.
Короче - преобразование из int в single precision длится 4 такта, но пока оно производится в каждый из этих тактов может быть выполнено (запущено) до 8-ми других операций.
И вообще - писать для него на ассемблере - мозги вскипят в в крутую сварятся.
E-mail: info@telesys.ru