Компьютерные подсказки

Вылетает Сталкер: Зов Припяти Программа икс рей 1

Stalker lost alpha гид по прохождению

Pony Express отслеживание почтовых отправлений

Pony Express – время и сроки доставки с Алиэкспресс в Россию

Застряли посылки с Алиэкспресс со статусом Hand over to airline: что делать?

РФ (Nigma) — интеллектуальная поисковая система

Данные для семантики — Яндекс Вордстат

Пиар ВКонтакте при помощи бирж: особенности и использование

Почему я не могу отправить сообщение?

Предупреждение «Подключение не защищено» в Google Chrome по протоколу https Нарушена конфиденциальность данных яндекс браузер

Всё что известно о смартфоне Samsung Galaxy S9 Аккумуляторная батарея Galaxy S9 и мощность

Темы оформления и русификация форума SMF, а так же установка компонента JFusion в Joomla

Автоматическое определение движка форума Позже board powered by smf

Коды в игре скайрим - зелья, ингредиенты, заклинания Код на ингредиенты скайрим

Подробная инструкция, как в "скайриме" открыть дверь золотым когтем

Запись в микросхему памяти. Флэш-память

Флэш-память представляет собой тип долговечной памяти для компьютеров, у которой содержимое можно перепрограммировать или удалить электрическим методом. В сравнении с Electrically Erasable Programmable Read Only Memory действия над ней можно выполнять в блоках, которые находятся в разных местах. Флэш-память стоит намного меньше, чем EEPROM, поэтому она и стала доминирующей технологией. В особенности в ситуациях, когда необходимо устойчивое и длительное сохранение данных. Ее применение допускается в самых разнообразных случаях: в цифровых аудиоплеерах, фото- и видеокамерах, мобильных телефонах и смартфонах, где существуют специальные андроид-приложения на карту памяти. Кроме того, используется она и в USB-флешках, традиционно применяемых для сохранения информации и ее передачи между компьютерами. Она получила определенную известность в мире геймеров, где ее часто задействуют в промах для хранения данных по прогрессу игры.

Общее описание

Флэш-память представляет собой такой тип, который способен сохранять информацию на своей плате длительное время, не используя питания. В дополнение можно отметить высочайшую скорость доступа к данным, а также лучшее сопротивление к кинетическому шоку в сравнении с винчестерами. Именно благодаря таким характеристикам она стала настольно популярной для приборов, питающихся от батареек и аккумуляторов. Еще одно неоспоримое преимущество состоит в том, что когда флэш-память сжата в сплошную карту, ее практически невозможно разрушить какими-то стандартными физическими способами, поэтому она выдерживает кипящую воду и высокое давление.

Низкоуровневый доступ к данным

Способ доступа к данным, находящимся во флэш-памяти, сильно отличается от того, что применяется для обычных видов. Низкоуровневый доступ осуществляется посредством драйвера. Обычная RAM сразу же отвечает на призывы чтения информации и ее записи, возвращая результаты таких операций, а устройство флеш-памяти таково, что потребуется время на размышления.

Устройство и принцип работы

На данный момент распространена флэш-память, которая создана на однотранзисторных элементах, имеющих «плавающий» затвор. Благодаря этому удается обеспечить большую плотность хранения данных в сравнении с динамической ОЗУ, для которой требуется пара транзисторов и конденсаторный элемент. На данный момент рынок изобилует разнообразными технологиями построения базовых элементов для такого типа носителей, которые разработаны лидирующими производителями. Отличает их количество слоев, методы записи и стирания информации, а также организация структуры, которая обычно указывается в названии.

На текущий момент существует пара типов микросхем, которые распространены больше всего: NOR и NAND. В обоих подключение запоминающих транзисторов производится к разрядным шинам - параллельно и последовательно соответственно. У первого типа размеры ячеек довольно велики, и имеется возможность для быстрого произвольного доступа, что позволяет выполнять программы прямо из памяти. Второй характеризуется меньшими размерами ячеек, а также быстрым последовательным доступом, что намного удобнее при необходимости построения устройств блочного типа, где будет храниться информация большого объема.

В большинстве портативных устройств твердотельный накопитель использует тип памяти NOR. Однако сейчас все популярнее становятся приспособления с интерфейсом USB. В них применяется память типа NAND. Постепенно она вытесняет первую.

Главная проблема — недолговечность

Первые образцы флешек серийного производства не радовали пользователей большими скоростями. Однако теперь скорость записи и считывания информации находится на таком уровне, что можно просматривать полноформатный фильм либо запускать на компьютере операционную систему. Ряд производителей уже продемонстрировал машины, где винчестер заменен флеш-памятью. Но у этой технологии имеется весьма существенный недостаток, который становится препятствием для замены данным носителем существующих магнитных дисков. Из-за особенностей устройства флеш-памяти она позволяет производить стирание и запись информации ограниченное число циклов, которое является достижимым даже для малых и портативных устройств, не говоря о том, как часто это делается на компьютерах. Если использовать этот тип носителя как твердотельный накопитель на ПК, то очень быстро настанет критическая ситуация.

Связано это с тем, что такой накопитель построен на свойстве полевых транзисторов сохранять в «плавающем» затворе отсутствие или наличие которого в транзисторе рассматривается в качестве логической единицы или ноля в двоичной Запись и стирание данных в NAND-памяти производятся посредством туннелированных электронов методом Фаулера-Нордхейма при участии диэлектрика. Для этого не требуется что позволяет делать ячейки минимальных размеров. Но именно данный процесс приводит к ячеек, так как электрический ток в таком случае заставляет электроны проникать в затвор, преодолевая диэлектрический барьер. Однако гарантированный срок хранения подобной памяти составляет десять лет. Износ микросхемы происходит не из-за чтения информации, а из-за операций по ее стиранию и записи, поскольку чтение не требует изменения структуры ячеек, а только пропускает электрический ток.

Естественно, производители памяти ведут активные работы в направлении увеличения срока службы твердотельных накопителей данного типа: они устремлены к обеспечению равномерности процессов записи/стирания по ячейкам массива, чтобы одни не изнашивались больше других. Для равномерного распределения нагрузки преимущественно используются программные пути. К примеру, для устранения подобного явления применяется технология «выравнивания износа». При этом данные, часто подвергаемые изменениям, перемещаются в адресное пространство флеш-памяти, потому запись осуществляется по разным физическим адресам. Каждый контроллер оснащается собственным алгоритмом выравнивания, поэтому весьма затруднительно сравнивать эффективность тех или иных моделей, так как не разглашаются подробности реализации. Поскольку с каждым годом объемы флешек становятся все больше, необходимо применять все более эффективные алгоритмы работы, позволяющие гарантировать стабильность функционирования устройств.

Устранение проблем

Одним из весьма эффективных путей борьбы с указанным явлением стало резервирование определенного объема памяти, за счет которого обеспечивается равномерность нагрузки и коррекция ошибок посредством особых алгоритмов логической переадресации для подмены физических блоков, возникающих при интенсивной работе с флешкой. А для предотвращения утраты информации ячейки, вышедшие из строя, блокируются или заменяются на резервные. Такое программное распределение блоков дает возможность обеспечения равномерности нагрузки, увеличив количество циклов в 3-5 раз, однако и этого мало.

И другие виды подобных накопителей характеризуются тем, что в их служебную область заносится таблица с файловой системой. Она предотвращает сбои чтения информации на логическом уровне, например, при некорректном отключении либо при внезапном прекращении подачи электрической энергии. А так как при использовании сменных устройств системой не предусмотрено кэширование, то частая перезапись оказывает самое губительное воздействие на таблицу размещения файлов и оглавление каталогов. И даже специальные программы для карт памяти не способны помочь в данной ситуации. К примеру, при однократном обращении пользователь переписал тысячу файлов. И, казалось бы, только по одному разу применил для записи блоки, где они размещены. Но служебные области переписывались при каждом из обновлений любого файла, то есть таблицы размещения прошли эту процедуру тысячу раз. По указанной причине в первую очередь выйдут из строя блоки, занимаемые именно этими данными. Технология «выравнивания износа» работает и с такими блоками, но эффективность ее весьма ограничена. И тут не важно, какой вы используете компьютер, флешка выйдет из строя ровно тогда, когда это предусмотрено создателем.

Стоит отметить, что увеличение емкости микросхем подобных устройств привело лишь к тому, что общее количество циклов записи сократилось, так как ячейки становятся все меньше, поэтому требуется все меньше и напряжения для рассеивания оксидных перегородок, которые изолируют «плавающий затвор». И тут ситуация складывается так, что с увеличением емкости используемых приспособлений проблема их надежности стала усугубляться все сильнее, а class карты памяти теперь зависит от многих факторов. Надежность работы подобного решения определяется его техническими особенностями, а также ситуацией на рынке, сложившейся на данный момент. Из-за жесткой конкуренции производители вынуждены снижать себестоимость продукции любым путем. В том числе и благодаря упрощению конструкции, использованию комплектующих из более дешевого набора, ослаблению контроля за изготовлением и иными способами. К примеру, карта памяти "Самсунг" будет стоить дороже менее известных аналогов, но ее надежность вызывает гораздо меньше вопросов. Но и здесь сложно говорить о полном отсутствии проблем, а уж от устройств совсем неизвестных производителей сложно ожидать чего-то большего.

Перспективы развития

При наличии очевидных достоинств имеется целый ряд недостатков, которыми характеризуется SD-карта памяти, препятствующих дальнейшему расширению ее области применения. Именно поэтому ведутся постоянные поиски альтернативных решений в данной области. Конечно, в первую очередь стараются совершенствовать уже существующие типы флеш-памяти, что не приведет к каким-то принципиальным изменениям в имеющемся процессе производства. Поэтому не стоит сомневаться только в одном: фирмы, занятые изготовлением этих видов накопителей, будут стараться использовать весь свой потенциал, перед тем как перейти на иной тип, продолжая совершенствовать традиционную технологию. К примеру, карта памяти Sony выпускается на данный момент в широком диапазоне объемов, поэтому предполагается, что она и будет продолжать активно распродаваться.

Однако на сегодняшний день на пороге промышленной реализации находится целый комплекс технологий альтернативного хранения данных, часть из которых можно внедрить сразу же при наступлении благоприятной рыночной ситуации.

Ferroelectric RAM (FRAM)

Технология ферроэлектрического принципа хранения информации (Ferroelectric RAM, FRAM) предлагается с целью наращивания потенциала энергонезависимой памяти. Принято считать, что механизм работы имеющихся технологий, заключающийся в перезаписи данных в процессе считываниям при всех видоизменениях базовых компонентов, приводит к определенному сдерживанию скоростного потенциала устройств. А FRAM - это память, характеризующаяся простотой, высокой надежностью и скоростью в эксплуатации. Эти свойства сейчас характерны для DRAM - энергонезависимой оперативной памяти, существующей на данный момент. Но тут добавится еще и возможность длительного хранения данных, которой характеризуется Среди достоинств подобной технологии можно выделить стойкость к разным видам проникающих излучений, что может оказаться востребованным в специальных приборах, которые используются для работы в условиях повышенной радиоактивности либо в исследованиях космоса. Механизм хранения информации здесь реализуется за счет применения сегнетоэлектрического эффекта. Он подразумевает, что материал способен сохранять поляризацию в условиях отсутствия внешнего электрического поля. Каждая ячейка памяти FRAM формируется за счет размещения сверхтонкой пленки из сегнетоэлектрического материала в виде кристаллов между парой плоских металлических электродов, формирующих конденсатор. Данные в этом случае хранятся внутри кристаллической структуры. А это предотвращает эффект утечки заряда, который становится причиной утраты информации. Данные в FRAM-памяти сохраняются даже при отключении напряжения питания.

Magnetic RAM (MRAM)

Еще одним типом памяти, который на сегодняшний день считается весьма перспективным, является MRAM. Он характеризуется довольно высокими скоростными показателями и энергонезависимостью. в данном случае служит тонкая магнитная пленка, размещенная на кремниевой подложке. MRAM представляет собой статическую память. Она не нуждается в периодической перезаписи, а информация не будет утрачена при выключении питания. На данный момент большинство специалистов сходится во мнении, что этот тип памяти можно назвать технологией следующего поколения, так как существующий прототип демонстрирует довольно высокие скоростные показатели. Еще одним достоинством подобного решения является невысокая стоимость чипов. Флэш-память изготавливается в соответствии со специализированным КМОП-процессом. А микросхемы MRAM могут производиться по стандартному технологическому процессу. Причем материалами могут послужить те, что используются в обычных магнитных носителях. Производить крупные партии подобных микросхем гораздо дешевле, чем всех остальных. Важное свойство MRAM-памяти состоит в возможности мгновенного включения. А это особенно ценно для мобильных устройств. Ведь в этом типе значение ячейки определяется магнитным зарядом, а не электрическим, как в традиционной флеш-памяти.

Ovonic Unified Memory (OUM)

Еще один тип памяти, над которым активно работают многие компании, - это твердотельный накопитель на базе аморфных полупроводников. В его основу заложена технология фазового перехода, которая аналогична принципу записи на обычные диски. Тут фазовое состояние вещества в электрическом поле меняется с кристаллического на аморфное. И это изменение сохраняется и при отсутствии напряжения. От традиционных оптических дисков такие устройства отличаются тем, что нагрев происходит за счет действия электрического тока, а не лазера. Считывание в данном случае осуществляется за счет разницы в отражающей способности вещества в различных состояниях, которая воспринимается датчиком дисковода. Теоретически подобное решение обладает высокой плотностью хранения данных и максимальной надежностью, а также повышенным быстродействием. Высок здесь показатель максимального числа циклов перезаписи, для чего используется компьютер, флешка в этом случае отстает на несколько порядков.

Chalcogenide RAM (CRAM) и Phase Change Memory (PRAM)

Эта технология тоже базируется на основе когда в одной фазе вещество, используемое в носителе, выступает в качестве непроводящего аморфного материала, а во второй служит кристаллическим проводником. Переход запоминающей ячейки из одного состояния в другое осуществляется за счет электрических полей и нагрева. Такие чипы характеризуются устойчивостью к ионизирующему излучению.

Information-Multilayered Imprinted CArd (Info-MICA)

Работа устройств, построенных на базе такой технологии, осуществляется по принципу тонкопленочной голографии. Информация записывается так: сначала формируется двумерный образ, передаваемый в голограмму по технологии CGH. Считывание данных происходит за счет фиксации луча лазера на краю одного из записываемых слоев, служащих оптическими волноводами. Свет распространяется вдоль оси, которая размещена параллельно плоскости слоя, формируя на выходе изображение, соответствующее информации, записанной ранее. Начальные данные могут быть получены в любой момент благодаря алгоритму обратного кодирования.

Этот тип памяти выгодно отличается от полупроводниковой за счет того, что обеспечивает высокую плотность записи, малое энергопотребление, а также низкую стоимость носителя, экологическую безопасность и защищенность от несанкционированного использования. Но перезаписи информации такая карта памяти не допускает, поэтому может служить только в качестве долговременного хранилища, замены бумажного носителя либо альтернативы оптическим дискам для распространения мультимедийного контента.

Микросхемы разного назначения применяются в составе электроники современной техники. Огромное многообразие такого рода компонентов дополняют микросхемы памяти. Этот вид радиодеталей (среди электронщиков и в народе) зачастую называют просто – чипы. Основное назначение чипов памяти – хранение определённой информации с возможностью внесения (записи), изменения (перезаписи) или полного удаления (стирания) программными средствами. Всеобщий интерес к чипам памяти понятен. Мастерам, знающим как программировать микросхемы памяти, открываются широкие просторы в области ремонта и настройки современных электронных устройств.

Микросхема памяти — это электронный компонент, внутренняя структура которого способна сохранять (запоминать) внесённые программы, какие-либо данные или одновременно то и другое.

По сути, загруженные в чип сведения представляют собой серию команд, состоящих из набора вычислительных единиц микропроцессора.

Следует отметить: чипы памяти всегда являются неотъемлемым дополнением микропроцессоров – управляющих микросхем. В свою очередь микропроцессор является основой электроники любой современной техники.

Набор электронных компонентов на плате современного электронного устройства. Где-то среди этой массы радиодеталей приютился компонент, способный запоминать информацию

Таким образом, микропроцессор управляет , а чип памяти хранит сведения, необходимые микропроцессору.

Программы или данные хранятся в чипе памяти как ряд чисел — нулей и единиц (биты). Один бит может быть представлен логическими нулем (0) либо единицей (1).

В единичном виде обработка битов видится сложной. Поэтому биты объединяются в группы. Шестнадцать бит составляют группу «слов», восемь бит составляют байт — «часть слова», четыре бита — «кусочек слова».

Программным термином для чипов, что используется чаще других, является байт. Это набор из восьми бит, который может принимать от 2 до 8 числовых вариаций, что в общей сложности даёт 256 различных значений.

Для представления байта используется шестнадцатеричная система счисления, где предусматривается использование 16 значений из двух групп:

  1. Цифровых (от 0 до 9).
  2. Символьных (от А до F).

Поэтому в комбинациях двух знаков шестнадцатеричной системы также укладываются 256 значений (от 00h до FFh). Конечный символ «h» указывает на принадлежность к шестнадцатеричным числам.

Организация микросхем (чипов) памяти

Для 8-битных чипов памяти (наиболее распространенный тип) биты объединяются в байты (8 бит) и сохраняются под определённым «адресом».

По назначенному адресу открывается доступ к байтам. Вывод восьми битов адреса доступа осуществляется через восемь портов данных.


Организация структуры запоминающего устройства. На первый взгляд сложный и непонятный алгоритм. Но при желании разобраться, понимание приходит быстро Новый Год – приятный, светлый праздник, в который мы все подводим итоги год ушедшего, смотрим с надеждой в будущее и дарим подарки. В этой связи мне хотелось бы поблагодарить всех хабра-жителей за поддержку, помощь и интерес, проявленный к моим статьям ( , , , ). Если бы Вы когда-то не поддержали первую, не было и последующих (уже 5 статей)! Спасибо! И, конечно же, я хочу сделать подарок в виде научно-популярно-познавательной статьи о том, как можно весело, интересно и с пользой (как личной, так и общественной) применять довольно суровое на первый взгляд аналитическое оборудование. Сегодня под Новый Год на праздничном операционном столе лежат: USB-Flash накопитель от A-Data и модуль SO-DIMM SDRAM от Samsung.

Теоретическая часть

Постараюсь быть предельно краток, чтобы все мы успели приготовить салат оливье с запасом к праздничному столу, поэтому часть материала будет в виде ссылок: захотите – почитаете на досуге…
Какая память бывает?
На настоящий момент есть множество вариантов хранения информации, какие-то из них требуют постоянной подпитки электричеством (RAM), какие-то навсегда «вшиты» в управляющие микросхемы окружающей нас техники (ROM), а какие-то сочетают в себе качества и тех, и других (Hybrid). К последним, в частности, и принадлежит flash. Вроде бы и энергонезависимая память, но законы физики отменить сложно, и периодически на флешках перезаписывать информацию всё-таки приходится.

Единственное, что, пожалуй, может объединять все эти типы памяти – более-менее одинаковый принцип работы. Есть некоторая двумерная или трёхмерная матрица, которая заполняется 0 и 1 примерно таким образом и из которой мы впоследствии можем эти значения либо считать, либо заменить, т.е. всё это прямой аналог предшественника – памяти на ферритовых кольцах .

Что такое flash-память и какой она бывает (NOR и NAND)?
Начнём с flash-памяти. Когда-то давно на небезызвестном ixbt была опубликована довольно о том, что представляет собой Flash, и какие 2 основных сорта данного вида памяти бывают. В частности, есть NOR (логическое не-или) и NAND (логическое не-и) Flash-память ( тоже всё очень подробно описано), которые несколько отличаются по своей организации (например, NOR – двумерная, NAND может быть и трехмерной), но имеют один общий элемент – транзистор с плавающим затвором.


Схематическое представление транзистора с плавающим затвором.

Итак, как же это чудо инженерной мысли работает? Вместе с некоторыми физическими формулами это описано . Если вкратце, то между управляющим затвором и каналом, по которому ток течёт от истока к стоку, мы помещаем тот самый плавающий затвор, окружённый тонким слоем диэлектрика. В результате, при протекании тока через такой «модифицированный» полевой транзистор часть электронов с высокой энергией туннелируют сквозь диэлектрик и оказываются внутри плавающего затвора. Понятно, что пока электроны туннелировали, бродили внутри этого затвора, они потеряли часть энергии и назад практически вернуться не могут.

NB: «практически» - ключевое слово, ведь без перезаписи, без обновления ячеек хотя бы раз в несколько лет Flash «обнуляется» так же, как оперативная память, после выключения компьютера.

Опять мы имеем двумерный массив, который необходимо заполнить 0 и 1. Так как на накопление заряда на плавающем затворе уходит довольно продолжительное время, то в случае RAM применяется иное решение. Ячейка памяти состоит из конденсатора и обычного полевого транзистора. При этом сам конденсатор имеет, с одной стороны, примитивное физическое устройство, но, с другой стороны, нетривиально реализован в железе:


Устройство ячейки RAM.

Опять-таки на ixbt есть неплохая , посвящённая DRAM и SDRAM памяти. Она, конечно, не так свежа, но принципиальные моменты описаны очень хорошо.

Единственный вопрос, который меня мучает: а может ли DRAM иметь, как flash, multi-level cell? Вроде да , но всё-таки…

Часть практическая

Flash
Те, кто пользуется флешками довольно давно, наверное, уже видели «голый» накопитель, без корпуса. Но я всё-таки кратко упомяну основные части USB-Flash-накопителя:


Основные элементы USB-Flash накопителя: 1. USB-коннектор, 2. контроллер, 3. PCB-многослойная печатная плата, 4. модуль NAND памяти, 5. кварцевый генератор опорной частоты, 6. LED-индикатор (сейчас, правда, на многих флешках его нет), 7. переключатель защиты от записи (аналогично, на многих флешках отсутствует), 8. место для дополнительной микросхемы памяти.

Пойдём от простого к сложному. Кварцевый генератор (подробнее о принципе работы ). К моему глубокому сожалению, за время полировки сама кварцевая пластинка исчезла, поэтому нам остаётся любоваться только корпусом.


Корпус кварцевого генератора

Случайно, между делом, нашёл-таки, как выглядит армирующее волокно внутри текстолита и шарики, из которых в массе своей и состоит текстолит. Кстати, а волокна всё-таки уложены со скруткой, это хорошо видно на верхнем изображении:


Армирующее волокно внутри текстолита (красными стрелками указаны волокна, перпендикулярные срезу), из которого и состоит основная масса текстолита

А вот и первая важная деталь флешки – контроллер:


Контроллер. Верхнее изображение получено объединением нескольких СЭМ-микрофотографий

Признаюсь честно, не совсем понял задумку инженеров, которые в самой заливке чипа поместили ещё какие-то дополнительные проводники. Может быть, это с точки зрения технологического процесса проще и дешевле сделать.

После обработки этой картинки я кричал: «Яяяяязь!» и бегал по комнате. Итак, Вашему вниманию представляет техпроцесс 500 нм во всей свой красе с отлично прорисованными границами стока, истока, управляющего затвора и даже контакты сохранились в относительной целостности:


«Язь!» микроэлектроники – техпроцесс 500 нм контроллера с прекрасно прорисованными отдельными стоками (Drain), истоками (Source) и управляющими затворами (Gate)

Теперь приступим к десерту – чипам памяти. Начнём с контактов, которые эту память в прямом смысле этого слова питают. Помимо основного (на рисунке самого «толстого» контакта) есть ещё и множество мелких. Кстати, «толстый» < 2 диаметров человеческого волоса, так что всё в мире относительно:


СЭМ-изображения контактов, питающих чип памяти

Если говорить о самой памяти, то тут нас тоже ждёт успех. Удалось отснять отдельные блоки, границы которых выделены стрелочками. Глядя на изображение с максимальным увеличением, постарайтесь напрячь взгляд, этот контраст реально трудно различим, но он есть на изображении (для наглядности я отметил отдельную ячейку линиями):


Ячейки памяти 1. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки

Мне самому сначала это показалось как артефакт изображения, но обработав все фото дома, я понял, что это либо вытянутые по вертикальной оси управляющие затворы при SLC-ячейке, либо это несколько ячеек, собранных в MLC. Хоть я и упомянул MLC выше, но всё-таки это вопрос. Для справки, «толщина» ячейки (т.е. расстояние между двумя светлыми точками на нижнем изображении) около 60 нм.

Чтобы не лукавить – вот аналогичные фото с другой половинки флешки. Полностью аналогичная картина:


Ячейки памяти 2. Границы блоков выделены стрелочками. Линиями обозначены отдельные ячейки

Конечно, сам чип – это не просто набор таких ячеек памяти, внутри него есть ещё какие-то структуры, принадлежность которых мне определить не удалось:


Другие структуры внутри чипов NAND памяти

DRAM
Всю плату SO-DIMM от Samsung я, конечно же, не стал распиливать, лишь с помощью строительного фена «отсоединил» один из модулей памяти. Стоит отметить, что тут пригодился один из советов, предложенных ещё после первой публикации – распилить под углом. Поэтому, для детального погружения в увиденное необходимо учитывать этот факт, тем более что распил под 45 градусов позволил ещё получить как бы «томографические» срезы конденсатора.

Однако по традиции начнём с контактов. Приятно было увидеть, как выглядит «скол» BGA и что собой представляет сама пайка:


«Скол» BGA-пайки

А вот и второй раз пора кричать: «Язь!», так как удалось увидеть отдельные твердотельные конденсаторы – концентрические круги на изображении, отмеченные стрелочками. Именно они хранят наши данные во время работы компьютера в виде заряда на своих обкладках. Судя по фотографиям размеры такого конденсатора составляют около 300 нм в ширину и около 100 нм в толщину.

Из-за того, что чип разрезан под углом, одни конденсаторы рассечены аккуратно по середине, у других же срезаны только «бока»:


DRAM память во всей красе

Если кто-то сомневается в том, что эти структуры и есть конденсаторы, то можно посмотреть более «профессиональное» фото (правда без масштабной метки).

Единственный момент, который меня смутил, что конденсаторы расположены в 2 ряда (левое нижнее фото), т.е. получается, что на 1 ячейку приходится 2 бита информации. Как уже было сказано выше, информация по мультибитовой записи имеется, но насколько эта технология применима и используется в современной промышленности – остаётся для меня под вопросом.

Конечно, кроме самих ячеек памяти внутри модуля есть ещё и какие-то вспомогательные структуры, о предназначении которых я могу только догадываться:


Другие структуры внутри чипа DRAM-памяти

Послесловие

Помимо тех ссылок, что раскиданы по тексту, на мой взгляд, довольно интересен данный обзор (пусть и от 1997 года), сам сайт (и фотогалерея, и chip-art, и патенты, и много-много всего) и данная контора , которая фактически занимается реверс-инжинирингом.

К сожалению, большого количества видео на тему производства Flash и RAM найти не удалось, поэтому довольствоваться придётся лишь сборкой USB-Flash-накопителей:

P.S.: Ещё раз всех с наступающим Новым Годом чёрного водяного дракона!!!
Странно получается: статью про Flash хотел написать одной из первых, но судьба распорядилась иначе. Скрестив пальцы, будем надеяться, что последующие, как минимум 2, статьи (про биообъекты и дисплеи) увидят свет в начале 2012 года. А пока затравка - углеродный скотч:


Углеродный скотч, на котором были закреплены исследуемые образцы. Думаю, что и обычный скотч выглядит похожим образом

Принципиально микросхемы памяти делятся на энергонезависимые, не теряющие информацию при выключении питания, и энергозависимые, содержимое которых при каждом включении считается неопределенным. Первые из них предназначены для хранения программ, констант, таблиц и других, не меняющихся или редко меняющихся данных, и называются ПЗУ (постоянные запоминающие устройства). Вторые предназначены для временного хранения данных, возникающих в процессе функционирования устройства, и называются ОЗУ (оперативные запоминающие устройства). В свою очередь, ПЗУ классифицируются по способу занесения информации и по способу ее стирания, если только такая возможность существует в данном классе ПЗУ. Самым дешевым способом записи является масочное программирование в процессе изготовления кристалла. Микросхемы ЗУ с <прошитой> информации - ROM (Read Only Memory) - невозможно перепрограммировать, и применяются они только при массовом производстве, большой серийности и гарантированной безошибочности заносимого текста. Следующая разновидность ПЗУ - PROM (Programmable Read Only Memory) - поставляется в <чистом> виде и предоставляет пользователю возможность самостоятельно, с помощью программатора, занести требуемое содержимое. Если этот процесс необратим, то такие микросхемы называются OTP (One Time Programmable) - однократно программируемые. Если существует возможность очистки содержимого с последующим занесением нового, то микросхемы называются EPROM (Erasable Programmable Read Only Memory). И, наконец, в зависимости от способа стирания они могут быть либо UV-EPROM, с ультрафиолетовым стиранием, либо EEPROM, с электрическим стиранием. Однако, сложившаяся за последние годы терминология чаще использует аббревиатуру EEPROM за определенной разновидностью памяти, которая, в каком-то смысле, может считаться энергонезависимым ОЗУ.
Собственно ПЗУ с электрическим стиранием принято называть Flash памятью. Отличия между ними достаточно велики. EEPROM допускает при записи произвольный доступ к ячейкам памяти, Flash память предполагает только страничный, то есть с разбивкой на сектора, доступ при стирании/записи. Переписать содержимое единственной ячейки памяти невозможно. При чтении принципиальной разницы между ними нет. Кроме того, программирование Flash памяти - это целый процесс, который требует дополнительных программных шагов для перевода микросхемы в режим программирования и контроля его окончания. В итоге, область применения Flash памяти - тексты программ, таблицы и другие данные, изменение которых или не предполагается вовсе, или допускается, но весьма редко. EEPROM память используется для текущего запоминания данных в процессе работы, при смене констант, настроек (например в телевизоре), с автоматическим их сохранением при выключении питания. В то же время Flash память обладает большей емкостью и меньшей ценой при пересчете на стоимость хранения одного байта информации.
Оперативная память (RAM - Random Access Memory) принципиально делится на два типа: статическая - SRAM и динамическая - DRAM. Первая, при наличии питающего напряжения, может сохранять записанную информацию как угодно долго без всяких обращений к ней. Запоминающей ячейкой является триггер. Вторая требует постоянной <регенерации>, то есть считывания и повторной записи в соответствующие ячейки. Это связано с физической основой хранения, которой в DRAM является конденсатор ничтожно малой емкости, включенный на пересечении строк и столбцов матрицы. Этим достигается сверхвысокая плотность упаковки и большая удельная информационная емкость микросхемы. Платой является необходимость периодически осуществлять цикл регенерации. Также приходится жертвовать энергопотреблением. Микросхемы DRAM применяются сегодня практически только в компьютерах и другой вычислительной технике.
Для нас больший интерес представляют микросхемы SRAM, которые, в свою очередь подразделяются на микромощные со сравнительно небольшим (55 - 120 нс) быстродействием и высокоскоростные (7 - 25 нс) со значительно большим энергопотреблением.
Существуют и другие разновидности ОЗУ, например «Zero-Power» со встроенной литиевой батареей или «Dual-Port» с отличной от обычных системой доступа к информации.


Основные параметры микросхем памяти:
  • информационная емкость. Cпособность хранить определенное число бит двоичной информации;
  • организация микросхем ЗУ. Она может быть различной при одном и том же объеме памяти. Например, 65 536 бит могут выглядеть как 4 096 х 16, или как 8 192 х 8, или в другом сочетании. Внутренняя организация запоминающей матрицы при этом остается неизменной, изменяется только внешний интерфейс и, соответственно, число внешних выводов;
  • время выборки. Bремя от подачи последнего из сигналов, разрешающих чтение до появления на выходе устойчивых данных;
  • потребляемая мощность. Как обычно, существует компромисс между потребляемой мощностью и быстродействием микросхемы;
  • напряжение питания. Общая тенденция к снижению напряжения питания привела к появлению микросхем ЗУ, работающих при 3,3, 2,5 и даже 1,8 вольт;
  • температурный диапазон. Коммерческий, индустриальный или расширенный.
К специфическим параметрам ЗУ относятся такие как: время хранения (часов, лет), число циклов перезаписи , время стирания и другие.

В заключение, необходимо отметить, что микросхемы EEPROM и Flash типов часто имеют последовательный внешний интерфейс обмена данными. Это значительно уменьшает скорость обмена, но, в тех применениях, где она не критична, позволяет экономить число внешних выводов микросхем, занимаемую на печатной плате площадь, число паек.

Иногда при разработке устройства возникает потребность сохранять какие-либо данные в энергонезависимую память. В таких случаях обычно используют внутреннюю EEPROM микроконтроллера. Если её недостаточно, то как правило применяются внешние микросхемы EEPROM из серии 24lxx. Микросхемы этой серии очень популярны. Чаще всего их можно встретить в старых мобильных телефонах, некоторых материнских платах, картриджах от принтеров да еще много где. Цена данных микросхем тоже очень привлекательная. Например 24LC16 у нас стоит 11 рублей.
Данная микросхема выпускается в различных корпусах, самые популярные из которых это DIP и SOIC. Микросхема имеет следующую распиновку:

Как видите выводов совсем немного. Итак попробуем разобраться для что к чему.
A0, A1, A2 — в данной микросхеме не используются. Их можно подсоединить к земле или к плюсу питания. В некоторых других микросхемах серии 24lxx, этими выводами можно задавать адрес микросхемы, для того чтобы можно было подсоединить на одну шину i2c аж сразу 8 микрух памяти.
Vss — земля.
SDA — линия данных
SCL — линия тактовых импульсов
WP — Защита от записи. Когда на данном выводе логический 0, то запись в память разрешена. Если подать логическую единицу, то возможно только чтение из памяти.
Vcc — питание микросхемы. Согласно даташиту питается она напряжением от 2.5 вольта до 5.5 вольта.

Подключение к контроллеру.
Подключить память к МК очень просто. Из обвязки потребуются только пара резисторов сопротивлением около 4.7 кОм.

Программное обеспечение

Для работы с памятью была разработана библиотека реализующая следующие функции:

i2c_init — настраивает скорость тактовых импульсов идущих по линии SCL.

Микросхема 24LC16 поддерживает частоту до 400 кГц. Рассчитать частоту можно так:

CPU Clock frequency — частота на которой работает микроконтроллер

TWBR — число записанное в одноименный регистр.

TWPS — предделитель. Значения предделителя задаются битами TWPS1 и TWPS0 в регистре TWSR

Для контроллера Atmega 32 справедлива такая таблица:

i2c_start — отсылает стартовую посылку

i2c_stop — отсылает стоповую посылку

i2c_send — отсылает байт

i2c_recive — принимает байт

i2c_recive_last — принимает последний байт. Отличие от предыдущей функции состоит в том, что когда байт принят, микроконтроллер не отсылает бит подтверждения. Если при приёме последнего байта использовать i2c_recive то линия SDA останется прижатой к земле.

Запись данных в микросхему памяти

Записывать данные можно как в произвольном порядке так и постранично. Поскольку на шине i2c могут быть сразу несколько устройств, то для того чтобы обратится к какому либо устройству нужно знать его семибитный адрес. Адрес микросхемы 24LC16 в двоичном виде выглядит так:

Биты A,B,C служат для выбора блока памяти. Блоков памяти в микросхеме 8 штук по 256 байт каждый. Соответственно биты ABC принимают значения от 000 до 111.

Для того чтоб записать в микросхему байт нужно выполнить следующую последовательность действий:

  1. Инициализировать интерфейс i2c
  2. Отослать стартовую посылку
  3. Отослать адрес микросхемы+адрес блока памяти
  4. Отослать адрес ячейки памяти в которую будет производится запись
  5. Отослать байт данных
  6. Отослать стоповую посылку

Пример: Нужно записать байт 0xFA по адресу 0x101 .

rcall i2c_init
rcall i2c_start
ldi temp,0b 1010 001 0 //Адрес микросхемы где:
// 1010 - адрес микросхемы
// 001 - адрес блока памяти (Ячейка 0x101 принадлежит блоку 1)
// 0
rcall i2c_send
ldi temp,1 //Адрес ячейки памяти. (блок 1, ячейка 1)
rcall i2c_send
ldi temp,0xFA //Загружаем в регистр байт который нужно записать
rcall i2c_send //Записываем байт
rcall i2c_stop

Записывать данные в память можно не только побайтно но и постранично. Размер страницы — 16 байт. Постараничная запись подразумевает следующее: Отправляем адрес нулевого байта нужной страницы и после этого 16 раз отправляем нужные данные. Счётчик адреса будет увеличивать на единицу автоматически. Если отправить данные в 17-й раз, то будет перезаписан нулевой байт, если отправить байт 18-й раз, то он затрет байт номер 1 итд.

Пример : Требуется записать первую страницу блока 0.

rcall i2c_init //Инициализируем интерфейс i2c
rcall i2c_start // Отправляем стартовую посылку
ldi temp,0b 1010 000 0 //Адрес микросхемы где:
// 1010 - адрес микросхемы
// 000 - адрес блока памяти (нас интересует нулевой блок)
// 0 - бит чтения/записи. 0 - запись, 1 - чтение
rcall i2c_send
ldi temp,16 //Адрес первой страницы
rcall i2c_send
ldi temp,0x01 //Загружаем в регистр байт номер 0
rcall i2c_send //Записываем байт
ldi temp,0x02 //Загружаем в регистр байт номер 1
rcall i2c_send //Записываем байт
/// тут пишем остальные байты.....
ldi temp,0x0E //Загружаем в регистр байт номер 14
rcall i2c_send //Записываем байт
ldi temp,0x0F //Загружаем в регистр байт номер 15
rcall i2c_send //Записываем байт
rcall i2c_stop //Отправляем стоповую посылку

Чтение данных из микросхемы
С записью вроде разобрались, теперь приступим к чтению. Чтобы прочитать байт нужно сделать следующее:

  1. Инициализировать интерфейс i2c (если он не инициализировался ранее)
  2. Отправить стартовую посылку
  3. Отправить адрес микросхемы и адрес блока памяти откуда будем читать
  4. Отправить адрес ячейки памяти
  5. Отправить стартовую посылку повторно
  6. Отправить адрес микросхемы и адрес блока памяти с битом «чтение»
  7. Получить байт
  8. Отправить стоповую посылку

rcall i2c_init //Инициализируем интерфейс i2c
rcall i2c_start // Отправляем стартовую посылку
ldi temp,0b1010 011 0 //Адрес микросхемы + адрес 3-го блока памяти.
//Бит чтение/запись по прежнему 0 !
rcall i2c_send
ldi temp,0x41 //Адрес ячейки памяти
rcall i2c_send
rcall i2c_start //Повторная отправка стартовой посылки
ldi temp,0b1010 011 1 //Адрес микросхемы+адрес блока памяти+бит чтения/записи стал 1
rcall i2c_send //теперь можно читать данные
rcall i2c_recive_last //Читаем байт. Первый и последний.
rcall i2c_stop //Отправляем стоповую посылку

Чтение может производится последовательно байт за байтом, т.е. просто вызывать i2c_recive столько сколько нужно. Команду увеличения адреса на единицу посылать не нужно. Переключать адреса блоков при последовательном чтении так же не нужно. Т.е. можно взять и разом прочитать всю микросхему без всяких проблем.

Библиотека для работы с i2c разрабатывалась и была испытана на микроконтроллере Atmega32. Я думаю что она будет работать на многих других контроллерах без каких либо изменений. Естественно в контроллере должна быть аппаратная поддержка i2c или как его еще называют TWI. Конечно реализовать i2c можно и программно, но я не стал заморачиваться да и не было нужды. Демонстрационный пример представляет собой программу которая записывает по первым 16 адресам байты от 0 до 15, а после записи выводит их в порт A. Наблюдать как это работает можно не только в живую но и в Proteus’е.

Ну и напоследок прикладываю осциллограмму:

Вот так выглядит шина i2c глазами моего :-)
Все вопросы и предложения жду в комментариях.

Вам также будет интересно:

Читы и консольные команды для Counter-Strike: Global Offensive Команда в кс го чтобы летать
В этой статье мы рассмотрим некоторые из наиболее полезных и забавных консольных команд в...
Arduino и четырехразрядный семисегментный индикатор Семисегментный индикатор 4 разряда распиновка
В сегодняшней статье поговорим о 7-сегментных индикаторах и о том, как их «подружить» с...
«Рабочие лошадки» Hi-Fi: собираем бюджетную систему Хороший бюджетный hi fi плеер
Выбор плеера - это сложный процесс, иногда человек желает получить не просто коробочку,...
Как правильно пользоваться сургучными печатями
На самом деле, сургуч - это смесь смол, окрашенная в определенный цвет. Если у вас на руках...
Лагает fallout 4 как снизить графику
10 ноября состоялся релиз долгожданной игры на ПК, PlayStation 4 и Xbox One, и постепенно...