Как реализовать на с или assembler асинхронную выборку из RAM?
Как реализовать на с или assembler асинхронную выборку из RAM?
Например так. Это часть реализации memcpy для MIPS. Этот код не выглядит асинхронным, но написан именно так (сначала групповая загрузка в разные регистры, потом изменение базового адреса загрузки, потом групповое сохранение, потом изменение базового адреса сохранения) с рассчётом на то, что процессор сможет, в том числе, перекрыть во времени операции загрузки, арифметики и сохранения данных.
переупорядочивание выполнения (out of order execution) процессор выполняет и так, то есть он сам будет по возможности чем-то другим заниматься, пока грузит данные из памяти.  писать код так, чтобы он для этого был оптимален - отдельный навык, которым сейчас мало кто владеет, потому что им в совершенстве овладели компиляторы.

но если трактовать ваш вопрос буквально, то у x86 (точнее в наборах команд sse и avx) есть целое семейство команд для префетча данных в разные уровни кэша:

PREFETCHT0 - prefetch data into all levels of the cache hierarchy 
PREFETCHT1 - prefetch data into level 2 cache and higher 
PREFETCHT2 - prefetch data into level 2 cache and higher 
и аналогичные avx-овские  VPREFETCH(0-2) для чтения и  VPREFETCHE(0-2) для записи.

в сишном коде это делается через intrinsic функцию  _mm_prefetch

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