Флеш-пам'ять. Твердотільний накопичувач

Сучасній людині подобається бути мобільним і мати при собі різні високотехнологічні гаджети (англ. gadget - пристрій), що полегшують життя, та що там приховувати, що роблять його більш насиченим та цікавим. І з'явилися вони всього за 10-15 років! Мініатюрні, легкі, зручні, цифрові… Усього цього гаджети досягли завдяки новим мікропроцесорним технологіям, але все ж таки більший внесок було зроблено однією чудовою технологією зберігання даних, про яку сьогодні ми й говоритимемо. Отже, флеш-пам'ять.

Існує думка, що назва FLASH стосовно типу пам'яті перекладається як «спалах». Насправді, це не зовсім так. Одна з версій його появи говорить про те, що вперше в 1989-90 році компанія Toshiba використала слово Flash у контексті «швидкий, миттєвий» при описі своїх нових мікросхем. Взагалі, винахідником вважається Intel, що представила в 1988 флеш-пам'ять з архітектурою NOR. Роком пізніше Toshiba розробила архітектуру NAND, яка і сьогодні використовується поряд із тією ж NOR у мікросхемах флеш. Власне, зараз можна сказати, що це два різних видівпам'яті, що мають у чомусь схожу технологію виробництва. У цій статті ми спробуємо зрозуміти їхній пристрій, принцип роботи, а також розглянемо різні варіанти практичного використання.

NOR

За допомогою неї здійснюється перетворення вхідних напруг у вихідні, що відповідають «0» та «1». Вони необхідні, тому що для читання/запису даних у комірці пам'яті використовуються різні напруги. Схема осередку наведено на малюнку нижче.

Вона характерна для більшості флеш-чіпів і є транзистором з двома ізольованими затворами: керуючим (control) і плаваючим (floating). Важливою особливістю останнього є здатність утримувати електрони, тобто заряд. Також в осередку є так звані «стік» та «витік». При програмуванні між ними, внаслідок впливу позитивного поля на затворі, що управляє, створюється канал - потік електронів. Деякі з електронів завдяки наявності більшої енергії долають шар ізолятора і потрапляють на плаваючий затвор. На ньому вони можуть зберігатися протягом кількох років. Певний діапазон кількості електронів (заряду) на плаваючому затворі відповідає логічній одиниці, а все, що більше за нього, - нулю. Під час читання ці стани розпізнаються шляхом вимірювання порогової напруги транзистора. Для стирання інформації на затвор, що управляє, подається висока негативна напруга, і електрони з плаваючого затвора переходять (тунелюють) на виток. У технологіях різних виробників цей принцип роботи може відрізнятися за способом подачі струму та читання даних з комірки. Хочу також звернути вашу увагу на те, що в структурі флеш-пам'яті для зберігання 1 біта інформації задіюється лише один елемент (транзистор), в той час як в типах енергозалежних пам'яті для цього потрібно кілька транзисторів і конденсатор. Це дозволяє істотно зменшити розміри мікросхем, що випускаються, спростити технологічний процес, а, отже, і знизити собівартість. Але і один біт далеко не межа: Intel вже випускає пам'ять StrataFlash, кожен осередок якої може зберігати по 2 біти інформації. Крім того, існують пробні зразки, з 4-х і навіть 9-бітними осередками! У такій пам'яті використовуються технології багаторівневих осередків. Вони мають звичайну структуру, а відмінність полягає в тому, що їхній заряд ділиться на кілька рівнів, кожному з яких у відповідність ставиться певна комбінація біт. Теоретично прочитати/записати можна і більше 4-х біт, однак, на практиці виникають проблеми з усуненням шумів та поступовим витоком електронів при тривалому зберіганні. Взагалі, у існуючих сьогодні мікросхем пам'яті для осередків характерний час зберігання інформації, що вимірюється роками, і кількість циклів читання/запису - від 100 тисяч до кількох мільйонів. З недоліків, зокрема, у флеш-пам'яті з архітектурою NOR варто відзначити погану масштабованість: не можна зменшувати площу чіпів шляхом зменшення розмірів транзисторів. Ця ситуація пов'язана зі способом організації матриці осередків: у NOR архітектурі до кожного транзистора треба підвести індивідуальний контакт. Набагато краще в цьому плані справи у флеш-пам'яті з архітектурою NAND.

NAND

Пристрій та принцип роботи осередків у неї такий самий, як і у NOR. Хоча, крім логіки, є ще одна важлива відмінність - архітектура розміщення осередків та їх контактів. На відміну від вищеописаного випадку, тут є контактна матриця, в перетинах рядків і стовпців якої знаходяться транзистори. Це можна порівняти з пасивною матрицею в дисплеях:) (а NOR - з активною TFT). У випадку з пам'яттю така організація дещо краща – площа мікросхеми можна значно зменшити за рахунок розмірів осередків. Недоліки (куди вже без них) полягають у нижчій порівняно з NOR швидкості роботи в операціях довільного добайтового доступу.

Існують ще й такі архітектури як: DiNOR (Mitsubishi), superAND (Hitachi) та ін. Принципово нового нічого вони не уявляють, а лише комбінують найкращі властивості NAND та NOR.

І все-таки, як би там не було, NOR і NAND на сьогоднішній день випускаються на рівних і практично не конкурують між собою, тому що в силу своїх якостей знаходять застосування в різних сферах зберігання даних. Про це й йтиметься далі…

Де потрібна пам'ять.

Сфера застосування будь-якого типу флеш-пам'яті залежить насамперед від його швидкісних показників та надійності зберігання інформації. Адресний простір NOR-пам'яті дозволяє працювати з окремими байтами або словами (2 байти). У NAND осередки групуються у невеликі блоки (за аналогією з кластером) жорсткого диска). З цього випливає, що при послідовному читанні та запису перевага швидкості буде у NAND. Однак, з іншого боку, NAND значно програє в операціях з довільним доступом і не дозволяє безпосередньо працювати з байтами інформації. Наприклад, зміни одного байта потрібно:

  1. рахувати в буфер блок інформації, в якому він знаходиться
  2. у буфері змінити потрібний байт
  3. записати блок зі зміненим байтом назад

Якщо ще до часу виконання перерахованих операцій додати затримки на вибірку блоку і на доступ, то отримаємо неконкурентоспроможні з NOR показники (зазначу, що саме для випадку побайтового запису). Інша справа – послідовний запис/читання - тут NAND навпаки показує значно вищі швидкісні характеристики. Тому, а також через можливості збільшення обсягу пам'яті без збільшення розмірів мікросхеми, NAND-флеш знайшов застосування як зберігач великих обсягів інформації і для її перенесення. Найбільш поширені зараз пристрої, засновані на цьому типі пам'яті, це флеш-драйви та карти пам'яті. Що стосується NOR-флешу, то чіпи з такою організацією використовуються як зберігачі програмного коду(BIOS, RAM кишенькових комп'ютерів, мобілок і т. п.), іноді реалізовуються у вигляді інтегрованих рішень (ОЗУ, ПЗУ і процесор на одній міні-платі, а то і в одному чіпі). Вдалий приклад такого використання - проект Gumstix: одноплатний комп'ютер розміром із платівку жуйки. Саме NOR-чіпи забезпечують необхідний для таких випадків рівень надійності зберігання інформації та гнучкіші можливості по роботі з нею. Обсяг NOR-флеш зазвичай вимірюється одиницями мегабайт та рідко перевалює за десятки.

І буде флеш…

Безумовно, флеш – перспективна технологія. Однак, незважаючи на високі темпи зростання обсягів виробництва, пристрої зберігання даних, що базуються на ній, ще досить дорогі, щоб конкурувати з жорсткими дисками для настільних систем або ноутбуків. В основному зараз сфера панування флеш-пам'яті обмежується мобільними пристроями. Як ви розумієте, цей сегмент інформаційних технологій не такий уже й малий. Крім того, за словами виробників, на ньому експансія флеш не зупиниться. Отже, які основні тенденції розвитку мають місце у цій галузі.

По-перше, як згадувалося вище, велика увага приділяється інтегрованим рішенням. Причому проекти на кшталт Gumstix лише проміжні етапи на шляху реалізації всіх функцій в одній мікросхемі.

Поки що, так звані on-chip (single-chip) системи являють собою комбінації в одному чіпі флеш-пам'яті з контролером, процесором, SDRAM або спеціальним ПЗ. Так, наприклад, Intel StrataFlash у поєднанні з ПЗ Persistent Storage Manager (PSM) дає можливість використовувати обсяг пам'яті одночасно як для зберігання даних, так і для виконання програмного коду. PSM насправді є файлової системою, що підтримується ОС Windows CE 2.1 і вище. Все це спрямоване на зниження кількості компонентів та зменшення габаритів мобільних пристроїв зі збільшенням їхньої функціональності та продуктивності. Не менш цікава та актуальна розробка компанії Renesas – флеш-пам'ять типу superAND із вбудованими функціями управління. До цього моменту вони реалізовувалися окремо в контролері, а тепер інтегровані у чіп. Це функції контролю бед-секторів, корекції помилок (ECC - error check and correct), рівномірності зношування осередків (wear leveling). Оскільки в тих чи інших варіаціях вони присутні в більшості інших брендових прошивок зовнішніх контролерів, коротко їх розглянемо. Почнемо з бід-секторів. Так, у флеш-пам'яті вони теж зустрічаються: вже з конвеєра сходять чіпи, що мають в середньому до 2% неробочих осередків – це нормальна технологічна норма. Але з часом їх кількість може збільшуватися (довкілля в цьому звинувачувати особливо не варто - електромагнітний, фізичний (тряска і т. п.) вплив флеш-чіпу не страшно). Тому, як і в жорстких дисках, у флеш-пам'яті передбачено резервний об'єм. Якщо з'являється поганий сектор, функція контролю замінює його адресу в таблиці розміщення файлів адресою сектора із резервної області.


Власне, виявленням бідів займається алгоритм ECC - він порівнює інформацію, що записується, з реально записаною. Також у зв'язку з обмеженим ресурсом осередків (близько кількох мільйонів циклів читання/запису кожної) важливо наявність функції обліку рівномірності зносу. Наведу такий рідкісний випадок, що зустрічається: брелок з 32 Мбайт, з яких 30 Мбайт зайняті, а на вільне місце постійно щось записується і видаляється. Виходить, що одні осередки простоюють, інші інтенсивно вичерпують свій ресурс. Щоб такого не було, у фірмових пристроях вільний простір умовно розбивається на ділянки, кожному з яких здійснюється контроль та облік кількості операцій запису.

Ще складніші зміни класу «все-в-одном» зараз широко представлені такими компаніями як, наприклад, Intel, Samsung, Hitachi та інших. Їх вироби є багатофункціональні пристрої, реалізовані лише у мікросхемі (стандартно у ній є процесор, флеш- пам'ять та SDRAM). Вони орієнтовані на застосування в мобільних пристроях, де важлива висока продуктивність при мінімальних розмірах та низькому енергоспоживання. До таких належать: PDA, смартфони, телефони для мереж 3G. Наведу приклад подібних розробок – чіп від Samsung, що поєднує в собі ARM-процесор (203 МГц), 256 Мбайт NAND пам'яті та 256 SDRAM. Він сумісний із поширеними ОС: Windows CE, Palm OS, Symbian, Linux та має підтримку USB. Таким чином, на його основі можливе створення багатофункціональних мобільних пристроїв з низьким енергоспоживанням, здатних працювати з відео, звуком, голосом та іншими ресурсомісткими додатками.

Іншим напрямком вдосконалення флеш є зменшення енергоспоживання та розмірів з одночасним збільшенням обсягу та швидкодії пам'яті. Більшою мірою це стосується мікросхем із NOR архітектурою, оскільки з розвитком мобільних комп'ютерів, що підтримують роботу в бездротових мережах, саме NOR-флеш, завдяки невеликим розмірам та малому енергоспоживання, стане універсальним рішенням для зберігання та виконання програмного коду. Незабаром у серійне виробництво буде запущено 512 Мбіт чіпи NOR тієї ж Renesas. Напруга живлення їх становитиме 3,3 В (нагадаю, зберігати інформацію вони можуть і без подачі струму), а швидкість в операціях запису – 4 Мбайт/сек. У той же час, Intel вже представляє свою розробку StrataFlash Wireless Memory System (LV18/LV30) - універсальну системуфлеш-пам'яті для бездротових технологій. Обсяг її пам'яті може досягати 1 Гбіт, а робоча напруга дорівнює 1.8 В. Технологія виготовлення чіпів – 0,13 нм, у планах перехід на 0,09 нм техпроцес. Серед інновацій цієї компанії також варто відзначити організацію пакетного режиму роботи з NOR пам'яттю. Він дозволяє зчитувати інформацію не по одному байту, а блоками – по 16 байт: з використанням 66 МГц шини даних швидкість обміну інформацією з процесором досягає 92 Мбіт/с!

Що ж, як бачите, технологія розвивається стрімко. Цілком можливо, що на момент виходу статті з'явиться ще щось нове. Так що, якщо що - не спробуйте:) Сподіваюся, матеріал був вам цікавий.

У цій статті ми з Вами поговоримо про те, що покладено в основу створення і за яким принципом працює флеш-пам'ять (не плутайте з USB флеш-накопичувачами і картами пам'яті). Крім цього, ви дізнаєтеся про її переваги та недоліки перед іншими типами ПЗУ (постійно запам'ятовуючими пристроями) і познайомитеся з асортиментом найпоширеніших накопичувачів, які містять флеш-пам'ять.

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

Флеш-пам'ять (flash memory) - відноситься до напівпровідників пам'яті, що електрично перепрограмується (EEPROM). Завдяки технічним рішенням, не високій вартості, великому об'єму, низькому енергоспоживання, високій швидкості роботи, компактності та механічній міцності, флеш-пам'ять вбудовують у цифрові портативні пристрої та носії інформації.

У флеш-пам'яті перед іншими накопичувачами (жорсткі диски та оптичні накопичувачі) типу ПЗУ є свої переваги, так і свої недоліки, з якими ви можете познайомитися з таблиці розташованої нижче.

Тип ПЗУПеревагиНедоліки
Жорсткий дискВеликий обсяг інформації, що зберігається.

Висока швидкість роботи.

Дешевизна зберігання даних (у розрахунку 1 Мбайт).

Великі габарити.

Чутливість до вібрації.

Тепловиділення.

Оптичний дискЗручність транспортування.

Дешевизна зберігання інформації.

Можливість тиражування.

Невеликий об'єм.

Потрібний пристрій, що зчитує.

Обмеження під час операцій (читання, запис).

Низька швидкість роботи.

Чутливість до вібрації.

Флеш-пам'ятьВисока швидкість доступу до даних.

Економне енергоспоживання.

Стійкість до вібрацій.

Зручність підключення до комп'ютера.

Компактні розміри.

Обмежена кількість циклів запису.

Сьогодні ніхто не сумнівається в тому, що флеш-пам'ять продовжуватиме зміцнювати свої позиції в інформаційних технологій, особливо в лінійці мобільних пристроїв (КПК, планшети, смартфони, програвачі). На основі флеш-пам'яті працюють найпопулярніші та найпопулярніші та змінні карти пам'яті для електронних пристроїв (SD, MMC, miniSD…).

Карти пам'яті, як і USB накопичувачі не стоять осторонь, а привертають увагу потенційних покупців своєю різноманітністю. Від такого достатку пристроїв виграє тільки виробник, а споживач відчуває ряд незручностей. Адже всім нам знайомі такі ситуації, коли потрібна телефону одна карта, КПК інша, фотоапарату третя. Такий асортимент накопичувачів на руку виробникам, тому що вони отримують з широкого ексклюзивного продажу велику вигоду. Ось невеликий список поширених накопичувачів із флеш-пам'яттю:

  • Compact Flash Type I (CF I)/Type II (CF II);
  • Memory Styck (MS Pro, MS Duo);
  • Secure Digital (SD);
  • miniSD;
  • xD-Picture Card (xD);
  • MultiMedia Card (MMC)
  • USB Flash Drive.

В одній з публікацій я писав про те, а про те, як вибрати карту у форматі SD (microSD, miniSD).

Принцип роботи флеш-пам'яті.

Елементарний осередок зберігання даних флеш-пам'яті є транзистором з плаваючим затвором. Особливість такого транзистора полягає в тому, що він уміє утримувати електрони (заряд). Ось на його основі і розроблено основні типи флеш-пам'яті NANDі NOR. Конкуренції між ними немає, тому що кожен з типів має свою перевагу і недолік. До речі, на їх основі будують гібридні версії, такі як DiNORі superAND.

У флеш-пам'яті виробники використовують два типи осередків пам'яті MLC та SLC.

  • Флеш-пам'ять з MLC (Multi-level cell — багаторівневі осередки пам'яті) осередки більш ємні та дешеві, але вони з більшим часом доступу та меншою кількістю циклів запису/прання (близько 10000).
  • Флеш-пам'ять, що містить у собі SLC (Single-level cell — однорівневі осередки пам'яті) осередки має максимальну кількість циклів запису/стирання (100000) і мають менший час доступу.

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

Принцип роботи флеш-пам'яті ґрунтується на зміні та реєстрації електричного заряду в ізольованій області («кишеня») напівпровідникової структури.

Читання виконується польовим транзисторомдля якого кишеня виконує роль затвора. Потенціал плаваючого затвора змінює порогові характеристики транзистора, що реєструється ланцюгами читання. Ця конструкція забезпечується елементами, які дозволяють їй працювати у великому масиві таких самих осередків.

Тепер розглянемо докладніше осередки пам'яті з одним і двома транзисторами.

Осередок пам'яті з одним транзистором.

Якщо на керуючий затвор подати позитивну напругу (ініціалізація осередку пам'яті) то він перебуватиме у відкритому стані, що відповідатиме логічному нулю.

А якщо на плаваючий затворпомістити надлишковий негативний заряд (електрон) та подати позитивну напругу на керуючий затворвін компенсує створюване керуючим затвором електричне поле і не дасть утворюватися каналу провідності, а значить транзистор перебуватиме в закритому стані.

Ось так, наявність або відсутність заряду на плаваючому затворі точно визначає стан відкритий або закритий транзистор, коли подається одна позитивна напруга на керуючий затвор. Якщо ми будемо розглядати подачу напруги на затвор, що управляє, як ініціалізацію осередку пам'яті, то по тому, яке напруга між витоком і стоком можна судити про наявність або відсутність заряду на плаваючому затворі.

Таким чином виходить своєрідний елементарний осередок пам'яті, здатний зберігати один інформаційний біт. До цього дуже важливо, щоб заряд на плаваючому затворі (якщо він там є) міг зберігатися там довго, як при ініціалізації осередку пам'яті, так і при відсутності напруги на затворі, що управляє. Тільки в цьому випадку осередок пам'яті буде енергонезалежним.

Так як у разі необхідності на плаваючий затвор поміщати заряд (записувати вміст комірки пам'яті) і видаляти його звідти (прати вміст комірки пам'яті) коли це необхідно.

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

Якщо використовується метод інжекції гарячих електронів, то на стік і затвор, що управляє, подається висока напруга, що додасть електронам в каналі енергії, достатньої щоб подолати потенційний бар'єр, який створюється тонким шаром діелектрика, і направити (тунелювати) в область плаваючого затвора (під час читання на керуючий затвор подається менша напруга та ефект тунелювання не відбувається).

Щоб видалити заряд з плаваючого затвора (виконати стирання комірки пам'яті) на затвор, що управляє, подається висока негативна напруга (близько 9 В), а на область витоку подається позитивна напруга. Це призводить до того, що електрони тунелюють з області затвора, що плаває, в область витоку. Таким чином відбувається квантове тунелювання Фаулера – Нордхейма (Fowler – Nordheim).

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

Так як при створенні масиву пам'яті, кожен осередок пам'яті (тобто транзистор) підключається до двох перпендикулярних шин. Затвори, що управляють, підключаються до шини, яку називають лінією слів (Word Line), а стоки з'єднують з шиною, її називають бітовою лінією (Bit Line). Тому в схемі знаходиться висока напруга і при записі шляхом інжекції гарячих електронів всі лінії - слів, бітів і витоків необхідно розмістити на великій відстані один від одного. Це дасть необхідний рівень ізоляції, але вплине на обмеження обсягу флеш-пам'яті.

Ще одним недоліком такого осередку пам'яті є присутність ефекту надлишкового видалення заряду з затвора, що плаває, а він не може компенсуватися процесом запису. Тому на плаваючому затворі утворюється позитивний заряд, що робить постійним стан транзистора і він завжди залишається відкритим.

Осередок пам'яті з двома транзисторами.

Двотранзисторний осередок пам'яті, це модифікований однотранзисторний осередок, в якому знаходиться звичайний КМОП-транзистор і транзистор з плаваючим затвором. У цій структурі звичайний транзистор виконує роль ізолятора транзистора з затвором плаваючим від бітової лінії.

Чи має переваги двотранзисторний осередок пам'яті? Так, адже з її допомогою можна створювати компактніші і добре масштабовані мікросхеми пам'яті, тому що тут транзистор із плаваючим затвором ізолюється від бітової лінії. До того ж, на відміну від однотранзисторного осередку пам'яті, де інформація записується методом інжекції гарячих електронів, у двотранзисторного осередку пам'яті для запису та стирання інформації використовується метод квантового тунелювання Фаулера — Нордхейма. Такий підхід дає можливість знизити напругу, яка потрібна для операції запису. Забігаючи наперед, скажу, що двотранзисторні осередки застосовуються в пам'яті зі структурою NAND.

Влаштування флеш-пам'яті з архітектурою NOR.

Тип цієї пам'яті є джерелом і певним поштовхом у розвитку всієї EEPROM. Її архітектура була розроблена компанією Intel у далекому 1988 році. Як було написано раніше, щоб отримати доступ до вмісту комірки пам'яті (ініціалізувати комірку), потрібно подати напругу на затвор, що управляє.

Тому розробники компанії всі затвори, що управляють, приєднали до лінії управління, яка називається лінією слів (Word Line). Аналіз інформації осередку пам'яті виконується за рівнем сигналу стоку транзистора. Тому розробники всі стоки транзисторів приєднали до лінії, що називається лінією бітів (Bit Line).

Архітектура NOR отримала назву завдяки логічній операції АБО - НЕ (у перекладі з англійської NOR). Принцип логічної операції NOR у тому, що вона з кількома операндами (дані, аргумент операції…) дає одиничне значення, що це операнди рівні нулю, і нульове значення переважають у всіх інших операціях.

У нашому випадку під операндами мається на увазі значення осередків пам'яті, а отже в даній архітектурі одиничне значення на бітовій лінії буде спостерігатися тільки в тому випадку, коли значення всіх осередків, які підключені до бітової лінії, дорівнюватимуть нулю (всі транзистори закриті).

У цій архітектурі добре організований довільний доступ до пам'яті, але процес запису та стирання даних виконується відносно повільно. У процесі запису та стирання застосовується метод інжекції гарячих електронів. До того ж мікросхема флеш-пам'яті з архітектурою NOR і розмір її осередку виходить більшим, тому ця пам'ять погано масштабується.


Структура шести осередків NOR Flash

Флеш-пам'ять з архітектурою NOR зазвичай використовують у пристроях зберігання програмного коду. Це можуть бути телефони, КПК, BIOS системних плат.

Влаштування флеш-пам'яті з архітектурою NAND.

Цей тип пам'яті було розроблено компанією Toshiba. Ці мікросхеми завдяки своїй архітектурі застосовують у маленьких накопичувачах, які отримали ім'я NAND (логічна операція І-НЕ). При виконанні операція NAND дає значення нуль тільки коли всі операнди рівні нулю, і одиничне значення у всіх інших випадках.

Як було написано раніше, нульове значення - це відкритий стан транзистора. Тому в архітектурі NAND мається на увазі, що бітова лінія має нульове значення в тому випадку, коли всі підключені до неї транзистори відкриті, і значення один, коли хоча б один з транзисторів закритий. Таку архітектуру можна побудувати, якщо приєднати транзистори з бітовою лінією не по одному (так побудовано в архітектурі NOR), а послідовними серіями (стовпець із послідовно включених осередків).

Ця архітектура в порівнянні з NOR добре масштабується тому, що дозволяє компактно розмістити транзистори на схемі. Крім цього архітектура NAND робить запис шляхом тунелювання Фаулера - Нордхейма, а це дозволяє продати швидкий запис ніж у структурі NOR. Щоб збільшити швидкість читання, мікросхеми NAND вбудовують внутрішній кеш.

Як і кластери жорсткого диска, так і комірки NAND групуються в невеликі блоки. З цієї причини при послідовному читанні або запису перевага швидкості буде у NAND. Але з іншого боку NAND сильно програє в операції з довільним доступом і не може працювати на пряму з байтами інформації. У ситуації коли потрібно змінити лише кілька біт, система змушена переписувати весь блок, а це якщо враховувати обмежену кількість циклів запису, веде до великого зносу осередків пам'яті.


Структура одного стовпця NAND Flash

Останнім часом ходять чутки, що компанія Unity Semiconductor розробляє флеш-пам'ять нового покоління, яка буде побудована на технології CMOx. Передбачається, що нова пам'ять прийде на зміну флеш-пам'яті типу NANDі подолає її обмеження, які у пам'яті NAND зумовлені архітектурою транзисторних структур. До переваг CMOx відносять більш високу щільність та швидкість запису, а також більш привабливу вартість. Серед областей застосування нової пам'яті значаться SSD та мобільні пристрої. Ну, що ж це чи ні покаже час.

Щоб детальніше донести до Вас всю необхідну інформацію, я розмістив відеоролик по темі.

P.S. Пояснити простою мовою технічний матеріал людям, які не уявляють, як побудована архітектура комп'ютера… дуже складно, але я сподіваюся, у мене це вийшло. Для повної та достовірної інформації у цій статті я частково використав навчальну літературу. Сподіваюся ця стаття була для вас корисною та пізнавальною. Бувай!

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

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

Основні недоліки таких носіїв досить велика ціна самих карт флеш-пам'яті і висока питома вартість даних, що зберігаються на них, хоча в даний час спостерігається тенденція до значного зниження цін на змінні карти флеш-пам'яті.

Найпоширенішими типами флеш-карт сьогодні є 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-області).

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

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

Розглянемо спочатку ситуацію, коли на плаваючому затворі немає електронів. У цьому випадку транзистор поводиться подібно до вже розглянутого традиційного транзистора.

При подачі на керуючий затвор позитивної напруги (ініціалізація осередку пам'яті) він перебуватиме у відкритому стані, що відповідає логічному нулю (рис. 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-комірки пам'яті

Як зазначалося під час розгляду однотранзисторной осередку пам'яті, наявність логічної одиниці чи нуля визначається за значенням напруги на бітової лінії залежить від наявності чи відсутності заряду на плаваючому затворі. Якщо на затвор, що управляє, подається позитивна напруга, то при відсутності заряду на плаваючому затворі транзистор відкритий і напруга між стоком і витоком мало, що відповідає логічному нулю. Якщо ж на плаваючому затворі є негативний заряд, своїм полем екранує поле, створюване затвором, що управляє, то транзистор виявляється в закритому стані, що відповідає високій напрузі між стоком і витоком (логічна одиниця). Зрозуміло, що навіть за наявності негативного заряду на плаваючому затворі транзистор можна перевести у відкритий стан, проте для цього доведеться подати більшу напругу (порогову напругу) на затвор, що управляє. Отже, про відсутність або наявність заряду на затворі, що плаває, можна судити за пороговим значенням напруги на керуючому затворі.

Оскільки гранична напруга залежить від величини заряду на плаваючому затворі, то можна не тільки визначити два граничні випадки - відсутність або присутність заряду, але і за величиною порогової напруги судити про кількість заряду. Таким чином, якщо є можливість розміщувати на плаваючому затворі різну кількість рівнів заряду, кожному з яких відповідає своє значення граничної напруги, то в одному осередку пам'яті можна зберігати кілька інформаційних бітів. Наприклад, для того, щоб з використанням такого транзистора зберігати в одному осередку 2 біта, необхідно розрізняти чотири порогові напруги, тобто мати можливість розміщувати на плаваючому затворі чотири різних рівня заряду. Тоді кожному з чотирьох порогових напруг можна поставити у відповідність комбінацію двох бітів: 00, 01, 10, 11.

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

Осередки MLC активно розробляються компанією Intel, тому технологія пам'яті на основі MLC-осередків отримала назву Intel StrataFlash.

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

Як зазначалося, для ініціалізації комірки пам'яті, тобто отримання доступу до вмісту комірки, необхідно подати напруга на керуючий затвор. Тому всі затвори, що управляють, повинні бути приєднані до лінії управління, званої лінією слів (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 є найбільш вигідним рішенням у плані питомої вартості збережених носієм даних на основі флеш-пам'яті при об'ємі більше 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

При послідовному записі спостерігається приблизно така сама закономірність. Виняток склала карта серії 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

Стандарт був спочатку «вільним», тобто позбавленим будь-яких ліцензійних обмежень.

На момент появи карти 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 Мбайт/с.

Стандарт 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, дозволить уникнути втрати даних при передчасному видаленні картки зі слота. Навіть якщо користувач витягне картку, не дочекавшись закінчення процесу запису, після повторної установки носія можна буде відновити запис з того місця, де вона була перервана. При цьому гарантується безпека не тільки даного файлу, але і всієї файлової системикартки.

В даний час на ринку представлені моделі карток 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.

Іноді при створенні пристрою виникає потреба зберігати будь-які дані в незалежну пам'ять. У таких випадках зазвичай використовують внутрішню 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 моїми очима :-)
Всі питання та пропозиції чекаю у коментарях.

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

Трохи про флеш-пам'ять

Сьогодні такий розділ (модуль, елемент - можете називати її як завгодно), як флеш-пам'ять, є невід'ємною частиною практично всіх комплектуючих комп'ютера (будь то звукова карта, вінчестер, модем, магнітооптичні накопичувачі або CD-ROM), що використовують у своїй роботі пам'ять, та й не лише комп'ютера (!). Але що ж насправді є флеш-пам'ять? Цьому та іншому присвячена ця стаття.

Флеш-пам'ять є досить важливим розділом, в якому зберігаються програми, що оновлюються, і модулі програм. Використовується флеш-пам'ять у самих різних системахнавіть у BIOS, стільникових телефонах, пейджерах і т.д. Використання флеш-пам'яті для зберігання різних параметричних даних дозволяє не тільки підвищити продуктивність тієї чи іншої системи, але й дає змогу збільшити її надійність та знизити вартість. Наприклад, модеми широко поширені параметричні блоки флеш-пам'яті, завдяки яким здійснюється робота модему як автовідповідача, і при цьому можна залишити повідомлення навіть при вимкненому комп'ютері. Що стосується мобільних телефонів, то в них модулі флеш-пам'яті використовуються для зберігання. телефонних номерів, обліку часу, ідентифікатора користувача та багато іншого. Флеш-пам'ять застосовується навіть на автомобілях в системах керування двигуном і подачі та нормування палива, ведучи облік не тільки роботи, але і виниклих неполадок.

Технологія модулів флеш-пам'яті

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

Робота флеш-пам'яті містить лише три операції - запис або програмування, читання, стирання. На кожну з операцій потрібно визначений час. Наприклад, читання одного параметричного блоку витрачається приблизно 60 нс., а запису 9 мкс. На операцію стирання інформації в середньому витрачається від 06 до 45 секунди. Це найдовша операція.

Програмування флеш-пам'яті – це, так би мовити, заміна "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 є змінним і залежить більшою мірою від специфіки та обсягу інформації, що заноситься.

ЗначенняАдресаПараметр
01HParameter1Parameter1 Pointer Variable
03HParameter2Parameter2 Pointer Variable
05HParameter3Parameter3 Pointer Variable
F8H01HParameter1 Value = F8H
07H02HParameter1 Next_Record = 07H
22H03HParameter2 Value = 22H
09H04HParameter2 Next_Record = 09H
44H05HParameter3 Value = 44H
FFH06HParameter3 Next_Record = FFH = latest
55H07HParameter1 Value = 55H
0BH08HParameter1 Next_Record = 0BH
F2H09HParameter2 Value = F2H
FFH0AHParameter2 Next_Record = FFH = latest
F4H0BHParameter1 Value = F4H
FFH0CHParameter1 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 вольт)

Мікросхема пам'ятіОрганізаціяЧас доступу, нс
Am28F256A32K x 870-200
Am28F512A64K x 870-200
Am28F010A128K х 890-200
Am28F020A256K х 890-200

Флеш-пам'ять із 5-вольтовим програмуванням

Мікросхема пам'ятіОрганізаціяЧас доступу, нсЧисло висновків
Am29F010128K х 845-120 32
Am29F100128K х 864К х 1670-150 44, 48
Am29F200256K х 8128К х 1670-150 44, 48
Am29F040512K х 855-150 32
Am29F400512K х 8256К х 1670-150 44, 48
Am29F0801M x 885-150 44, 48
Am29F8001M x 8512K x 1685-150 40, 44
Am29F0162M x 890-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 року.

Висновок

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

p align="justify"> Для роботи флеш-пам'яті в основному застосовуються програмні методи емуляції побайтової роботи, і при цьому використовується тільки два блоки пам'яті.

Використання мікросхем флеш-пам'яті також дозволяє зменшити вартість обладнання. Флеш-пам'ять, використовуючи блокову архітектуру, повністю замінила собою мікро-схеми, що стираються цілком.