Память. Виды памяти

1. Для чего нужна память? Какие бывают виды памяти?

(Глава, необходимая для понятия предназначения памяти вообще)

Компактная микроэлектронная «память» широко применяется в современной аппаратуре самого различного назначения. Но тем не менее разговор о классификации памяти, её видах следует начать с определения места и роли, отведённой памяти в ЭВМ. Память является одной из самых главных функциональных частей машины, предназначенной для записи, хранения и выдачи команд и обрабатываемых данных. Следует сказать, что команды и данные поступают в ЭВМ через устройство ввода, на выходе которого они получают форму кодовых комбинаций 1 и 0. Основная память как правило состоит из запоминающих устройств двух видов оперативного (ОЗУ) и постоянного (ПЗУ).

ОЗУ предназначено для хранения переменной информации; оно допускает изменение своего содержимого в ходе выполнения вычислительного процесса. Таким образом, процессор берёт из ОЗУ код команды и, после обработки каких-либо данных, результат обратно помещается в ОЗУ. Причем возможно размещение в ОЗУ новых данных на месте прежних, которые при этом перестают существовать. В ячейках происходит стирание старой информации и запись туда новой. Из этого видно, что ОЗУ является очень гибкой структурой и обладает возможностью перезаписывать информацию в свои ячейки неограниченное количество раз по ходу выполнения программы. Поэтому ОЗУ играет значительную роль в ходе формирования виртуальных адресов.

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

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

2. Микросхемы памяти.

(Где, находится информация при работе компьютера?)

Как было сказано ранее, в современных компьютерах используется так называемая электронная память. Для построения ОЗУ, ПЗУ, регистровых ЗУ в настоящее время широко применяют полупроводниковые интегральные микросхемы, которые изготавливают по специальной полупроводниковой технологии с применением интегральных схем (ИС) и больших интегральных схем (БИС) на основе кремния с высокой степенью интеграции.

Рис. 1 Рис.2

На рисунках 1 и 2 изображены микросхемы памяти как функциональных узлов: рис. 1 ОЗУ, рис. 2 ПЗУ. Основной составной частью микросхемы ОЗУ является массив элементов памяти, объединённых в матрицу накопителя. Элемент памяти (ЭП) может хранить один бит информации. Каждый ЭП обязательно имеет свой адрес. Для обращения к ЭП необходимо его «выбрать» с помощью кода адреса, сигналы которого подводят к соответствующим выводам микросхемы. ПЗУ построено аналогично, а функции ЭП в микросхемах ПЗУ выполняют перемычки в виде проводников.

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

3. Виртуальная память: Что это такое? Для чего это нужно?

(Рассматривает вопрос организации ВП)

Итак, мы вплотную подошли к проблеме виртуальной памяти: что это такое и для чего это нужно? Дело в том, что с развитием и появлением новых компьютерных технологий, машины несомненно преобразились в лучшую сторону: в мире профессиональных программистов уже не существует понятия «ОЗУ на ферритовых сердечниках» или «накопителей на магнитных лентах». Что и говорить, с изобретением персонального компьютера, даже простой непрофессиональный пользователь получил возможность использовать ПК для собственных целей и нужд. Фирмой Intel™ и другими производителями вычислительной техники были выпущены компьютеры достаточно простые в обращении (по сравнению с огромными ламповыми IBM1401 или «Унивак П»). Компьютеры нового поколения*

————

* Фирмой Texas Instruments® выпущена модель 486DX475Mhz.

имели процессоры Intel™ 80 386, 80 486, с 16ти и 32х разрядными шинами, огромным быстродействием (2566Mhz). Эти персоналки большой шаг вперед в развитии компьютерных технологий. Вместе с этим у пользователя появилась тенденция «оседлать» быструю машину заставить её делать как можно больше. Как экономить машинное время и в то же время производить больше? Ответ на этот вопрос был найден посредством организации мультипрограммной работы ЭВМ. Этот метод был признан очень удобным, так как при организации мультипрограммного цикла:

1. Машина не простаивала зря: при одновременном выполнении нескольких программ и команд в работе процессора появлялась новая функция анализ и распределение машинного времени, отведённого на выполнение каждой программы;

2. За каждый машинный такт (вследствие с очередностью или уровнем приоритета, общим временем, требующимся на выполнения команды) выполнялась одна или несколько команд.

Действительно, метод мультипрограммной работы оказался потрясающе эффективным, но для его успешной реализации требовалось очень много оперативной памяти, так как всякая программа, которая может быть вызвана впоследствии, оставляет небольшую (а иногда и очень большую!) свою часть резидентной в оперативной памяти. Возможны два варианта: сохранить большую часть ОЗУ свободной, по надобности загружая в ОП ту или иную программу, требующую непосредственного выполнения и, после этого, отработав с данной программой, отчистить содержимое ОП для загрузки новой программы. Второй вариант состоит в том, чтобы сразу загрузить в ОП Машины все требующиеся программы, таким образом заполнив её до основания и потом дать процессору команду на выполнение. Первый вариант не является примером мультипрограммной организации. Второй вариант является. Итак, несомненно, второй вариант наиболее подходящий, но здесь мы сталкиваемся с проблемой нехватки оперативной памяти. В современных компьютерах емкость ОЗУ (аналог RAM) не превышает 1MB, 384KB из которых зарезервированы под ПЗУ, ППЗУ, BIOS… Итого остаётся 640KB «чистой» оперативной памяти, но в ней поместятся две три программы и не более.

Хорошо видно, что внедрение более рационального решения сталкивается с единственной проблемой памяти. Но можно ли каким-то образом решить эту проблему? Именно на этом этапе на помощь пользователю приходит виртуальная память, которая позволяет модифицировать ресурсы памяти, сделать объём оперативной памяти намного больше, для того чтобы пользователь, поместив туда как можно больше программ, реально сэкономил время и повысил эффективность своего труда. «Открытие» виртуальной памяти (далее ВП) внесло огромную контрибуцию в развитие современных технологий, облегчило работу как профессионального программиста, так и обычного пользователя, обеспечивая процесс более эффективного решения задач на ЭВМ. Возникает много вопросов: как устроена ВП, как она функционирует, каким образом при использовании ВП ресурсы обычной физической памяти «увеличиваются» во много раз, используются ли для этой цели какие-либо «подручные» средства (устройства).? Действительно, возникает множество интереснейших вопросов, ответы на которые будут даны в следующих параграфах.

Почему виртуальнаяпамять также носит название математической, кажущейся? Как можно реорганизовать ОЗУ таким образом, чтобы её объём удвоился, утроился? Преимущество ВП состоит в том, что объем ОЗУ не может быть увеличено ни практически, ни теоретически. (Это попросту невозможно ни какими средствами нельзя оптимизировать или преобразовать ячейки памяти, для того, чтобы, скажем, помещать туда два бита информации вместо одного). Но как же построена ВП? Дело в том, что при работе машины, использующей виртуальную память, обязательно используется Внешнее Запоминающее Устройство (ВЗУ), которое обычно представляет собой накопитель на гибком магнитном диске или жестком диске типа «винчестер». (Последнее устройство используется чаще).

Действительно, использование виртуальной памяти обязательно подразумевает обращение к диску так как при разработке и внедрению систем с таким методом организации памяти, было представлено, что ячейки оперативной памяти и памяти на диске будут представлять собой единое целое. По своей сути ВП не такая уж сложная структура напротив, недостаток оперативной памяти компенсируется наличием свободного дискового пространства которое задействовано вроли ОП. Необходимо понимать, что часть программ, которые мы не смогли разместить в ОП из-за её нехватки, (см. нач. § 3) теперь будут размещены на диске и это будет эквивалентно размещению в оперативной памяти. Виртуальная память представляет собой совокупность всех ячеек памяти оперативной и внешней, имеющих сквозную нумерацию от нуля до предельного значения адреса. Использование ВЗУ очень удобно, так как в это время пользователь оперирует с общим адресным пространством и ему безразлично какая физическая память при этом используется внешняя или внутренняя. При работе ВП всего лишь подразумевается различие между виртуальными адресами и физическими. Интересно проследить за формированием адресного пространства при использовании ВП. Как же адресное поле может быть увеличено? Дело в том, что при работе машины с ВП, используются методы страничной и сегментной организации памяти, смысл которых рассмотрен в следующих параграфах.

4. Виртуальная Память при страничной организации

(Страничная организация ВП, формирование виртуальных адресов)