
- •Основные понятия.
- •Понятие архитектуры и организации эвм.
- •Обобщенное понятие архитектуры.
- •Виды архитектуры эвм и их составные элементы.
- •Краткое представление основных элементов прикладной архитектуры компьютеров. Типы, форматы и способы представления данных, аппаратно поддерживаемых в эвм.
- •Для числовых данных необходимо представлять диапазон и точность. Программная модель (регистровая структура) процессора.
- •1) Полная специализация регистров, когда каждый регистр используется только по одному специальному назначению.
- •2) Полная универсализация, когда каждый регистр можно использовать по любому назначению.
- •Регистр ip (Instruction Pointer).
- •Регистр fr (Flag Register).
- •If (Interrupt Flag) – Флаг Прерывания
- •Адресная структура основной памяти и принципы размещения информации в ней. Принципы формирования физического адреса.
- •Режимы адресации.
- •Структура и форматы машинных команд.
- •Базовая система команд.
- •1. Поддержка защищённого режима (i286).
- •3. Включение в Pentium блока mmx (Multimedia Extension), система команд, которая содержит порядка 60 команд для поддержки принципа векторной обработки на уровне целочисленных данных.
- •Внедрение в кристалл процессора блока sse (sse2)
- •Cisc- и risc – архитектура.
- •Основные особенности risc – архитектуры.
- •Стремление к выполнению большинства машинных команд за 1 машинный такт (машинный цикл).
- •Широкое использование принципов суперскалярной и суперконвейерной обработки.
- •Команды загрузки и сохранения системных регистров.
- •Команды ввода/вывода: in/out, ins/outs.
- •Команда останова процессора - hlt.
- •Упрощенная структура компьютера (эвм).
- •1. Центральную;
- •2. Периферийную.
- •Организация ввода/вывода. Понятие, основные характеристики и уровни представления интерфейса.
- •1) Совокупность линий, шин, обеспечивающих обмен информацией между устройствами.
- •2) Алгоритм (протокол) обмена, определяющий последовательность организации передачи информации по линиям интерфейса.
- •3) Разделение интерфейса на ряд уровней представлений.
- •Основные характеристики интерфейса:
- •Пропускная способность определяется максимальным количеством бит или байт данных, передаваемых по интерфейсу за одну секунду.
- •Информационная ширина (количество бит или байт данных, передаваемых параллельно по шине данных, т.Е. Разрядность линии).
- •Максимально возможное удаление устройств, подключаемых к интерфейсу.
- •Шины (интерфейсы) персональных компьютеров на базе процессоров Pentium.
- •Основные аспекты организации ввода/вывода.
- •1.Структура компьютера в плане организации связей между ядром и периферийными устройствами:
- •2. Адресация к ву или пу. Основным аспектом, связанным с адресацией ву, является объединение или разделение адресных пространств памяти и ввода/вывода.
- •3.Способ организации ввода/вывода:
- •Адресация ву.
- •Способы адресации портов ввода/вывода и их сравнительный анализ.
- •Раздельное адресное пространство.
- •Единое адресное пространство.
- •Организация ввода/вывода с отображением на память обладает следующими достоинствами:
- •Недостатками использование совмещенного адресного пространства являются:
- •Способы организации ввода/вывода.
- •Ввод/вывод по прерыванию.
- •Прямой доступ к памяти – dma (Direct Memory Access).
- •2) Стандартные контроллеры dma позволяют реализацию следующих видов обмена:
- •В современных моделях пк для обмена с жесткими дисками наряду с dma также используется и pio. Канальный ввод/вывод (квв).
- •Основные функции квв:
- •Функции по установлению логической связи между ву и оп.
- •2) Функции, связанные с непосредственной передачей данных между ву и оп.
- •3) Функции, связанные с завершением обмена и разрушением логической связи между ву и оп.
- •Участие цп в организации квв сводится к выполнению следующих функций:
- •Классификация квв.
- •Сравнение Канального вв с pio и с dma.
- •Организация прерываний. Основные отличия организации прерываний в защищенном режиме по сравнению с реальным режимом.
- •Программируемый контроллер прерываний (pic i8259a).
- •Основные функции pic.
- •Внутренняя структура pic.
- •Шифратор выделенного запроса.
- •Основные режимы работы pic.
- •1) Fnm (Fully Nested Mode – Режим вложенных прерываний).
- •Взаимодействие между cpu и ведущим pic.
- •Основы программирования pic.
- •Приказы инициализации.
- •Icw1 имеет следующий формат:
- •Icw2 определяет базовый адрес последовательности векторов прерываний, размещаемых в таблице векторов прерываний. Собственно, под базовый адрес отводятся старшие 5 битов приказа(3-7).
- •Icw4 Наиболее важным битом приказа icw4 является бит 1, именуемый aeoi – Automatic End Of Interrupt.
- •Слова рабочих приказов.
- •Установка и отмена так называемого режима специального маскирования;
- •Установка и сброс режима опроса (полинга);
- •Разрешение чтения регистров irr и isr контроллера.
- •Организация центральных процессоров.
- •Как обрабатывающее устройство: цп осуществляет выполнение программ, связанных с какой-либо обработкой данных.
- •Как управляющее устройство: цп осуществляет координацию остальных устройств компьютера, а также связь компьютера с внешним миром.
- •Принципы построения и функционирования конвейеров команд.
- •Сравнение производительности последовательного процессора (без конвейера команд) и «параллельного» процессора (с конвейером команд).
- •Наличие в программах зависимостей по данным (конфликты по данным).
- •Использование различными блоками конвейера одного и того же ресурса (структурные конфликты).
- •Наличие при выполнении программы особых случаев, приводящих к прерыванию.
- •Различное время выполнения отдельных фаз машинных команд.
- •Большой разброс длительности фазы ех для различных машинных команд. Основные действия, выполняемые процессором на различных фазах (этапах) команды.
- •Санкт-Петербург
- •1. Принципы построения и функционирования компьютеров
- •1.1. Назначение компьютеров и принцип программного управления
- •1.2. Неймановский принцип программного управления
- •1.3. Структура компьютеров
- •1.4. Запоминающие устройства и организация памяти
- •1.5. Организация ввода-вывода данных
- •1.6. Принцип многоуровневой реализации функций
- •Программа
- •Аппаратура компьютера
- •2. Характеристики и классификация компьютеров
- •2.1. Характеристики компьютеров
- •2.2. Программно-аппаратный интерфейс и интерфейс прикладных программ
- •2.3. Быстродействие и производительность компьютеров
- •2.4. Емкость памяти
- •2.5. Надежность компьютеров
- •2.6. Стоимость компьютеров
- •2.7. Классификация компьютеров
- •Оглавление Предисловие 3
- •Принципы построения и функционирования компьютеров 7
- •Характеристики и классификация компьютеров 25
- •3.Архитектура компьютеров
- •3.1.Машинные слова и байты
- •3.2.Коды с обнаружением и исправлением ошибок
- •3.3. Представление данных в компьютерах
- •3.4. Способы адресации данных
- •3.5. Операции, выполняемые компьютерами
- •3.6. Системы команд компьютеров
- •3.7. Режимы работы компьютеров
- •3.8. Средства мультипрограммирования
- •3.10. Привилегированные операции и состояния процессора
- •3.11. Организация прерывания программ
- •3.12. Средства защиты памяти
- •4. Структура операционных устройств компьютера
- •4.1. Принцип микропрограммного управления операционными устройствами
- •4.2. Каноническая структура процессора
- •4.3. Конвейерные процессоры
- •5. Организация памяти компьютеров
- •5.1. Организация виртуальной памяти
- •5.2. Организация кэш-памяти
- •5.3. Организация raid – массивов
5. Организация памяти компьютеров
5.1. Организация виртуальной памяти
В 1961 году группа исследователей из Манчестера (Англия) предложила способ автоматического перемещения сегментов программ и данных между оперативной и внешней памятью компьютера, т.е. между полупроводниковой памятью и накопителями на магнитных дисках. Автоматизм перемещения сегментов в многоуровневой памяти обеспечивается за счет использования ресурсов аппаратуры и операционной системы компьютера. Построенная таким образом память, объединяющая в себе и оперативную, и внешнюю память была названа виртуальной (фиктивной, кажущейся) памятью. За счет использования оперативной памяти была решена проблема объединения в единую систему оперативной памяти и накопителей на магнитных дисках, в результате чего программисты получили возможность работать с очень большими адресными пространствами – от 4 Гигабайт. При этом виртуальная память обеспечивает равнодоступность любых адресов команд и данных.
Страничная организация виртуальной памяти. Чтобы быть конкретными, рассмотрим виртуальную память, в которой любой исполнительный адрес, формируемый на основе данных, содержащихся в команде, является 32-х разрядным, т.е. состоит из 32 бит. В 64-х разрядных серверах и суперкомпьютерах адреса имеют большую длину и позволяют адресовать еще больший объем памяти.
Равнодоступность слов данных должна быть физически реализована путем встраивания в компьютер средств, обеспечивающих, во-первых, преобразование виртуальных адресов в адреса ячеек, и, во-вторых, передачу слов данных в оперативную память, если адресуемое слово на момент обращения к нему размещается вне оперативной памяти. Таким образом, в физическом отношении, виртуальная память – это совокупность оперативной и внешней памяти, охваченных средствами преобразования виртуальных адресов в физические адреса ячеек и средствами, автоматизирующими перемещение данных между устройствами памяти.
Процессы преобразования адресов и перемещения данных наиболее просто реализуются при страничной адресации памяти. Метод страничной адресации состоит в следующем. Множество адресов (слов, ячеек) разделяется на сегменты, состоящие из, например, 212 соседних адресов и называемые страницами. Так, адреса 0, 1, …,212 - 1 относятся к странице 0, адреса 212, 212 + 1, …,213 - 1 – к странице 1 и т.д. В результате этого адрес рассматривается как совокупность двух полей
Здесь P – адрес страницы, принимающий значения 0, 1, …, 220 – 1, и А – адрес байта в странице Р , принимающий значения 0, 1, …, 4096.
Применительно к виртуальной памяти выделяются два типа адресов: виртуальные и физические. Виртуальный адрес - это адрес, которым идентифицируется некоторое слово в программе. Виртуальный адрес имеет структуру (5.1). Физический адрес – это адрес ячейки памяти. Физические адреса имеют структуру, совпадающую с (5.1), но поля адреса идентифицируются следующим образом:
Здесь S – адрес сегмента, принимающий значения 0, 1, …, 220 – 1, и А – адрес байта в сегменте S. Таким образом, страница – совокупность из 212 байтов, а сегмент - совокупность из 212 байтов, являющихся местом хранения страницы.
В процессе решения задачи страницы перемещаются между оперативной и внешней памятью. Если вычислительный процесс распределяется на страницу Р, то она вызывается в оперативную память. Когда надобность в данных, заключенных в странице Р отпадает, она удаляется из оперативной памяти во внешнюю память, освобождая место для других страниц. В результате перемещения страница Р может быть помещена в любой сегмент памяти.

Текущее состояние памяти компьютера характеризуется таблицей страниц, структура которой приведена в табл. 5.1. Отдельной странице Р = 0, 1, 2, … соответствует одна строка таблицы, в которой указываются параметры, характеризующие страницу Р. Значение SР определяет адрес сегмента SР = 0, 1, 2, …, в котором размещается страница Р, иначе говоря, физический адрес страницы Р. Бит dp называется признаком доступности страницы P. Если страница Р размещается в оперативной памяти, то dp = 1, поскольку эта страница доступна для процессора. Если страница Р хранится во внешней памяти, то бит доступности dp = 0. Таблица страниц размещается в оперативной памяти и в любой момент времени доступна процессору.

Порядок использования таблиц страниц для отображения виртуальных адресов иллюстрируется рис. 5.1. Таблица страниц должна содержать все данные о состоянии всех сегментов, относящихся к инициируемой программе, данным, которые будут обрабатываться программой, и прочей информации, относящейся к программе. Поскольку и программа, и множество данных, которое обрабатывает программа, ограничены, то таблица страниц также ограничена, т.е. содержит конечное число строк. Физически страницы могут размещаться как в оперативной памяти, где они доступны для процессорной обработки, так и во внешней памяти – в накопителях на магнитных дисках (см. рис. 5.1.). В рассматриваемом примере таблица страниц определяет, что страницы с адресами 0, 212, 1 и 2 доступны для процессорной обработки, а страница с адресом 32875 находится в накопителе на магнитных дисках и недоступна процессору.
Способы преобразования виртуальных адресов. Команды и слова данных идентифицируются в программе своими виртуальными адресами. Для обращения к слову необходимо преобразовать виртуальный адрес в физический, для чего в процессор встраивается схема преобразования адресов.

Наиболее простая схема преобразования адресов изображена на рис. 5.2. Виртуальный адрес слова определяется путем нахождения адреса ячейки, указанного в команде. Для нахождения адреса ячейка, где хранится слово, производится обращение к ячейке (В + Р) оперативной памяти, где В – фиксированный базовый адрес таблицы страниц, и выбираются значения Sd и dp, описывающие страницу Р. Если dp = 0, то в данный момент времени страница P недопустима для обработки. По этой причине работа процессора прерывается сигналом d = 0 и управление передается средствам перемещения страниц. Если dp = 1 , то S : = Sp и производится обращение к ячейке S.A оперативной памяти.
Указанный способ преобразования адресов требует для своей реализации незначительного количества оборудования, но приводит к увеличению затрат времени на обработку команд. Действительно, каждое обращение к слову требует дополнительного обращения к памяти с целью выборки информации из таблицы, в результате чего быстродействие процессора уменьшается. Затраты времени на преобразование адресов можно снизить, если использовать для хранения таблицы страниц специальное запоминающее устройство, встроенное в процессор, которое при маленькой емкости будет иметь высокое быстродействие, в десятки раз большее быстродействия оперативной памяти.
Для обеспечения малых затрат времени на преобразование виртуальных адресов в физические адреса в процессор встраивается модуль управления памятью, который является операционным устройством, выполняющим следующие функции:
загрузку из таблицы страниц в ячейки специального запоминающего устройства физических адресов страниц;
преобразование виртуальных адресов страниц в физические адреса.

В качестве запоминающего устройства модуля управления памятью используется ассоциативное запоминающее устройство небольшой емкости – обычно емкостью в 8 или 16 слов. Каждая ячейка ассоциативного запоминающего устройства имеет следующую структуру (рис. 5.3).Поскольку рабочее множество страниц невелико и в множество могут быть загружены самые различные виртуальные страницы, виртуальный адрес Р сравнивается со всеми адресами Рα. Если адреса Р и Рα имеют одинаковое значение, то значение физического адреса Sα выбирается из ячейки α и используется в качестве физического адреса стрвницы. Если же виртуальный адрес страницы Р не совпадает ни с одним из адресов Р0, Р1, РL, то фиксируется промах в ассоциативном запоминающем устройстве и производится об ращение к таблице страниц, в которой размещается вся информация о программе и данных. Естественно, что при полной занятости емкости ассоциативного запоминающего устройства, одна из его ячеек должна быть выделена для загрузки в нее данных о новой затребованной странице из таблицы страниц. Для решения задачи о выделении одной из ячеек ассоциативного запоминающего устройства для загрузки в нее новых данных о странице используется управляющее поле УПα, в котором хранятся данные о занятости и об интенсивности использования ячейки α.
Схема и функциональная микропрограмма преобразования виртуальных адресов в физические адреса представлена на рис. 5.4 и рис. 5.5.
В ячейках α = 0, 1, … ассоциативного запоминающего устройства размещаются описания страниц Р0, Р1, …, РL, хранимых в таблице страниц оперативной памяти. Виртуальные адреса Р0, Р1, …, РL размещены в адресном поле АП. В рабочем поле РП представлены физические адреса S0, …, SL этих страниц , причем все физические адреса Sα принадлежат оперативной памяти. Управляющее поле УП состоит из признаков занятости z0, …, zL ячеек 0, …, L и признаков активности t0, …, tL этих ячеек. Бит zα = 0, если ячейка α ассоциативного запоминающего устройства свободна (не содержит описания страницы), и zα = 1, если описание
некоторой страницы загружено в ячейку α. Значение признака активности страницы tα определяется числом обращений к странице α. При каждом обращении к странице α значение признака активности страницы увеличивается на единицу: tα := tα + 1.
Преобразование
виртуального адреса в физический адрес
выполняется в соответствии с
микропрограммой (рис. 5.5). Преобразование
начинается с проверки наличия в
ассоциативном
запоминающем устройстве описания страницы Р. Если Р Є АП, то преобразование сводится к выборке физического адреса Sα из ячейки α , в которой размещается страница Рα = Р. В противном случае местоположение страницы Р определяется обращением к таблице страниц, из которой выбирается физический адрес SР и признак доступности dp страницы Р. Если dp = 1, то страниц Р доступна и ее описание заносится в ячейку γ ассоциативного запоминающего устройства, выделяемую управляющим полем УП. Ячейка γ назначается из числа свободных ячеек, отмеченных признаком tγ = max. Заметим, что в данном случае информация, хранимая в ячейке γ, просто затирается описанием страницы, поскольку копия уничтоженного в ассоциативном запоминающем устройстве описания имеется в таблице страниц. Емкость ассоциативного запоминающего устройства выбирается исходя из предельно допустимой вероятности обращения к таблице страниц и зависит от количества страниц, отводимых задаче в таблице страниц оперативной памяти. Вероятность обращения к таблице страниц уменьшается с увеличением емкости ассоциативного запоминающего устройства и возрастает при увеличении числа страниц, принадлежащих обрабатываемой задаче. Обычно ассоциативное запоминающее устройство обслуживает не менее 90% обращений к таблице страниц, и, следовательно, затраты времени на преобразование виртуальных адресов определяются быстродействием ассоциативного запоминающего устройства.
Передача страниц виртуальной памяти. Программа может обратиться к странице, находящейся во внешней памяти. Эта ситуация выявляется схемой преобразования виртуальных адресов, которая формирует сигнал прерывания, в результате чего выполнение программы прерывается и управление передается супервизору, который инициирует программу передачи страниц. На компьютере с виртуальной памятью можно запустить программу даже тогда, когда нет ни одной страницы программы в оперативной памяти. Для запуска программы нужно указать компьютеру только таблицу страниц, в которой определено, что все виртуальные страницы находятся во внешней памяти. Когда процессор начинает выполнять первую команду, он получит сигнал прерывания, по которому затребованная страница будет передана из внешнего запоминающего устройства в оперативную память. После этого может быть выполнена первая команда программы. Постепенно в оперативную память будут переданы все затребованные процессором страницы. Таким образом в каждый момент времени существует набор страниц, которые использовались при К последних обращениях к дискам. Такой набор страниц называется рабочим множеством. Рабочее множество страниц меняется медленно, поскольку и команды, и данные принадлежат страницам программ и страницам данных. Следовательно, рабочее множество страниц дает хорошее представление о своих свойствах и по нему легко определить какие именно страницы потребуются при каждом запуске программы в работу. Поэтому, при обращении процессора к вводу-выводу состояние рабочего множества страниц должно быть сохранено с помощью программы операционной системы.
Наиболее сложной задачей является определение страницы, которая должна быть удалена из оперативной памяти, чтобы на ее место поместить страницу, вызываемую из дисковой памяти. Если размер рабочего множества больше, чем число размещаемых в оперативной памяти страниц, то ошибки в выборе страниц для удаления из оперативной памяти возникают весьма часто. Этот эффект называется пробуксовкой процесса. Если программе выделено большое адресное пространство и имеет и она имеет небольшое по числу страниц рабочее множество, то возможность пробуксовки процесса маловероятна. Это утверждение справедливо даже для программ, использующих в сто раз больше слов виртуальной памяти, чем их содержится в физической оперативной памяти.
Наиболее широко применяется алгоритм удаления наиболее неиспользуемой страницы из оперативной памяти, называемой алгоритмом LRU (Liast Recently Used). Хотя этот алгоритм работает достаточно хорошо, в ряде случаев возникает пробуксовка процесса. Например, пусть программа выполняет большой цикл, охватывающий девять виртуальных страниц, а в ассоциативном запоминающем устройстве имеется место только для восьми страниц. Когда программа перейдет к обработке страницы семь, в оперативной памяти размещается восемь страниц с адресами 0, 1,… , 7 и требуется вызвать страницу 8 из дисковой памяти. Алгоритм LRU в качестве удаляемой назначит страницу 0 как наиболее давно используемую, и на ее место будет записана страница 8, ранее находившаяся в дисковой памяти. В результате таблица страниц перейдет в состояние 8, 1, 2, …, 7. После выполнения команд из страницы 8 управление передается в страницу 0. Этот переход приводит к удалению страницы 1, на место которой будет записана страница 0. Затем происходит обращение к странице 1, которая только что была удалена в дисковую память, и т.д. Очевидно, что в этой ситуации алгоритм LRU работает плохо, но и другие алгоритмы назначения кандидатов на удаление из оперативной памяти также плохо работают в сходных ситуациях. Однако если расширить размер рабочего множества, число ошибок из-за отсутствия страниц конечно уменьшится.
Если страница, которую следует удалить, не менялась с момента вызова ее из дисковой памяти, например, представляла собой страницу программы, то нет смысла записывать эту страницу в дисковую память, поскольку там уже есть копия удаляемой страницы. Однако если страница изменилась, то копия на диске уже не соответствует данной странице, и страницу необходимо записать на диск. Чтобы избежать ненужных записей на диск и сэкономить значительную долю времени, в большинстве компьютеров используется специальный бит, который принимает значение 0 при загрузке страницы из диска и значение 1, когда аппаратура компьютера производила запись в эту страницу. По значению этого бита операционная система определяет, производилась ли хотя бы одна запись в страницу, и нужно ли записывать страницу на диск.
5.2. Организация кэш-памяти
Быстродействие компьютера в наибольшей мере зависит от быстродействия ядра компьютера – процессора и оперативной памяти. Такт работы процессора составляет обычно 1 – 5 наносекунд и команда выполняется процессором примерно за десяток тактов. Однако для выполнения команды надо несколько раз обратиться к оперативной памяти, например, для выборки из оперативной памяти команды и для выборки операнда. Цикл обращения к оперативной памяти значительно больше такта работы процессора и составляет обычно 5 – 20 наносекунд. Таким образом, для большинства команд основная доля времени выполнения команды приходится на обращение к оперативной памяти. количество обращений к оперативной памяти можно уменьшить, если между процессором и оперативной памятью встроить сверхоперативное запоминающее устройство – кэш-память. Кэш память имеет незначительную емкость, например 256 – 2048 Кбайт, ограниченность которой позволяет обеспечить ее высокое быстродействие – длительность цикла обращения на уровне 1 –2 тактов работы процессора, т.е. в 5 – 10 раз меньше длительности цикла обращения к оперативной памяти. В ячейках кэш-памяти должны размещаться команды и слова данных, наиболее интенсивно используемые на каждом этапе решения задачи. Когда процесс обращается к ячейке памяти с адресом А, кэш должен определить наличие слова с адресом А в ячейках кэш и сформировать осведомительный сигнал x = 1, если слово с адресом А хранится в кэш. В таком случае слово будет выбрано из кэш. Если слово с адресом А в кэш отсутствует (x = 0), то необходимо обратиться к ячейке А оперативной памяти, и прочитанное слово передать в процессор и одновременно в кэш. Последующие обращения к слову с адресом А будут обслужены уже кэш без предварительного обращения к оперативной памяти. Таким образом ячейки кэш временно подменяют ячейки оперативной памяти, и кэш обслуживает обращения со стороны процессора за время меньшее, чем оперативная память. Естественно, что чем больше емкость кэш, тем выше вероятность наличия в нем слова с адресом А, т.е. тем большая доля обращений к оперативной памяти будет обслужена кэш. В результате этого быстродействие компьютера возрастает пропорционально доли обращений к памяти, обслуживаемых кэш без обращения к оперативной памяти. Кэш является прозрачным для программ, исполняемых компьютером, и абсолютно не влияет на логику построения программы. Включение и выключение кэш никак не сказывается на процессе выполнения программы и влияет только на время ее выполнения.
Конструктивно кэш память может быть встроена в процессор и работать на частоте процессора, а может быть размещена как внешняя по отношению к процессору кэш-память, работающая на частоте общей шины процессора. К сожалению, емкость кэша, всегда ограничена сложностью схем процессора, обеспечивающих хранение большого числа слов, суперскалярную обработку команд и т.д. Обычно в процессор встраивается кэш команд и кэш данных, имеющие емкость от 128 байт до 16 Кбайт каждый и называемые кэшем 1 уровня. Для увеличения производительности компьютера используется кэш 2 уровня - внешний по отношению к процессору и имеющий емкость до 2 Мбайт. В этом кэше хранятся и команды, и данные.
В кэш – памяти могут использоваться различные способы подмены ячеек оперативной памяти ячейками кэша. Наиболее часто используются два способа: кэш память с прямым отображением и кэш – память с множественным доступом.
Кэш с прямым отображением. Кэш с прямым отображением – сверхоперативное запоминающее устройство, в котором данные идентифицируются старшими разрядами адреса слова, а адрес ячейки кэша определяется младшими разрядами слова. Схема кэша, обеспечивающего преобразование 32 – разрядного адреса в физический адрес ячейки кэша, представлена на рис. 5.6.
Данный кэш обеспечивает хранение 65536 слов длиной в 32 бита, т.е. имеет емкость 256 Кбайт. Для организаций обращений к кэшу 32-х разрядный адрес разделен на три поля: поле В, адресуемое 16-ю разрядами адреса, определяет адрес ячейки кэша, в которой может хранится слово с адресом А; поле С адреса используется как признак (тэг) слова с адресом А; Младшие два бита определяют адрес байта в слове. Каждая ячейка кэша состоит из трех полей:
управляющего поля УП, в котором хранится признак наличия информации в ячейке В кэша; адресного поля АП, в котором размещается признак С слова, хранимого в ячейке В кэша; поля данных ПД, в котором хранится слово D.
Адрес А операнда, сформированный процессором на основе данных в адресной части команды, обрабатывается следующим образом. Значение в поле В определяет адрес ячейки кэша, по которому производится обращение к кэш – памяти. Из ячейки В кэша выбираются: из управляющего поля признак наличия информации dВ в ячейке; из адресного поля признак слов СВ хранимый в ячейке В; Схема сравнения сравнивает значения поля С адреса А со значением признака СВ. Если С = СВ , схема сравнения формирует сигнал 1, поступающий на элемент U, который формирует сигнал x = 1, если dВ = 1. При x = 1 слово данных D, выбранное из поля данных ПД, поступает в процессор в качестве операнда. Таким образом при наличии в ячейке В кэша обращение к памяти обслуживается в кэше без обращения к оперативной памяти.
Если же признак наличия информации в ячейке dB = 0 или С ≠ СВ, сигнал х = 0 осведомляет процессор об отсутствии в кэше слова с адресом А. В этом случае процессор должен обратиться к оперативной памяти по адресу А[31:2]. Если выполняется чтение операнда, то по окончании цикла обращения к ячейке А[31:2] слово из оперативной памяти поступает в процессор и одновременно в ячейку В кэша. Это гарантирует, что последующее обращение процессора к слову с адресом А будет обслужено кэш памятью без обращения к оперативной памяти.
При записи операндов в память необходимо обеспечить тождественность слов, хранимых в оперативной памяти, и слов, хранимых в ячейках кэша. По этой причине при записи каждого операнда слово записывается и в ячейку В кэш-памяти, и в ячейку оперативной памяти. В этом случае повторное обращение к операнду для его чтения будет обслужено кэш-памятью при сохранении идентичности данных, хранимых в оперативной памяти и кэш-памяти.
Степень увеличения быстродействия процессора за счет наличия кэш-памяти зависит от емкости кэша. Чем больше емкость кэша, тем выше вероятность того, что требуемое слово хранится в кэш памяти и, следовательно, тем меньшее количество обращения к оперативной памяти будет обслуживаться оперативной памятью. Вместе с тем, доля обращений к оперативной памяти связана со степенью локальности обращения к памяти: если компактная группа данных многократно участвует в операциях и обработка данных проходит по компактной группе команд, размещаемых в ограниченном адресном пространстве, то об ращения к данным и командам будут обслуживаться в основном кэшем. В первом приближении можно предполагать, что доля обращений, обслуживаемых кэшем, пропорциональна отношению емкости оперативной памяти к емкости кэша. Так, если емкость кэша составляет 10% от емкости оперативной памяти, то кэш обслуживает не менее 90% обращений, а оперативная память не более 10%. Таким образом, кэш память существенно буферизует количество обращений к оперативной памяти и существенно влияет на быстродействие процессора.
Количество обращений к оперативной памяти можно снизить еще более, если ввести в управляющее поле УП (см. рис. 5.6.) еще один признак – признак записи слова в кэш wB. При загрузке слова из оперативной памяти в кэш значение признака записи слова в ячейку В кэша принимается равным нулю. Если происходит запись результата процессорной обработки в кэш, то признак записи результата wB = 1. Это означает, что копия записанного в кэш результата отсутствует в настоящее время в оперативной памяти. Естественно, что все измененные при записи результатов слова должны быть записаны в оперативную память для обеспечения тождественности состояния кэша и оперативной памяти.
Кэш с множественным доступом. Можно ожидать, что с увеличением числа слов, представляемых в кэш за одно обращение к оперативной памяти, повысится производительность процессора, поскольку чтение из оперативной памяти сразу двух или четырех слов уменьшит количество обращений к памяти до двух или четырех раз. Эта идея, основанная на использовании кэша с множественным доступом, иллюстрируется укрупненной
схемой, представленной на рисунке 5.7. В данной схеме процессор обрабатывает 32 –
разрядные
слова, а оперативная память за одно
обращение читает и записывает 128 –
разрядные слова. Если при обращении к
кэшу сформирован сигнал промаха кэша
х = 0, то происходит обращение к
оперативной памяти, из которой при
чтении будет выбрано128 – разрядное
слово, поступающее в кэш и называемое
строкой кэша. Для 32 – разрядного
слова, поступающего в процессор, служит
мультиплексор, который реагирует на
сигнал уi
= 1, формируемый управлением кэша, и
передает 32 – разрядное слово в процессор.
Если процессор должен записать слово
в кэш и управление кэша выдает сигнал
промаха х = 0, то перед записью слова
в кэш должна быть загружена 128 – разрядная
строка, в которую будет внесено
записываемое слово. Для формирования
управляющего сигнала yi,
i = 0, …, 3, поступающего в мультиплексор
используются разряды 2 и 3 адреса,
формируемого процессором, которые
определяют номер слова в строке кэша.
Кэш с множественным доступом устроен также, как и кэш с прямым отображением. Однако оперативная память может быть 64 – разрядной, и читать строку кэша за два обращения. Как и в кэше с прямым отображением, в управляющем поле кэша с множественным доступом могут использоваться признаки записи результатов из кэша в оперативную память.
5.3. Организация raid – массивов
В 1988 году исследователей из США предложила ряд способов построения системы из большого числа накопителей на жестких магнитных дисках, которые начали называться RAID (Redundant Array of Inexpensive Disks – Избыточный Массив Недорогих Дисков). Идея RAID весьма проста. Рядом с компьютером устанавливается RAID – массив, состоящий из RAID – контроллера и значительного числа дисков, которые обеспечивают как увеличение производительности компьютера, так и значительное увеличение надежности хранения данных. Массив дисков, подключенных к компьютеру, распознается операционной системой как один диск большой емкости. Отказоустойчивость дискового массива повышается за счет использования известных способов повышения надежности хранения данных: алгоритмов Хэмминга, циклических кодов и т.д. Дисковое пространство массива представляет собой объединение сегментов всех дисков и подразделяется на следующие уровни 0, 1, 2, …, 7, 10, 53, а также на ряд модификаций этих уровней. Наибольшее распространение получили уровни 0, 1, 2 и 5. Остальные уровни имеют гораздо меньшее распространение.
Уровни RAID. В RAID уровня 0, называемого уровнем чередования данных, каждый файл размещается на нескольких дисках, за счет чего увеличивается скорость передачи данных и, следовательно, возрастает производительность компьютера. Однако этот уровень организации RAID никак не влияет на вероятность отказа дисков. Поэтому уровень RAID 0 называют дисковым массивом без дополнительной отказоустойчивости. Структура такого массива представлена на рисунке 5.8, откуда видно, что производительность компьютера,
оснащенного системой RAID 0, возрастает за счет размещения записей А, В, С, …, W, … на нескольких дисках, в каждом из которых могут параллельно во времени происходить обращения для записи и чтения данных.
Уровень RAID 1 обеспечивает зеркальное дублирование дисков, создавая на двух разных дисках две копии записей (рис. 5.9.): основную и резервную, каждая из которых снабжается
дополнительными
разрядами, контролирующими корректность
записанного кода. При чтении зеркальных
копий обращение производится сразу к
двум дискам, контроллер дисков сравнивает
дополнительные разряды с суммой
значений, записанных на секторах, и
выдает на выходе совокупность значений,
соответствующую значению дополнительных
разрядов сектора. Если в одной из копий
сумма значений не совпадает с
дополнительными разрядами, то формируется
сообщение о некорректной работе одного
диска, передаваемого на экран системного
администратора. Естественно, что если
основная и резервная копии совпадают,
то контроллер дисков выдает на выход
одну из копий. Если в одной из копий
зарегистрирован сбой данных, то на
выход передаются данные от правильной
копии данных. Недостаток этого способа
запис данных – низкий коэффициент
использования адресного пространства,
который не превышает значения 0,5. Однако,
если все диски работоспособны, то
гарантируется полный контроль
правильности считываемых данных.
Уровень RAID 2 основан на использовании алгоритма Хемминга для проверки и восстановления данных. При этом для каждого сегмента данных вычисляется совокупность контрольных разрядов, набор которых записывается на отдельные диски (рис. 5.10). Алгоритм
Хемминга
позволяет устранить одну ошибку в любом
секторе диска. По этой причине стремятся
уменьшить количество информационных
разрядов в каждом секторе, чтобы
увеличить мощность системы контроля
донных, т.е. чтобы контрольные разряды
кода Хемминга приходились на небольшое
число информационных разрядов.
Естественно, что алгоритм Хемминга
позволяет уменьшить количество разрядов
секторов дисков во много раз, благодаря
чему возрастает производительность
дисковой системы.
Уровень
RAID 5 имеет структуру,
изображенную на рис. 5. 11. В отличии от
ранее рассмотренных уровней организации
RAID – систем, в уровне
RAID 5 контрольные данные,
формируемые по алгоритму Хемминга,
размещаются во всех дисках равномерно,
что обеспечивает высокую пропускную
способность и защиту данных от сбоев
и отказов аппаратуры.
Как уже было отмечено, остальные уровни RAID – систем объединяют в себе способы защиты данных с помощью четности, алгоритма Хемминга, циклических кодов и т.д., и используются достаточно редко.