Какая память быстрее память регистров внешняя память флэш память

Обновлено: 17.05.2024

Любая микропроцессорная система, вне зависимости от типа используемого микроконтроллера или процессора, в обязательном порядке требует памяти (рис. 1). В памяти хранится исполняемая процессором программа. Там же помещаются данные, используемые при вычислениях. Данные могут поступать от датчиков или появляться в результате расчетов, они также могут изначально размещаться в памяти при программировании.

Процессор использует память для хранения программ и данных

Рис. 1. Процессор использует память для хранения программ и данных

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

Например, жесткий диск (HDD), используемый в большинстве ПК, может хранить большой объем информации и имеет относительно низкую стоимость. Кроме того, информация, размещенная на HDD, не теряется при выключении ПК. В то же время скорость обмена при работе с жестким диском оказывается достаточно низкой.

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

Память можно разделить на две основные категории: энергозависимую (volatile) и энергонезависимую (non-volatile). Энергозависимая память теряет свое содержимое при отключении питания. Энергонезависимая память сохраняет данные даже при отключении питания.

В общем случае энергонезависимая память работает медленнее, но стоит дешевле, чем энергозависимая память. Чаще всего энергонезависимая память используется для хранения программ и пользовательских данных. Энергозависимая память в основном необходима для хранения часто используемых данных. Кроме того, в высокопроизводительных устройствах после запуска процессора программа копируется из энергонезависимой памяти в ОЗУ и далее выполняется оттуда.

Энергонезависимая память

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

Инжекция или удаление заряда изолированного затвора осуществляется за счет подачи высокого напряжения определенной полярности на традиционный затвор транзистора. В результате энергонезависимая память имеет несколько важных особенностей.

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

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

Flash

Flash чаще всего используется для хранения программ и констант в микроконтроллерах, а также для хранения загрузчика в ПК.

Существует два основных типа Flash: NAND и NOR. Оба типа Flash имеют свои достоинства и недостатки и применяются в различных приложениях.

NOR Flash, как правило, выступает в роли XIP-памяти (Execute In Place), то есть может использоваться как для хранения, так и для выполнения программ. В большинстве случаев, NOR Flash оказывается дороже и быстрее, чем NAND Flash.

NAND Flash обычно используется в SSD-дисках, USB-накопителях, а также является основным типом памяти для SD-карт.

EEPROM

EEPROM (Electrically Erasable Programmable Read Only Memory) – достаточно медленный и относительно дорогой тип памяти. Вместе с тем EEPROM обеспечивает простоту доступа к данным. Если во Flash организован постраничный доступ к памяти, то EEPROM позволяет записывать и стирать отдельные байты. Таким образом, EEPROM является оптимальным вариантом для хранения данных конфигурации и пользовательской информации во встраиваемых системах.

SSD и SD

В SSD-накопителях (Solid State Drives) и SD-картах (Secure Digital) используется NAND Flash (рис. 2). В таких накопителях работа ведется с большими блоками данных. SSD-накопители и SD-карты обеспечивают более высокую надежность, по сравнению традиционными жесткими дисками (HDD).

Карта памяти SD (32 ГБ)

Рис. 2. Карта памяти SD (32 ГБ)

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

В отличие от SSD, SD-карты, в силу своего размера, обычно не отличаются большой емкостью и не обладают технологиями, повышающими надежность хранения данных. Следовательно, они в основном используются в приложениях, требующих не очень частого доступа к данным.

Дискретные микросхемы Flash-памяти большого объема (более нескольких Мбайт) оказываются весьма дорогими, если речь идет о мелком и среднесерийном производстве.

Таким образом, если вашему устройству требуется большой объем Flash (сотни Мбайт - Гбайты), то в большинстве случаев более экономичным решением станет использование SD-карты, по крайней мере, до тех пор, пока вы не достигнете крупносерийного производства, при котором стоимость дискретных микросхем Flash не опуститься до разумного значения.

Другие типы энергонезависимой памяти

В этом разделе кратко описаны некоторые другие типы энергонезависимой памяти, которые широко использовались в прошлом.

Постоянная память ROM. Содержимое этой памяти программируется на этапе производства и не может быть изменено в процессе эксплуатации.

Однократно программируемая пользователем память PROM (Programmable ROM). Содержимое этой памяти может быть однократно запрограммировано пользователем.

Стираемая память EPROM (Erasable Programmable ROM). Микросхемы EPROM имеют небольшое окно для стирания содержимого с помощью ультрафиолетового излучения. После стирания память EPROM может быть снова запрограммирована.

Пример устаревшей микросхемы EPROM с окном для стирания УФ-светом

Рис. 3. Пример устаревшей микросхемы EPROM с окном для стирания УФ-светом

Энергозависимая память

Энергозависимая память RAM (Random Access Memory) или оперативное запоминающее устройство (ОЗУ) – это запоминающее устройство, которое сохраняет свое содержимое только при наличии напряжения питания. Существует два типа RAM: статическая и динамическая.

Ячейка динамического RAM или DRAM не только нуждается в присутствии напряжения питания, но и отличается постоянной потерей заряда, из-за чего содержимое DRAM требует периодической регенерации.

Статическая RAM или SRAM не требует регенерации и сохраняет свое содержимое при наличии напряжения питания.

В каких же случаях необходимо использовать SRAM или DRAM вместо любого из описанных выше энергонезависимых типов памяти? Ответ прост – в тех случаях, когда необходима высокая скорость и простота доступа к данным. Оперативная память оказывается не только намного быстрее энергонезависимых типов памяти, но и обеспечивает произвольный доступ к хранящимся в ней данным. Можно записывать или читать данные из любой области памяти с очень высокой скоростью, не беспокоясь о стирании страниц или блоков. Вместе с тем основным недостатком RAM является высокая стоимость. Таким образом, в большинстве вычислительных систем обычно используют комбинацию из RAM и flash-памяти. При этом каждый из этих типов памяти решает конкретные задачи, с учетом оптимального использования их преимуществ.

В категории энергозависимой памяти SRAM оказывается быстрее, чем DRAM, но при этом отличается и более высокой стоимостью. Это связано с тем, что для реализации ячейки SRAM требуется от четырех до шести транзисторов, а для ячейки DRAM требуется только один. Следовательно, на кристалле одного и того же размера можно уместить гораздо больше ячеек DRAM, чем ячеек SRAM.

В то же время для работы с DRAM требуется контроллер, который будет автоматически выполнять периодическую регенерацию содержимого памяти. Таким образом, использование DRAM вместо SRAM имеет смысл только в том случае, если стоимость контроллера перекрывается дешевизной DRAM-памяти.

SRAM чаще всего применяется в тех случаях, когда высокая скорость доступа имеет критическое значение, а объем необходимой памяти оказывается относительно небольшим.

Таким образом, SRAM обычно используется в микроконтроллерах, где небольшой объем статической памяти обеспечивает меньшую стоимость по сравнению с DRAM с собственным контроллером памяти. SRAM также используется в качестве высокоскоростной кэш-памяти внутри микропроцессоров, благодаря высокой скорости доступа.

Виды DRAM

Существуют различные виды DRAM. Исторически первые микросхемы DRAM сначала уступили место FPRAM (Fast Page RAM), которые в свою очередь были заменены на EDO RAM (Extended Data Output RAM), на смену которым, в конце концов, пришли микросхемы синхронной памяти DRAM или SDRAM.

Новые поколения SDRAM используют двойную скорость передачи данных (SDRAM included Double Data Rate). Речь идет о DDR2, DDR3 и DDR4.

Хотя каждое новое поколение SDRAM имело некоторые улучшения по сравнению с предыдущими поколениями, следует отметить, что сама базовая динамическая ячейка ОЗУ оставалась практически без изменений и обеспечивала лишь незначительное увеличение скорости доступа. С другой стороны, плотность размещения ячеек памяти или общее количество битов, упакованных в один чип, значительно увеличилось с течением времени. Тем не менее, основные улучшения в новых поколениях SDRAM были связаны именно с увеличением скорости передачи данных и уменьшением удельного энергопотребления.

SDRAM является основой для всех современных видов DRAM. До появления SDRAM память DRAM использовала асинхронной обмен, то есть после запроса на чтение данные сразу же появлялись на шине данных. В SDRAM данные синхронизируются с помощью тактового сигнала.

Например, после того, как SDRAM-память получает команду чтения, она начинает выставлять данные спустя определенное количество тактов. Эта задержка известна как строб адреса столбца CAS (Column Address Strobe). Она имеет фиксированное значение для каждого модуля памяти.

Кроме того, в SDRAM считывание данных всегда синхронизируется по фронту тактового сигнала. Таким образом, процессор точно знает, когда ожидать запрошенные данные.

DDR DRAM

Говоря о первом поколении SDRAM, его часто называют памятью с однократной скоростью передачи данных или SDR (Single Data Rate). Следующим эволюционным шагом в развитии SDRAM стало появление DDR SDRAM (Double Data Rate SDRAM) или памяти с удвоенной скоростью передачи данных.

На рис. 4 показана разница в обмене данными при работе с SDR и DDR SDRAM. Обратите внимание, что на этом рисунке задержка CAS не показана.

Передача данных при работе с SDR и DDR

Рис. 4. Передача данных при работе с SDR и DDR. Прием данных DDR выполняется как по фронту, так и по срезу тактового сигнала

DDR2, DDR3 и DDR4

При переходе от SDR к DDR передача данных стала вестись как по фронту, так и по срезу тактового сигнала. Далее при переходе от DDR2 к DDR4 SDRAM скорость передачи возрастала за счет использования некоторых хитрых приемов. При этом, как уже упоминалось ранее, скорость доступа к содержимому ячейки памяти DRAM не сильно изменилась из-за ограничений базовой технологии. В реальности эту скорость удалось увеличить всего в два раза.

Модуль DDR-памяти, используемый в компьютерах

Рис. 5. Модуль DDR-памяти, используемый в компьютерах

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

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

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

Заключение

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

Память оказывает большое влияние на производительность, стоимость и энергопотребление. По этой причине выбор оптимального типа памяти является очень важной задачей.

Как и в случае со всеми инженерными задачами, разработка электронных устройств очень часто требует поиска компромиссных решений. Теперь, когда вы знаете о достоинствах и недостатках различных типов памяти, вы сможете выбрать оптимальный тип памяти для вашего нового устройства.

Сегодня мы поговорим о том месте, которое занимает в вашем цифровом устройстве каждый вид памяти. Та память, которую мы сегодня рассмотрим, именуется компьютерной, хотя и применяется не только в ПК, но и в других цифровых устройствах. Речь идет в том числе и о мобильных девайсах: смартфонах и планшетах, которые являются компьютерами по сути. Память служит для хранения данных и бывает нескольких типов. Некоторые типы памяти взаимозаменяемы. Другие же служат для выполнения совершенно различных задач. Проиллюстрируем написанное простым примером. И оперативная память и кеш процессора и флеш-карта вашего смартфона являются компьютерной памятью, хотя на первый взгляд между ними не так уж много общего. О системе памяти новой игровой консоли Xbox One мы недавно рассказывали довольно подробно. И хотя перед нами игровая консоль, ее память в полной мере компьютерная.

Компьютерная память

Какой бывает компьютерная память и в каких устройствах она используется?

Компьютерная память


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

Наиболее известные представители энергонезависимой категории это ПЗУ (постоянная память) и флеш-память, получившая в последнее время немалое распространение. В частности, карты памяти CompactFlash и SmartMedia.

Прежде всего просто перечислим основные виды компьютерной памяти и только потом начнем их рассматривать:

  • Оперативная память. Оперативное запоминающее устройство. ОЗУ, RAM
  • Постоянная память. Постоянное запоминающее устройство. ПЗУ, ROM
  • Кеш-память, Cache
  • Динамическая оперативная память. Dynamic RAM, DRAM
  • Статическая оперативная память. Static RAM, SRAM
  • Флеш-память, Flash memory
  • Память типа Memory Sticks в виде карт памяти для цифровых фотоаппаратов
  • Виртуальная память, Virtual memory
  • Видеопамять, Video memory
  • Базовая система ввода-вывода, БСВВ, BIOS

Как мы уже писали, память применяется не только в компьютерах, но и в иных цифровых устройствах. Тех «компьютероподобных» устройствах, которые для удобства изложения материала мы будем считать компьютерами, не отвлекаясь на постоянные обсуждения различий между ними. В частности, планшеты многие аналитики относят к компьютерам. Речь идет в том числе и о:

  • Сотовых телефонах
  • Смартфонах
  • Планшетах
  • Игровых консолях
  • Автомобильных радиоприемниках
  • Цифровых медиаплеерах
  • Телевизорах

Прежде, чем разбираться в том, как функционирует каждый вид памяти, поинтересуемся тем, как она вообще работает.

Иерархическая пирамида компьютерной памяти

Иерархическая пирамида компьютерной памяти


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

Существует определенная иерархия компьютерной памяти. Место определенного вида памяти в ней означает ее «удаленность» от процессора. Чем «ближе» та или иная память к процессору, тем она, как правило, быстрее. Перед нами иерархическая пирамида компьютерной памяти, которая заслуживает подробного рассмотрения.

Вершиной пирамиды является регистр процессора.
За ним следует кеш-память первого (L1)
и второго уровня (L2)
Оперативная память делится на:
физическую и виртуальную
И кеш, и оперативная память являются временными хранилищами информации
Далее идут постоянные хранилища информации:
ПЗУ/BIOS; съемные диски; удаленные накопители (в локальной сети); жесткий диск
Подножие пирамиды образуют устройства ввода, к которым относятся:
клавиатура; мышь; подключаемые медиаустройства; сканер/камера/микрофон/видео; удаленные источники; другие источники

Процессор обращается к памяти в соответствии с ее местом в иерархии. Информация поступает с жесткого диска или устройства ввода (например, с клавиатуры) в оперативную память. Процессор сохраняет сегменты данных, к которой нужен быстрый доступ, в кеш-памяти. В регистре процессора содержатся специальные инструкции. К рассмотрению кеш-памяти и регистра процессора мы еще вернемся.

Роль оперативной памяти в общем «оркестре» компонентов компьютера

Компьютерная память


Работу компьютера следует рассматривать как «оркестр». «Музыкантами» в нем являются все его программные и аппаратные составляющие, в том числе центральный процессор, жесткий диск и операционная система, выполняющая, как известно нашим читателям, пять важнейших невидимых задач. Оперативная память, которую нередко называют просто «памятью» находится в числе наиболее важных компонентов компьютера. С того момента как вы включили компьютер и до того мгновения, когда вы его отключите, процессор будет непрерывно обращаться к памяти. Давайте рассмотрим типичный сценарий работы любого компьютера.

Вы включили компьютер. Он, в свою очередь, загрузил данные из постоянной памяти (ROM) и начал самотестирование при включении (power-on self-test, POST). Компьютер проверяет сам себя и определяет, исправен ли он и готов ли к новому трудовому сеансу. Целью этого этапа работы является проверка того, что все основные компоненты системы работают корректно. В ходе самотестирования контроллер памяти посредством быстрой операции чтения/записи проверяет все ячейки памяти на наличие или отсутствие ошибок. Процесс проверки выглядит так: бит информации записывается в память по определенному адресу, а затем считывается оттуда.

Компьютер загружает из ПЗУ базовую систему ввода-вывода, более известную по английской аббревиатуре BIOS. В этом «биосе» содержится базовая информация о накопителях, порядке загрузки, безопасности, автоматическом распознавании устройств (Plug and Play) и некоторые иные сведения.

Затем наступает черед загрузки операционной системы. Она загружается в оперативную память компьютера с жесткого диска (чаще всего в современном компьютере всё обстоит именно так, но возможны и иные сценарии). Важные компоненты операционной системы обычно находятся в оперативной памяти компьютера на протяжении всего времени работы с ним. Это дает центральному процессору возможность немедленного доступа к операционной системе, что повышает производительность и функциональность всего компьютера в целом.

Когда вы открываете приложение, оно записывается всё в ту же оперативную память. Объем памяти этого типа в наши дни хоть и велик, но при этом все равно значительно уступает ёмкости жесткого диска. В целях экономии оперативной памяти некоторые приложения записывают в нее только свои важнейшие компоненты, а остальные «подгружают» с жесткого диска по мере необходимости. Каждый файл, который загружается работающим приложением, тоже записывается в оперативную память.

Что происходит, когда вы сохраняете файл и закрываете приложение? Файл записывается на жесткий диск, а приложение «выталкивается» из оперативной памяти. То есть и само приложение, и связанные с ним файлы удаляются из оперативной памяти. Тем самым освобождается место для новой информации: других приложений и файлов. Если измененный файл не был сохранен перед удалением из временного хранилища, все изменения будут потеряны.

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

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


Наиболее известные запоминающие устройства, используемые в персональных компьютерах: модули оперативной памяти (ОЗУ), жёсткие диски (винчестеры), дискеты (гибкие магнитные диски), CD- или DVD-диски, а также устройства флеш-памяти.

Содержание

Функции памяти

К настоящему времени создано множество устройств, предназначенных для хранения данных, основанных на использовании самых разных физических эффектов. Универсального решения не существует, у каждого имеются свои достоинства и свои недостатки, поэтому компьютерные системы обычно оснащаются несколькими видами систем хранения, основные свойства которых обуславливают их использование и назначение.

Физические основы функционирования

В основе работы запоминающего устройства может лежать любой физический эффект, обеспечивающий приведение системы к двум или более устойчивым состояниям. В современной компьютерной технике часто используются физические свойства полупроводников, когда прохождение тока через полупроводник или его отсутствие трактуются как наличие логических сигналов 0 или 1. Устойчивые состояния, определяемые направлением намагниченности, позволяют использовать для хранения данных разнообразные магнитные материалы. Наличие или отсутствие заряда в конденсаторе также может быть положено в основу системы хранения. Отражение или рассеяние света от поверхности CD, DVD или Blu-ray-диска также позволяет хранить информацию.

Классификация типов памяти

Доступные операции с данными

  • Память только для чтения (read-only memory, ROM)
  • Память для чтения/записи

Память на программируемых и перепрограммируемых ПЗУ (ППЗУ и ПППЗУ) не имеет общепринятого места в этой классификации. Её относят либо к подвиду памяти «только для чтения» [1] , либо выделяют в отдельный вид.

Энергозависимость

Метод доступа

Назначение

Организация адресного пространства

Удалённость и доступность для процессора

Положение структур данных, расположенных в основной памяти, в этой классификации неоднозначно. Как правило, их вообще в неё не включают, выполняя классификацию с привязкой к традиционно используемым видам ЗУ. [2]

Основная ( оперативная ) память – единственная крупная часть памяти, к которой процессор имеет непосредственный доступ . Как известно, содержимое основной памяти не сохраняется после перезагрузки системы или после выключения компьютера . Внешняя ( вторичная ) память – расширение основной памяти, обеспечивающее функциональность устойчивой (сохраняемой) памяти большого объема.

В качестве вторичной памяти чаще всего используются жесткие диски (hard disks).Физически они состоят из твердых пластин из металла или стекла, покрытых магнитным слоем для записи. Поверхность диска логически делится на дорожки (tracks),которые, в свою очередь , делятся на секторы. Контроллер диска определяет логику взаимодействия между устройством и компьютером.

Устройство жесткого диска показано на рис. 4.5.

Устройство жесткого диска

Как видно из рисунка, цилиндр - это группа вертикально расположенных друг под другом секторов различных магнитных дисков с одним и тем же номером дорожки.

Системы памяти организованы в иерархию, исходя из их быстродействия, стоимости и возможности сохранения информации (устойчивости). Для оптимизации работы памяти любого вида используется ассоциативная память (кэш – cache),размещаемая в более быстродействующих системах памяти и хранящая наиболее часто используемые элементы более медленной памяти. С этой точки зрения, оперативную память можно рассматривать как кэш для внешней памяти. Кэш - память – это, по сути дела, ассоциативный список пар (Адрес, Значение),причем аппаратный поиск в ней происходит по адресу как по ключу. Таким образом, перед обращением к медленной внешней памяти сначала происходит поиск по заданному адресу в кэш -памяти, и только если он не привел к успеху, выполняется стандартное обращение к внешней памяти. Принцип кэширования очень важен и позволяет существенно ускорить работу со внешней памятью. Однако он требует реализации специальной политики управления кэш -памятью, так как кэширование вводит дополнительный уровень в иерархии памяти и требует согласованности данных, хранимых одновременно на разных уровнях памяти. Аппаратура и ОС поддерживают кэш команд, кэш данных, кэш жесткого диска и т.д. – для всех видов памяти.

Иерархия устройств памяти (в упрощенном виде) показана на рис. 4.6

Иерархия устройств памяти

Более быстрые виды памяти на схеме расположены выше, более медленные – ниже. Схема особых комментариев не требует. Некоторые часто используемые виды внешней памяти:

  • флэш-память (флэшка) – внешняя память компактного размера, модуль которой подключаются через USB-порт. Параметры: объем - до 128 гигабайт и более; скорость обмена через порт USB 2.0: 240 – 260 мегабит в секунду;
  • внешний жесткий диск (ZIV drive и другие) – объем до 1 терабайта; работает также через порт USB;
  • BluRay – диски – новая разновидность компакт-дисков большой емкости (односторонние – 25 гигабайт , двусторонние – 50 гигабайт ). Для сравнения, стандартная емкость диска DVD составляет 4.7 гигабайт .

Аппаратная защита памяти и процессора

В целях совместного использования системных ресурсов (памяти, процессора, внешних устройств ) несколькими программами, требуется, чтобы аппаратура и операционная система обеспечили невозможность влияния некорректно исполняемой программы на другие пользовательские программы. Для этого необходима аппаратная поддержка , как минимум , двух режимов исполнения программ – пользовательского ( непривилегированного ) режима ( user mode ) – для выполнения программ пользователей – и системного ( привилегированного , режима ядра - system mode , monitor mode ) - для модулей операционной системы. Идея двух режимов в том, чтобы выполняемые в привилегированном режиме модули ОС могли выполнять распределение и выделение системных ресурсов , в частности, формировать новые адреса, а пользовательские программы, в результате ошибок или преднамеренных атак, выполняясь в обычном режиме, не могли бы обратиться в область памяти операционной системы или другой задачи, изменять их и этим нарушать их целостность . Для определения текущего режима выполнения команд в аппаратуре вводится бит режима, равный 0 для системного и 1 – для пользовательского режима. При прерывании или сбое аппаратура автоматически переключается в системный режим. Некоторые привилегированные команды, изменяющие системные ресурсы и состояние системы (например, регистр состояния процессора), должны выполняться только в системном режиме, что защитит системные ресурсы от случайной или преднамеренной порчи при выполнении этих команд обычной пользовательской программой.

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

Использование системного вызова для выполнения ввода-вывода иллюстрируется на рис. 4.7.

Использование системного вызова для выполнения ввода-вывода.


Рис. 4.7. Использование системного вызова для выполнения ввода-вывода.

На схеме системный вызов номер n вызывает программируемое прерывание ( trap ), вызывается ОС в привилегированном режиме, и по номеру системного вызова определяется операция ввода-вывода , которая должна быть выполнена по данному прерыванию. Затем в привилегированном режиме выполняется операция ввода-вывода , после чего происходит прерывание и возврат в пользовательскую программу, выполняемую в обычном режиме.

Для защиты памяти необходимо обеспечить защиту, по крайней мере, для вектора прерываний и подпрограмм обслуживания прерываний. Например, недопустимо разрешить пользовательской программе формировать в обычном режиме произвольный адрес и обращаться по нему, так как при этом может быть нарушена целостность системных областей памяти. Чтобы этого избежать, в аппаратуре вводятся два регистра, которые отмечают границы допустимой области памяти, выделенной пользовательской программе. Это базовый регистр (base register),содержащий начальный адрес области памяти, выделенной пользовательской программе, и регистр границы (limit register),содержащий размер пользовательской области памяти. Память вне отмеченного диапазона считается защищенной, т.е. обращения к ней из пользовательской программы не допускаются (при попытке такого обращения возникает прерывание ).

Использование базового регистра и регистра границы иллюстрируется на рис. 4.8.

Использование регистра базы и регистра границы для защиты памяти


Рис. 4.8. Использование регистра базы и регистра границы для защиты памяти

На схеме заданию 2 выделена область памяти, начиная с адреса 300040 (хранящегося в регистре базы), длиной 120900 (хранящейся в регистре границы), т.е. по адрес 420939 включительно. Обращение, например, по адресу 420940 из программы задания 2 приводит к прерыванию как недопустимое – срабатывает защита памяти .

Читайте также: