должен ли процессор ждать дополнительное время для памяти
Да, это так. Фактически, проблема, которую вы описываете, является одной из самых больших проблем, с которыми сталкиваются разработчики ЦП и систем при проектировании текущего оборудования: доступ к ОЗУ, как правило, как минимум на порядок медленнее, чем операции внутри ЦП, поэтому доступ к ОЗУ должен быть минимизирован ,
Это причина того, что все современные процессоры имеют кэши ЦП, но даже они могут только смягчить проблему.
или есть какой-нибудь быстрый контроллер ЦП, который обрабатывает это время ожидания, а ЦП может сделать еще несколько операций
В общем случае это невозможно, поскольку, когда процессор ожидает данные из ОЗУ, он обычно не может работать без данных. При использовании таких технологий, как гиперпоточность, ЦП может переключаться на выполнение другого программного потока во время ожидания, но для этого требуется поддержка работающего программного обеспечения (оно должно использовать потоки).
В некоторых случаях ЦП может сделать что-то полезное во время ожидания памяти, используя "хитрости", такие как неупорядоченное выполнение и спекулятивное выполнение, но это не всегда возможно. Ответы Энди и Харримка также объясняют это.
Для широкого обсуждения этих проблем есть отличная статья:
Что каждый программист должен знать о памяти Ульриха Дреппера