ИЕРАРХИЧЕСКАЯ СТРУКТУРА ПАМЯТИ Иерархическая структура памяти является традиционным решением проблемы хранения больших объемов данных (рис. 2.15). На самом верху иерархии находятся регистры процессора. Доступ к регистрам осуществляется быстрее всего. Дальше идет кэш-память, объем которой сейчас составляет от 32 Кбайт до нескольких мегабайтов. Затем следует основная память, которая в настоящее время может вмещать от 16 Мбайт до десятков гигабайтов. Затем идут магнитные диски и, наконец, накопители на магнитной ленте и оптические диски, которые используются для хранения архивов. Рис. 2.15. Пятиуровневая организация памяти По мере продвижения сверху вниз по иерархии меняются три параметра. Во-первых, увеличивается время доступа. Доступ к регистрам занимает несколько наносекунд, доступ к кэшпамяти - немного больше, доступ к основной памяти - несколько десятков наносекунд. Дальше идет большой разрыв: доступ к дискам занимает по крайней мере 10 мкс, а время доступа к магнитным лентам и оптическим дискам вообще может измеряться в секундах (поскольку эти накопители информации еще нужно поместить в соответствующее устройство). Во-вторых, растет объем памяти. Регистры могут содержать в лучшем случае 128 байт, кэшпамять - несколько мегабайтов, основная память - десятки тысяч мегабайтов, магнитные диски от нескольких единиц до нескольких десятков гигабайтов. Магнитные ленты и оптические диски хранятся автономно от компьютера, поэтому их совокупный объем ограничивается только финансовыми возможностями владельца. В третьих, увеличивается количество битов, которое вы получаете за 1 доллар. Стоимость объема основной памяти составляет несколько долларов за мегабайт1, Заметим, что удельная стоимость памяти постоянно снижается, в то время как ее объем - растет. Закон Мура применим и здесь. Сегодня один мегабайт оперативной памяти стоит около 10 центов. - Примеч. научн. ред. магнитных дисков - несколько центов за мегабайт, а магнитной ленты - несколько долларов за гигабайт или еще дешевле. Регистры, кэш-память и основную память мы уже рассмотрели. В следующих разделах мы расскажем о магнитных дисках, а затем приступим к изучению оптических дисков. Накопители на магнитных лентах мы рассматривать не будем, поскольку используются они редко; к тому же о них практически нечего сказать. Магнитный диск состоит из одной или нескольких алюминиевых поверхностей , покрытых магнитным слоем. Изначально их диаметр составлял 50 см, сейчас - от 3 до 12 см, у портативных компьютеров - меньше 3 см, причем это значение продолжает уменьшаться. Головка диска, содержащая индукционную катушку, двигается над поверхностью диска, опираясь на воздушную подушку. Отметим, что у дискет головка касается поверхности. Когда через головку проходит положительный или отрицательный ток, он намагничивает поверхность под головкой. При этом магнитные частицы намагничиваются направо или налево в зависимости от полярности тока. Когда головка проходит над намагниченной областью, в ней (в головке) возникает положительный или отрицательный ток, что дает возможность считывать записанные ранее биты. Поскольку диск вращается под головкой, поток битов может записываться, а потом считываться. Конфигурация дорожки диска показана на рис. 2.16. Основные характеристики оперативной памяти Быстродействие (время доступа к памяти), Латентность (задержка при передаче данных) – время, необходимое для чтения из памяти или записи в память минимальной порции информации (наносекунды – 10-9с). Объем (емкость) модуля памяти – максимальное количество информации на единицу носителя. Емкость оперативной памяти современного компьютера выросла до 4Гб. Разрядность – количество линий ввода/вывода, которые имеют микросхемы оперативной и постоянной памяти или внешние накопители. По принципам размещения и поиска информации устройства оперативной памяти разделяются на: адресные, ассоциативные, стековые. Адресная память. В адресных устройствах памяти массив элементов хранения информации разбивается на отдельные нумерованные последовательности. Номер конкретной последовательности является ее адресом, по которому происходит обращение для записи или чтения информации. Это модель плоской (двухкоординатной) памяти. Иногда используются наборы плоских устройств памяти для получения структурированных систем памяти. Обычно для хранения информации в ЭВМ используются двоичные элементы (хранимые значения – биты), а минимально адресуемой последовательностью бит является байт. Байт – это количество бит, необходимое для кодирования символов в используемых стандартных кодах. В настоящее время байт – это 8 бит. Байты укрупняются в слова. Для РС и мини-ЭВМ слово – это два байта, для майнфреймов (полноразрядные ЭВМ корпорации IBM) – четыре байта. В качестве программных объектов могут использоваться биты, байты, слова и более крупные объекты, кратные байту (степени двоичного числа байт). Ассоциативная память. В ассоциативных системах памяти массив элементов хранения информации, как и в адресных системах, разбивается на отдельные последовательности, но нумерация последовательности необязательна. Кроме функций записи и хранения, в ассоциативных системах памяти аппаратно реализуются функции ассоциативного поиска информации. В простейшем случае – это поиск информации по совпадению входного "эталона" с частью последовательности хранимой информации. Результаты ассоциативного поиска используются в операциях чтения или записи для поиска искомых строк данных. Ассоциативный поиск реализуется сравнением входной информации со всеми хранимыми объектами (байтами, словами и т.д.). Ассоциативный поиск может быть реализован чисто программно последовательным перебором ячеек в обычной адресной памяти с последовательным сравнением эталона с хранимой в памяти информацией. В ассоциативной памяти поиск реализуется аппаратно путем параллельного сравнения словаэталона со всеми записанными словами. Для этого каждый набор элементов хранения программных объектов дополняется схемами сравнения. Части хранимой информации, по которым производится ассоциативный поиск, могут быть выделены в отдельный блок (блок тегов) или задаваться схемами маскирования в блоке хранения информации. Стековая память Стековая память – это очередь со стратегией работы "последний вошел – первый вышел". Стековая память обычно реализуется на основе обычной линейной адресной памяти с использованием специального регистра – указателя стека (SP). Для стековой памяти определены две операции: занесение единицы данных в стек и удаление единицы данных из стека. При занесении в стек объекта, например слова, содержимое указателя стека уменьшают на длину объекта и результат используют в качестве адреса записи. При удалении объекта из стека производят чтение из вершины стека, а затем производят корректировку указателя стека: увеличивают содержимое SP на длину удаляемого объекта. Это вариант стека с распространением (при заполнении) в сторону уменьшения адресов. Возможен симметричный вариант стека с распространением в сторону увеличения адресов. Стек может использоваться в аппаратных процедурах, например для сохранения контекста программ (см. 1.7 – контекст программы) в процедурах передач управления на подпрограммы (включая программы обработки прерываний) и возврата из подпрограмм. Для программной работы со стеком используются или специальные команды, или режимы адресации. Использование специальных команд для организации стека Многие процессоры имеют наборы команд работы со стеком. Наиболее общими из них являются команды: PUCH А – поместить в стек А, где А – непосредственный операнд, регистр или ячейка памяти; POP A – восстановить (выбрать) данные из стека в А, где А – регистр или ячейка памяти. Построение стека на основе обычной адресной памяти позволяет производить чтение и модификацию данных и по произвольному адресу внутри стека. В МП Intel для обращения по произвольному адресу внутри стека используется регистр EBP – указатель базы (кадра) стека. Перед началом использования стека, для возможности доступа к данным стека по произвольным адресам, в этом регистре должно быть скопировано содержимое указателя стека (ESP – адрес вершины стека). В МП Intel для работы со стеком предусмотрены: стековый сегмент (определяемый сегментным регистром ЕSS), регистр указателя вершины стека (ЕSP) и регистр базового адреса кадра стека (EBP). Использование режимов адресации В процессорах корпорации DEC нет специальных команд (кодов операций) для работы со стеком. Для создания стека может использоваться любая область единой адресной памяти. Одна из областей памяти выделена для аппаратного стека. Аппаратный стек предназначен для использования аппаратурой или операционной системой. Аппаратура использует стек для сохранения данных в процедурах передач управления подпрограммам, включая подпрограммы обработки прерываний. Программы пользователей также могут использовать множество стеков. Для работы со стеками используются не специальные команды, а режимы адресации: автоинкрементный и автодекрементный. В качестве указателя стека может использоваться любой регистр общего назначения (РОН). В современных ЭВМ используются все три типа памяти. Как правило, в качестве оперативной памяти используется адресная память. Адресация памяти Адресация памяти вычислительных систем — метод указания на ячейку памяти, к которой производится доступ. Адресация может быть: Абсолютная — указывается прямой адрес ячейки памяти, это метод адресации в абсолютных адресах, представленных двоичными кодами. Ассоциативная — метод адресации ячеек памяти, основанный на указании содержимого ячейки, а не её точного положения. Для этого указывается слово, которое характеризует содержимое нужной ячейки, а не её обычный адрес. Для реализации механизма поиска, основанного на сравнении части содержимого памяти с каким-либо словом-признаком, применяется ассоциативное устройство памяти. Сегментная — указывается адрес относительно начала сегмента, в случае, если сегменты отсутствуют или совпадают, эквивалентна абсолютной. Относительная — метод адресации данных в памяти, при котором указанное в команде число добавляется к счету, который находится в установленном регистре. По этому методу адресации подпрограмма может быть перемещена в любую часть программы без необходимости что-либо менять в них. Косвенная — метод адресации в машинных кодах, в котором адресная часть команды содержит косвенный адрес. В команде указывается адрес ячейки памяти, где находится адрес данных, который и должен быть использован при выполнении команды. Индексная — метод адресации, при котором актуальный (исполнительный) адрес формируется путем прибавления к базовому адресу содержимого индексного регистра. Используется при программировании на языке Ассемблер: в индексный регистр закладывается базовый адрес, а в команде указывается число, которое необходимо прибавить к базовому адресу, чтобы получить адрес нужных сведений. Непосредственная — указывает на определённое число, константу (Например: mov A,#50H — записать число 50H в аккумулятор). Регистровая — указывает на определённый регистр РОН (регистры общего назначения). Стековая — с использованием специального регистра — указателя стека (SP — Stack Pointer). Используется для занесения операндов в стек в одном порядке и извлечения в обратном порядке. Неявная — регистр источник или регистр приёмник подразумевается в самом коде операции. Все виды адресации могут быть переведены друг в друга, однако использование специфичной адресации может ускорить выполнение программы (например, замена индексной адресации на абсолютную потребует выполнить умножение, сложение, обращение к памяти). Для получения распределения адресного пространства современных IBM PC-совместимых компьютеров между ОЗУ, периферийными устройствами и зарезервированными областями используется функция E820H прерывания 15H. Виртуальная память Виртуа́льная па́мять (англ. Virtual memory) — технология управления памятью ЭВМ, разработанная для многозадачных операционных систем. При использовании данной технологии для каждой программы используются независимые схемы адресации памяти, отображающиеся тем или иным способом на физические адреса в памяти ЭВМ. Позволяет увеличить эффективность использования памяти несколькими одновременно работающими программами, организовав множество независимых адресных пространств (англ.), и обеспечить защиту памяти между различными приложениями. Также позволяет программисту использовать больше памяти, чем установлено в компьютере, за счет откачки неиспользуемых страниц на вторичное хранилище (см. Подкачка страниц). При использовании виртуальной памяти упрощается программирование, так как программисту больше не нужно учитывать ограниченность памяти, или согласовывать использование памяти с другими приложениями. Для программы выглядит доступным и непрерывным все допустимое адресное пространство, вне зависимости от наличия в ЭВМ соответствующего объема ОЗУ. Применение механизма виртуальной памяти позволяет: упростить адресацию памяти клиентским программным обеспечением; рационально управлять оперативной памятью компьютера (хранить в ней только активно используемые области памяти); изолировать процессы друг от друга (процесс полагает, что монопольно владеет всей памятью). В настоящее время эта технология имеет аппаратную поддержку на всех современных бытовых процессорах. Страничная организация виртуальной памяти В большинстве современных операционных систем виртуальная память организуется с помощью страничной адресации. Оперативная память делится на страницы: области памяти фиксированной длины (например, 4096 байт), которые являются минимальной единицей выделяемой памяти (то есть даже запрос на 1 байт от приложения приведёт к выделению ему страницы памяти). Процесс обращается к памяти с помощью адреса виртуальной памяти, который содержит в себе номер страницы и смещение внутри страницы. Процессор преобразует номер виртуальной страницы в адрес соответствующей ей физической страницы при помощи буфера ассоциативной трансляции. Если ему не удалось это сделать, то требуется обращение к таблице страниц (так называемый Page Walk), что может сделать либо сам процессор, либо операционная система (в зависимости от архитектуры)[1]. Если страница выгружена из оперативной памяти, то операционная система подкачивает страницу с жёсткого диска (см. свопинг). При запросе на выделение памяти операционная система может «сбросить» на жёсткий диск страницы, к которым давно не было обращений. Критические данные (например, код запущенных и работающих программ, код и память ядра системы) обычно находятся в оперативной памяти (исключения существуют, однако они не касаются тех частей, которые отвечают за обработку аппаратных прерываний, работу с таблицей страниц и использование файла подкачки). Сегментная организация виртуальной памяти Механизм организации виртуальной памяти, при котором виртуальное пространство делится на части произвольного размера — сегменты. Этот механизм позволяет, к примеру, разбить данные процесса на логические блоки.[2] Для каждого сегмента, как и для страницы, могут быть назначены права доступа к нему пользователя и его процессов. При загрузке процесса часть сегментов помещается в оперативную память (при этом для каждого из этих сегментов операционная система подыскивает подходящий участок свободной памяти), а часть сегментов размещается в дисковой памяти. Сегменты одной программы могут занимать в оперативной памяти несмежные участки. Во время загрузки система создает таблицу сегментов процесса (аналогичную таблице страниц), в которой для каждого сегмента указывается начальный физический адрес сегмента в оперативной памяти, размер сегмента, правила доступа, признак модификации, признак обращения к данному сегменту за последний интервал времени и некоторая другая информация. Если виртуальные адресные пространства нескольких процессов включают один и тот же сегмент, то в таблицах сегментов этих процессов делаются ссылки на один и тот же участок оперативной памяти, в который данный сегмент загружается в единственном экземпляре. Система с сегментной организацией функционирует аналогично системе со страничной организацией: время от времени происходят прерывания, связанные с отсутствием нужных сегментов в памяти, при необходимости освобождения памяти некоторые сегменты выгружаются, при каждом обращении к оперативной памяти выполняется преобразование виртуального адреса в физический. Кроме того, при обращении к памяти проверяется, разрешен ли доступ требуемого типа к данному сегменту. Виртуальный адрес при сегментной организации памяти может быть представлен парой (g, s), где g — номер сегмента, а s — смещение в сегменте. Физический адрес получается путем сложения начального физического адреса сегмента, найденного в таблице сегментов по номеру g, и смещения s. Недостатком данного метода распределения памяти является фрагментация на уровне сегментов и более медленное по сравнению со страничной организацией преобразование адреса. Кеш Кэш или кеш (англ. cache, от фр. cacher — «прятать»; произносится [kæʃ] — «кэш») — промежуточный буфер с быстрым доступом, содержащий информацию, которая может быть запрошена с наибольшей вероятностью. Доступ к данным в кэше идёт быстрее, чем выборка исходных данных из оперативной (ОЗУ) и быстрее внешней (жёсткий диск или твердотельный накопитель) памяти, за счёт чего уменьшается среднее время доступа и увеличивается общая производительность компьютерной системы. Прямой доступ к данным, хранящимся в кэше, программным путем невозможен. Функционирование Диаграмма кэша памяти ЦПУ Кэш — это память с большей скоростью доступа, предназначенная для ускорения обращения к данным, содержащимся постоянно в памяти с меньшей скоростью доступа (далее «основная память»). Кэширование применяется ЦПУ, жёсткими дисками,браузерами, веб-серверами, службами DNS и WINS. Кэш состоит из набора записей. Каждая запись ассоциирована с элементом данных или блоком данных (небольшой части данных), которая является копией элемента данных в основной памяти. Каждая запись имеет идентификатор, определяющий соответствие между элементами данных в кэше и их копиями в основной памяти. Когда клиент кэша (ЦПУ, веб-браузер, операционная система) обращается к данным, прежде всего исследуется кэш. Если в кэше найдена запись с идентификатором, совпадающим с идентификатором затребованного элемента данных, то используются элементы данных в кэше. Такой случай называется попаданием кэша. Если в кэше не найдена запись, содержащая затребованный элемент данных, то он читается из основной памяти в кэш, и становится доступным для последующих обращений. Такой случай называетсяпромахом кэша. Процент обращений к кэшу, когда в нём найден результат, называется уровнем попаданий или коэффициентом попаданий в кэш. Например, веб-браузер проверяет локальный кэш на диске на наличие локальной копии вебстраницы, соответствующей запрошенному URL. В этом примере URL — это идентификатор, а содержимое веб-страницы — это элементы данных. Если кэш ограничен в объёме, то при промахе может быть принято решение отбросить некоторую запись для освобождения пространства. Для выбора отбрасываемой записи используются разные алгоритмы вытеснения. При модификации элементов данных в кэше выполняется их обновление в основной памяти. Задержка во времени между модификацией данных в кэше и обновлением основной памяти управляется так называемой политикой записи. В кэше с немедленной записью каждое изменение вызывает синхронное обновление данных в основной памяти. В кэше с отложенной записью (или обратной записью) обновление происходит в случае вытеснения элемента данных, периодически или по запросу клиента. Для отслеживания модифицированных элементов данных записи кэша хранят признак модификации (изменённый или «грязный»). Промах в кэше с отложенной записью может потребовать два обращения к основной памяти: первое для записи заменяемых данных из кэша, второе для чтения необходимого элемента данных. В случае, если данные в основной памяти могут быть изменены независимо от кэша, то запись кэша может стать неактуальной. Протоколы взаимодействия между кэшами, которые сохраняют согласованность данных, называют протоколами когерентности кэша. Уровни кэша Кэш центрального процессора разделён на несколько уровней. В универсальном процессоре в настоящее время число уровней может достигать 3. Кэш-память уровня N+1 как правило больше по размеру и медленнее по скорости доступа и передаче данных, чем кэш-память уровня N. Самой быстрой памятью является кэш первого уровня — L1-cache. По сути, она является неотъемлемой частью процессора, поскольку расположена на одном с ним кристалле и входит в состав функциональных блоков. В современных процессорах обычно кэш L1 разделен на два кэша, кэш команд (инструкций) и кэш данных (Гарвардская архитектура). Большинство процессоров без L1 кэша не могут функционировать. L1 кэш работает на частоте процессора, и, в общем случае, обращение к нему может производиться каждый такт. Зачастую является возможным выполнять несколько операций чтения/записи одновременно. Латентность доступа обычно равна 2−4 тактам ядра. Объём обычно невелик — не более 128 Кбайт. Вторым по быстродействию является L2-cache — кэш второго уровня, обычно он расположен на кристалле, как и L1. В старых процессорах — набор микросхем на системной плате. Объём L2 кэша от 128 Кбайт до 1−12 Мбайт. В современных многоядерных процессорах кэш второго уровня, находясь на том же кристалле, является памятью раздельного пользования — при общем объёме кэша в nM Мбайт на каждое ядро приходится по nM/nC Мбайта, где nC количество ядер процессора. Обычно латентность L2 кэша, расположенного на кристалле ядра, составляет от 8 до 20 тактов ядра. Кэш третьего уровня наименее быстродействующий, но он может быть очень внушительного размера — более 24 Мбайт. L3 кэш медленнее предыдущих кэшей, но всё равно значительно быстрее, чем оперативная память. В многопроцессорных системах находится в общем пользовании и предназначен для синхронизации данных различных L2. Иногда существует и 4 уровень кэша, обыкновенно он расположен в отдельной микросхеме. Применение кэша 4 уровня оправдано только для высоко производительных серверов имейнфреймов. Проблема синхронизации между различными кэшами (как одного, так и множества процессоров) решается когерентностью кэша. Существует три варианта обмена информацией между кэшпамятью различных уровней, или, как говорят, кэш-архитектуры: инклюзивная, эксклюзивная и неэксклюзивная. Инклюзивная архитектура предполагает дублирование информации кэша верхнего уровня в нижнем (предпочитает фирма Intel). Эксклюзивная кэш-память предполагает уникальность информации, находящейся в различных уровнях кэша (предпочитает фирма AMD). В неэксклюзивной кэши могут вести себя как угодно. Ассоциативность кэша Одна из фундаментальных характеристик кэш-памяти — уровень ассоциативности — отображает её логическую сегментацию. Дело в том, что последовательный перебор всех строк кэша в поисках необходимых данных потребовал бы десятков тактов и свёл бы на нет весь выигрыш от использования встроенной в ЦП памяти. Поэтому ячейки ОЗУ жёстко привязываются к строкам кэш-памяти (в каждой строке могут быть данные из фиксированного набора адресов), что значительно сокращает время поиска. С каждой ячейкой ОЗУ может быть связано более одной строки кэш-памяти: например, n-канальная ассоциативность (англ. n-way set associative) обозначает, что информация по некоторому адресу оперативной памяти может храниться в nместах кэш-памяти. При одинаковом объеме кэша схема с большей ассоциативностью будет наименее быстрой, но наиболее эффективной (после 4-way эффективность на 1 поток растет мало). Операти́вная па́мять (англ. Random Access Memory, память с произвольным доступом) — энергозависимая часть системы компьютерной памяти, в которой временно хранятся данные и команды, необходимые процессору для выполнения им операции. Обязательным условием является адресуемость (каждое машинное слово имеет индивидуальный адрес) памяти. Передача данных в оперативную память процессором производится непосредственно, либо через сверхбыструю память. Содержащиеся в оперативной памяти данные доступны только тогда, когда компьютер включен. При выключении компьютера содержимое стирается из оперативной памяти, поэтому перед выключением компьютера все данные нужно сохранить. Так же от объема оперативной памяти зависит количество задач, которые одновременно может выполнять компьютер. Оперативное запоминающее устройство, ОЗУ — техническое устройство, реализующее функции оперативной памяти. ОЗУ может изготавливаться как отдельный блок или входить в конструкцию, например однокристальной ЭВМ или микроконтроллера. Физические виды ОЗУ ОЗУ большинства современных компьютеров представляет собой модули динамической памяти, содержащие полупроводниковыеБИС ЗУ, организованные по принципу устройств с произвольным доступом. Память динамического типа дешевле, чем статического, и её плотность выше, что позволяет на том же пространстве кремниевой подложки размещать больше ячеек памяти, но при этом её быстродействие ниже. Статическая, наоборот, более быстрая память, но она и дороже. В связи с этим массовую оперативную память строят на модулях динамической памяти, а память статического типа используется для построения кеш-памяти внутри микропроцессора. Память динамического типа (англ. DRAM (Dynamic Random Access Memory)) Экономичный вид памяти. Для хранения разряда (бита или трита) используется схема, состоящая из одного конденсатора и одного транзистора (в некоторых вариациях конденсаторов два). Такой вид памяти решает, во-первых, проблему дороговизны (один конденсатор и один транзистор дешевле нескольких транзисторов) и во-вторых, компактности (там, где в SRAM размещается один триггер, то есть один бит, можно уместить восемь конденсаторов и транзисторов). Есть и свои минусы. Во-первых, память на основе конденсаторов работает медленнее, поскольку если в SRAM изменение напряжения на входе триггера сразу же приводит к изменению его состояния, то для того чтобы установить в единицу один разряд (один бит) памяти на основе конденсатора, этот конденсатор нужно зарядить, а для того чтобы разряд установить в ноль, соответственно, разрядить. А это гораздо более длительные операции (в 10 и более раз), чем переключение триггера, даже если конденсатор имеет весьма небольшие размеры. Второй существенный минус — конденсаторы склонны к «стеканию» заряда; проще говоря, со временем конденсаторы разряжаются. Причём разряжаются они тем быстрее, чем меньше их ёмкость. За то, что разряды в ней хранятся не статически, а «стекают» динамически во времени, память на конденсаторах получила своё название динамическая память. В связи с этим обстоятельством, дабы не потерять содержимое памяти, заряд конденсаторов для восстановления необходимо «регенерировать» через определённый интервал времени. Регенерация выполняется центральным микропроцессором или контроллером памяти, за определённое количество тактов считывания при адресации по строкам. Так как для регенерации памяти периодически приостанавливаются все операции с памятью, это значительно снижает производительность данного вида ОЗУ. Память статического типа (англ. SRAM (Static Random Access Memory)) Статическая оперативная память с произвольным доступом (SRAM, static random access memory) — полупроводниковая оперативная память, в которой каждый двоичный или троичный разряд хранится в схеме с положительной обратной связью, позволяющей поддерживать состояние сигнала без постоянной перезаписи, необходимой в динамической памяти (DRAM). Тем не менее, сохранять данные без перезаписи SRAM может только пока есть питание, то есть SRAM остается энергозависимым типом памяти. Произвольный доступ (RAM — random access memory) — возможность выбирать для записи/чтения любой из битов (тритов) (чаще байтов (трайтов), зависит от особенностей конструкции), в отличие от памяти с последовательным доступом (SAM — sequental access memory). Применение SRAM применяется в микроконтроллерах и ПЛИС, в которых объём ОЗУ невелик (единицы килобайт), зато нужны низкое энергопотребление (за счёт отсутствия сложного контроллера динамической памяти), предсказываемое с точностью до такта время работы подпрограмм и отладка прямо на устройстве. В устройствах с большим объёмом ОЗУ рабочая память выполняется как DRAM. SRAM’ом же делают регистры и кеш-память. ПЗУ Постоянное запоминающее устройство (ПЗУ) — энергонезависимая память, используется для хранения массива неизменяемых данных. Классификация По типу исполнения Массив данных совмещён с устройством выборки (считывающим устройством), в этом случае массив данных часто в разговоре называется«прошивка»: микросхема ПЗУ; Один из внутренних ресурсов однокристальной микроЭВМ (микроконтроллера), как правило FlashROM. Массив данных существует самостоятельно: Компакт-диск; перфокарта; перфолента; монтажные «1» и монтажные «0». По разновидностям микросхем ПЗУ По технологии изготовления кристалла: ROM — (англ. read-only memory, постоянное запоминающее устройство), масочное ПЗУ, изготавливается фабричным методом. В дальнейшем нет возможности изменить записанные данные. PROM — (англ. programmable read-only memory, программируемое ПЗУ (ППЗУ)) — ПЗУ, однократно «прошиваемое» пользователем. EPROM — (англ. erasable programmable read-only memory, перепрограммируемое ПЗУ (ПППЗУ)). Например, содержимое микросхемы К537РФ1 стиралось при помощи ультрафиолетовой лампы. Для прохождения ультрафиолетовых лучей к кристаллу в корпусе микросхемы было предусмотрено окошко с кварцевым стеклом. EEPROM — (англ. electrically erasable programmable read-only memory, электрически стираемое перепрограммируемое ПЗУ). Память такого типа может стираться и заполняться данными несколько десятков тысяч раз. Используется в твердотельных накопителях. Одной из разновидностей EEPROM является флеш-память (англ. flash memory). ПЗУ на магнитных доменах, например К1602РЦ5, имело сложное устройство выборки и хранило довольно большой объём данных в виде намагниченных областей кристалла, при этом не имея движущихся частей (см. Компьютерная память). Обеспечивалось неограниченное количество циклов перезаписи. Применение В постоянную память часто записывают микропрограмму управления техническим устройством: телевизором, сотовым телефоном, различными контроллерами, или компьютером (BIOS или OpenBoot на машинах SPARC). BootROM — прошивка, такая, что если её записать в подходящую микросхему ПЗУ, установленную в сетевой карте, то становится возможна загрузкаоперационной системы на компьютер с удалённого узла локальной сети. Для встроенных в ЭВМ сетевых плат BootROM можно активировать через BIOS. ПЗУ в IBM PC-совместимых ЭВМ располагается в адресном пространстве с F600:0000 по FD00:0FFF