Операционные системы 2011 (1114689), страница 11
Текст из файла (страница 11)
При чтенииданных из машинного слова также автоматически происходит контрольное суммированиекода, находящегося в машинном слове, а затем полученный код контрольной суммысравнивается с кодом, размещенным в поле служебной информации. Совпадение кодовговорит о том, что данные, записанные в машинном слове, не потеряны. Несовпадениеговорит о том, что произошел сбой в ОЗУ и информация, находящаяся в машинном слове,потеряна, в этом случае в процессоре происходит прерывание (прерывания будутрассматриваться несколько позднее). На Рис. 23 изображена ячейка памяти с 16-тиразрядным машинным словом и одноразрядным полем ТЕГа.
Контрольный разряддополняет код машинного слова. Вариант А: содержимое машинного слова корректное,вариант Б — ошибка. Здесь следует отметить, что одноразрядное контрольноесуммирование может "пропускать" потери пар единиц в коде машинного слова, т.е. этасхема контроля не может отлавливать чётное количество ошибок, — вариант В.Контроль доступа к командам/данным. Рассмотрим проблемы,возникающие в машинах фон Неймана. Первая — ситуация "потери" управления впрограмме, т.е. ситуация, при которой из-за ошибок в программе в качестве исполняемыхкоманд начинают выбираться процессором и исполняться данные. Вторая проявляетсятогда, когда программа из-за ошибки сама затирает свою кодовую часть: на место командзаписываются данные. Отладка подобных ошибок достаточно трудоемка, т.к.возникновение ошибки в программе и ее проявление могут быть существенно разнесеныпо коду программы и по времени проявления.
Контроль доступа к командам/даннымобеспечивает защиту от возникновения подобных проблем. Суть этого решениязаключается в следующем. Когда мы размещаем программу в памяти и генерируем код, томы сразу же «раскрашиваем» всю информацию на два цвета – машинные слова, в которыхнаходятся команды, и машинные слова, в которых находятся данные. При включенииспециального режима работы процессора запись машинных команд в оперативную памятьсопровождается установкой в ТЕГе специального кода, указывающего, что в данноммашинном слове размешена команда. Также соответствующий признак устанавливаетсяпри записи данных.
При выборке очередной команды из памяти автоматическипроверяется содержимое соответствующих разрядов ТЕГа: если в машинном словеразмещена команда, то будет продолжена ее обработка и выполнение. Если возникаетпопытка выполнения в качестве команды кода, записанного как данные, то происходитпрерывание, т.е.
фиксируется возникновение ошибки. Здесь мы видим первый случайотхода от одного из принципов организации компьютеров фон Неймана — введениеконтроля за семантикой информации, размещенной в машинном слове.Это нужно для выполнения одного из основных требований, связанных снадёжностью программирования – система должна всеми силами минимизироватьвозможные ошибки в программе пользователя. Например, ошибка, связанная с передачейуправления на область данных, может проявиться только позже, и такие ошибки ловитьочень трудно.34Рис.
23. Контроль четности.Контроль доступа к машинным типам данных. Развитием контроля засемантикой информации («раскраски информации в два цвета»), размещенной воперативной памяти, является модель доступа к машинным типам данных. Как известно,каждый компьютер имеет так называемые машинные типы данных. Это означает, чтосуществуют группы машинных команд, которые оперируют с данными одного типа(целые, вещественные с фиксированной точкой, вещественные с плавающей точкой,символьные, логические).
Т.е. при выполнении команды используемые операндыинтерпретируются согласно машинному типу данных в соответствии с типом команды.Согласно одному из принципов фон Неймана способ интерпретации информации воперативной памяти зависит исключительно от характера использования этойинформации. Т.е. любой код, записанный в машинное слово, может быть использован вкачестве кода машинной команды, если устройство управления обратилось за очереднойкомандой к этому машинному слову, и этот же код может быть проинтерпретирован каккод любого машинного типа данных, если он используется в качестве операнда командысоответствующего типа.
Контроль доступа к машинным типам данных осуществляется засчет фиксации в поле ТЕГа кода типа данных при их записи в машинное слово, а прииспользовании этих данных в качестве операндов команд осуществляется автоматическаяпроверка совпадения типа операнда и типа команды. Если они совпадают, то командапродолжает свое выполнение, если нет, то происходит прерывание. Как видим, контрольза использованием машинных типов данных является еще одним проявлением отходаархитектуры компьютеров от принципов фон Неймана.Наличие или отсутствие поля служебной информации в ячейке памяти, характерего использования зависят от конкретного типа компьютеров.
В каких-то компьютерах этополе ячейки памяти может отсутствовать, и в этом случае размер ячейки памяти совпадаетс машинным словом. В каких-то — поле со служебной информацией ячейки памяти есть ииспользуется для организации контроля за целостностью данных и корректностью ихиспользования.В ОЗУ все ячейки памяти имеют уникальные имена, имя — адрес ячейки памяти.Обычно адрес — это порядковый номер ячейки памяти (нумерация ячеек памятивозможна как подряд идущими номерами, так и номерами, кратными некоторомузначению). Доступ к содержимому машинного слова осуществляется принепосредственном (например, считать содержимое слова с адресом А) или косвенном35использовании адреса (например, считать значение слова, адрес которого находится вмашинном слове с адресом В).
Одной из характеристик оперативной памяти является еепроизводительность, которая определяет скорость доступа процессора к данным,размещенным в ОЗУ. Обычно производительность ОЗУ определяется по значениям двухпараметров.Первый — время доступа (access time — taccess) — это время междузапросом на чтение слова из оперативной памяти и получением содержимого этого слова.Второй параметр — длительность цикла памяти (cycle time — tcycle) — этоминимальное время между началом текущего и последующего обращения к памяти.Обычно, длительность цикла памяти существенно превосходит время доступа(tcycle>taccess).
Это связано с тем, что устройства памяти устроены таким образом, что послеоперации чтения многие из устройств памяти требуют регенерации (т.е. при чтенииинформация из ячейки разрушается – для того, чтобы сохранить информацию, надо еёзаписать). Реальные соотношения между длительностью цикла и временем доступазависят от конкретных технологий, применяемых для организации ОЗУ (в некоторых ОЗУtcycle/taccess>2).
Последнее утверждение говорит о том, что возможна ситуация, при которойдля чтения N слов из памяти потребуется времени больше, чем N×taccess.Вернемся к обозначенной в конце предыдущего пункта проблеме дисбалансапроизводительности аппаратных компонентов компьютера. Скорость обработки данных впроцессоре в несколько раз превышает скорость доступа к информации, размещенной воперативной памяти. Необходимо, чтобы итоговая скорость выполнения командыпроцессором как можно меньше зависела от скорости доступа к коду команды и киспользуемым в ней операндам из памяти. Это составляет проблему, которая системнымобразом решается на уровне архитектуры ЭВМ. В аппаратуре компьютера применяетсяцелый ряд решений, призванных сгладить эту разницу.
Одно из таких решений —расслоение памяти.Расслоение ОЗУ — один из аппаратных путей решения проблемы дисбаланса вскорости доступа к данным, размещенным в оперативной памяти, и производительностьюпроцессора. Суть расслоения состоит в следующем (Рис. 24, Рис. 25).Последовательностьадресовi, i+1, i+2, ..., i+K–1Общий для всехбанков контроллердоступа к памятиБанк №0Банк №1…Банк №K–1ii+1…i+K–1Рис. 24. Централизованный контроллер доступа к ОЗУ— один контроллер на все банки.Всё пространство ОЗУ делится на K независимых подустройств, которыеназываются банками памяти.
Обычно размер каждого из банков – это некоторая степеньдвойки (K = 2L). Адресация в системе организована таким образом, что младшие Lразрядов адреса содержат номер банка (Рис. 25). Подряд идущие ячейки памятираспределены между банками таким образом, что у любой ячейки ее соседи размещаются36в соседних банках (т.е. они находятся в разных банках). Что дает подобная организацияпамяти? Расслоение памяти позволяет во многом сократить задержки, возникающие из-занесоответствия времени доступа и цикла памяти при выполнении последовательногодоступа к ячейкам памяти, т.к. при расслоении ОЗУ задержки, связанные с цикломпамяти, будут возникать только в тех случаях, когда подряд идущие обращения попадаютв один и тот же банк памяти. Таким образом, расслоение памяти позволяет добитьсяувеличения скорости чтения из памяти при последовательном доступе.
Используяорганизацию параллельной работы банков, в идеальном случае, можно повыситьпроизводительность работы ОЗУ в K раз. Для этих целей необходимо использовать болеесложную архитектуру системы управления памятью.Возможны две модели организации доступа к памяти – с централизованнымконтроллером доступа к памяти (Рис. 24 – один контроллер управляет всеми банками; вэтом случае нет проблемы цикла памяти, т.к.
соседние ячейки памяти находятся в разныхбанках; но нет эффекта при параллелизме) и с контроллерами для каждого из банков(Рис. 25 – в этом случае мы можем организовывать параллельный доступ к памяти, т.е.одновременно мы можем считать порцию данных до K слов).Последовательностьадресовi, i+1, i+2, ..., i+K–1адресL разрядов дляхраненияномера банка(0…2L–1)Контроллер доступа кпамятиКонтроллербанка №0Контроллербанка №1…Контроллербанка №K–1Банк №0Банк №1…Банк №K–1ii+1…i+K–1Рис.