Off-chip memcpy?

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

Это заставило меня задуматься, почему у Intel нет инструкции "memcpy", которая позволяет самой оперативной памяти (или аппаратному обеспечению памяти вне процессора) перемещать данные без этого касаясь процессора? Поскольку каждое слово должно быть полностью доведено до процессора, а затем снова вытолкнуто обратно, когда все это может быть выполнено асинхронно самой памятью.

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

6
задан TMS 13 August 2011 в 01:56
поделиться