Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

636

.pdf
Скачиваний:
5
Добавлен:
13.02.2021
Размер:
2.16 Mб
Скачать

101

качиваться с него обратно в физическую память. Таким образом реализуется виртуальная память.

Применительно к памяти различают три адресных пространства: логическое, линейное и физическое. Основным режимом работы 32-разрядных процессоров считается защищенный режим, в котором работают все механизмы преобразования адресных пространств (рис. 3.4) [12, 13].

 

 

Вычисление эффективного адреса

31

0

 

 

 

 

 

 

 

 

INDEX

 

 

 

 

BASE

 

X

DISPLACEMENT

Физическая

 

 

 

память

 

 

 

 

 

 

 

 

 

 

 

 

SCALE

 

 

 

 

 

 

 

 

1,2,4,8

 

 

 

 

 

 

 

 

+

 

 

 

32-х разрядный

 

 

 

 

 

 

 

физический

 

 

 

 

 

 

 

 

адрес

 

 

 

 

32-х разрядный эффективный

 

 

15

2

1

0

 

адрес

 

 

 

 

 

 

 

 

 

 

R

 

Блок

 

Блок страничной

Селектор

 

 

 

переадресации

 

P

 

 

сегментации

 

 

 

L

 

 

 

 

(необязательной)

 

 

 

 

 

 

 

 

Сегментный

 

14-14ти-разрядный индекс

3232-х-разрядный

 

регистр

 

 

 

дескриптора логического или

линейный

 

 

 

 

 

виртуального адреса

адрес

 

 

Рис. 3.4 Формирование адреса памяти 32-разрядных процессоров

 

 

 

 

в защищенном режиме

 

 

Логический адрес, также называемый виртуальным, состоит из селектора сегмента Seg (в реальном режиме – просто адреса сегмента) и эффективного адреса, называемого также смещением (Offset). Логический адрес обозначается в форме Seg:Offset. Селектор сегмента хранится в старших 14 битах сегментного регистра (CS, DS, ES, SS, FS или GS), участвующего в адресации конкретного элемента памяти. По значению селектора из специальных таблиц, хранящихся в памяти, извлекается начальный адрес сегмента. Эффективный адрес формируется суммированием компонентов base, index, displacement с

102

учетом масштаба scale. Поскольку каждая задача может иметь до 16 Кбайт селекторов (214), а смещение, ограниченное размером сегмента, может достигать 4 Гбайт, логическое адресное пространство для каждой задачи может достигать 64 Тбайт. Все это пространство виртуальной памяти в принципе доступно программисту при условии поддержки со стороны операционной системы.

Блок сегментации транслирует логическое адресное пространство в 32-битное пространство линейных адресов. Линейный адрес образуется сложением базового адреса сегмента с эффективным адресом. Базовый адрес сегмента в реальном режиме образуется умножением содержимого используемого сегментного регистра на 16 (как и в 8086). В защищенном режиме базовый адрес загружается из дескриптора, хранящегося в таблице, по селектору, загруженному в используемый сегментный регистр.

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

Для обращения к памяти процессор совместно с внешними схемами формирует шинные сигналы для операций записи и чтения. Шина адреса разрядностью 32/36 бит позволяет адресовать 4/64 Гбайт физической памяти, но в реальном режиме доступен только 1 Мбайт, начинающийся с младших адресов.

3.3.4 Кэширование памяти

Архитектура современных 32-разрядных процессоров включает ряд средств кэширования памяти: два уровня кэша инструкций и данных (L1 Cache и L2 Cache); буферы ассоциа-

103

тивной трансляции (TLB) блока страничной переадресации и буферы записи. Эти средства в разных вариациях (на кристалле, картридже процессора или системной плате) представлены в системах с процессорами 486, Pentium и Р6. В процессоре 80386 (Intel) имелся только TLB, а кэш-память, устанавливаемая на системной плате, не имела поддержки со стороны процессора.

Все механизмы кэширования в основном прозрачны для прикладных программ и после разрешения кэширования пропускают через себя потоки инструкций и данных без требования явного программного управления. Однако знание особенностей механизмов кэширования помогает в оптимизации кода. Например, можно определить оптимальные размеры одновременно обрабатываемых структур данных, при которох кэш не «буксует» (cache thrashing). Процессоры разных моделей имеют различные характеристики отдельных элементов кэша, их определение для процессоров Р6 осуществляется посредством вызова инструкции CPUID(2). Заметим, что не все модели процессоров способны кэшировать весь объем физически адресуемой памяти.

Кэш-память процессоров строится с учетом возможности обращений к памяти со стороны внешних абонентов – других процессоров или иных контроллеров шины. Процессоры имеют механизмы внешнего слежения за состоянием собственного кэша с соответствующими аппаратными интерфейсами. Для поддержания согласованности данных кэша и основной памяти процессор отрабатывает циклы слежения (Snoop Cycle или Inquire Cycle), инициированные внешней для него системой. В этих циклах, происходящих при обращении к памяти со стороны внешнего абонента, процессор определяет присутствие затребованной области в своем собственном кэше. Если область отображается в кэше, то действия процессора зависят от состояния соответствующей строки кэша и типа внешнего обращения: обращение по записи вызовет аннулирование данной строки; обращение по чтению к области, соответствующей модифицированной («грязной») строке, – выгрузку ее содержимого в основную память, прежде чем внешний абонент выполнит реальное считывание. В процессорах Р6 обращение к «грязной» строке со стороны другого процессора может вызывать выгрузку ее содержимого непосредственно в обращающийся процессор, что

104

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

Кэш процессоров, начиная с Pentium, поддерживает протокол MESI, названный по определяемым им состояниям М (Modified), E (Exclusive), S (Shared), I (Invalid). Первичный кэш инструкций реализует протокол лишь в части «SI», поскольку он не допускает записи. Существуют различные состояния строк для каждого процессора [13]:

М-состояние – строка присутствует в кэше только этого процессора и модифицирована, то есть отличается от содержимого основной памяти; запись в эту строку не приведет к генерации внешнего по отношению к локальной шине цикла обращения;

Е-состояние – строка присутствует в кэше только этого процессора, но не модифицирована (ее копия в основной памяти действительна); запись переведет ее в М-состояние, не вызывая внешнего цикла обращения оперативной памяти;

S-состояние – строка присутствует в кэше этого процессора и потенциально может присутствовать в кэшах других процессоров (копия в памяти действительна); запись в нее должна сопровождаться сквозной записью в основную память, что повлечет аннулирование соответствующих строк в других кэшах;

I-состояние – строка отсутствует в кэше, ее чтение может привести к генерации цикла заполнения строки; запись в нее будет сквозной и выйдет на внешнюю шину.

В процессорах шестого поколения в связи с их «беспорядочностью» и «спекулятивностью» обращения к памяти могут производиться с различными методами повышения эффективности. По возможностям кэширования память можно классифицироватьследующим образом [13]:

некэшируемая память UС (Uncacheable). Все обращения процессора по чтению и записи выполняются строго в порядке, предписанном программным кодом, и выходят на системную шину. Никакие спекулятивные чтения и предварительные выборки не используются. Такой тип требуется для ввода-вывода, отображенного на память. Работа процессора в этом режиме с обычным ОЗУ приведет к значительному снижению производительности;

105

память с комбинируемой записью WC (Write Combining).

Некэшируемая память, когерентность памяти не поддерживаются протоколом шины. Спекулятивное чтение допустимо, записи могут комбинироваться и откладываться до любого события, вызывающего сериализацию (инструкция CPUID – обращение к некэшируемой памяти, прерывание и др.). Такой тип применим, например, для видеопамяти графического адаптера (порядок записей не важен);

память со сквозной записью WT (Write-through). Кэши-

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

память с обратной записью WB (Write-back). Кэшируемая память, все операции чтения и записи по возможности выполняются только с кэш-памятью. Запись на системную шину выходит только при необходимости освобождения строк или по требованию от других абонентов шины, что уменьшает необязательный трафик шины. Спекулятивное чтение и комбинирование записи разрешено. Этот тип самый производительный, но требует поддержки протокола обеспечения когерентности от всех абонентов шины, обращающихся к данной области памяти;

память с защищенной записью WP (Write protected). Кэ-

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

Доступные методы кэширования зависят от возможностей процессора. Базовые методы (сквозная и обратная запись или отмена кэширования) управляются атрибутами системы управления страничной переадресации, более совершенные методы программируются только через регистры MTRR (Memory Type Range Registers – регистры, описывающие свойства областей

106

памяти) или PAT (Page Attribute Table – таблица атрибутов страниц памяти), имеющиеся в процессоре.

Вопросы для самопроверки

1.Назовите основные принципы фон-неймановской архитектуры вычислительных машин.

2.Что такое LH-порядок следования байт?

3.Расскажите, как переводить числа из одной системы исчисления в другую.

4.В чем отличие ячеек памяти, портов ввода-вывода и регистров?

5.Как строится адресация ячеек памяти в реальном режиме?

6.Опишите распределение оперативной памяти в MS DOS.

7.ОпишитераспределениеоперативнойпамятивWindows 9x.

8.ОпишитераспределениеоперативнойпамятивWindows NT.

9.Что такое Conventional memory?

10.Приведите структуру UMA.

11.Что такое HMA?

12.В чем отличие EMS и XMS спецификаций?

13.В чем отличие Shadow ROM и Shadow RAM?

14.Опишите принцип работы виртуальной памяти.

15.Как осуществляется переключение задач в ОС Windows

иработа виртуальных машин?

16.Как строится адресация ячеек памяти в защищенном

режиме?

17.Что такое стек?

18.Расскажите о механизме кэширования памяти.

107

4.УПРАВЛЕНИЕ ВНЕШНЕЙ ПАМЯТЬЮ И ФАЙЛОВЫЕ СИСТЕМЫ

4.1 Характеристика устройств внешней памяти

4.1.1 Общие свойства устройств внешней памяти

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

В состав внешней памяти компьютера входят:

-накопители на жестких магнитных дисках;

-накопители на гибких магнитных дисках;

-накопители на магнито-оптических компакт-дисках;

-накопители на магнитной ленте (стримеры) и др. Внешняя память принципиально отличается от внутренней

(оперативной, постоянной и специальной) способом доступа процессора (исполняемой программы) к тому или другому виду памяти. Устройства внешней памяти оперируют блоками информации, но никак не байтами или словами, как, например, оперативная память. Блоки обычно имеют фиксированный размер, кратный степени числа 2. Блок может быть переписан из внутренней памяти во внешнюю или обратно только целиком, и для выполнения любой операции обмена с внешней памятью требуется специальная процедура (подпрограмма). Процедуры обмена с устройствами внешней памяти привязаны к типу устройства, его контроллеру и способу подключения устройства к системе (интерфейсу).

По методу доступа к информации устройства внешней памяти разделяются на устройства с прямым (или непосредственным) и последовательным доступом [12]. Прямой доступ (direct access) подразумевает возможность обращения к блокам по их адресам в произвольном порядке. Традиционными устройствами с прямым доступом являются дисковые накопители, и часто

108

в понятие «диск», или дисковое устройство» (disk device), вкладывают значение «устройство внешней памяти прямого доступа». Так, например, виртуальный диск в ОЗУ и электронный диск на флэш-памяти отнюдь не имеют круглых, а тем более вращающихся деталей. Традиционными устройствами с последовательным доступом являются накопители на магнитной ленте (tape device), они же стримеры. Здесь каждый блок информации тоже может иметь свой адрес, но для обращения к нему устройство хранения должно сначала найти некоторый маркер начала ленты (тома), после чего последовательным холостым чтением блока за блоком дойти до требуемого места и только тогда производить собственно операции обмена данными. Конечно, каждый раз возвращаться на начало ленты необязательно, однако необходимость последовательного сканирования блоков (вперед или назад) – неотъемлемое свойство устройств последовательного доступа. Несмотря на очевидный проигрыш во времени доступа к требуемым данным, ленточные устройства последовательного доступа в качестве внешней памяти находят применение для хранения очень больших массивов информации. В отличие от них устройства прямого доступа – диски самой различной природы – являются обязательной принадлежностью подавляющего большинства компьютеров.

4.1.2Основные характеристики устройств внешней памяти

Главная характеристика устройств – емкость хранения (capaci-ty), измеряемая в килобайтах (Кбайт), мегабайтах (Мбайт), гигабайтах (Гбайт) и терабайтах (Тбайт), или в английской транскрипции – KB, MB, GB, ТВ соответственно. Здесь, как правило, приставки кило-, мега-, гига-, тераимеют десятичные значения – 103, 106, 109 и 1012 соответственно. В других подсистемах компьютера, например при определении объема ОЗУ, ПЗУ и другой внутренней памяти, эти же приставки чаще применяют в двоичных значениях 210, 220, 230 и 240 соответственно, при этом 1 Кбайт равен 1024 байтам, 1 Мбайт – 1024 Кбайт, 1 Гбайт – 1024 Мбайт, 1 Тбайт – 1024 Гбайт [12]. Этими разночтениями объясняются различия значений емкости одного и

109

того же устройства, полученные из разных источников. «Двоичные» кило-, мега-, гига-, тераболее «увесисты», поэтому емкость устройства, отраженная в десятичных единицах, будет выглядеть внушительнее. Например, до недавнего времени один и тот же порог «беспроблемного» объема жесткого диска составлял 528 Мбайт (десятичных) или 504 Мбайт (двоичных).

Устройства внешней памяти могут иметь сменные или фиксированные носители информации. Применение сменных носителей (remo-vable media) позволяет хранить неограниченный объем информации, а если носитель и формат записи стандартизованы, то они позволяют еще и обмениваться информацией между компьютерами. Существуют устройства с автоматической сменой носителя – ленточные карусели, дисковые устройства (JukeBox). Эти достаточно дорогие устройства применяют в мощных файл-серверах. Для настольных машин имеются накопители CD-ROM с несколькими дисками (CD-changer), сменяемыми автоматически.

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

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

Скорость записи и считывания определяется как отноше-

ние объема записываемых или считываемых данных ко времени,

110

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

(linear transfer rate read/write) производится обращение к длин-

ной цепочке блоков с последовательным нарастанием адреса. При определении скорости случайных запросов чтения-записи

(random transfer rate read/write) соседние запросы разбросаны по всему носителю, что увеличивает время записи или считывания. Для современных многозадачных ОС характерно чередующееся выполнение нескольких потоков запросов, и в каждом потоке высока вероятность последовательного нарастания адреса.

Скорость передачи данных (Transfer Speed, Transfer Rate)

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

6 Буферной памятью называется объект памяти, которым владеют одновременно два объекта, не связанные между собой.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]