Информация об изменениях

Сообщение Re: вопрос к знатокам железа от 12.04.2019 14:27

Изменено 12.04.2019 15:52 koandrew

Re: вопрос к знатокам железа
Здравствуйте, CodeMonkey, Вы писали:

CM>1. Почему SSD на чтении на порядки медленнее DDR, хотя казалось бы, в обоих случаях механизм один и тот же — считать уровень заряда?

Во-первых, в DDR массив памяти находится на одном кристалле с управляющим блоком (типичный DIMM преставляет из себя 4-8-16 (ещё бывают 9 и 18 для ECC, все цифры тут и ниже про DDR3, с которым у меня больше всего опыта работы, но описанные концепции применимы ко всем поколениям DDR SDRAM) одинаковых чипов памяти, которые работают параллельно и независимо друг от друга). В SSD используется относительно медленные чипы асинхронной флеш-памяти, которые управляются контроллером, который собственно и отвечает за "общение" со внешним миром. Флеш-память медленнее из-за того, что чип гораздо больше — в мире микроэлектроники "больше" значит "медленее" из-за того, что скорость распространения сигнала (== скорости света) фиксированна и является очень серьёзным ограничением в современных чипах.
Во-вторых, работа DDR организована так, что фактически считывание происходит сразу всей строки (1 или 2 Килобайта на чип в зависимости от чипа, то есть 16 КБайт на модуль) за один цикл во внутренний буфер (это называется "открытие" или "активация" строки — команда ACTIVATE), а собственно при подаче команды на чтение/запись операция производится не с ячейкой памяти, а с этим буфером, который переписывается собственно в массив памяти при "закрытии" строки (команда PRECHARGE). То есть по сути оперативка работает, как кэш-память. Для оперативки это нормально потому, что при выключении памяти её содержимое всё равно теряется, но для постоянной памяти это само собой неприемлемо.
Re: вопрос к знатокам железа
Здравствуйте, CodeMonkey, Вы писали:

CM>1. Почему SSD на чтении на порядки медленнее DDR, хотя казалось бы, в обоих случаях механизм один и тот же — считать уровень заряда?

Во-первых, в DDR массив памяти находится на одном кристалле с управляющим блоком — типичный DIMM преставляет из себя 4-8-16 (ещё бывают 9 и 18 для ECC, все цифры тут и ниже про DDR3, с которым у меня больше всего опыта работы, но описанные концепции применимы ко всем поколениям DDR SDRAM) одинаковых чипов памяти, которые работают параллельно и независимо друг от друга. В SSD используется относительно медленные чипы асинхронной флеш-памяти, которые управляются контроллером, который собственно и отвечает за "общение" со внешним миром. Флеш-память медленнее из-за того, что чип гораздо больше — в мире микроэлектроники "больше" значит "медленее" из-за того, что скорость распространения сигнала (== скорости света) фиксированна и является очень серьёзным ограничением в современных чипах.
Во-вторых, работа DDR организована так, что фактически считывание происходит сразу всей строки (1 или 2 Килобайта на чип в зависимости от чипа, то есть 16 КБайт на модуль) за один цикл во внутренний буфер (это называется "открытие" или "активация" строки — команда ACTIVATE), а собственно при подаче команды на чтение/запись операция производится не с ячейкой памяти, а с этим буфером, который переписывается собственно в массив памяти при "закрытии" строки (команда PRECHARGE). То есть по сути оперативка работает, как кэш-память. Для оперативки это нормально потому, что при выключении памяти её содержимое всё равно теряется, но для постоянной памяти это само собой неприемлемо.