Комментарии 41
офигенно!
спасибо за ваш труд, очень доходчиво и простыми словами
Статья не полная, не рассмотрены квантовые эффекты проистекающие в полупроводниках, влияние температур и космического излучения на стабильность ячейки. Так же не вижу статистическую оценку вероятности отказа, не рассмотрены методы защиты от них. Прошу доработать. /s
PS: Почемы Вы под термином RAM понимаете динамическую память ? Обычно, в технической литературе, под RAM понимается классическая 6T ячейка статической памяти. То, что Вы описываете (то, что продается в магазине) это SDRAM.
Про название RAM вначале была оговорка.
А что касательно квантовых эффектов (а уж тем более космического излучения), думаю, это было бы слишком для такой статьи на широкую аудиторию
Спасибо за комментарий!
влияние температур и космического излучения на стабильность ячейки
Эта шутка про стабильность ячейки памяти при попадании космического луча — даже и не шутка 🙃
Помните от куда это несется? Если не ошибаюсь, так в Швейцарии похоронили электронное голосование.
Видете ли, они посчитали это не уместным, что какие-то лучи могут исказить один голос.
Не ну а чо…. Все эти голосования в телеге, фб — это нормально, там никакие лучи не влияют, а вот выборы в гос органы — это опасно, видете ли…
>Насчёт мультиплексора будем условно считать, что на адресные входы подаётся индекс первого информационного входа, от которого будет отсчитываться 8 бит
вот не надо было 8 бит сюда приплетать. Возьмите любую м/с типа РУ5 или РУ6 - именно ОДНОбитную, из 8 которых включенных параллельно по адресным линиям и получится таки 8 бит. А мультиплексор (точнее, ДЕмультиплексор), как раз надо было поставить ПЕРЕД дешифраторами адреса (соответственно, по адресным линиям передаются или адреса столбца или адреса строки). ИМХО было бы ближе к жизни.
Труд офигенный.
Но самое главное (с точки зрения цифровой схемотехники - это действительно самое главное) не освещено:
Активируемая строка считывается в лэчи (можно регистры - но это не оптимально) - по порядку величины это время 10 нс.
Это действие называется row activation - и при это даныне из капаситоров пропадают.
После этого происходят многократные манипуляции с активированной строкой (то, что так выгодно делать основывается на ключевом свойстве программ - локальности).
После того, как мы закончили обработку текущей строки - мы заново "речаржим" строку (что по порядку величины также занимает 10 нс). Это необходимо сделать, даже если мы только читали, т.к. см "1.1" - в банке памяти текущей строки больше нет, она заменена 0-ми.
Ну и обо всяких мелочах, что общение происходит словами (а значит ширина смещения адреса внутри строки = "размер строки / размер слова в битах") - лучше бы тоже поправить. Вы буквально на всех уровнях: ISA / LLC / DDR-контроллер - оперируете со словами в памяти, а не с какими-то наборами бит.
В целом ощущение, что одну полноценную статю вы скомпали в пару абзацев и решили "и так сойдёт", хотя это прям ключевые моменты про устройство DDR.
Про перезарядку конденсаторов говорил в самом конце (про усилители считывания), в абзаце с уточнениями.
Ну а насчёт процесса чтения/записи согласен, возможно немного сумбурно и не в деталях написал. Но поэтому уровень сложности статьи не «Сложный» и рассчитана она на тех, кто от оперативной памяти знает только название
Спасибо за комментарий!
Ох... не примите ниженаписанное за нападки - мне просто очень грустно от качества статей по микроэлектронике вообще ((.
Про перезарядку конденсаторов говорил в самом конце (про усилители считывания), в абзаце с уточнениями.
.....
В следующей части будут разбираться уже логические аспекты: режимы работы процессоров х86 и их влияние на память, сегментация, страничная организация памяти и так далее.
Кажется вообще самая содержательная часть всего описания памяти, определивная весь дизайн SOC последних 30 лет - memory wall - в план статьи не попадает.
Грустно.
Это вообще какая-то болезнь хабра. Про "физику" - пожалуйста.
Про что-то уже понятное прикладному программисту - пожалуйста.
Написать содержательно про системное программирование и\или микроэлектронику - просто выпадает из фокуса внимания.
Интересный у вас гелий, с четырьмя протонами и тремя нейтронами в ядре. Да и кремний тоже непрост. Унификация атомных ядер для удешевления?
отличная статья - спасибо!
Когда мы замеряем напряжение на конденсаторе, то он как бы "разряжается". Если постоянно его читать, то в конце концов он полностью разрядится, но этого не происходит из-за того, что усилитель его постоянно подзаряжает, всё верно?
Не понял, зачем нужно постоянное напражение для оперативки, ведь если мы закрываем транзистор, то конденсатор оказывается отвязанным от внешнего мира и не должен разряжаться. Понял, заряд постепенно утекает из конденсатора. Почему тогда из накопителей не утекает? И почему нельзя совместить технологию ssd и ram?
Потому что в случае с SSD (флеш-памятью) используется совершенно другая технология. Там транзисторы не полевые, а с плавающим затвором (так и называется, транзистор с плавающим затвором). Вот из них почти не утекает, поэтому информация на SSD может храниться годами.
В основе там лежит туннельный эффект (это уже квантовая физика…). Советую посмотреть видео про SSD на канале Branch Education (на YouTube), чтобы в общих чертах понять что к чему.
Но проблема в том, что SSD намного намного … и так ещё несколько раз (в начале статьи приводил пример с ёжиком и истребителем) медленнее оперативной памяти. Точнее, эта технология (флеш-память) медленнее, на основные которой построен SSD.
Разумеется, если бы такого разрыва в скорости доступа к памяти в этих двух технологиях не было, то давно бы уже сделали не энергонезависимую ОЗУ.
Но всё же, в современных реалиях продолжают искать компромисс между скоростью, надежностью, ну и ценой, разумеется.
Поэтому ОЗУ - очень быстро (иначе нельзя, приводил на эту тему пример в начале статьи), но с перезарядкой. SSD - медленно, но зато надёжно и без постоянной перезарядки. Вот он компромисс.
Спасибо за вопрос! Надеюсь доходчиво ответил
SSD может храниться годами.
ИМХО, тут стоит сделать поправочку что делать так не стоит. По факту так мб и получится, однако производители гарантируют только 3 месяца (может быть этот уже outdated, давно не проверял).
Конечно это гарантия с запасом, но хранить что-то на ssd "на полочке" опрометчиво и потерять отдельные биты можно гораздо раньше чем через годы.
Мой практический максимум 9 месяцев успешного простоя.
P.S. а статья классная и полезная для общего представления и поэтому содержит массу упрощений. "Упрщение утверждений до неверности" -- необходимый компромисс. И с этим, конечно, надо быть осторожным с одной стороны, но и не принимать слишком уж занудную критику близко к сердцу. Жду следующих серий!
Спасибо за постскриптум! Не все это понимают :)
На Хабре под тематической статьей был комментарий о собственном опыте. Собран компьютер с SSD 512Гб, через некоторое время был выключен на полгода, и потом он не загрузился - повредились системные файлы.
Спасибо! Насколько я помню, грубо говоря в ссд заряд хранится прямо в транзисторе, в этом плавающем затворе. И соответственно заряжать конденсатор уже не нужно, так почему ссд медленнее, чем полевики с конденсаторами в оперативной памяти?
SSD медленнее, так как сам процесс записи в его ячейки физически требует больше времени и ресурсов в виде приложенного к транзистору (но уже не полевому, а с плавающим затвором) напряжения.
Но в том же время, как я писал выше, электроны становятся «запертыми» на плавающим затворе на намного большее время, чем в ячейке ОЗУ 1T1C.
Почитайте что такое туннельный эффект Фаулера-Нордгейма, если вам интересно.
Думаю, Википедия или научные статьи объяснят уж точно лучше, чем я в одном комментарии на Хабре :)
Ну технически во флэш памяти заряд хранится не в затворе, а в подзатворном диэлектрике, и своим электрическим полем смещает ни к чему не подключенный ("плавающий") затвор. Соответственно затвор приоткрывается, и меняется сопротивление транзистора, которое ещё нужно измерить аналоговой схемой. Это дольше, чем просто разрядить конденсатор на вход усилителя.
А про усилитель вы верно сказали, да, он именно для этого и нужен
Если постоянно его читать, то в конце концов он полностью разрядится
Не в конце концов, а с первого же раза. Это специально такая фича, чтение = стирание. Тогда можно тупо лупить "запись", не опасаясь остаточного заряда.
Ну и да, чем меньше физические размеры конденсатора, тем меньше размер заряда (сейчас уже порядка 1000 электронов). Собственно, их не хватает, даже чтобы 1 раз "качнуть" обычный цифровой транзистор.
Поэтому на каждой линии стоит операционный усилитель (OpAmp, не знаю откуда автор выкопал слово sensitive), охваченный глубокой обратной связью. Гул микрофона когда-нибудь слышали? Это вот оно, операционный усилитель в режиме самовозбуждения. Или нет, если не произошло начального "щелчка". Т.е. считанный бит запоминается в виде состояния операционного усилителя, он либо в покое (0), либо в режиме самовозбуждения (1).
Все дальнейшие манипуляции производятся именно с этими усилителями как некими "ячейками памяти". И в конце, когда работа со строкой закончена, они же пишут информацию назад в конденсаторы.
При разработке стандарта DDR договорились, что ширина строки в одном банке одной микросхемы всегда 8192 бит, а ёмкость зависит только от количества строк в банке и количества банков. На обычной десктопной планке памяти 8 микросхем (без ЕСС) в два ряда (DDR). Т.е. когда ваша программа читает из памяти 1 число, реально память считывает 131072 бита. И потом записываются эти же 131072 бита, даже если вы сами ничего не записывали. Потому что заряда в конденсаторах уже нет, там нули. Впрочем, запись можно делать пост-фактум, если дальше вы читаете из другого банка,
В какой части серии статей будет про банки, ранки, плотность и всё такое,
и про многочисленные проблемы совестимости памяти с теми и иными чипсетами и разбор случаев, когда память согласно даташиту с чипсетом может не работать, но работает и случаев, когда вроде должна работать, но не работает?
В следующей части будут разбираться уже логические аспекты: режимы работы процессоров х86 и их влияние на память, сегментация, страничная организация памяти и так далее.
Насчёт проблем совместимости и прочих вещей, думаю, упоминаться не будет. Ведь все эти проблемы упираются в исторические «костыли » в попытках сохранить обратную совместимость с предыдущими моделями и в сухие технические выкладки конкретных реализаций конкретных компаний…
Всё это практика до мозга костей, мои же статьи по задумке несут более теоретический характер. И что самое главное - упрощённый, для тех, кто пока что вообще не разбирается в теме.
Поэтому, такие вещи, к сожалению, разбираться не будут.
Прочитал с удовольствием, познавательно и простым языком, спасибо!
Отдельное спасибо за наглядное объяснение, как работают транзисторы и почему они n-p (и другие комбинации)!
Разве что немного непонятно, почему вы взяли 4-х битный мультиплексор: раз мы работаем с данными шириной 8 бит, а столбцов 16, то было бы достаточно 1-го битного. Ну либо рисовать не 16, а 128 столбцов.
, то было бы достаточно 1-го битного
Немного не понял о чём вы? Какой 1 битный?
Скорее всего речь идет о том, что зачем нам 4 бита для записи столбца, если мы работает сразу с 8 ячейками. То есть если всего 16 ячеек, то нам нужен всего один бит для столбцов (0 - с 1 по 8 и 1 - с 9 по 16). Я такой же вопрос хотел задать, потому что я моем понимании вообще нет никакого смысла допустим брать информацию с произвольных ячеек (с 6 по 13, например).
Еще хотелось бы услышть про скорость всего этого. Надеюсь, это будет в следующей статье. Из-за чего происходит замедление скорости и от чего зависит различие в скорости разных моделей, например (ведь скорость тока близка к скорости света)
Совершенно верно, с языка сняли! Спасибо)
Да, тогда согласен, мой пример избыточен
Скорость тока не равна скорости света, вообще ток ну очень медленный и условно его можно приравнять к скорости электронов в проводнике. Про протоны и вспоминать неудобно.
А вот скорость распространения электрического поля - да, она ближе к скорости света, но - зависит от материалов.
"Оперативно Забывающее Устройство", про DRAM ещë говорят.
А не используют несколько уровней заряда для хранения больше, чем один бит на конденсатор? Или так только во флешке делают?
Неплохая статья про основы. Но не понятно, зачем про pn-переход и биполярный транзистор написали. Больше запутали только.
А где можно прочитать про стек/тренч-конденсаторы ?
Спасибо, интересная и познавательная статья. Подробно расписано про RAM память, и от чего зависит скорость и производительность, и для простого пользователя ПК достаточно подробно расписано.
Обязательно добавьте в эту статью или в следующую информацию про ранки, банки и рассмотрите реальные примеры планок, которые продаются сегодня или продавались за последние 10 лет, как они устроены, какие особенности чипсетов и БИОСа в работе с RAM.
Посмотрите этот вопрос мой https://qna.habr.com/q/1400652 я бьюс с ним уже который месяц. МНе там дали предположение про проблему, оно звучит вот так:
"Хотя формально чипсет 5520 и проц 5670 поддерживают конфигурации с высокой плотностью, есть одно НО. ....
Ваша конфигурация из 2x8ГБ (dual rank каждый), скорее всего, попадают в один и тот же канал памяти (не забываем, что проц поддерживает трехканальную память и двухканальную - когда используются только 2 слота из шести- и тут сюрприз, у матери всего два слота). Как мне кажется, это дает 4 ранка на канал. И, если допустить что контроллер или BIOS матери поддерживает, то такая конфигурация находится на пределе или превышает предел стабильной работы системы в целом. Система может видеть модули (на этапе POST), но не инициализировать их корректно для работы в ОС из-за слишком высокой электрической нагрузки или невозможности подобрать стабильные тайминги/напряжения.
В случае с двумя модулями 8+4, эта конфига хоть и дает 4 ранка на канал, ключевое отличие - плотность чипов. Плашка на 4ГБ по идее, имеет меньшую плотность чипов. Соответственно, чипы меньшей плотность создают разную и меньшую электрическую нагрузку на канал памяти. Контроллеру и BIOS часто проще "договориться" и найти стабильные настройки для конфигурации в 4 ранка, состоящей из модулей с разными типами чипов, чем для 4 ранка из двух абсолютно одинаковых модулей с чипами высокой плотности. Идентичные модули создают максимально однородную и, следовательно, максимальную нагрузку на канал.
Этим только, пока что, могу объяснить данное поведение. Попробуйте поиграться с напругой на память, задать чуть выше напряжение, если в БИОСе такое предусмотрено. Только не сразу много... шажочками по 0,05В и в пределах не более 1,6В. Или понизьте вручную тайминги. Возможно и взлетят. "
Однако я не смог его понять, так как нету толковых знаний про РАНКИ, БАНКИ, ТАЙМИНГИ, SPD, линии связи с процессором и поддержку БИОСом и чипсетом.
если в вашей статье будет как теоирия про тайминги банки ранки SPD поддержку чипсетом и так и реальная информация про реальные плашки памяти и чипсеты с примерами - это будет реально ИСЧЕРПЫВАЮЩЕЕ РУКОВОДСТВО которое все будут давать ссылку и советовать прочитать про любой вопрос, касаемый RAM
Информация
- Сайт
- timeweb.cloud
- Дата регистрации
- Дата основания
- Численность
- 201–500 человек
- Местоположение
- Россия
- Представитель
- Timeweb Cloud
Оперативная память: исчерпывающие руководство. Часть 1 – Физическое устройство RAM от атома кремния до реальных чипов