Постоянное запоминающее устройство ( ПЗУ ) — тип энергонезависимой памяти, используемой в компьютерах и других электронных устройствах . Данные, хранящиеся в ПЗУ, не могут быть изменены электронным способом после изготовления запоминающего устройства . Постоянное запоминающее устройство полезно для хранения программного обеспечения , которое редко изменяется в течение срока службы системы, также известного как встроенное ПО . Программные приложения, такие как видеоигры , для программируемых устройств могут распространяться в виде сменных картриджей, содержащих ПЗУ .
Строго говоря, память только для чтения относится к жестко зашитой памяти, такой как диодная матрица или интегральная схема ПЗУ маски (ИС), которая не может быть изменена электронным способом после изготовления. Хотя дискретные схемы могут быть изменены в принципе путем добавления проводов и удаления или замены компонентов, ИС не могут. Исправление ошибок или обновление программного обеспечения требуют изготовления новых устройств и замены установленного устройства.
Полупроводниковая память ROM с плавающим затвором в форме стираемой программируемой постоянной памяти (EPROM), электрически стираемой программируемой постоянной памяти (EEPROM) и флэш-памяти может быть стерта и перепрограммирована. Но обычно это можно сделать только на относительно низких скоростях, может потребовать специального оборудования для достижения и, как правило, возможно только определенное количество раз. [1]
Термин «ROM» иногда используется для обозначения устройства ROM, содержащего определенное программное обеспечение, или файла с программным обеспечением, который будет храниться на записываемом устройстве ROM. Например, пользователи, модифицирующие или заменяющие операционную систему Android, описывают файлы, содержащие измененную или заменяющую операционную систему, как « пользовательские ROM » по типу хранилища, на которое файл был записан, и они могут различать ROM (где хранится программное обеспечение и данные, обычно флэш-память ) и RAM.
IBM использовала конденсаторную память только для чтения (CROS) и трансформаторную память только для чтения (TROS) для хранения микрокода для меньших моделей System/360 , 360/85 и первых двух моделей System/370 ( 370/155 и 370/165 ). На некоторых моделях также имелась записываемая память управления (WCS) для дополнительной диагностики и поддержки эмуляции. Компьютер управления Apollo использовал память на основе троса , программируемую путем продевания проводов через магнитные сердечники.
Простейший тип твердотельного ПЗУ так же стар, как и сама полупроводниковая технология. Комбинационные логические вентили могут быть соединены вручную для отображения n -битного адресного ввода на произвольные значения m -битного выходного сигнала ( таблица преобразования ). С изобретением интегральной схемы появилось масочное ПЗУ . Масочное ПЗУ состоит из сетки линий слов (вход адреса) и линий бит (выход данных), выборочно соединенных транзисторными переключателями, и может представлять произвольную таблицу преобразования с регулярной физической компоновкой и предсказуемой задержкой распространения . Масочное ПЗУ программируется с помощью фотошаблонов в фотолитографии во время производства полупроводников . Маска определяет физические характеристики или структуры, которые будут удалены или добавлены в микросхемы ПЗУ, и наличие или отсутствие этих характеристик будет представлять либо 1, либо 0 бит, в зависимости от конструкции ПЗУ. [2] Таким образом, по замыслу, любые попытки электронного изменения данных потерпят неудачу, поскольку данные определяются наличием или отсутствием физических характеристик или структур, которые не могут быть изменены электронным способом. Для каждой программы, даже для редакций одной и той же программы, необходимо менять всю маску, что может быть дорогостоящим.
В ПЗУ маски данные физически закодированы в схеме, поэтому их можно запрограммировать только во время изготовления. Это приводит к ряду серьезных недостатков:
Последующие разработки устранили эти недостатки. Программируемая постоянная память (PROM), изобретенная Вэнь Цин Чжоу в 1956 году, [4] [5] позволила пользователям программировать ее содержимое только один раз, физически изменяя ее структуру с помощью высоковольтных импульсов. Это решило проблемы 1 и 2 выше, поскольку компания может просто заказать большую партию новых микросхем PROM и запрограммировать их с нужным содержимым по усмотрению своих разработчиков.
Появление полевого транзистора металл-оксид-полупроводник (MOSFET), изобретенного в Bell Labs в 1959 году, [6] позволило практическое использование транзисторов металл-оксид-полупроводник (МОП) в качестве элементов памяти в полупроводниковой памяти , функцию, которую ранее выполняли магнитные сердечники в компьютерной памяти . [7] В 1967 году Давон Канг и Саймон Сзе из Bell Labs предложили использовать плавающий затвор полупроводникового МОП- устройства для ячейки перепрограммируемого ПЗУ, что привело к тому, что Дов Фроман из Intel изобрел стираемую программируемую постоянную память (EPROM) в 1971 году. [8] [9] Изобретение EPROM в 1971 году по сути решило проблему 3, поскольку EPROM (в отличие от PROM) можно многократно сбрасывать в незапрограммированное состояние путем воздействия сильного ультрафиолетового света.
Электрически стираемая программируемая постоянная память (EEPROM), разработанная Ясуо Таруи, Ютакой Хаяси и Киёко Нага в Электротехнической лаборатории в 1972 году, [10] во многом способствовала решению проблемы 4, поскольку EEPROM можно программировать на месте, если содержащее устройство обеспечивает возможность получения содержимого программы из внешнего источника (например, персонального компьютера через последовательный кабель ). Флэш-память , изобретенная Фудзио Масуокой в Toshiba в начале 1980-х годов и выпущенная на рынок в конце 1980-х годов, является формой EEPROM, которая очень эффективно использует площадь чипа и может быть стерта и перепрограммирована тысячи раз без повреждения. Она позволяет стирать и программировать только определенную часть устройства, а не все устройство. Это можно делать на высокой скорости, отсюда и название «флэш». [11] [12]
Все эти технологии повысили гибкость ПЗУ, но при значительной стоимости за чип, так что в больших количествах масочное ПЗУ оставалось экономичным выбором на протяжении многих лет. (Снижение стоимости перепрограммируемых устройств практически уничтожило рынок масочного ПЗУ к 2000 году.) Перезаписываемые технологии рассматривались как замена масочному ПЗУ.
Самая последняя разработка — флэш-память NAND , также изобретенная в Toshiba. Ее разработчики явно отошли от прошлой практики, прямо заявив, что «цель флэш-памяти NAND — заменить жесткие диски » [13], а не традиционное использование ПЗУ в качестве формы энергонезависимого первичного хранилища . По состоянию на 2021 год [update]NAND почти полностью достигла этой цели, предлагая пропускную способность выше, чем у жестких дисков, меньшую задержку, более высокую устойчивость к физическим ударам, экстремальную миниатюризацию (например, в виде USB-флеш-накопителей и крошечных карт памяти microSD ) и гораздо меньшее энергопотребление.
Многие компьютеры с хранимой программой используют форму энергонезависимой памяти (то есть памяти, которая сохраняет свои данные при отключении питания) для хранения начальной программы, которая запускается при включении компьютера или иным образом начинает выполнение (процесс, известный [a] как самозагрузка , часто сокращенно называемый « загрузка » или «загрузка»). Аналогично, каждому нетривиальному компьютеру нужна некоторая форма изменяемой памяти для записи изменений в его состоянии по мере выполнения.
Формы постоянной памяти использовались в качестве энергонезависимого хранилища для программ в большинстве ранних компьютеров с хранимой программой, таких как ENIAC после 1948 года . (До этого это был не компьютер с хранимой программой, поскольку каждая программа должна была быть вручную подключена к машине, что могло занять от нескольких дней до нескольких недель.) Постоянная память была проще в реализации, поскольку ей требовался только механизм для считывания сохраненных значений, а не для их изменения на месте, и, таким образом, могла быть реализована с помощью очень грубых электромеханических устройств (см. исторические примеры ниже). С появлением интегральных схем в 1960-х годах и ПЗУ, и ее изменяемый аналог статическая ОЗУ были реализованы в виде массивов транзисторов в кремниевых чипах; однако ячейка памяти ПЗУ могла быть реализована с использованием меньшего количества транзисторов, чем ячейка памяти SRAM, поскольку последней требуется защелка ( состоящая из 5-20 транзисторов) для сохранения ее содержимого, в то время как ячейка ПЗУ могла состоять из отсутствия (логический 0) или наличия (логическая 1) одного транзистора, соединяющего битовую линию со словарной линией. [14] Следовательно, ПЗУ может быть реализовано с более низкой стоимостью за бит, чем ОЗУ в течение многих лет.
Большинство домашних компьютеров 1980-х годов хранили интерпретатор BASIC или операционную систему в ПЗУ, поскольку другие формы энергонезависимого хранения, такие как магнитные диски , были слишком дорогими. Например, Commodore 64 включал 64 КБ ОЗУ и 20 КБ ПЗУ, содержащее интерпретатор BASIC и операционную систему KERNAL . Более поздние домашние или офисные компьютеры, такие как IBM PC XT, часто включали магнитные диски и большие объемы ОЗУ, что позволяло им загружать свои операционные системы с диска в ОЗУ, при этом в ПЗУ оставалось только минимальное ядро инициализации оборудования и загрузчик (известный как BIOS в IBM-совместимых компьютерах). Такая компоновка позволяла использовать более сложную и легко обновляемую операционную систему.
В современных ПК «ПЗУ» используется для хранения базовой прошивки начальной загрузки для процессора, а также различных прошивок, необходимых для внутреннего управления автономными устройствами, такими как графические карты , жесткие диски , твердотельные накопители , оптические дисководы , TFT-экраны и т. д. в системе. Сегодня многие из этих «только для чтения» запоминающих устройств — особенно BIOS / UEFI — часто заменяются EEPROM или флэш-памятью (см. ниже), чтобы обеспечить перепрограммирование на месте, если возникнет необходимость в обновлении прошивки. Однако простые и зрелые подсистемы (такие как клавиатура или некоторые контроллеры связи в интегральных схемах на основной плате, например) могут использовать масочное ПЗУ или OTP (однократно программируемое).
ROM и последующие технологии, такие как флэш-память, широко распространены во встраиваемых системах . Они присутствуют во всем, от промышленных роботов до бытовой техники и потребительской электроники ( MP3-плееры , телевизионные приставки и т. д.), все из которых разработаны для определенных функций, но основаны на микропроцессорах общего назначения . Поскольку программное обеспечение обычно тесно связано с оборудованием, в таких устройствах редко требуются изменения программ (которые обычно не имеют жестких дисков по причинам стоимости, размера или энергопотребления). По состоянию на 2008 год большинство продуктов используют Flash, а не масочное ПЗУ, и многие из них предоставляют некоторые средства для подключения к ПК для обновления прошивки ; например, цифровой аудиоплеер может быть обновлен для поддержки нового формата файла . Некоторые любители воспользовались этой гибкостью, чтобы перепрограммировать потребительские продукты для новых целей; например, проекты iPodLinux и OpenWrt позволили пользователям запускать полнофункциональные дистрибутивы Linux на своих MP3-плеерах и беспроводных маршрутизаторах соответственно.
ПЗУ также полезно для двоичного хранения криптографических данных, поскольку это затрудняет их замену, что может быть желательно для повышения информационной безопасности .
Поскольку ПЗУ (по крайней мере в форме жестко зашитой маски) не может быть изменено, оно подходит только для хранения данных, которые, как ожидается, не потребуют изменения в течение срока службы устройства. С этой целью ПЗУ использовалось во многих компьютерах для хранения таблиц поиска для оценки математических и логических функций (например, блок с плавающей точкой мог табулировать функцию синуса , чтобы ускорить вычисления). Это было особенно эффективно, когда процессоры были медленными, а ПЗУ было дешевым по сравнению с ОЗУ.
Примечательно, что видеоадаптеры ранних персональных компьютеров хранили таблицы символов растровых шрифтов в ПЗУ. Обычно это означало, что шрифт текстового дисплея не мог быть изменен интерактивно. Это касалось как адаптеров CGA , так и MDA, доступных в IBM PC XT.
Использование ПЗУ для хранения столь малых объемов данных почти полностью исчезло в современных компьютерах общего назначения. Однако NAND Flash взяла на себя новую роль в качестве носителя для массового хранения или вторичного хранения файлов.
Маскирующее ПЗУ — это память, доступная только для чтения, содержимое которой программируется производителем интегральной схемы (а не пользователем). Требуемое содержимое памяти предоставляется заказчиком производителю устройства. Требуемые данные преобразуются в пользовательский фотошаблон /слой маски для окончательной металлизации соединений на чипе памяти (отсюда и название).
Маскирующее ПЗУ можно создать несколькими способами, все из которых направлены на изменение электрического отклика транзистора при обращении к нему на сетке, например:
Транзисторы маски ПЗУ могут быть расположены в конфигурациях NOR или NAND и могут достигать одного из наименьших возможных размеров ячейки, поскольку каждый бит представлен только одним транзистором. NAND обеспечивает более высокую плотность хранения, чем NOR. Конфигурации OR также возможны, но по сравнению с NOR она подключает транзисторы только к V cc вместо V ss . [15] Маскирующие ПЗУ раньше были самыми недорогими и самыми простыми полупроводниковыми запоминающими устройствами, имеющими только один металлический слой и один слой поликремния, что делает их типом полупроводниковой памяти с самым высоким выходом продукции [2] (наибольшее количество рабочих устройств за один производственный цикл). ПЗУ можно изготавливать с использованием одной из нескольких технологий изготовления полупроводниковых устройств, таких как КМОП , nMOS , pMOS и биполярные транзисторы . [16]
Обычной практикой является использование перезаписываемой энергонезависимой памяти , например UV -EPROM или EEPROM , на этапе разработки проекта и переключение на масочное ПЗУ, когда код завершен. Например, микроконтроллеры Atmel выпускаются как в формате EEPROM, так и в формате масочного ПЗУ.
Главным преимуществом масочного ПЗУ является его стоимость. В расчете на бит масочное ПЗУ было компактнее любого другого вида полупроводниковой памяти . Поскольку стоимость интегральной схемы сильно зависит от ее размера, масочное ПЗУ значительно дешевле любого другого вида полупроводниковой памяти.
Однако единовременная стоимость маскирования высока, а от проектирования до фазы продукта требуется много времени. Ошибки проектирования обходятся дорого: если обнаружена ошибка в данных или коде, ПЗУ маски бесполезно и его необходимо заменить, чтобы изменить код или данные. [17]
По состоянию на 2003 год [update]четыре компании производили большую часть таких масочных ПЗУ-чипов: Samsung Electronics , NEC Corporation , Oki Electric Industry и Macronix . [18] [ требуется обновление ]
Некоторые интегральные схемы содержат только масочное ПЗУ. Другие интегральные схемы содержат масочное ПЗУ, а также множество других устройств. В частности, многие микропроцессоры имеют масочное ПЗУ для хранения своего микрокода . Некоторые микроконтроллеры имеют масочное ПЗУ для хранения загрузчика или всей своей прошивки .
Классические ПЗУ с программированием по маске представляют собой интегральные схемы, которые физически кодируют данные, подлежащие хранению, и поэтому изменить их содержимое после изготовления невозможно.
Также возможно записать содержимое лазерного ПЗУ, используя лазер для изменения электрических свойств только некоторых диодов на ПЗУ, или используя лазер для разрезания только некоторых связей поликремния, вместо использования маски. [19] [20] [15]
При применении защиты от записи некоторые типы перепрограммируемых ПЗУ могут временно стать памятью, доступной только для чтения.
Существуют и другие типы энергонезависимой памяти, которые не основаны на технологии твердотельных ИС, в том числе:
Хотя относительная скорость RAM и ROM со временем менялась, по состоянию на 2007 год [update]большие чипы RAM могут считываться быстрее, чем большинство ROM. По этой причине (и для обеспечения единообразного доступа) содержимое ROM иногда копируется в RAM или затеняется перед первым использованием, а затем считывается из RAM.
Для тех типов ПЗУ, которые можно электрически модифицировать, скорость записи традиционно была намного ниже скорости чтения, и для этого может потребоваться необычно высокое напряжение, перемещение перемычек для подачи сигналов разрешения записи и специальные коды команд блокировки/разблокировки. Современная флэш-память NAND может использоваться для достижения самых высоких скоростей записи среди всех технологий перезаписываемых ПЗУ, со скоростями до 10 ГБ / с в SSD. Это стало возможным благодаря возросшим инвестициям в твердотельные накопители как потребительского, так и корпоративного класса и продукты флэш-памяти для мобильных устройств более высокого класса. На техническом уровне выигрыш был достигнут за счет увеличения параллелизма как в конструкции контроллера, так и в хранилище, использования больших кэшей чтения/записи DRAM и внедрения ячеек памяти, которые могут хранить более одного бита (DLC, TLC и MLC). Последний подход более подвержен сбоям, но это в значительной степени смягчается избыточным выделением (включением резервной емкости в продукт, который виден только контроллеру накопителя) и все более сложными алгоритмами чтения/записи в прошивке накопителя.
Поскольку они записываются путем принудительного пропуска электронов через слой электрической изоляции на плавающий затвор транзистора , перезаписываемые ПЗУ могут выдерживать только ограниченное количество циклов записи и стирания, прежде чем изоляция будет окончательно повреждена. В самых ранних EPROM это могло произойти уже после 1000 циклов записи, тогда как в современных Flash EEPROM срок службы может превышать 1 000 000. Ограниченный срок службы, а также более высокая стоимость за бит, означают, что флэш-память вряд ли полностью вытеснит магнитные диски в ближайшем будущем. [ необходима цитата ]
Промежуток времени, в течение которого ПЗУ остается точно читаемым, не ограничивается циклами записи. Сохранение данных EPROM, EAROM, EEPROM и Flash может быть ограничено по времени утечкой заряда из плавающих затворов транзисторов ячеек памяти. Ранние поколения EEPROM в середине 1980-х годов обычно указывали на 5 или 6-летнее сохранение данных. Обзор EEPROM, предлагаемых в 2020 году, показывает, что производители ссылаются на 100-летнее сохранение данных. Неблагоприятные среды сокращают время сохранения (утечка ускоряется высокими температурами или излучением ). Маскированное ПЗУ и предохранитель/антифуз PROM не страдают от этого эффекта, поскольку сохранение данных в них зависит от физической, а не электрической постоянства интегральной схемы, хотя повторное увеличение предохранителя когда-то было проблемой в некоторых системах. [28]
Содержимое микросхем ПЗУ может быть извлечено с помощью специальных аппаратных устройств и соответствующего управляющего программного обеспечения. Такая практика распространена, например, для чтения содержимого картриджей старых игровых консолей . Другим примером является создание резервных копий прошивки/ПЗУ ОС со старых компьютеров или других устройств — в архивных целях, поскольку во многих случаях оригинальные микросхемы являются ПЗУ и, таким образом, подвержены риску превышения срока службы пригодных для использования данных.
Полученные файлы дампа памяти известны как образы ПЗУ или сокращенно ПЗУ и могут использоваться для создания дубликатов ПЗУ - например, для создания новых картриджей или в качестве цифровых файлов для игры в эмуляторах консолей . Термин образ ПЗУ возник, когда большинство консольных игр распространялось на картриджах, содержащих микросхемы ПЗУ, но получил такое широкое распространение, что до сих пор применяется к образам новых игр, распространяемых на CD-ROM или других оптических носителях.
Образы ROM коммерческих игр, прошивок и т. д. обычно содержат программное обеспечение, защищенное авторским правом. Несанкционированное копирование и распространение программного обеспечения, защищенного авторским правом, является нарушением законов об авторском праве во многих юрисдикциях, хотя копирование в целях резервного копирования может считаться добросовестным использованием в зависимости от местоположения. В любом случае, существует процветающее сообщество, занимающееся распространением и торговлей таким программным обеспечением в целях сохранения/обмена.