Как реализуется двухканальный режим работы памяти в контроллере памяти (архитектурно/логически/схемотехнически)?
2-х канальный режим это и есть одновременный опрос в 2 места.
В самом идеальном случае скорость доступа максимальна, когда запрос идет в разные физические планки, тут понятно, что каждая планка со своим контроллером занята только своими данными.
Но часто случается так, что запрос идет в одну планку, тогда придется ждать — так одноканально.
Для решения этой оказии существует алгоритм доступа, когда адреса и операции от процессора суются в буфер, а оттуда контроллер памяти делит адреса по планкам, если может.
Схемотехнически на шине между процессором и планками памяти взамен старого одноканального появляется контроллер поувесистее, с которым контроллеры планок общаются как если бы общались по одному каналу. В контроллере появляются блок распределения адресов и второй буфер, наверно. Грубо говоря, по адресу из процессора просто выбирается, какую планку "прерывать". А видимая одновременность запросов достигается за счет конвейерности доступа в планках памяти.
Выборка из памяти происходит целыми блоками — дают начальный адрес, длину и операцию, затем все это отправляют на шину, потом по прерываниям читают или пишут данные уже без указания адреса. В планках памяти устроен свой конвейер, который самостоятельно обрабатывает запросы. Так как чтение на шине происходит быстрее чтения из ячеек, то какое-то время все равно приходится ждать, зато освобождается шина.Так мне думается.
Ничего не происходит, все ждут.