Что такое OTP (One Time Programmable)?

one-time-programmable

Вычислительная техника: однократно программируемый

Универсальный англо-русский словарь. . 2011.

Блок: 1/2 | Кол-во символов: 217
Источник: https://universal_en_ru.academic.ru/1744308/one-time-programmable

History

The PROM was invented in 1956 by Wen Tsing Chow, working for the Arma Division of the American Bosch Arma Corporation in Garden City, New York. The invention was conceived at the request of the United States Air Force to come up with a more flexible and secure way of storing the targeting constants in the Atlas E/F ICBM’s airborne digital computer. The patent and associated technology were held under secrecy order for several years while the Atlas E/F was the main operational missile of the United States ICBM force. The term burn, referring to the process of programming a PROM, is also in the original patent, as one of the original implementations was to literally burn the internal whiskers of diodes with a current overload to produce a circuit discontinuity. The first PROM programming machines were also developed by Arma engineers under Mr. Chow’s direction and were located in Arma’s Garden City lab and Air Force Strategic Air Command (SAC) headquarters.

OTP (one time programmable) memory is a special type of non-volatile memory (NVM) that permits data to be written to memory only once. Once the memory has been programmed, it retains its value upon loss of power (i.e., is non-volatile). OTP memory is used in applications where reliable and repeatable reading of data is required. Examples include boot code, encryption keys and configuration parameters for analog, sensor or display circuitry. OTP NVM is characterized, over other types of NVM like eFuse or EEPROM, by offering a low power, small area footprint memory structure. As such OTP memory finds application in products from microprocessors & display drivers to Power Management ICs (PMICs).

Commercially available semiconductor antifuse-based OTP memory arrays have been around at least since 1969, with initial antifuse bit cells dependent on blowing a capacitor between crossing conductive lines. Texas Instruments developed a MOS gate oxide breakdown antifuse in 1979. A dual-gate-oxide two-transistor (2T) MOS antifuse was introduced in 1982. Early oxide breakdown technologies exhibited a variety of scaling, programming, size and manufacturing problems that prevented volume production of memory devices based on these technologies.

Although antifuse-based PROM has been available for decades, it wasn’t available in standard CMOS until 2001 when Kilopass Technology Inc. patented 1T, 2T, and 3.5T antifuse bit cell technologies using a standard CMOS process, enabling integration of PROM into logic CMOS chips. The first process node antifuse can be implemented in standard CMOS is 0.18 um. Since the gate oxide breakdown is less than the junction breakdown, special diffusion steps were not required to create the antifuse programming element. In 2005, a split channel antifuse device was introduced by Sidense. This split channel bit cell combines the thick (IO) and thin (gate) oxide devices into one transistor (1T) with a common polysilicon gate.

Блок: 2/6 | Кол-во символов: 2959
Источник: https://en.wikipedia.org/wiki/Programmable_read-only_memory

О чипах – микросхемах хранения информации

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

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

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

МИКРОСХЕМЫ

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

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

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

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

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

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

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

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

Блок: 2/3 | Кол-во символов: 1789
Источник: https://zetsila.ru/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D1%87%D0%B8%D0%BF-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8/

Принцип работы

По сути, TOTP является вариантом HOTP алгоритма, в котором в качестве значения счетчика подставляется величина, зависящая от времени. Обозначим:

Тогда

где

  • HMAC-SHA-1(K,T) -генерация 20-ти байт на основе секретного ключа и времени с помощью хеш-функции SHA-1.
  • Truncate — функция выбора определенным способом 4 байт:

обозначим String — результат HMAC-SHA-1(K,T); OffsetBits — младшие 4 бита строки String; Offset = StringToNumber(OffsetBits) и результатом Truncate будет строка из четырёх символов — StringString

Также стоит отметить что в отличие от HOTP, который основан только на SHA-1, TOTP может также использовать HMAC-SHA-256, HMAC-SHA-512 и другие HMAC-хеш-функциях:

и т. д.

Блок: 3/8 | Кол-во символов: 698
Источник: https://ru.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm

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

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

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

ЛОГИКА

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

Например, 8-мегабитный чип серии 27c801 имеет в общей сложности 1048576 байт (8388608 бит). Каждый байт имеет свой собственный адрес, пронумерованный от 00000h до FFFFFh (десятичное значение 0 — 1048575).

Помимо 8-битных чипов памяти, существуют также 16-битные чипы памяти. Есть микросхемы последовательного доступа, характеризуемые как 1-битные и 4-битные чипы памяти. Правда, последние из отмеченных микросхем теперь уже практически не встречаются.

Микросхемы памяти EPROM (серия 27… 27C …)

Термином «EPROM» зашифрована аббревиатурой техническая характеристика микросхем — стираемая программируемая память только читаемая (Erasable Programmable Read Only Memory). Что это значит в деталях?

СЕРИЯ 27С256

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

Несмотря на расшифровку куска аббревиатуры – «только для чтения» (Read Only Memory), информация доступна для стирания и перезаписи, но только с помощью программатора. Часть аббревиатуры — «Erasable», сообщает о возможности стирания данных.

Структура чипов серии 27… 27C… поддерживает стирание информации методом воздействия на ячейки хранения интенсивным ультрафиолетовым излучением  (длина волны 254 нм).

Обозначение аббревиатуры «программируемый» (Programmable) указывает на возможность программирования, когда любая цифровая информация может быть заложена в чип.

Для программирования чипов требуется программатор. К примеру, 27 серия успешно прошивается устройствами «Batronix Eprommer» или «Galep-4».

ПРОГРАММАТОР

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

Тип памяти серии 27… 27C… сохраняет записанные программатором данные до следующего программирования с функцией стирания или без таковой.

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

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

Конфигурация исполнения серии 27…, 27C..

Микросхемы 27 серии выпускаются с окном из кварцевого стекла для засветки ультрафиолетом или без окна. Конфигурация чипа без окна не поддерживает функцию ультрафиолетового стирания.

Такой тип микросхем (без окна) относят к чипам EPROM, которые программируются за один раз. Маркируются чипы как OTP (One Time Programmable) — одноразовое программирование.

27C512

Запоминающее программируемое устройство из группы однократно программируемых EPROM (One Time Programmable). В настоящее время редко применяемые

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

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

Также следует отметить особенности EPROM серии 27C… Символ «С» в данном случае указывает на принадлежность чипа к семейству CMOS (Complimentary Metal Oxide Semiconductor) — комплементарный метал-оксидный полупроводник.

Этот вид микросхем памяти отличается сниженной производительностью по отношению к семейству NMOS (N-channel Metal Oxide Semiconductor) — N-канальный метал-оксидный полупроводник.

Кроме того, серия 27C требует меньшего напряжения питания (12,5В). Между тем обе конфигурации исполнения совместимы. Поэтому, к примеру, микросхема 2764 вполне заменима на чип 27C64.

Микросхемы памяти EEPROM серии 28C…

Здесь первое отличие заметно в аббревиатуре типа памяти – EEPROM, что означает электрически стираемое программируемое постоянное запоминающее устройство (Electrically Erasable Programmable Read Only Memory).

Построение этой серии практически идентично 27 чипам. Однако 28 серия позволяет стирать отдельные байты или всё пространство памяти электрическим способом, без применения ультрафиолета.

СЕРИЯ 28C

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

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

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

Чипы памяти FLASH EEPROM серии 28F …, 29C …, 29F …

Эти чипы можно стирать электрически — полностью или блоками, а некоторые (подобные AT28C …) могут программироваться блоками.

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

СЕРИЯ 29C

Устройства записи и хранения данных, поддерживающие технологию программирования Flash-memory. Отличаются исполнением корпуса с большим числом контактов (32). Входят в группу EPROM

Простой пример, когда Flash-память доступна только в корпусах на 32 контакта или более. Поэтому, допустим, чип 28F256 на 32 вывода не совместим с чипом 27C256, имеющим 28 контактных выводов. При этом микросхемы имеют одинаковый объём памяти и другие параметры, подходящие для замены.

Чипы EEPROM с последовательным доступом (24C …, 25C …, 93C …)

Микросхемы памяти с последовательным интерфейсом отличаются тем, что вывод данных и наименование имен в них происходят частями (последовательно).

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

СЕРИЯ 24C

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

Это преимущество успешно используется. Практически все EEPROM последовательного доступа изготавливаются в виде 8-контактных малогабаритных микросхем. Такое исполнение корпуса видится более практичным, удобным.

Запоминающие устройства ОЗУ  серии 52 …, 62 …, 48Z …, DS12 …, XS22 …

Аббревиатура ОЗУ (RAM) расшифровывается как «память произвольного доступа» (Random Access Memory). Также микросхемы серии 52 …, 62 … и подобные часто характеризуются «оперативными запоминающими устройствами».

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

Но есть и недостаток – чипы ОЗУ отмеченной и других серий утрачивают все записанные и сохранённые данные при отключении питания.

Однако имеется альтернатива – память NVRAM (Non Volatile Random Access Memory) – энергонезависимая память серий 48, DS, XS и подобная, с произвольным доступом.

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

ПАМЯТЬ NVRAM

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

Как же способом достигается энергетическая независимость NVRAM? Оказывается, производителями используются две методики:

  1. Встраиваемый в корпус мини аккумулятор.
  2. Совмещение в одном корпусе NVRAM и EEPROM.

Для первого варианта: при отключении питания происходит автоматический переход на внутренний источник энергии. По словам производителей чипов с АКБ, энергии встроенного уникального аккумулятора вполне достаточно на 10 лет работы.

Для второго варианта: технология предусматривает копирование данных пространства памяти NVRAM на встроенное пространство EEPROM. Если утрачивается питание, копия информации остаётся нетронутой и после восстановления энергии, автоматически копируется на NVRAM.

Маркировка и взаимозаменяемость компонентов

Выведенная на корпусе маркировка чипа памяти традиционно содержит:

  • аббревиатуру производителя,
  • технологию производства,
  • размер (объём) памяти,
  • максимально разрешенную скорость доступа,
  • диапазон температур,
  • тип формы корпуса.

Также на корпусах нередко отмечаются сведения о производителе. Независимо от производителя, многие микросхемы памяти совместимы.

АДАПТЕРЫ

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

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

Если дело касается взаимной замены, в первую очередь должна поддерживаться технология (EPROM, EEPROM , FLASH и т.д.),

Также микросхемы памяти должны иметь одинаковый размер (объём) и равноценное или меньшее время доступа. Желательно выбирать корпус, подходящий по температурному диапазону.

Следует отметить: размер памяти задается в битах, не в байтах. За цифрой объёма обычно следует обозначение версии (например, «F»).

Далее, через дефис, отмечается максимально разрешенная скорость доступа в наносекундах — время задержки между циклами ввода адреса и вывода данных на порты чипа памяти.

Время задержки обозначается двумя цифрами (например, «70» соответствует 70 нс, а вот «10» соответствует 100 нс). Наконец, завершают маркировку изделия тип корпуса и допустимый диапазон температур.

Пример расшифровки маркировки микросхемы памяти M27C1001-10F1:

  • память типа EPROM,
  • объём хранения данных 1 Мбит (1001),
  • максимальное время доступа 100 нс (10),
  • тип корпуса DIP (F),
  • температурный диапазон 0 — 70ºС (1).

Из практики программирования запоминающих устройств

Написано по материалам: Batronix

Блок: 3/3 | Кол-во символов: 10512
Источник: https://zetsila.ru/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D1%87%D0%B8%D0%BF-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8/

Device tree bindings

The device tree node for the OTP driver is defined in the common i.MX6 device tree file:

Common i.MX6 device tree
ocotp-fuse@021bc000 {      compatible = "fsl,imx6q-ocotp";      reg = <0x021bc000 0x4000>;      clocks = <&clks IMX6QDL_CLK_IIM>;  };
Блок: 4/5 | Кол-во символов: 309
Источник: https://www.digi.com/resources/documentation/digidocs/90001546/reference/bsp/cc6/r_one_time_programmable.htm

Надежность алгоритма

Концепция одноразовых паролей вкупе с современными криптографическими методами может использоваться для реализации надежных систем удаленной аутентификации. TOTP достаточно устойчив к криптографическим атакам, однако вероятности взлома есть, например возможен такой вариант атаки «человек посередине»:

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

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

Блок: 4/8 | Кол-во символов: 1287
Источник: https://ru.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm

References

  • 1977 Intel Memory Design Handbook — archive.org
  • Intel PROM datasheets — intel-vintage.info
  • View the US «Switch Matrix» Patent #3028659 at US Patent Office or Google
  • View Kilopass Technology Patent US «High density semiconductor memory cell and memory array using a single transistor and having variable gate oxide breakdown» Patent #6940751 at US Patent Office or Google
  • View Sidense US «Split Channel Antifuse Array Architecture» Patent #7402855 at US Patent Office or Google
  • View the US «Method of Manufacturing Semiconductor Integrated Circuits» Patent #3634929 at US Patent Office or Google
  • CHOI et al. (2008). «New Non-Volatile Memory Structures for FPGA Architectures»
  • For the Advantages and Disadvantages table, see Ramamoorthy, G: «Dataquest Insight: Nonvolatile Memory IP Market, Worldwide, 2008-2013», page 10. Gartner, 2009
Блок: 5/6 | Кол-во символов: 845
Источник: https://en.wikipedia.org/wiki/Programmable_read-only_memory
Кол-во блоков: 19 | Общее кол-во символов: 20493
Количество использованных доноров: 5
Информация по каждому донору:

  1. https://en.wikipedia.org/wiki/Programmable_read-only_memory: использовано 2 блоков из 6, кол-во символов 3804 (19%)
  2. https://www.digi.com/resources/documentation/digidocs/90001546/reference/bsp/cc6/r_one_time_programmable.htm: использовано 2 блоков из 5, кол-во символов 905 (4%)
  3. https://ru.wikipedia.org/wiki/Time-based_One-time_Password_Algorithm: использовано 3 блоков из 8, кол-во символов 3266 (16%)
  4. https://zetsila.ru/%D1%87%D1%82%D0%BE-%D1%82%D0%B0%D0%BA%D0%BE%D0%B5-%D1%87%D0%B8%D0%BF-%D0%BF%D0%B0%D0%BC%D1%8F%D1%82%D0%B8/: использовано 2 блоков из 3, кол-во символов 12301 (60%)
  5. https://universal_en_ru.academic.ru/1744308/one-time-programmable: использовано 1 блоков из 2, кол-во символов 217 (1%)


Поделитесь в соц.сетях:

Оцените статью:

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Загрузка...

Добавить комментарий