Главная - Разное
Особенности организации nor и nand флеш памяти. Справочная информация - промэлектроника. Порядок запоминания информации

Немного о флэш-памяти

Сегодня такой раздел (модуль, элемент - можете называть ее как угодно), как флэш-память, является неотъемлемой частью практически всех комплектующих компьютера (будь то звуковая карта, винчестер, модем, магнитооптические накопители или CD-ROM), использующих в своей работе память, да и не только компьютера (!). Но что же на самом деле представляет собой флэш-память? Этому и другому посвящена данная статья.

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

Технология модулей флэш-памяти

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

Работа флэш-памяти содержит только три операции - запись или программирование, чтение, стирание. На каждую из операций требуется определенное время. Например, для чтения одного параметрического блока затрачивается примерно 60 нс., а для записи 9 мкс. На операцию стирания информации в среднем затрачивается от 0,6 до 4,5 секунды. Это самая долгая операция.

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

Модули флэш-памяти имеют ограниченный срок службы. Но несмотря на это, микросхемы Flash Memory Boot Block (такое они имеют название) должны выдерживать не менее 100 тысяч циклов перезаписи при напряжении 5 вольт. Одним циклом перезаписи считается законченный цикл операций записи и стирания одного и того же блока информации объемом не менее 8 Кб. Естественно, что на микросхему за раз можно записать гораздо больше информации, чем 8 Кб, поэтому ресурс микро-схемы зависит не только от цикла перезаписи, но и от объема перезаписываемой информации и от частоты (периодичности) ее обновления.

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

Структура блочных (параметрических) данных в микросхеме

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

В последней записи, обычно в поле "Next_Record", заносится код, который обозначается как FFh. Он указывает на то, что последующих записей больше нет. Этот код представляет собой значение стертого байта по умолчанию.

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

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

В таблице ниже приведен пример структуры самого простого связного списка. В данном примере (то же самое относится к любой другой структуре) Parameter_Value является переменным и зависит в большей степени от специфики и объема заносимой информации.

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

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

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

Самыми распространенными типами флэш-карт сегодня являются CompactFlash (CF), SmartMedia (SM), Securе Digital (SD), MultiMediaCard (MMC) и Memory Stick (MS), которые отличаются друг от друга интерфейсами, габаритами, скоростью чтения/записи и максимально возможной емкостью.

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

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

Устройство ячейки флэш-памяти

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

Рассмотрим для примера хорошо известную оперативную память с произвольным доступом, именуемую также RAM-памятью (Random Access Memory). По принципам действия RAM-память можно разделить на динамическую и статическую.

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

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

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

Принципиальное отличие флэш-памяти от RAM-памяти заключается в том, что это энергонезависимая память, способная в течение неограниченного времени сохранять информацию при отсутствии внешнего питания.

В принципе, существует несколько типов энергонезависимой памяти, и в этом смысле флэш-память — лишь одна из ее разновидностей.

Архитектура ПЗУ-памяти

Простейшим примером энергонезависимой памяти является ROM (Read-Only Memory), известная также как ПЗУ (постоянное запоминающее устройство). В такой памяти массив ячеек представляет собой набор проводников, некоторое из которых остаются целыми, а остальные разрушаются. Данные проводники, выполняющие роль элементарных переключателей, организуются в матрицу путем подсоединения к линиям столбцов и строк (рис. 1). Замкнутому состоянию проводника можно присвоить значение логического нуля, а разомкнутому — логической единицы. Если теперь измерить напряжение между одной из линий столбцов и строк (то есть получить доступ к определенной ячейке памяти), то его высокое значение (разомкнутое состояние проводника) соответствует логической единице, а нулевое (замкнутое состояние проводника) — логическому нулю.

Основным недостатком ПЗУ является невозможность обновлять содержимое ячеек памяти, то есть записывать информацию. Когда-то такая память использовалась для хранения BIOS, однако сегодня этот тип памяти уже не применяется.

Другой тип энергонезависимой памяти — перезаписываемое ПЗУ (ППЗУ) или EPROM (Erasable Programmable Read-Only Memory). Такая память может быть перезаписана только с помощью специальных программаторов. В настоящее время из-за сложности процесса перезаписи на смену ППЗУ приходит флэш-память (Flash Memory).

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

Структура CMOS-транзистора

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

Обычный CMOS-транзистор может находиться в двух состояниях: открытом и закрытом. Рассмотрим принцип действия обычного транзистора на примере n-p-n-транзистора (рис. 2). В таком транзисторе области стока и истока имеют электронную проводимость (n-области), а область затвора — дырочную проводимость (p-область). Сам транзистор выполнен в полупроводнике p-типа с дырочной проводимостью. Естественно, что за счет диффузии дырок из p-области в n-область и обратной диффузии электронов из n-области в p-область на границах переходов p- и n-областей формируются обедненные слои (слои, в которых отсутствуют основные носители зарядов), препятствующие протеканию тока. В обычном положении, то есть когда к затвору не прикладывается напряжение или подается отрицательный потенциал, транзистор находится в закрытом состоянии, то есть не способен проводить ток от истока к стоку. Ситуация не меняется, даже если приложить напряжение между стоком и истоком (при этом не принимаются во внимание токи утечки, вызванные движением под воздействием формируемых электрических полей неосновных носителей заряда, то есть дырок для n-области и электронов для p-области).

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

В открытом состоянии напряжение между стоком и истоком близко к нулю, а в закрытом состоянии это напряжение может достигать высокого значения. Ситуация в данном случае аналогична ячейкам ПЗУ с замкнутыми и разомкнутыми проводниками. Закрытое состояние транзистора соответствует разомкнутому проводнику и может трактоваться как логическая единица, а открытое состояние транзистора соответствует замкнутому проводнику и может трактоваться как логический нуль. Проблема заключается лишь в том, что для задания транзистору того или иного состояния необходимо подавать управляющее напряжение на затвор, то есть данная структура позволяет записывать информацию (задавать значение нуля или единицы), но не дает возможности эту информацию сохранять, поскольку при отсутствии напряжения на затворе его состояние всегда становится закрытым. Поэтому нужно придумать такой способ, чтобы способность находиться в открытом или закрытом состоянии у транзистора сохранялась как угодно долго. Для этого в транзисторы, используемые во флэш-памяти, добавляется плавающий затвор, который служит для хранения заряда (электронов) в течение неограниченного времени.

Структура транзистора с плавающим затвором

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

Рис. 3. Устройство транзистора с плавающим затвором и чтение содержимого ячейки памяти

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

Помещение заряда на плавающий затвор (процесс записи) реализуется либо методом инжекции горячих электронов (CHE-Channel Hot Electrons), либо методом туннелирования Фаулера-Нордхейма (аналогично тому, как это делается при удалении заряда — см. далее).

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

Рис. 4. Процесс записи и стирания информационного бита в транзистор с плавающим затвором

Для удаления заряда с плавающего затвора (процесс стирания ячейки памяти) на управляющий затвор подается высокое (порядка 9 В) отрицательное напряжение, а на область истока — положительное напряжение (рис. 4). Это приводит к тому, что электроны туннелируют из области плавающего затвора в область истока (квантовое туннелирование Фаулера-Нордхейма — Fowler-Nordheim, FN).

Рассмотренный нами транзистор с плавающим затвором может выступать в роли элементарной ячейки флэш-памяти. Однако однотранзисторные ячейки имеют ряд существенных недостатков, главный из которых — плохая масштабируемость. Дело в том, что при организации массива памяти каждая ячейка памяти (транзистор) подключается к двум перпендикулярным шинам: управляющие затворы — к шине, называемой линией слов, а стоки — к шине, называемой битовой линией (в дальнейшем данная организация будет рассмотрена на примере NOR-архитектуры). Вследствие наличия в схеме высокого напряжения при записи методом инжекции горячих электронов все линии — слов, битов и истоков — необходимо располагать на достаточно большом расстоянии друг от друга для обеспечения требуемого уровня изоляции, что, естественно, сказывается на ограничении объема флэш-памяти.

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

Двухтранзисторная ячейка памяти

Для того чтобы избежать недостатков однотранзисторных ячеек памяти, используют различные модификации ячеек памяти, однако главный базовый элемент — транзистор с плавающим затвором — остается в любом варианте ячейки памяти. Одним из модифицированных вариантов ячейки памяти является двухтранзисторная ячейка, содержащая обычный CMOS-транзистор и транзистор с плавающим затвором (рис. 5). Обычный транзистор используется для изоляции транзистора с плавающим затвором от битовой линии.

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

Ячейка SST

Описанными ячейками памяти не исчерпывается все многообразие возможных конструкций. Широкое распространение получили и другие типы ячеек памяти, например ячейка SST, разработанная компанией Silicon Storage Technology, Inc.

По принципу действия SST-ячейка во многом напоминает уже рассмотренную однотранзисторную ячейку памяти.

Однако в транзисторе SST-ячейки изменены формы плавающего и управляющего затворов (рис. 6). Управляющий затвор выровнен своим краем с краем стока, а его изогнутая форма дает возможность разместить плавающий затвор частично под ним и одновременно над областью истока. Такое расположение плавающего затвора позволяет, с одной стороны, упростить процесс помещения на него заряда методом инжекции горячих электронов, а с другой стороны, упростить процесс снятия заряда за счет эффекта туннелирования Фаулера-Нордхейма.

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

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

В отличие от однотранзисторной ячейки памяти ячейка SST имеет и несколько иную схему организации массива памяти.

MLC-ячейки памяти

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

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

Как уже отмечалось при рассмотрении однотранзисторной ячейки памяти, наличие логической единицы или нуля определяется по значению напряжения на битовой линии и зависит от наличия или отсутствия заряда на плавающем затворе. Если на управляющий затвор подается положительное напряжение, то при отсутствии заряда на плавающем затворе транзистор открыт и напряжение между стоком и истоком мало, что соответствует логическому нулю. Если же на плавающем затворе имеется отрицательный заряд, своим полем экранирующий поле, создаваемое управляющим затвором, то транзистор оказывается в закрытом состоянии, что соответствует высокому напряжению между стоком и истоком (логическая единица). Понятно, что даже при наличии отрицательного заряда на плавающем затворе транзистор можно перевести в открытое состояние, однако для этого придется подать большее напряжение (пороговое напряжение) на управляющий затвор. Следовательно, об отсутствии или наличии заряда на плавающем затворе можно судить по пороговому значению напряжения на управляющем затворе. Поскольку пороговое напряжение зависит от величины заряда на плавающем затворе, то можно не только определить два предельных случая — отсутствие или присутствие заряда, но и по величине порогового напряжения судить о количестве заряда. Таким образом, если имеется возможность размещать на плавающем затворе разное количество уровней заряда, каждому из которых соответствует свое значение порогового напряжения, то в одной ячейке памяти можно сохранять несколько информационных битов. К примеру, для того, чтобы с использованием такого транзистора сохранять в одной ячейке 2 бита, необходимо различать четыре пороговых напряжения, то есть иметь возможность размещать на плавающем затворе четыре различных уровня заряда. Тогда каждому из четырех пороговых напряжений можно поставить в соответствие комбинацию двух битов: 00, 01, 10, 11.

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

Ячейки MLC активно разрабатываются компанией Intel, поэтому технология памяти на основе MLC-ячеек получила название Intel StrataFlash.

Ячейки Saifun NROM и MirrorBit

Intel StrataFlash на базе MLC-ячеек — не единственная технология, позволяющая сохранять несколько информационных битов в одной ячейке. Израильской компанией Saifun разработана еще одна технология — Saifun NROM technology. Аналогичная технология под названием MirrorBit есть и у компании AMD. И хотя сама компания AMD заявляет о технологии MirrorBit как о своей разработке, возникают большие сомнения в ее правоте. Компания Saifun также усомнилась в авторских правах AMD и подала иск в суд, который был удовлетворен. В связи с этим мы будем рассматривать только технологию Saifun NROM technology.

Ячейка NROM (Nitrid ROM) по своей структуре напоминает транзистор с плавающим затвором. Управляющий затвор подключается к линии слов (Word Line), а сток и исток (они, кстати сказать, совершенно одинаковые), подключаются к двум разным линиям бит. Плавающий затвор выполнен из нитрида кремния (Si3N4) (рис. 7).

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

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

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

Архитектура флэш-памяти

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

Существует несколько типов архитектур флэш-памяти, но наибольшее распространение получили архитектуры NOR и NAND.

Архитектура NOR

Самая простая для понимания архитектура флэш-памяти — архитектура NOR (рис. 8).

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

Своим названием архитектура NOR обязана логической операции ИЛИ-НЕ (английская аббревиатура — NOR). Логическая операция NOR над несколькими операндами дает единичное значение, когда все операнды равны нулю, и нулевое значение во всех остальных случаях. Если под операндами понимать значения ячеек памяти, то в рассмотренной архитектуре единичное значение на битовой линии будет наблюдаться только в том случае, когда значение всех ячеек, подключенных к данной битовой линии, равно нулю (все транзисторы закрыты).

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

Архитектура NAND

Другой распространенной архитектурой флэш-памяти является архитектура NAND, соответствующая логической операции И-НЕ. Операция NAND дает нулевое значение только в том случае, когда все операнды равны нулю, и единичное значение во всех остальных случаях. Как мы уже отмечали, нулевое значение соответствует открытому состоянию транзистора, поэтому архитектура NAND подразумевает, что битовая линия имеет нулевое значение в случае, когда все подсоединенные к ней транзисторы открыты, и единичное значение — когда хотя бы один из транзисторов закрыт. Такую архитектуру можно организовать, если подключать транзисторы с битовой линии не по одному (как в архитектуре NOR), а последовательными сериями (рис. 9).

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

Кроме рассмотренных нами архитектур NOR и NAND, во флэш-памяти используются и другие архитектуры, например AND, DiNOR и т.д., но они не получили массового распространения.

Типы флэш-карт

Настоящее время на рынке присутствуют карты флэш-памяти различных форматов, самые новые из которых — это Secure Digital (SD), Memory Stick (MS), MultiMediaCard (MMC) и xD-Picture Card (XD). Не стоит также забывать и о хорошо зарекомендовавших себя форматах CompactFlash (CF) и SmartMedia (SM).

По оценкам некоторых аналитических изданий, в настоящее время 54% рынка занимают карты CF, на втором месте — Memory Stick (25%), на третьем — Secure Digital (10%), далее следуют SmartMedia (8%) и MultiMediaCard (3%).

Карты памяти CompactFlash представляют собой высококачественные универсальные перезаписываемые носители информации, ориентированные на бытовую электронику и компьютерное оборудование нового поколения. Компактность и надежность этих носителей делают их идеальным решением для использования в цифровых фотокамерах, персональных цифровых секретарях (PDA), МР3-плеерах, сотовых телефонах, карманных сканерах, фотопринтерах, портативных терминалах, магнитофонах, диктофонах, устройствах глобальной навигации и во многих других устройствах, оснащенных слотом CompactFlash.

CompactFlash является одним из старейших и самым распространенным в настоящий момент стандартом сменных карт флэш-памяти, а также прямым потомком карт PCMCIA. На карты этого стандарта приходится более 54% мирового рынка карт памяти. Первая серийная карта CompactFlash была изготовлена корпорацией SanDisk в 1994 году.

В октябре 1995 года была создана некоммерческая организация Compact Flash Association (CFA), куда помимо компании SanDisk вошли IBM, Canon, Kodak, HP, Hitachi, Epson и Socket Communications.

Размер карты CompactFlash составляет 43Ѕ36Ѕ3,3 мм, а интерфейсный разъем оснащен 50 контактами.

В настоящее время CompactFlash представляет собой наиболее выгодное решение в плане удельной стоимости хранимых носителем данных на основе флэш-памяти при объеме более 32 Мбайт.

Одним из главных достоинств карты CompactFlash является наличие встроенного ATA-контроллера, благодаря которому она совместима с IDE-интерфейсом, что подразумевает возможность эмуляции жесткого диска. На программном уровне карта ничем не отличается от винчестера: она обладает всеми необходимыми параметрами, такими как количество виртуальных цилиндров и головок. Обращение к карте выполняется с помощью стандартного аппаратного прерывания IRQ 14, и зачастую для работы с CompactFlash не нужны специальные драйверы.

Встроенный преобразователь напряжения питания позволяет подключать карты CompactFlash в слоты с напряжением как 3,3 В, так и 5 В.

Существует два типа карт CompactFlash: Type I и Type II, единственное различие между которыми заключается в толщине корпуса: у карт Type I толщина составляет 3,3 мм, а у Type II — 5,5 мм. Однако карты CompactFlash Type I можно использовать в слотах Type I и Type II, а карты CompactFlash Type II — только в слотах Type II.

Карты CompactFlash являются рекордсменами как по скорости чтения/записи, так и по максимальной емкости, что обусловливает их широкое распространение в среде профессиональных цифровых камер. Что касается скорости, то следует отметить, что многие производители выпускают различные как по скорости, так и по цене серии карт CompactFlash. Сегодня в розничной торговле доступны карты CF объемом 4 Гбайт. Если же говорить о скоростях чтения/записи, то здесь все зависит и от производителя, и от серии, и даже от объема карты.

Рассмотрим, к примеру, карты CompactFlash компании Kingston Technology серий Standard (емкость 256, 512 и 1024 Мбайт) и Elite PRO (емкость 2 и 4 Гбайт). Результаты, отражающие скорости последовательного чтения и записи, были получены с помощью тестового пакета IOmeter (рис. 10 и 11).

Рис. 10. Зависимость скорости последовательного чтения от размера запроса для карт формата CompactFlash

Рис. 11. Зависимость скорости последовательной записи от размера запроса для карт формата CompactFlash

Тестирование показало, что скорость линейного чтения у серии Elite PRO более чем в два раза превосходит скорость линейного чтения у серии Standard, причем у карты емкостью 2 Гбайт эта скорость выше, чем у карты емкостью 4 Гбайт, а у всех карт серии Standard скорость последовательного чтения одинакова.

При последовательной записи наблюдается примерно та же закономерность. Исключение составила карта серии Standart емкостью 512 Мбайт, у которой скорость последовательной записи при размере запроса более 32 Кбайт оказалась даже выше, чем у карты серии Elite PRO емкостью 4 Гбайт.

SmartMedia

Спецификация карт SmartMedia была предложена компанией Toshiba в 1996 году. Впрочем, первоначально эти карты имели менее благозвучное название: Solid-State Floppy Disk Card (SSFDC). Карты SmartMedia имеют наименьшую среди существующих сегодня носителей на основе флэш-памяти толщину — всего 0,76 мм (как у кредитной карточки). Этот показатель был достигнут благодаря максимальной простоте устройства: внутри карты SmartMedia отсутствуют контроллеры и дополнительные схемы, а установлен лишь чип NAND-памяти. Такое решение позволило максимально уменьшить как размер (45Ѕ37Ѕ0,76 мм) и вес (около 2 г) самой карты, так и ее цену.

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

Физический интерфейс карт SmartMedia представляет собой плоский разъем с 22 контактами. Передача данных осуществляется по 8-разрядной шине, а максимальное время доступа при чтении и записи в зависимости от емкости карты составляет от 50 до 80 нс.

Существует два вида карт SmartMedia, один из которых рассчитан на напряжение питания 3,3 В, а другой — на 5 В. Вид карты легко определить по положению так называемого ключа — срезанного угла в той части карты, где расположены контакты. Поскольку ключи у них расположены с разных сторон, эти виды карт несовместимы между собой, то есть невозможно подключить карту SmartMedia, рассчитанную на 3,3 В, в слот с напряжением питания 5 В, и наоборот.

MultiMediaCard

Карты стандарта MultiMediaCard появились в 1997 году как результат сотрудничества компаний SanDisk Corporation и Siemens AG/Infineon Technologies AG.

В 1998 году был сформирован альянс MMCA (MultiMediaCard Association), в состав которого вошли компании HP, SanDisk, Kodak, Hitachi, Infineon Technology, Lexar Media, Micron, Sanyo, Siemens и Nokia.

Стандарт был изначально «свободным», то есть лишенным каких-либо лицензионных ограничений.

На момент появления карты MMC были самыми миниатюрными (24Ѕ32Ѕ1,4 мм) и легкими (менее 2 г).

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

Эти карты ориентированы на применение в новейших цифровых видео- и фотокамерах, мобильных телефонах с интеллектуальными функциями и функциями загрузки/воспроизведения музыкальных записей, цифровых портативных аудиоплеерах, игрушках и игровых приставках, карманных ПК и электронных органайзерах.

Карты MultiMediaCard на 100% совместимы со всеми устройствами, использующими карты памяти типа Secure Digital.

В настоящее время начат выпуск Secure MultiMediaCard, имеющих встроенную схему защиты от несанкционированного доступа и копирования и совместимых со спецификацией SDMI.

11 ноября 2002 года было объявлено об утверждении стандарта на карты ММС уменьшенного размера, получившие название Reduced Size MultiMediaCards (RS-MMC). Размеры карт RS-MMC составляют 24Ѕ18Ѕ1,4 мм (полноформатные ММС имеют размеры 24Ѕ32Ѕ1,4 мм). Предусмотрена обратная совместимость карт RS-MMC с полноформатными носителями: при помощи механических переходников они могут быть использованы в изделиях, оснащенных слотами ММС.

По замыслу разработчиков основной сферой применения RS-MMC станут мобильные телефоны, смартфоны и коммуникаторы.

Другая разновидность карт MMC — это HS-MMC (High Speed MMC), то есть высокоскоростные карты MMC, способные обеспечивать скорость передачи данных до 52 Мбит/с.

Присутствующие сегодня на рынке карты MMC имеют максимальный объем до 1 Гбайт, а средняя скорость чтения и записи составляет у них 2 Мбайт/с.

Карты типа SD были разработаны компаниями Matsushita, San Disk и Toshiba и представляют собой дальнейшее развитие стандарта MultiMediaCard. Эти карты являются представителями третьего поколения флэш-памяти.

Для продвижения нового формата три вышеупомянутые компании основали специальную организацию — SD Association, членами которой в настоящее время являются уже более 200 производителей. Само название Secure Digital ясно указывает на поддержку этим носителем технологии защиты данных от несанкционированного копирования и доступа. В отличие от других типов сменных носителей на флэш-памяти, абсолютно все выпускаемые SD-карты оснащены специальной электронной схемой защиты данных и совместимы со спецификацией SDMI.

На карте может храниться как незащищенная (уровень 1), так и защищенная (уровни 2 и 3) информация. Информация может быть защищена от копирования либо уникальным идентификационным ключом карты (уровень 2), либо активным криптографическим алгоритмом (уровень 3), что дает владельцу карты уверенность в надежности защиты данных.

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

SD-карты относятся к числу наиболее легких и компактных сменных карт: их размер составляет всего 24Ѕ32Ѕ2,1 мм, а вес — 2 г. Внешне SD-карты очень похожи на MMC и соответствуют их размерам, за исключением большей толщины. Карты имеют девять контактов (у MMC их семь) и миниатюрный переключатель для защиты от случайного уничтожения хранимых данных.

В настоящее время на рынке представлены SD-карты с максимальным объемом до 1 Гбайт. Скорость чтения и записи зависит и от размера карты, и от производителя. Если, к примеру, сравнить две SD-карты емкостью по 512 Мбайт (Kingston и Transcend), то выяснится, что в режиме последовательной записи (рис. 12) производительность карты Transcend почти в четыре раза выше производительности карты Kingston. Так, при размере запроса более 64 Кбайт скорость последовательной записи для карты Transcend составляет 7,8 Мбайт/с, а для карты Kingston — всего 1,75 Мбайт/с. Скорость линейной записи (рис. 13) также выше у карты Transcend и составляет 8,13 Мбайт/с (при размере запроса более 64 Кбайт/с), а у карты Kingston эта скорость равна 6,24 Мбайт/с.

Рис. 12. Зависимость скорости последовательной записи от размера запроса для карт формата SD

Для сравнения на рис. 12 и 13 показаны типичные скорости последовательного чтения и записи карты формата MMC, которые и при чтении, и при записи не превышают 1 Мбайт/с.

Стандарт Memory Stick был разработан компанией Sony, а его массовое внедрение началось в 1998 году. В настоящее время карты стандарта Memory Stick используются во всех без исключения цифровых фотоаппаратах Sony, что, впрочем, отнюдь не способствует их успешному продвижению на рынок. Именно поэтому последняя модель цифровой камеры Sony поддерживает карты уже двух стандартов: Memory Stick и куда более популярные CompactFlash.

Своему названию карты Memory Stick (память в пластинках) обязаны сходству с жевательными пластинками, да и габариты карточки памяти Memory Stick составляют 21,5Ѕ50Ѕ2,8 мм, что примерно соответствует размерам пластинки жевательной резинки.

Выпускается также модификация этого носителя со встроенной системой защиты от несанкционированного копирования и доступа к данным (MagicGate Memory Stick).

Сегодня компания Sony занимается внедрением носителя новой модификации, получившего название Memory Stick Duo. Эта карта совместима с обычной Memory Stick, но имеет меньшие размеры (20Ѕ31Ѕ1,6 мм) и меньший вес (всего 2 г), что позволит использовать ее в самых малых портативных устройствах, особо критичных к размеру сменных модулей памяти, например в мобильных телефонах и микрокомпьютерах. С целью облегчения интеграции нового стандарта в существующие системы предусмотрена полная обратная совместимость: при помощи специального картриджа Memory Stick Duo можно подключать к слотам для полноформатных карт Memory Stick.

В начале января 2003 года на проходившей в Лас-Вегасе выставке Consumer Electronics Show (CES) компания Sony объявила о планах по созданию карт флэш-памяти нового поколения — Memory Stick PRO. Линейка новых носителей будет выпускаться в корпусах тех же форм и размеров, что и обычные Memory Stick. От ставших уже привычными синих карточек Memory Stick новые носители будут отличаться жемчужным цветом. Если же сравнивать технические характеристики, то, кроме увеличения емкости, карты Memory Stick PRO обладают гораздо более высокой скоростью обмена данными и усовершенствованными механизмами защиты данных. Что касается перспектив наращивания объема, то технически возможно создание Memory Stick PRO емкостью до 32 Гбайт. Максимальная скорость обмена, обеспечиваемая конструкцией носителей Memory Stick PRO, составляет 160 Мбит/с, а скорость записи — не менее 15 Мбит/с.

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

Еще одно технологическое решение, реализованное при создании карт Memory Stick PRO, позволит избежать потери данных при преждевременном извлечении карты из слота. Даже если пользователь извлечет карту, не дождавшись окончания процесса записи, то после повторной установки носителя можно будет возобновить запись с того места, где она была прервана. При этом гарантируется сохранность не только данного файла, но и всей файловой системы карты.

В настоящее время на рынке представлены модели карт Memory Stick Pro объемом до 1 Гбайт, а также карты Memory Stick PRO DUO объемом до 128 Мбайт.

xD-Picture (XD)

Формат xD-Picture является самым молодым из всех рассмотренных выше форматов. Этот стандарт разработан компаниями Olympus и FujiFilm, но в силу своей новизны пока еще не получил широкого распространения.

Обозначение xD расшифровывается как eХtreme digital, что, по мнению разработчиков, акцентирует внимание на использовании этого носителя для хранения аудиовизуальных данных. Размеры карт xD-Picture составляют всего 20Ѕ25Ѕ1,7 мм, а вес — 2 г, что на данный момент является абсолютным рекордом миниатюрности.

По замыслам разработчиков карты xD-Picture должны заменить морально устаревшие карты SmartMedia, максимальная емкость которых (в силу технологических причин) не превышает 128 Мбайт. Теоретически емкость карт xD может достигать 8 Гбайт. Кроме того, тенденция миниатюризации цифровых любительских камер требует и адекватной миниатюризации карт памяти.

Карты xD-Picture имеют 22-контактный интерфейс, совместимый с интерфейсом SmartMedia Card.

Максимальная скорость чтения данных с карт xD-Picture составляет 5 Мбайт/с, а скорость записи — 3 Мбайт/с (для карт емкостью 16 и 32 Мбайт — 1,3 Мбайт/с); напряжение питания — 3,3 В; потребляемая при работе мощность — 25 мВт. Как и SmartMedia, карты xD-Picture содержат только флэш-память и не оснащаются встроенным контроллером (в отличие, например, от CompactFlash).

В настоящее время максимальная емкость карт xD-Picture составляет 512 Мбайт.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

Модуль поиска не установлен.

Значение Адрес Параметр
01H Parameter1 Parameter1 Pointer Variable
03H Parameter2 Parameter2 Pointer Variable
05H Parameter3 Parameter3 Pointer Variable
F8H 01H Parameter1 Value = F8H
07H 02H Parameter1 Next_Record = 07H
22H 03H Parameter2 Value = 22H
09H 04H Parameter2 Next_Record = 09H
44H 05H Parameter3 Value = 44H
FFH 06H Parameter3 Next_Record = FFH = latest
55H 07H Parameter1 Value = 55H
0BH 08H Parameter1 Next_Record = 0BH
F2H 09H Parameter2 Value = F2H
FFH 0AH Parameter2 Next_Record = FFH = latest
F4H 0BH Parameter1 Value = F4H
FFH 0CH Parameter1 Next_Record = FFH = latest

В более новых разработках технологии записи информации во флэш-память в списки добавляется еще один параметр, который указывает только на то, что определенная запись параметра является самой последней (или обновленной). Поле для этого параметра получило название "Parameter ID". Для считывания в этом случае программа вынуждена проходить (и считывать) каждый параметр, пока не "наткнется" на последнее значение просматриваемого параметра. Но несмотря на это, применение такого способа является альтернативой традиционному способу.

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

Очистка флэш-памяти

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

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

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

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

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

В связи с этим возникают определенные требования к системе.

Что же нужно для полноценной работы флэш-памяти?

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

Еще одним весомым аргументом является то, что программа примерным объемом в 15 Кб загружена в сам модуль флэш-памяти, а в оперативную память выгружается только 1..2 Кб.

Поэтому можно сделать вывод, что первым и довольно весомым требованием к системе будет размер оперативной памяти. Для качест-венной полноценной работы модуля флэш-памяти (и системы в целом) необходимо минимум 16 Мб (а лучше 32 Мб).

Для быстрой и стабильной работы кроме оперативной памяти необходимо выбрать правильный режим питания. Существуют модули, работающие при питании 3,3, 5 и 12 вольт. Большинство современных модулей ориентировано на питание от 12- вольтового источника. Такое напряжение необходимо, в част-ности, для операций внутрисистемного стирания информации и ее записи. Но некоторые микросхемы, ориентированные на 12 вольт, способны работать от источника напряжением 5 вольт. При этом работа флэш-памяти при одном и другом номинале напряжения ничем не отличается. К таким микросхемам флэш-памяти относятся, например, модули семейства Smart Voltage.

Отдельно хочется остановиться на флэш-памяти, ориентированной на 3,3 вольта. Такие модули выпускаются объемом до 4 Кбита. Они позволяют не только улучшить работу приборов, но и оптимизировать энергопотребление. Технологию модулей флэш-памяти на 3,3 вольта разработала фирма Smart Voltage. В этой технологии объединены три параметра - низ-кое энергопотребление, применение только одного номинала напряжения и довольно быстрое программирование. И все это объединено в один "прибор".

Если сравнить модуль флэш-памяти, разработанный для напряжения только на 5 вольт и для напряжений на 3,3 и на 5 вольт, то лучшим окажется модуль с двойным номиналом. Потому флэш-память с двойным напряжением выполняет операции записи и стирания гораздо быстрее. Например, запись блока составляет 10..13 мкс, а запись - 0,5..1 сек.

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

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

Особенность работы флэш-памяти

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

Динамическая характеристика не только должна обеспечить расчет времени на выполнение определенной задачи, но и учесть время задержки при работе как самого прибора, так и программы. Расчет времени на выполнение, например, чтения, зависит от длины записи каждого параметра и от количества этих параметров. Длину записи и количество параметров необходимо рассчитать до того, как будет произведена запись. Из этих расчетов вытекает полное время чтения данных.

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

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

За все это отвечает динамическая характеристика, которая при работе во многом упрощает работу самого модуля флэш-памяти и программы, управляющей всеми операциями.

Новая технология

Все модули флэш-памяти допускают поэтапное (байт за байтом) программирование. Сейчас уже разработан алгоритм программирования на уровне битов, т.е. запись битов или группы битов за один сеанс. Алгоритм подразумевает программирование одиночных битов путем маскирования остальных.

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

Флэш-память фирмы AMD

Пример микросхем (напряжением 12 вольт)

Микросхема памяти Организация Время доступа, нс
Am28F256A 32K x 8 70-200
Am28F512A 64K x 8 70-200
Am28F010A 128K x 8 90-200
Am28F020A 256K x 8 90-200

Флэш-память с 5-вольтовым программированием

Микросхема памяти Организация Время доступа, нс Число выводов
Am29F010 128K x 8 45-120 32
Am29F100 128K x 864K x 16 70-150 44, 48
Am29F200 256K x 8128K x 16 70-150 44, 48
Am29F040 512K x 8 55-150 32
Am29F400 512K x 8256K x 16 70-150 44, 48
Am29F080 1M x 8 85-150 44, 48
Am29F800 1M x 8512K x 16 85-150 40, 44
Am29F016 2M x 8 90-150 48

Флэш-память с 3-вольтовым программированием

Технические характеристики флэш-памяти AMD:

  • ток питания: 20-30 mA при чтении и 30-50 mA при программировании/стирании;
  • ток потребления в статическом режиме: 25-90 mkA (режим КМОП), 1 mA (режим ТТЛ);
  • количество циклов программирования/стирания: 100 тыс.;
  • время хранения информации: 10 лет при 150°С, 20 лет при 125°С;
  • температурные режимы работы:
    • 0..+70°С (обычный режим);
    • -40..+85°С (индустриальный режим);
    • -55..+128°С (расширенный режим).

Планы Samsung - скоро появится новая флэш-память!

По планам фирмы Samsung Electronics в скором будущем появится гигабитная флэш-память. В исследовательской лаборатории Samsung уже создан прототип чипа для модуля флэш-памяти объемом 1 гигабит. По размерам чип имеет толщину всего лишь 0,15 микрона(!). Если выпускать стандартные платы, то благодаря этому чипу в них будет умещаться огромное количество информации.

Как обещает фирма Samsung, новый чип скоро выйдет в серийное производство. Представители фирмы утверждают, что на него можно будет записать до 500 фотографий разрешением 1280 х 1024. А это действительно очень много! Попробуйте на своем жестком диске создать 500 таких фотографий - убедитесь сами!

На базе таких чипов фирма Samsung Electronics планирует производить модули флэш-памяти, которые будут применяться в основном (в первое время) в цифровых фотоаппаратах и камерах. Возможно, после реализации этих планов производители станут выпускать память и для комплектующих компьютеров. Производители также уверяют, что производство их чипов сразу же изменит технологию производства флэш-памяти во всем мире. Кроме того, производители собираются (опять же на основе этого чипа) разработать модули памяти объемом 256 и 512 Мб (!). Исследования разработки уже проводятся. Новинку - флэш-память размером 1 гигабит - планируется выпустить уже в 2001 году.

Вывод

Флэш-память разработана и применяется для того, чтобы упростить работу системы, в которой она применяется, а также повысить ее производительность. За счет обновления информации через флэш-память система (например, модем, звуковая карта и т.д.) в гораздо меньшей степени использует оперативную память компьютера. Тем самым повышается производительность не только одного прибора, но и всего компьютера в целом.

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

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


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

От РПЗУ других типов микросхемы FLASH-памяти отличает наличие непосредственно на кристалле встроенного "программатора" - автомата стирания и записи (АC3). Он освобождает от необходимости в процессе программирования подавать на выводы микросхемы повышенное напряжение, формировать определенные последовательности импульсов. Все это АC3 делает самостоятельно и незаметно для пользователя, которому остается лишь с помощью соответствующей команды сообщить адрес ячейки и код, который следует в нее записать, и ждать завершения операции. Во многих случаях длительную операцию (например, стирание блока данных) можно приостановить, прочитать нужную информацию из другой области памяти, а затем продолжить.

Сегодня многие фирмы (наиболее известные Intel. AMD. Atmel. Winbond) выпускают большой ассортимент микросхем FLASH-памяти объемом до 4 Мбайт. Их внешний интерфейс бывает параллельным или последовательным. Микросхемы с последовательным интерфейсом предназначены в основном для хранения небольших массивов данных в малогабаритных или специализированных устройствах, например, для запоминания фиксированных настроек радиоприемника или программы работы бытового электроприбора.

Далее речь пойдет о "параллельных" FLASH-микросхемах, которые по физическому и логическому устройству интерфейса с процессором ничем не отличаются от обычных ПЗУ за исключением того, что у них, подобно ОЗУ, имеется вход разрешения записи. Именно в таких микросхемах хранят коды BIOS современных компьютеров. Организация данных бывает восьми- или 16-разрядной. Нередко ее можно выбирать, соединяя специально предусмотренный вывод с общим проводом или источником питания. Кроме шин адреса и данных, к микросхемам подводят три управляющих сигнала: выбор кристалла (СЕ), включение выхода (ОЕ) и разрешение записи (WE). Последний - только в случае, если микросхему необходимо программировать. Минимальная длительность цикла чтения - 70... 150 нc.

В первых FLASH-микросхемах массив ячеек памяти представлял собой единый блок, причем стереть данные можно было только целиком из всего массива. Во многих современных микросхемах память разбита на блоки, и стирание данных в одном из них не влияет на хранящиеся в других. Размеры блоков бывают самыми разными - от 128 байт до 128 Кбайт и более. Однако при чтении данных вся память микросхемы рассматривается как единый массив и то. что физически она разделена на блоки, не имеет никакого значения.

Обычно блоки одинаковы и равноправны, но могут быть и разными. Например, в микросхемах серии 28Fxxx фирмы Intel имеются так называемый загрузочный (boot) блок объемом 16 Кбайт и два блока параметров по 8 Кбайт каждый. Далее следует блок объемом 96 Кбайт, а оставшаяся часть памяти состоит из блоков по 128 Кбайт. Свойства названных блоков несколько различаются. Для загрузочного предусмотрена аппаратная защита от записи и стирания. Ее включают, подав соответствующий логический уровень на специально предусмотренный вывод микросхемы. Блоки параметров предназначены для хранения часто изменяемых данных и выдерживают большее, по сравнению с другими, число циклов стирания/записи.

Каждую из микросхем рассматриваемой серии изготавливают в двух вариантах, различающихся размещением блоков в адресном пространстве. В микросхемах с индексом В (bottom) они расположены, начиная с нулевого адреса, в указанном выше порядке. В изделиях с индексом Т (top) порядок обратный (загрузочный - в области старших адресов).

Выпускаемые в настоящее время микросхемы FLASH-памяти рассчитаны на номинальные напряжения питания от 2.7 до 5 В. Повышенное напряжение (12 В) для них не требуется вовсе или необходимо лишь в некоторых специальных режимах. В пассивном ("невыбранном") состоянии такие микросхемы потребляют от источника питания ток не более 1 мА (в большинстве случаев - в десятки раз меньше). Иногда предусмотрен особый режим полного выключения (sleep mode), в котором потребление пренебрежимо мало. Правда, читать данные из "заснувшей" микросхемы невозможно, а чтобы "разбудить" ее. порой требуется несколько десятков микросекунд. Потребляемый ток в активном режиме - десятки миллиампер, причем, если перевести в пассивное состояние микросхему, АC3 которой выполняет длительную операцию (например, стирает данные), ток не уменьшится до тех пор, пока она не завершится.

Большое внимание уделяют защите хранящихся во FLASH-памяти данных от случайного изменения, особенно под воздействием помех и переходных процессов при включении и выключении питания. В большинстве случаев предусмотрено три вида аппаратной защиты. Первый заключается в том. что на импульсы в цепи WE длительностью менее 15...20 не микросхема не реагирует, второй - в том, что при низком логическом уровне на входе ОE никакие манипуляции сигналами на других входах не могут вызвать запись, третий - в том. что при уменьшении напряжения питания ниже некоторого уровня АC3 отключается. У микросхем разных типов порог отключения находится в пределах 1.5...3.8В.

Иногда предусмотрена возможность полного запрета изменения и стирания всего массива данных или его частей. Для наложения или снятия такого запрета обычно требуются "экстраординарные" меры (например, кратковременная подача повышенного напряжения на определенные выводы).

Предусматривается и программная защита. Для изменения содержимого ячейки FLASH-памяти недостаточно, как в обычном ОЗУ. записать один код по одному адресу. Необходима команда, состоящая из нескольких кодов, записываемых по определенным адресам.

Любая FLASH-микросхема способна сообщить свой тип устройству, в которое она установлена, что позволяет автоматически выбирать нужные алгоритмы записи и стирания данных. Для программного включения и выключения режима считывания идентификаторов предусмотрены соответствующие команды. Включив его, по адресу ОН читают идентификатор изготовителя, а по адресу 1Н - устройства (идентификаторы некоторых микросхем приведены в таблице). В этом же режиме, но по другим адресам, в некоторых случаях можно получить дополнительную информацию, например, о состоянии аппаратной защиты от записи.

Перейти в режим чтения идентификаторов можно и без команды, подав на адресный вход А9 напряжение +12 В. Допускаемое отклонение его величины у микросхем разных типов различно. В одних случаях оно не более ±5%. в других достаточно, чтобы напряжение лишь превысило некоторое значение, например 10 В. Идентификаторы читают по указанным выше адресам, устанавливая их без учета разряда А9. Обычно этот способ применяют в универсальных программаторах.

АC3 большинства микросхем FLASH-памяти воспринимают команды, подаваемые в соответствии с так называемым стандартом JEDEC, хотя есть и исключения. Иногда при модернизации микросхем их систему команд дополняют стандартными кодовыми комбинациями, сохраняя, однако, и старые команды (это необходимо для того, чтобы модернизированные кристаллы могли работать в ранее выпущенных устройствах). Свою систему команд применяет фирма Intel.

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

Номера выводов на приводимых ниже схемах стандартны для микросхем памяти объемом 512 Кбайт в наиболее распространенных 32-выводных корпусах PLCC и PDIP. "Цоколевка" микросхем меньшего объема аналогична, но выводы старших разрядов у них не подключены (например, у Am29F010 свободны 30-й и 1 -й).

Схему, подобную показанной на рис. 1, применяют, если необходимо стирать и записывать данные, не извлекая микросхему из микропроцессорной, системы.

Предполагается, что системная шина данных - восьмиразрядная, адреса - 16-разрядная. ПЗУ отведено в адресном пространстве 32 Кбайт, остальную его часть может занимать ОЗУ Так как объем памяти Am29F040 - 512 Кбайт, предусмотрен регистр страницы FLASH-памяти, управляющий старшими разрядами адреса. Для чтения и записи данных можно воспользоваться следующими простыми процедурами (написанными на языке Pascal):

Если необходимо запрограммировать FLASH-микросхему вне устройства, в котором она будет работать, ее можно подключить к персональному компьютеру. Проще всего это сделать, установив в компьютер дополнительную плату параллельного ввода/вывода. Такие платы, например, PCL-731 фирмы Advantech, DIO-48 фирмы IOP DAS или PET-48DIO фирмы ADLink имеются в продаже. Как правило, у них 48 входов/выходов и работают они аналогично двум микросхемам 8255 (КР5806В55А) в режиме О с теми же информационными и управляющими портами, даже если в действительности таких микросхем в их составе нет. При необходимости плату параллельного ввода/вывода можно изготовить самостоятельно, воспользовавшись статьей Н. Васильева "Расширитель интерфейса PC" ("Радио", 1994, № 6, с. 20, 21).

Для чтения или программирования FLASH-микросхему подключают к портам двух микросхем 8255 по схеме, показанной на рис. 2. Порт РА первой из них использован для ввода/вывода данных, отдельные разряды ее же порта PC - для вывода сигналов управления СЕ, OЕ и WE. Порты РА, РВ и PC второй образуют 24-разрядную шину адреса FLASH-микросхемы. Если достаточна меньшая разрядность этой шины, соответствующее число старших разрядов порта PC не подключают.

Порты платы ввода/вывода и вспомогательные константы должны быть описаны в программе следующим образом:

А описанные выше процедуры обращения к FLASH-памяти заменяют следующими:

Теперь - собственно о программировании FLASH-микросхем. По стандарту JEDEC каждая команда начинается записью кода ОААН по адресу 5555Н. Далее записывают код 55Н по адресу 2АААН и в заключение - код выполняемой операции по адресу 5555Н.

Говоря, например, о команде 40Н, мы будем подразумевать именно такую последовательность с числом 40Н в качестве кода операции.

После включения питания любая FLASH-микросхема автоматически входит в этот режим и устанавливать его специальной командой нет необходимости. Однако она требуется, например, для возврата из режима чтения идентификаторов. Иногда ее называют командой сброса или начальной установки. Для перевода некоторых микросхем в режим чтения массива достаточно одного цикла записи кода 0F0H по любому адресу.

Следующий за командой 0А0Н цикл записи содержит адрес программируемой ячейки и записываемый в нее код. В большинстве случаев для записи в каждую ячейку требуется подать отдельную команду. Имейте в виду, что подобно обычным РПЗУ, в разрядах программируемой ячейки можно лишь заменять логические единицы нулями. Для выполнения обратной операции требуется, как правило, предварительно стереть содержимое целого блока памяти и повторить программирование всех его ячеек. Учтите, что АC3 многих FLASH-микросхем не распознают подобные ошибки и сообщают об успешном выполнении операции. Чтобы убедиться в правильности программирования, необходимо контрольное считывание записанных данных.

В микросхемах фирмы Winbond с блоками размером 128 байт программированию любой ячейки автоматически предшествует стирание всех данных содержащего ее блока. Поэтому всегда следует предварительно скопировать блок в оперативную память, внести нужные изменения в копию и запрограммировать заново все 128 байт. Получив команду ОАОН, адрес и первый из программируемых байтов, АC3 заносит его во внутренний буфер блока и ждет 200 мкс, не начиная программирования. Если за это время будут получены еще одна команда ОАОН и очередной байт, он тоже поступит в буфер, а АC3 будет ждать следующий еще 300 мкс. Так продолжается до тех пор. пока не будут получены все 128 байт блока или пауза не превысит допустимого значения (300 мкс). После этого АC3 стирает блок и начинает собственно программирование. Последовательность записи в буфер данных, предназначенных для различных ячеек блока, не имеет значения, но те ячейки, данные для которых не поступили, после программирования будут содержать коды 0FFH.

Существует два способа записи данных для программирования в подобную микросхему. Первый из них (для других обычный) называют программно защищенным. Каждому записываемому байту должна предшествовать команда ОАОН. Однако защиту можно отключить, подав последовательно команды 80Н и 20Н.

После этого записываемый по любому адресу байт попадает во внутренний буфер микросхемы, и такой режим сохраняется даже после отключения и включения питания. Выходят из него по команде ОАОН.

Для записи данных во FLASH-микро-схему фирмы Intel предусмотрено два равносильных варианта команды. Прежде всего, по любому адресу записывают один из кодов 40Н или 10Н. а затем - программируемый код по нужному адресу.

Команда "Стереть всю память" .

Эту ответственную операцию АC3 FLASH-микросхемы начинает, получив последовательность из двух команд - 80Н и 10Н.

Микросхемам фирмы Intel аналогичную команду подают записью по произвольным адресам кодов 20Н и 0D0H

Стирание всего содержимого памяти занимает от десятков миллисекунд до нескольких секунд. В некоторых микросхемах предусмотрена возможность приостановки этого процесса записью кода ОВОН по любому адресу. После записи (также по любому адресу) кода 30Н (для микросхем фирмы Intel - ODOH) стирание продолжится.

Команда "Стереть блок" . Чтобы стереть содержимое блока памяти, необходимо подать две команды. Первая из них - 80Н, вторая отличается тем, что ее код операции 90Н должен быть записан не по адресу 5555Н, а по адресу любой из ячеек стираемого блока.

В микросхемы фирмы Intel достаточно записать код 90Н по любому адресу. Выходят из этого режима рассмотренной выше командой "Читать массив данных".

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

Точно узнать момент окончания той или иной операции позволяет считывание регистра состояния АC3. FLASH -микросхема выдает на шину данных содержимое этого регистра все время, пока АC3 занят выполнением процедуры стирания или программирования. Существует два признака того, что процесс не закончен. Первый заключается в том, что значение бита D7 регистра состояния инверсно по отношению к записываемому в тот же бит ячейки памяти значению (во время стирания - равно 0). По завершении операции оно совпадет с записанным. Второй признак - "мерцание" бита D6 (его значение изменяется при каждом чтении регистра, пока операция не завершится).

Как правило, наблюдаются оба признака, однако встречаются и исключения. Например, в микросхемах фирмы Intel "мерцающий" бит отсутствует, а бит D7 во время программирования равен 0 независимо от записываемого кода. Об окончании операции в данном случае свидетельствует D7=1. В микросхемах с блочной записью (например, фирмы Winbond) значение бита D7 инверсно аналогичному биту последнего из кодов, записанных в буфер блока-

Обычно по завершении программирования или стирания FLASH-микросхе-ма автоматически возвращается в режим чтения массива данных, но микросхемам фирмы Intel для этого требуется соответствующая команда.

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

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

В заключение - несколько слов об утилитах, позволяющих обновить BIOS компьютера, хранящуюся во FLASH-памяти. Они разрабатываются для каждого типа системных (материнских) плат и учитывают особенности подключения FLASH-микросхем к системным шинам. Поэтому попытки воспользоваться утилитой, предназначенной для платы одного типа, чтобы обновить BIOS другой, зачастую приводят к полному отказу компьютера.

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

Читайте и пишите полезные

Микросхемы флеш-памяти eeprom серии 25xxx широко применяются в микроэлектронике. В частности, в современных телевизорах и материнских платах в 25xxx хранится прошивка биоса. Перепрошивка 25xxx осуществляется по интерфейсу SPI, в чем и заключается отличие этих микросхем от флеш-памяти семейства 24xxx, которые шьются по i2c(квадратная шина).

Соответственно, для чтения/стирания/записи 25xxx нужен SPI-программатор. Одним из самых дешевых вариантов программаторов для этой цели является USBasp, который стоит смешные деньги- с доставкой всего около 2$ на ебее. В свое время я купил себе такой для программирования микроконтроллеров. Теперь мне понадобилось прошить не микроконтроллер, а SPI-флеш и решено было им воспользоваться.

Забегая вперед скажу, что прошивка от Tifa работает, микросхемы 25xxx шьются. Кстати, кроме 25xxx, модифицированный программатор рассчитан на работу с 24xxx и Microwire.

1. Перепрошивка USBasp

Сначала нужно замкнуть контакты J2:

Лично я не просто замкнул, а впаял в контакты переключатель:

При замкнутых контактах J2 (это у меня переключатель в положении вправо) USBasp переходит в режим готовности к перепрошивке.

Сам себя USBap перепрошить не может, поэтому нужен еще один программатор. USBasp как бы оказывается в положении хирурга, который не может сам себе вырезать аппендикс и просит друга помочь. Для перепрошивки USBasp я использовал самодельный программатор AVR910 , но для одного раза можно по-быстрому за пару минут спаять программатор «5 проводков» , который состоит всего-лишь из одного разъема LPT и 5 резисторов.

Подключаем программатор к USBasp:



Теперь идем на форум альтернативной прошивки от Tifa, в самом верхнем посте находим и качаем архив с последней прошивкой и ПО.

Находим там файл mega8.hex, это и есть альтернативная прошивка для USBasp.

Запускаем CodeVisionAvr (я использую версию 2.0.5), выставляем настройки программатора: Settings-> Programmer.

Устанавливаем настройки записи: Tools->Chip programmer. Выбираем чип Atmega8L, именно такой стоит на USBasp. Фьюзы не выставляем- те, что надо, уже прошиты в чипе. Остальные настройки оставляем по умолчанию.

Стираем старую программу USBasp: Program-> Erase chip.

Открываем файл прошивки mega8.hex: File-> Load flash.

Перепрошиваем USBasp: Program-> Flash.

Если прошла запись и не выдало сообщение об ошибке, значит альтернативная прошивка благополучно прошита в USBasp. Теперь USBasp может не только шить AVR-микроконтроллеры, как раньше, но еще и работать с флеш-памятью. Размыкаем контакты J2, что бы USBasp снова перешел в режим программатора.

Теперь проверим, видит ли Windows 7 x86 этот программатор. Вставляем USBasp в USB и… система пишет «USBasp не удалось найти драйвер». Понятно, нужно установить драйвер. Но драйверов в скачанном на форуме нет, их нужно скачать на родном сайте USBasp , оригинальные драйвера подходят и для модифицированного программатора. Скачали, установили, Win7 увидела программатор, все ок. Впрочем, я программирую микроэлектронику на ноутбуке с WinXP, она тоже после установки драйверов видит программатор.

2. Площадка для подключения USBasp к микросхеме 25xxx DIP

Теперь нужно подготовить площадку для программирования 25xxx. Я это сделал на макетной плате по такой схеме:

3. Прошивка микросхем 25xxx через USBasp

Для прошивки 25xxx через модифицированный USBasp используется программа AsProgrammer, которая тоже есть в .

Для примера, поработаем с микросхемой Winbond 25×40. Запускаем AsProgrammer, ставим режим работы SPI и выбираем тип микросхемы: Микросхема-> SPI-> Winbond->…

… и видим, что W25X40 в списке нет. Что же, тогда заполним параметры микросхемы вручную. Находим мануал на Winbond 25X40 и там на странице 4 видим такие параметры:

Эти параметры вносим сюда:

Подключаем USBasp к компьютеру и микросхеме Winbond 25×40:

С помощью кнопок «прочитать», «записать», «стереть», проверяем работу программатора:

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

Благодаря прошивке от Tifa дешевый китайский программатор USBasp теперь умеет работать с микросхемами flash-памяти eeprom 25xxx. Теоретически еще может работать c 24xxx и Microwire, но я проверил только работу с 25xxx.

UPD1:
Оказывается, такую же прошивку можно записать и в программатор AVR910. Тогда он тоже будет работать с flash-памятью 25xxx:

 


Читайте:



Как объединить 2 таблицы

Как объединить 2 таблицы

Ситуация: вы сделали две таблицы в одном документе Word. По разным причинам вам их нужно соединить вместе. На фото ниже приведен именно такой...

Как в эксель посчитать сумму столбца

Как в эксель посчитать сумму столбца

Для большинства пользователей Excel - это программа, которая умеет работать с таблицами и в которую можно поместить соответствующую информацию в...

DjVu Reader скачать бесплатно, DjVu чем открыть

DjVu Reader скачать бесплатно, DjVu чем открыть

Программа DjVu Reader является простым в использовании и требующим минимальных машинных ресурсов инструментом просмотра графических файлов формата...

Программы для работы с документами офисного типа: краткий обзор

Программы для работы с документами офисного типа: краткий обзор

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

feed-image RSS