Чтобы не ждать эту задержку доступа каждый раз, придумали pipelining (другая картинка). Здесь чтение запрашивается на тактах Т1, Т2, Т3 без ожидания ответа. Чип памяти сохраняет эти запросы и последовательно их исполняет. И данные на запросы теперь приходят каждый такт (такты Т3, Т4, Т5), хотя задержка точно такая же - два такта (данные D1 с адреса A1 приходят только через два такта после запроса).
В итоге без конвейера на получения одного слова данных нужно три такта, а с конвейером - грубо говоря один такт (при более длинных последовательностях, например на 50 чтений надо 52 такта)
что касается interleaving, то это придумано потому, что память бывает медленная. Чтобы обращаться к памяти быстрее, чем каждый отдельный банк (отдельный массив ячеек памяти) может это переварить, делается обращение к банкам по очереди. На картинке показано, что операции на шине происходят в 4 раза быстрее, чем операции памяти. За выдачу данных D1 ответственен банк 0, за D2 - банк 1 и т.д. (показано стрелочками). может быть кому-нибудь пригодится