Сугубо по тактам память работает быстрее, чем порты.
Даже без DMA можно просто ловить обращения к определённым адресам памяти. Тогда можно совместить два способа:
LD DE,#xxxx - для передачи констант
LD (#zzzz),HL - для передачи переменных

Для программистов наиболее удобно программируемое устройство. Чтобы был свой процессор, ему даётся программа и дальше он самостоятельно работает по этой программе и не мешается.