Ремонт принтеров, сканнеров, факсов и остальной офисной техники


назад Оглавление вперед




[16]

Микросхемы ROM

ROM (Read-Only Memory) - тип памяти, которая может постоянно (или практически постоянно) хранить данные. Эти записанные данные хранятся в памяти даже при отключении питания. Таким образом, для хранения стартовых процедур (и BIOS) наиболее подходит память ROM. Аналогичная память используется и в других устройствах с собственной BIOS, например в видеоадаптерах.

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

Например, при включении персонального компьютера счетчик команд автоматически принимает значение (адрес) FFFF0h; команды, размещенные по этому адресу, должны обеспечить загрузку операционной системы. Этим командам отводится ровно 16 байт от конца первого мегабайта оперативной памяти и от конца ROM. Если бы эти адреса указывали на ячейки обычной памяти, все хранимые в ней данные, в том числе и команды, исчезли бы при выключении питания, и процессор при следующем включении не нашел бы там никаких команд. Но, если этот адрес указывает на ячейку ROM, программа запуска системы в неизменном виде выполняется каждый раз при включении компьютера.

Обычно первым адресом ROM системы является F0000h, расположенный за 64 или 128 Кбайт от конца первого мегабайта. Поскольку емкость ROM обычно равна 128 Кбайт, то программы ROM полностью занимают последние 128 Кбайт первого мегабайта, включая критический адрес FFFF0h первой команды запуска. Емкость современных микросхем ROM может достигать 256 или 512 Кбайт. Такой увеличенный объем позволяет располагать драйверы интегрированных на системной плате устройств.

На следующем рисунке показана карта распределения первого мегабайта памяти.

Кажется странным, что персональный компьютер при запуске начинает выполнять команду, расположенную за 16 байт от конца ROM, но это сделано умышленно. Просто по этому адресу помещается команда перехода JMP, согласно которой процессор переходит к фактическому началу программы; в большинстве случаев оно близко к адресу F0000h, который расположен примерно на 64 Кбайт ранее в карте памяти. Это все равно что начинать чтение книги с 16-й страницы от конца; причем на ней должен быть указан номер страницы, с которой фактически начинается изложение. Зато подобное соглашение позволяет свободно изменять объем ROM.

. - память, доступная программам (стандартная память)

G - область памяти для видеопамяти графического режима

И - область памяти для видеопамяти монохромного текстового режима

С - область памяти для видеопамяти цветного текстового режима

V - область памяти для BIOS видеоадаптеров

а - область памяти плат адаптеров и памяти специального назначения г - дополнительная область памяти системной BIOS в других системах R - область памяти системной BIOS

Основная память:

:0-1-2-3-4-5-6-7-8-9-А-В-С-D-Е-F-

000000: ................................................................

010000: ................................................................

020000: ................................................................

030000: ................................................................

040000: ................................................................

050000: ................................................................

060000: ................................................................

070000: ................................................................

080000: ................................................................

090000: ................................................................

Область верхней памяти:

: 0-1-2-3-4-5-6-7-8-9-А-В-С-D-Е-F- 0АО 0 0 0: GGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGGG 0В0 0 0 0: МШШМШШШШМММШШМ

: 0-1-2-3-4-5-6-7-8-9-А-В-С-D-Е-F- 0С0000: VVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVVaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 0D0 0 0 0: аааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааааа

: 0-1-2-3-4-5-6-7-8-9--А-В-С-D-E--F--0Е0 0 0 0: гrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr 0F0 0 0 0: RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR

Логическая карта памяти первого мегабайта


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

На платах адаптеров, для которых при запуске требуются драйверы, также размещены микросхемы ROM. Это видеоадаптеры, большинство плат SCSI (Small Computer Systems Interface), платы контроллеров Enhanced IDE и некоторые сетевые платы. Микросхема ROM на этих платах содержит драйверы и программы запуска, которые будут выполнены при начальной загрузке. Например, видеоадаптер может быть инициализирован, несмотря на то что ROM на системной плате не содержит драйверов для этого устройства. Нельзя загружать начальные драйверы режима VGA с диска, потому что экран будет оставаться темным (и вы не сможете управлять процессом загрузки), пока не загрузятся эти драйверы. Что же происходит при загрузке? Программа, хранящаяся в ROM системной платы, сканирует специальную область адаптера ROM оперативной памяти (адреса C0000-DFFFFh) в поисках пары байтов сигнатуры (55AAh), которая указывает на начало ROM. Базовая система ввода-вывода системной платы автоматически выполняет программы в ROM любого адаптера, который она находит в процессе сканирования. Процесс обнаружения и инициализации видеоадаптера можно наблюдать в большинстве компьютеров при включении питания и во время выполнения POST.

Затенение ROM

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

Затенение эффективно главным образом в 16-разрядных операционных системах типа DOS или Windows 3.x. Если компьютер работает под управлением 32-разрядной операционной системы типа Windows 9х или Windows NT/2000, то затенение фактически бесполезно, потому что эти операционные системы не используют 16-разрядный код из ROM. Вместо него они загружают 32-разрядные драйверы в оперативную память, заменяя ими 16-разрядный код базовой системы ввода-вывода, который, таким образом, используется только в течение запуска системы. Средство управления затенением находится в программе Setup BIOS.

Существует четыре различных типа микросхем памяти ROM.

ROM (Read Only Memory).

m PROM (Programmable ROM). Программируемая ROM.

EPROM (Erasable PROM). Стираемая программируемая ROM.

EEPROM (Electrically Erasable PROM). Электронно-стираемая программируемая ROM, также называемая Flash

ROM.

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

Идентификационные номера микросхем памяти ROM

ТипИдентификационный номерДругие признаки

ROMБольше не используется

PROM27nnnn

EPROM27nnnnКварцевое окошко

EEPROM28xxxx или 29xxxx

Прожигаемая при изготовлении память ROM

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


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

В память PROM после изготовления можно записать любые данные. Она была разработана в конце 1970-х годов компанией Texas Instruments и имела емкость от 1 Кбайт (8 Кбит) до 2 Мбайт (16 Мбит) или больше. Эти микросхемы могут быть идентифицированы по номерам вида 27nnnn в маркировке, где 27 указывает PROM типа TI, а nnnn - емкость кристалла (микросхемы) в килобитах. Например, в большинстве персональных компьютеров с PROM использовались микросхемы 27512 или 271000, которые имели емкость 512 Кбит (64 Кбайт) или 1 Mбит (128 Кбайт).

Начиная с 1981 года во всех автомобилях, продаваемых в США, использовались бортовые компьютеры с различными микросхемами ROM, содержащими программное обеспечение системы управления. Например, под приборной панелью автомобиля Pontiac Turbo Trans Am выпуска 1989 года находился бортовой компьютер, содержащий микросхему 2732 PROM электронного блока управления (Electronic Control Module - ECM) с объемом памяти в 32 Кбит (или 4 Кбайт). В эту микросхему также входила часть системного программного обеспечения автомобиля и полные таблицы данных, описывающих процесс зажигания, подачи топлива и другие параметры двигателя. Микросхемы PROM, используемые для хранения рабочих программ, очень часто применялись в интегрированных компьютерах различных устройств.

Подразумевается, что эти микросхемы после изготовления не содержат никакой информации, на самом деле при изготовлении они прописываются двоичными единицами. Другими словами, микросхема PROM емкостью 1 Мбит содержит 1 млн единиц (фактически 1 048 576). При программировании такой "пустой" PROM в нее записываются нули. Этот процесс обычно выполняется с помощью специального программирующего устройства.

Процесс программирования часто называется прожигом. Каждую "1" можно представить как неповрежденный плавкий предохранитель. Большинство таких микросхем работают при напряжении 5 В, но при программировании PROM подается более высокое напряжение (обычно 12 В) по различным адресам в пределах адресного пространства, отведенного для микросхемы. Это более высокое напряжение фактически записывает "0", сжигая плавкие предохранители в тех местах, где необходимо преобразовать 1 в 0. Хотя можно превратить 1 в 0, этот процесс необратим, т. е. нельзя преобразовать 0 в 1. Программирующее устройство исследует программу, которую необходимо записать в микросхему, и затем выборочно изменяет в микросхеме 1 на 0 только там, где это необходимо. Поэтому микросхемы PROM часто называются микросхемами OTP (One Time Programmable - программируемые один раз). Они могут быть запрограммированы только однажды. Большинство микросхем PROM стоят совсем недорого, примерно 3 доллара. Поэтому при замене программы в PROM старая микросхема выбрасывается, а новая прожигается в соответствии с новыми данными.

Память PROM

Замечание

Типичное программирующее устройство (многоразъемное) для прожига памяти PROM



[стр.Начало] [стр.1] [стр.2] [стр.3] [стр.4] [стр.5] [стр.6] [стр.7] [стр.8] [стр.9] [стр.10] [стр.11] [стр.12] [стр.13] [стр.14] [стр.15] [стр.16] [стр.17] [стр.18] [стр.19] [стр.20] [стр.21] [стр.22] [стр.23] [стр.24] [стр.25] [стр.26] [стр.27] [стр.28] [стр.29] [стр.30] [стр.31] [стр.32] [стр.33] [стр.34] [стр.35] [стр.36]