Тогда используйте при написании программ принцип RTOS, то есть, распаралеливайте процессы. При ожидании события от аппаратуры не виснете в тупом цикле, а переключаетесь на другую задачу. В той задаче, что получила управление, иногда проверяете наличие события в ожидающей. Непроизводительные затраты процессорного времени резо снизятся (+)
Не знаю, какая там перед Вами задача стоит, но могу сообщить, что в одном из моих актуальных поделий использую 16С554 + два родных USART контроллера atmega128. Все шесть каналов приёма передачи задействованы на разных скоростях (9600..115200) для работы с совершенно разным оборудованием по совершенно разным протоколам. Частота кварца - 7МГЦ с копейками (не помню), RTOS - JACOS.
Помимо прочего активно записываю во FRAM по последовательному же каналу, произвожу вычисления и обработку нескольких внешних прерываний. Потерь информации нет.