Программируемая постоянная память ( PROM ) — это форма цифровой памяти, содержимое которой можно изменить один раз после изготовления устройства. После этого данные становятся постоянными и не могут быть изменены. Это один из типов постоянной памяти (ROM). PROM используются в цифровых электронных устройствах для хранения постоянных данных, обычно программ низкого уровня, таких как встроенное ПО или микрокод . Ключевое отличие от стандартной ROM заключается в том, что данные записываются в ROM во время изготовления, тогда как в PROM данные программируются в них после изготовления. Таким образом, ROM, как правило, используются только для крупных производственных партий с хорошо проверенными данными. PROM могут использоваться там, где требуемый объем не делает заводское программирование ROM экономичным, или во время разработки системы, которая в конечном итоге может быть преобразована в ROM в версии для массового производства.
PROM производятся пустыми и, в зависимости от технологии, могут быть запрограммированы на пластине, окончательном тесте или в системе. Пустые чипы PROM программируются путем подключения их к устройству, называемому программатором PROM . Компании могут держать запас пустых PROM на складе и программировать их в последнюю минуту, чтобы избежать больших объемов обязательств. Эти типы памяти часто используются в микроконтроллерах , игровых консолях , мобильных телефонах, метках радиочастотной идентификации ( RFID ), имплантируемых медицинских устройствах, мультимедийных интерфейсах высокой четкости ( HDMI ) и во многих других продуктах бытовой и автомобильной электроники. Типичное устройство PROM состоит из массива ячеек памяти, каждая из которых состоит из транзистора, который является биполярным транзистором , подключенным к предохранителю, называемому полипредохранителем, в эмиттере транзистора. Программатор PROM используется для перегорания полипредохранителя, программируя PROM. [1]
PROM был изобретен в 1956 году Вэнь Цин Чжоу , работавшим в Arma Division американской Bosch Arma Corporation в Гарден-Сити , штат Нью-Йорк . [2] [3] Изобретение было задумано по просьбе ВВС США , чтобы придумать более гибкий и безопасный способ хранения констант наведения в бортовом цифровом компьютере МБР Atlas E/F . Патент и связанная с ним технология были засекречены в течение нескольких лет, пока Atlas E/F была основной оперативной ракетой МБР США. Термин burn , относящийся к процессу программирования PROM, также присутствует в оригинальном патенте, поскольку одной из первоначальных реализаций было буквальное сжигание внутренних усов диодов с помощью перегрузки по току для создания разрыва цепи. Первые машины для программирования PROM также были разработаны инженерами Arma под руководством Чжоу и находились в лаборатории Arma в Гарден-Сити и в штаб-квартире Стратегического авиационного командования ВВС (SAC).
Память OTP (однократно программируемая) — это особый тип энергонезависимой памяти (NVM), которая позволяет записывать данные в память только один раз. После программирования память сохраняет свое значение при потере питания (т. е. является энергонезависимой). Память OTP используется в приложениях, где требуется надежное и повторяемое считывание данных. Примерами служат загрузочный код, ключи шифрования и параметры конфигурации для аналоговых, сенсорных или дисплейных схем. Память OTP NVM отличается от других типов NVM, таких как eFuse или EEPROM, тем, что предлагает структуру памяти с низким энергопотреблением и небольшой площадью. Таким образом, память OTP находит применение в таких продуктах, как микропроцессоры и драйверы дисплеев, а также ИС управления питанием (PMIC).
Коммерчески доступные полупроводниковые противоперегораемые массивы памяти OTP существуют по крайней мере с 1969 года, причем первые противоперегораемые битовые ячейки зависели от перегорания конденсатора между пересекающимися проводящими линиями. Texas Instruments разработала противоперегораемый предохранитель с оксидным затвором MOS в 1979 году. [4] Двухзатворный оксидный двухтранзисторный (2T) MOS-препереходник был представлен в 1982 году. [5] Ранние технологии оксидного пробоя демонстрировали множество проблем с масштабированием, программированием, размером и производством, которые препятствовали массовому производству устройств памяти на основе этих технологий.
Другая форма однократно программируемого запоминающего устройства использует тот же полупроводниковый чип, что и ультрафиолетово- стираемое программируемое постоянное запоминающее устройство (UV-EPROM), но готовое устройство помещается в непрозрачный корпус вместо дорогостоящего керамического корпуса с прозрачным кварцевым окном, необходимым для стирания. Эти устройства программируются теми же методами, что и части UV EPROM, но они менее дороги. Встроенные контроллеры могут быть доступны как в полевых, так и в одноразовых стилях, что позволяет экономить затраты на массовое производство без расходов и времени выполнения заводских программируемых масочных чипов ROM. [6]
Хотя PROM на основе антиперемычек были доступны в течение десятилетий, они не были доступны в стандартной КМОП до 2001 года, когда Kilopass Technology Inc. запатентовала технологии 1T, 2T и 3.5T битовых ячеек антиперемычек с использованием стандартного процесса КМОП, что позволило интегрировать PROM в логические микросхемы КМОП. Первый узел процесса антиперемычек, который может быть реализован в стандартной КМОП, составляет 0,18 мкм. Поскольку пробой оксида затвора меньше пробоя перехода, для создания элемента программирования антиперемычек не требовались специальные шаги диффузии. В 2005 году компанией Sidense было представлено устройство антиперемычек с разделенным каналом [7] . Эта ячейка битовых ячеек с разделенным каналом объединяет толстые (IO) и тонкие (gate) оксидные устройства в один транзистор (1T) с общим затвором из поликремния .
Типичная PROM поставляется со всеми битами, считываемыми как «1». Сжигание бита предохранителя во время программирования приводит к тому, что бит считывается как «0» путем «перегорания» предохранителей, что является необратимым процессом. Некоторые устройства можно «перепрограммировать», если новые данные заменяют «1» на «0». Некоторые наборы инструкций ЦП (например, 6502 ) использовали это преимущество, определяя инструкцию break (BRK) с кодом операции «00». В случаях, когда была неверная инструкция, ее можно было «перепрограммировать» в BRK, заставляя ЦП передавать управление патчу. Это выполняло правильную инструкцию и возвращало к инструкции после BRK.
Битовая ячейка программируется путем подачи высоковольтного импульса, не встречающегося при нормальной работе, через затвор и подложку тонкого оксидного транзистора (около 6 В для оксида толщиной 2 нм или 30 МВ/см), чтобы пробить оксид между затвором и подложкой. Положительное напряжение на затворе транзистора образует инверсионный канал в подложке под затвором, заставляя туннельный ток протекать через оксид. Ток создает дополнительные ловушки в оксиде, увеличивая ток через оксид и в конечном итоге расплавляя оксид и образуя проводящий канал от затвора к подложке. Ток, необходимый для образования проводящего канала, составляет около 100 мкА/100 нм 2 , а пробой происходит примерно за 100 мкс или меньше. [8]