Структура оперативной памяти
РАЗДЕЛ 2. МАШИННО-ЗАВИСИМЫЕ СВОЙСТВА
ОПЕРАЦИОННЫХ СИСТЕМ
ТЕМА 2.1: АРХИТЕКТУРНЫЕ ОСОБЕННОСТИ
МОДЕЛИ МИКРОПРОЦЕССОРНОЙ СИСТЕМЫ
Архитектурой компьютера называется его описание на некотором общем уровне, включающее в себя описания пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д. Архитектура определяет принципы действия, информационные связи и взаимное соединение их логических узлов компьютера: процессора, оперативного ЗУ, внешних ЗУ и периферийных устройств. Общность архитектуры компьютеров обеспечивает их совместимость с точки зрения пользователя.
Классическая архитектура (архитектура фон Неймана) – одно арифметико-логическое устройство, через которое проходит поток данных, и одно устройство управления, через которое проходит поток команд – программа
Это однопроцессорный компьютер. К этому типу архитектуры относится и архитектура персонального компьютера с общей шиной. Все функциональные блоки здесь связаны между собой общей шиной, называемой также системной магистралью или системной шиной.
Рис. 6. Упрощенная архитектура типовой микроЭВМ.
Системная магистраль (системная шина) включает в себя три многоразрядных шины: шину данных, шину адреса и шину управления.
Шина данных. По этой шине данные передаются между различными устройствами. Например, считанные из оперативной памяти данные могут быть переданы процессору для обработки, а затем полученные данные могут быть отправлены обратно в оперативную память для хранения. Таким образом, данные по шине данных могут передаваться от устройства к устройству.
Разрядность шины данных определяется разрядностью процессора, т.е. числом двоичных разрядов, которые процессор обрабатывает за один такт. Разрядность процессоров постоянно увеличивается и в настоящее время составляет 64 бит.
Шина адреса. Выбор устройства, или ячейки памяти, куда пересылаются или откуда считываются данные по шине данных, производит процессор. Каждое устройство, или ячейка оперативной памяти, имеет свой адрес. Адрес передается по адресной шине, причем сигналы по ней передаются в одном направлении: от процессора к оперативной памяти и устройствам (однонаправленная шина).
Разрядность шины адреса определяет адресное пространство процессора, т. е. число ячеек оперативной памяти, которые могут иметь уникальные адреса.
Шина управления. По шине управления передаются сигналы, определяющие характер обмена информацией по магистрали. Сигналы управления определяют, какую операцию, считывание или запись информации из памяти нужно производить; синхронизирует обмен информацией между устройствами и т.д.
Периферийные устройства (принтер и др.) подключаются к системной магистрали через специальные контроллеры.
Структура оперативной памяти.
Основная память содержит оперативное (RAM - Random Access Memory - память с произвольным доступом) и постоянное (ROM - Read-Only Memory) запоминающие устройства.
Основная (оперативная) память– единственная крупная часть памяти, к которой процессор имеет непосредственный доступ. Содержимое основной памяти не сохраняется после перезагрузки системы или после выключения компьютера.
Внешняя (вторичная) память– расширение основной памяти, обеспечивающее функциональность устойчивой (сохраняемой) памяти большого объема.
Оперативная память (ОЗУ) – память с произвольным доступом – это быстрое запоминающее устройство не очень большого объема, непосредственно связанное с процессором и предназначенное для записи, считывания и хранения выполняемых программ и данных, обрабатываемых этими программами.
Название «оперативная» память получила потому, что она работает очень быстро, так что процессору не приходится ждать при чтении данных из памяти или записи в память. Однако содержащиеся в ней данные сохраняются, пока компьютер включен; при выключении компьютера содержимое оперативной памяти стирается (за некоторыми исключениями).
ОЗУ - энергозависимая память: при отключении напряжения питания информация, хранящаяся в ней, теряется. Основу ОЗУ составляют большие интегральные схемы, содержащие матрицы полупроводниковых запоминающих элементов (триггеров). Запоминающие элементы расположены на пересечении вертикальных и горизонтальных шин матрицы; запись и считывание информации осуществляются подачей электрических импульсов по тем шинам матрицы, которые соединены с элементами, принадлежащими выбранной ячейке памяти.
Структурно основная память состоит из миллионов отдельных ячеек памяти емкостью 1 байт каждая. Общая емкость основной памяти современных ПК обычно лежит в пределах от 1 до 32 Мбайт. Емкость ОЗУ на один-два порядка превышает емкость ПЗУ: ПЗУ занимает 128 (реже 256) Кбайт, остальной объем - это ОЗУ.
Оперативная память (RAM – Random Access Memory – память с произвольным доступом) представляет собой множество ячеек, причем каждая ячейка имеет свой уникальный двоичный адрес (нумерация ячеек начинается с нуля). Каждая ячейка памяти имеет объем 1 байт, следовательно, максимальный объем адресуемой памяти для процессоров равен 4 294 967 296 байт = 4 194 304 Кбайт = 14096 Мбайт = 4 Гбайт.
Основная память в соответствии с методами доступа и адресации делится на отдельные, иногда частично или полностью перекрывающие друг друга области, имеющие общепринятые названия. В частности, укрупненно логическая структура основной памяти ПК обшей емкостью, например, 16 Мбайт представлена на рис.7.
Рис. 7. Распределение 1-Мбайтной области ОП
В качестве вторичной памяти чаще всего используются жесткие диски (hard disks).Физически они состоят из твердых пластин из металла или стекла, покрытых магнитным слоем для записи. Поверхность диска логически делится на дорожки (tracks),которые, в свою очередь, делятся на секторы.Контроллер диска определяет логику взаимодействия между устройством и компьютером.
Устройство жесткого диска показано на рис. 8.
Рис. 8. Устройство жесткого диска.
Как видно из рисунка, цилиндр- это группа вертикально расположенных друг под другом секторов различных магнитных дисков с одним и тем же номером дорожки.
Системы памяти организованы в иерархию, исходя из их быстродействия, стоимости и возможности сохранения информации (устойчивости). Для оптимизации работы памяти любого вида используется ассоциативная память (кэш – cache),размещаемая в более быстродействующих системах памяти и хранящая наиболее часто используемые элементы более медленной памяти. С этой точки зрения, оперативную память можно рассматривать как кэш для внешней памяти. Кэш-память – это, по сути дела, ассоциативный список пар (Адрес, Значение),причем аппаратный поиск в ней происходит по адресу как по ключу. Таким образом, перед обращением к медленной внешней памяти сначала происходит поиск по заданному адресу в кэш-памяти, и только если он не привел к успеху, выполняется стандартное обращение к внешней памяти. Принцип кэширования очень важен и позволяет существенно ускорить работу со внешней памятью. Однако он требует реализации специальной политики управления кэш-памятью, так как кэширование вводит дополнительный уровень в иерархии памяти и требует согласованности данных, хранимых одновременно на разных уровнях памяти. Аппаратура и ОС поддерживают кэш команд, кэш данных, кэш жесткого дискаи т.д. – для всех видов памяти.
Иерархия устройств памяти (в упрощенном виде) показана на рис. 9.
Рис. 9. Иерархия устройств памяти.
Более быстрые виды памяти на схеме расположены выше, более медленные – ниже. Схема особых комментариев не требует. Некоторые часто используемые виды внешней памяти:
- флэш-память (флэшка)– внешняя память компактного размера, модуль которой подключаются через USB-порт. Параметры: объем - до 128 гигабайт и более; скорость обмена через порт USB 2.0: 240 – 260 мегабит в секунду;
- внешний жесткий диск (ZIP driveи другие) – объем до 1 терабайта; работает также через порт USB;
- BluRay – диски– новая разновидность компакт-дисков большой емкости (односторонние – 25 гигабайт, двусторонние – 50 гигабайт). Для сравнения, стандартная емкость диска DVD составляет 4.7 гигабайт;
- Кэш-память - очень быстрое запоминающее устройство небольшого объема, которое используется при обмене данными между процессором и оперативной памятью для компенсации разницы в скорости обработки информации процессором и несколько менее быстродействующей оперативной памятью.
Кэш-памятью управляет специальный контроллер, который, анализируя выполняемую программу, пытается предвидеть, какие данные и команды вероятнее всего понадобятся в ближайшее время процессору, и подкачивает их в кэш-память, ( от англ.Cache - тайный склад).
Для доступа к данным существуют следующие виды адресации:
1) Непосредственная адресация
При непосредственной адресации операнд располагается непосредственно в адресном поле команды.
2) Прямая адресация;
При прямой адресации обращение к операнду производится по адресному коду в поле команды. При этом исполнительный адрес совпадает с адресом кода команды.
Рис. 10. Прямая адресация
3) Косвенная адресация
При косвенной адресации код команды указывает адрес ячейки памяти, в которой находится не сам операнд, а его адрес, называемый указателем.
Рис. 11. Косвенная адресация.
Операционная система оперирует командами.
Команда – это описание элементарной операции, которую должен выполнить компьютер.
Машинная команда состоит из двух частей: операционной и адресной.
Операционная часть команды – это группа разрядов в команде, предназначенная для представления кода операции машины.
Адресная часть команды – это группа разрядов в команде, в которых записываются коды адреса (адресов) ячеек памяти машины, предназначенных для оперативного хранения информации, или иных объектов, задействованных при выполнении команды. Часто эти адреса называют адресами операндов, т.е. чисел, участвующих в операции.
По числу адресов, записываемых в команде, команды подразделяются на трех-, двух-, одноадресные и безадресные (рис.12).
Трехадресная команда | КОП | А1 | А2 | А3 |
Двухадресная команда | КОП | А1 | А2 |
Одноадресная команда | КОП | А1 |
Рис. 12. Виды команд.
В трехадресной команде:
al и а2 – адреса ячеек (регистров), где расположены соответственно первое и второе числа, участвующие в операции;
аЗ – адрес ячейки (регистра), куда следует поместить число, полученное в результате выполнения операции.
В двухадресной команде:
al – это обычно адрес ячейки (регистра), где хранится первое из чисел, участвующих в операции, и куда после завершения операции должен быть записан результат операции;
а2– обычно адрес ячейки (регистра), где хранится второе участвующее в операции число.
В одноадресной команде:
al – в зависимости от модификатора команды может обозначать либо адрес ячейки (регистра), где хранится одно из чисел, участвующих в операции, либо адрес ячейки (регистра), куда следует поместить число – результат операции.
Безадресная команда содержит только код операции, а информация для нее должна быть заранее помещена в определенные регистры машины (безадресные команды могут использоваться только совместно с командами другой адресности).
Команды хранятся в ячейках памяти в двоичном коде.
Выполнение команды разбивается на следующие этапы:
1) из ячейки памяти, адрес которой хранится в счетчике команд, выбирается очередная команда; при этом содержимое счетчика команд увеличивается на длину команды;
2) выбранная команда передается в устройство управления (УУ) на регистр команд;
3) устройство управления расшифровывает адресное поле команды;
4) по сигналам УУ операнды считываются из памяти и записываются в АЛУ на специальные регистры операндов;
5) УУ расшифровывает код операции и выдает в АЛУ сигнал выполнить соответствующую операцию над данными;
6) результат операции либо остается в процессоре, либо отправляется в память, если в команде был указан адрес результата;
7) все предыдущие этапы повторяются до команды «стоп».
Память состоит из отдельных элементов, каждый из которых предназначен для хранения минимальной единицы информации – одного байта. Каждому элементу соответствует уникальный числовой адрес. Первому элементу присвоен адрес 0, второму – 1 и т. д., включая последний элемент, адрес которого определяется общим количеством элементов памяти минус единица. Обычно адрес задается шестнадцатеричным числом (в тексте шестнадцатеричные числа помечаются заглавной H например 10H).
Сегменты. Процессор компьютера делит память на блоки, называемые сегментами. Каждый сегмент занимает 64 Кбайт и каждому сегменту соответствует уникальный числовой адрес. Процессор имеет четыре регистра сегмента.Регистр – это участок сверхоперативной памяти процессора, предназначенной для хранения информации. Регистры сегмента предназначены для хранения адресов отдельных сегментов. Они называются CS (сегмент кода), DS (сегмент данных), SS (сегмент стека) и ES (запасной сегмент).
Кроме указанных, процессор имеет еще 9 регистров, а именно – регистры IP (указатель команды) и SP (указатель стека). Регистры CS и IP в паре составляют длинный адрес команды, которая будет выполняться следующей. Регистры SS и SP в паре составляют длинный адрес стека.
Доступ к памяти. Доступ к ячейкам памяти осуществляется посредством соединения содержимого регистра сегмента с содержимым того или другого регистра. Таким образом, определяется адрес требуемого участка памяти. Например, адрес следующей команды определяется содержимым регистров CS и IP (записывается «CS:IP»). После выполнения команды и ее удаления из памяти содержимое IP изменяется так, чтобы в регистрах CS IP находился адрес команды, которая будет выполнена после данной.
Способ объединения регистров для определения адреса ячейки памяти не накладывает ограничений на количество доступной памяти.
Сегментные регистры. Сегментные регистры используются при идентификации сегмента памяти. Сегментные регистры применяются в комбинации с регистром указателя или индексными регистрами и в этом случае идентифицируют конкретную ячейку памяти.
Всего сегментных регистра четыре. Регистр CS обычно используется при идентификации блока памяти, в котором хранится код программы. Регистр DS– при идентификации участка памяти, в котором находятся данные этой программы. С помощью регистра SS организуется доступ к стеку. (Стек – это временно выделенная область памяти,) Регистр ES – дополнительный (или запасной) сегментный регистр. На него возложены разнообразные функции, часть из которых рассматривается ниже.
Регистры стека. Имеются два регистра стека. Они применяются в комбинации с регистром SS и определяют местонахождение стека. Регистр SP называется указателем начала стека и в комбинации с регистром SS идентифицирует первый байт стека. Регистр BP называется указателем базы стека и в комбинации с регистром SS идентифицирует последний байт стека.
Индексные регистры. Индексных регистров тоже два. Регистры SI и DI применяются в комбинации с одним из сегментных регистров и определяют местонахождение конкретной ячейки памяти. Регистр si обычно комбинируют с регистром ds, регистр di – с регистром es.
Регистры общего назначения. К регистрам общего назначения (их четыре) относятся регистры ах, вх, сх и dx. Это многофункциональные регистры.
Регистр указателя команды. Регистр IP обычно применяется в комбинации с регистром CS и определяет адрес следующей команды.
Регистр флагов состояния. В регистре флагов обычно находятся девять флагов состояния процессора (каждый флаг занимает 1 бит). Эти флаги определяют результат конкретных операций, выполняемых под управлением OS.
Регистры памяти. Регистр памяти включает 2 байта данных (или 16 битов). Реально регистры общего назначения однобайтовые. Так, регистр ах включает регистр АН (который составляет старший байт регистра ах) и регистр AL (который составляет младший байт регистра ах). Аналогично регистры вн, BL, сн, CL, DH и dl – однобайтовые.
ОС поддерживает мультипрограммирование и старается эффективно использовать ресурсы, путем организации к ним очередей запроса, которые составляются тем или иным способом. Это требование достигается содержанием в памяти более одного процесса ожидающего процессор и более одного процесса готового использовать другие ресурсы. Общая схема выделения ресурсов такова: при необходимости использовать какой-либо ресурс, ОЗУ, устройство ввода/вывода процесс обращается к супервизору ОС. Супервизор ОС – центральный управляющий модуль ОС, который может состоять из нескольких модулей например, супервизор ввода/вывода, супервизор прерываний, супервизор программ, диспетчер задач и т. п.
Задача посредством специальных вызовов команд или директив сообщает о своем требовании супервизору ОС, при этом указывается вид ресурса и если надо его объем. Директива обращения к ОС передает ей управление, переводя процессор в привилегированный режим работы (если такой существует).
Не все ОС имеют 2 режима работы. Режимы работы бывают привилегированными (режим супервизора), пользовательскими, режим эмуляции.
Ресурс может быть выдан задаче по ее запросу если:
1. Ресурс свободен и в системе нет запросов от задач более высокого приоритета к этому ресурсу.
2. Текущий запрос и ранее полуученый запросы допускают совместное использование ресурса.
3. Ресурс используется задачей более низкого приоритета и может быть временно отобран.
Получив запрос, ОС либо удовлетворяет его и возвращает управление задаче, выдавшей сей запрос, либо, если ресурс занят, ставит задачу в очередь к ресурсу. Переводя задачу в состояние ожидания (блокируя) очередь к ресурсу может быть организована несколькими способами. Но чаще всего с помощью специальной структуры. После окончания работы с ресурсом задача опять с помощью специального вызова супервизора сообщает ОС об отказе от ресурса, или ОС забирает ресурс сама, если управление возвращается к супервизору после выполнения какой-либо системной функции.