Эти "48 порций данных по 6 слов" идут подряд или по произвольным адресам? Если подряд, то может быть их читать одним запросом? И сделана ли двойная буферизация - пока обрабатываем текущую порцию данных, bus master накачивает следующую. И как последний вариант - в следующей версии разместить на плате свое ОЗУ.
По поводу неоптимальности. Помню, в одном из чипсетов под первый Пентиум была такая фича - получив запрос на DMA он сначала сбрасывал весь кеш в ОЗУ, и только потом приступал к обработке этого запроса.