What every programmer should now about the memory
itman — 30.10.2011
Прочитал первую часть оной статьи. Я в
шоке. Нет, я конечно знал, что память медленнее процессора, но я не
думал, что все так плохо: обращение к L1-кешу - это ожидание
длиной несколько инструкций процессора, обращение к L2-кешу -
десятки инструкций, а обращение к основной памяти означает ожидание
порядка 200 инструкций! Процессоры кешируют абсолютно все:
инструкции, данные, а также таблицы преобразование виртуальных
адресов (Translation Lookaside Buffer). Любой промах - ожидание.
Особенно нехорош промах в TLB: трансляция виртуального адреса для
многоуровневой таблицы памяти может быть очень долгой.Более того, даже обычные, последовательные обращения к DDR памяти далеко не всегда происходят с максимальной скорость, потому что процессы по обновлению заряда, перодически вклиниваются и тормозят чтение (пока не обновили заряд в конденсаторах, все стоят по стойке смирно). В рамках прочитанного возникает интересный вопрос о скорости работы DDR на обычной commodity hardware. Общеизвестное знание заключается в том, что скорость работы памяти, ну там, 10 ГБ/секунду. Данные по DDR3 вроде подтверждают это. Опять-таки, не стоит забывать, что burst transfer rate - это не тоже самое, что и средняя скорость считывания, которая зачастую в два раза меньше.
Ну, вот теперь пара тупых вопросов к знатокам: а когда несколько DDR3 чипов ставишь, то они работают параллельно, то бишь ведут к увеличению скорости или нет? Мое личное впечатление, что нет, но может я и не прав. Второй вопрос: раньше в Википедии была статья со страшными цифрами аж до 80 ГБ/сек, а сейчас я ее не могу найти. Лажа, которую заботливо удалили модераторы? Вроде как DDR4 должен быть раза в 1.5 быстрее DDR3, а это все-таки до 30 ГБ/сек, а не до 80.
UPDATE: о нашел потерянную Википедийную ссылку. Действительно есть процессоры, которые поддерживают double и triple-channel считывание данных, но говорится, что это максимально достижимая скорость, но на практике получается часто ближе к одноканальному считыванию. Значит, по всей видимости, реальные скорости считывания из памяти все еще не сильно превышают 10 ГБ/сек.
Нейросеть для курсовой работы: генерация текста, структура, библиография 
