АД. Чередов - Организация ЭВМ и систем
АД. Чередов - Организация ЭВМ и систем
АД. Чередов - Организация ЭВМ и систем
Чередов
Томск 2000
У ДК 681.3
Рецензенты:
В. П. Бондаренко - д.т.н., профессор кафедры комплексной информационной
безопасности электронных вычислительных систем,
ТУСУР;
1. АРХИТЕКТУРЫ, ХАРАКТЕРИСТИКИ,
КЛАССИФИКАЦИЯ ЭВМ
Таблица 1.2
Максимальное и среднее число команд, выполняемых в одном
машинном цикле
Процессор Тактовая Число тран- Максимальное Среднее число
частота, зисторов, млн. число команд на команд на цикл
Мгц цикл
Digital Alpha 500 9,3 4 1,0
SPECint95 SPECfp95
Обрабатывающая подсистема
Развитие обрабатывающей подсистемы в большей степени, чем всех ос-
тальных подсистем, идет по пути разделения функций и повышения специа-
лизации составляющих ее устройств. Создаются специальные средства, которые
осуществляют функции управления системой, освобождая от этих функций
средства обработки. Такое распределение функций сокращает эффективное время
обработки информации и повышает производительность ЭВМ. В то же время
средства управления, как и средства обработки, становятся более
специализированными. Устройство управления памятью реализует эффективные
методы передачи данных между средствами обработки и подсистемой памяти.
Меняются функции центрального устройства управления. С одной стороны, ряд
функций передается в другие подсистемы (например, функции ввода-вывода), с
другой - развиваются средства организации параллельной обработки нескольких
команд (суперскалярная обработка) с одновременным повышением темпа
исполнения последовательности команд. Для повышения темпа выполнения
последовательности команд применяются методы конвейерной обработки наряду
с совершенствованием алгоритмов диспетчеризации и исполнения команд. Бурно
развивается управление межпроцессорным обменом как эффективное средство
передачи информации между несколькими центральными процессорами,
входящими в состав вычислительной системы или комплекса.
Операционные устройства (АЛУ) обрабатывающей подсистемы, кроме
традиционных средств скалярной (суперскалярной) и логической обработки, все
шире стали включать специальные средства векторной обработки. При этом
время выполнения операций можно резко сократить как за счет использования
арифметического конвейера (одного или нескольких), так и за счет сокращения
такта работы конвейера. Возможности задач к распараллеливанию алгоритма
счета снимают принципиальные ограничения к организации существенно
параллельной обработки информации и использованию структур с глубокой
конвейеризацией. В устройствах скалярной обработки все шире появляются
специальные операционные блоки, оптимизированные на эффективное
выполнение отдельных операций.
Подсистема памяти
Подсистема памяти современных компьютеров имеет иерархическую
структуру, состоящую из нескольких уровней:
- сверхоперативный уровень (локальная память процессора, кэшпамять
первого и второго уровня);
- оперативный уровень (оперативная память, дисковый кэш);
- внешний уровень (внешние ЗУ на дисках, лентах и т.д.). Эффективными
методами повышения производительности ЭВМ являются увеличение количества
регистров общего назначения процессора, использование многоуровневой кэш-
памяти, увеличение объема и пропускной способности оперативной памяти,
буферизация передачи информации между ОП и внешней памятью. Увеличение
пропускной способности оперативной памяти достигается за счет увеличения их
расслоения и секционирования.
Подсистема ввода-вывода
В состав подсистемы ввода-вывода входит набор специализированных
устройств, между которыми распределены функции ввода-вывода, что позволяет
свести к минимуму потери производительности системы при операциях ввода-
вывода. Эти устройства можно условно разделить на критичные и некритичные
по быстродействию. К критичным по быстродействию устройствам относятся
обработчики команд ввода-вывода и контроллеры интерфейсов. Эти устройства
определяют пропускную способность подсистемы ввода-вывода. Некритичные по
быстродействию устройства управляют распределением линий в подсистеме
ввода-вывода.
Основными направлениями развития подсистем ввода-вывода являются
канальная технология ввода-вывода, матричная топология коммутации пери-
ферийных устройств (ПУ), увеличение количества и пропускной способности
каналов.
Подсистема управления и обслуживания
Подсистема управления и обслуживания — это совокупность аппаратно-
программных средств, предназначенных для обеспечения максимальной про-
изводительности, заданной надежности, ремонтопригодности, удобства на-
стройки и эксплуатации. Она обеспечивает проблемную ориентацию и заданное
время наработки на отказ, подготовку и накопление статистических сведений о
загрузке и прохождении вычислительного процесса, выполняет функции
"интеллектуального" интерфейса с различными категориями обслуживающего
персонала, осуществляет инициализацию, тестирование и отладку. Подсистема
управления и обслуживания позволяет поднять на качественно новый уровень
эксплуатацию современных ЭВМ.
При разработке структуры ЭВМ все подсистемы должны быть сбалан-
сированы между собой. Только оптимальное согласование быстродействия
обрабатывающей подсистемы с объемами и скоростью передачи информации
подсистемы памяти, с пропускной способностью подсистемы ввода-вывода
позволяет добиться максимальной эффективности использования ЭВМ.
Важнейшими факторами, определяющими функциональную и структурную
организацию ЭВМ, являются выбор системы и форматов команд, типов данных и
способов адресации.
Таким образом,
Следует отметить, что емкость ОП (Моп) может быть увеличена в 2nс раз за
счет использования способа совмещения. Однако в данном случае начальные
адреса массивов не могут быть реализованы произвольно, а должны иметь в
младших разрядах nc нулей.
Индексная адресация
Для работы программ с массивами, требующими однотипных операций над
элементами массива, удобно использовать индексную адресацию. Схема
индексной адресации аналогична базированию путем суммирования (см. рис.
2.7). В этом случае адрес i-го операнда в массиве определяется как сумма
начального адреса массива (задаваемого полем смещения С) и индекса И,
записанного в одном из регистров РП, называемом теперь индексным регистром.
Адрес индексного регистра задается в команде полем адреса индекса — Аин
(аналогично Aб).
В каждом i-м цикле содержимое индексного регистра изменяется на ве-
личину постоянную (часто равную 1). Использование индексной адресации
значительно упрощает программирование циклических алгоритмов.
Для эффективной работы при относительной адресации применяется
комбинированная индексация с базированием, при которой адрес операнда
вычисляется как сумма трех величин (рис. 2.9):
АцОП=Б+И+С.
Символьные данные
Поддерживаются строки символов в коде ASCII и арифметические операции
(сложение, умножение) над ними (рис. 2.18). Поддержка осуществляется блоком АЛУ.
Прямое распределение
При прямом распределении место хранения строк в кэш-памяти однозначно
определяется по адресу строки.
Структура кэш-памяти показана на рис. 4.5.
Адрес строки основной памяти (14 бит) разделяется на две части: b - тег
(старшие 9 бит) и е - адрес группы (младшие 5 бит). Адрес строки внутри кэш-
памяти, состоящий из 7 бит, разделяется на адрес группы (5 бит) и адрес строки
внутри группы (2 бит).
Массивы тегов и данных состоят из четырех банков данных, доступ к каждому
из которых осуществляется параллельно одинаковыми адресами. Каждый банк
массива тегов имеет длину слова 9 бит для помещения значения тега, а число слов
равно числу групп, т.е. 32. Каждый банк массива данных имеет длину слова такую
же, как и у основной памяти, а ёмкость его определяется числом слов в одной
строке, умноженных на число групп в кэшпамяти.
Для помещения в кэш-память строки, хранимой в ОП по адресу b, необходимо
выбрать группу с адресом е. При этом не имеет значения, какая из четырех строк в
группе может быть выбрана. Для выбора группы используется метод прямого
распределения, а для выбора строки в группе используется метод полностью
ассоциативного распределения.
Когда центральный процессор запрашивает доступ по i-му адресу, то
осуществляется обращение к массиву тегов по адресу е, выбирается группа из
четырёх тегов (а, b, с, d), каждый из которых сравнивается со старшими 9 битами (b)
адреса строки. На выходе четырех схем сравнения формируется унитарный код
совпадения (0100), который на шифраторе преобразуется в двухразрядный
позиционный код, служащий адресом для выбора банка данных^!).
Одновременно осуществляется обращение к массиву данных по адресу
e.f(9 бит) и считывание из банка V;, требуемой строки иди слова.
При пересылке новой строки в кэш-память удаляемая из нее строка выбирается
из четырех строк соответствующего набора (группы).
Распределение секторов
По данному методу основная память разбивается на секторы, состоящие из
фиксированного числа строк, кэш-память также разбивается на секторы, состоящие
из такого же числа строк. Рассмотрим случай, когда длина строки равна 16 словам, а
сектор состоит из 16 строк. Структура кэш-памяти с распределением секторов
представлена на рис. 4.8. В адресе основной памяти старшие 10 бит показывают
номер сектора, следующие 4 бит — номер строки внутри сектора, а младшие 4 бит
— адрес слова в строке.
По данному методу распределение секторов в основной памяти, и секторов в
кэш-памяти осуществляется полностью ассоциативно. Другими словами, каждый
сектор в основной памяти может соответствовать любому сектору в кэш-памяти.
Распределение строк в секторе одинаково для основной памяти и кэш-памяти. К
каждой строке, хранимой в кэш-памяти, добавляется один бит информации,
называемый битом достоверности (действительности); он показывает, совпадает
или нет содержимое этой строки с содержимым строки в основной памяти, которая
в данный момент анализируется на соответствие строки кэш-памяти.
Странично-сегментное распределение
Как видно из названия, данный метод представляет собой комбинацию
страничного и сегментного распределения памяти и, вследствие этого, сочетает в
себе достоинства обоих подходов. Виртуальное пространство процесса делится на
сегменты, а каждый сегмент в свою очередь делится на виртуальные страницы,
которые нумеруются в пределах сегмента. Оперативная память делится на
физические страницы. Загрузка процесса выполняется операционной системой
постранично, при этом часть страниц размещается в оперативной памяти, а часть
на диске. Для каждого сегмента создается своя таблица страниц, структура
которой полностью совпадает со структурой таблицы страниц, используемой при
страничном распределении.
Для каждого процесса создается таблица сегментов, в которой указываются
адреса таблиц страниц для всех сегментов данного процесса. Адрес таблицы
сегментов загружается в специальный регистр процессора, когда активизируется
соответствующий процесс. На рис. 4.17 показана схема преобразования
виртуального адреса в физический для данного метода.
Свопинг
Разновидностью виртуальной памяти является свопинг. На рис. 4.19 показан график
зависимости коэффициента загрузки процессора в зависимости от числа
одновременно выполняемых процессов и доли времени, проводимого этими
процессами в состоянии ожидания ввода-вывода.
Расслоение обращений
Другой способ повышения пропускной способности ОП связан с построением
памяти, состоящей на физическом уровне из нескольких модулей (банков) с
автономными схемами адресации, записи и чтения. При этом на логическом уровне
управления памятью организуются последовательные обращения к различным
физическим модулям. Обращения к различным модулям могут перекрываться, и
таким образом образуется своеобразный конвейер. Эта процедура носит название
расслоения памяти. Целью данного метода является увеличение скорости доступа
к памяти посредством совмещения фаз обращений ко многим модулям памяти.
Известно несколько вариантов организации расслоения. Наиболее часто
используется способ расслоения обращений за счет расслоения адресов. Этот
способ основывается на свойстве локальности программ и данных,
предполагающем, что адрес следующей команды программы на единицу больше
адреса предыдущей (линейность программ нарушается только командами перехода).
Аналогичная последовательность адресов генерируется процессором при чтении и
записи слов данных. Таким образом, типичным случаем распределения адресов об-
ращений к памяти является последовательность вида а, а+ 1, а + 2,... Из этого
следует, что расслоение обращений возможно, если ячейки с адресами а, а+ 1, а +
2,... будут размещаться в блоках 0, 1,2,... Такое распределение ячеек по модулям
(банкам) обеспечивается за счет использования адресов вида
где В - к-разрядный адрес модуля (младшая часть адреса) и С - п-разрядный адрес
ячейки в модуле В (старшая часть адреса).
Принцип расслоения обращений иллюстрируется на рис. 4.20,а. Все про-
граммы и данные «размещаются» в адресном пространстве последовательно.
Однако ячейки памяти, имеющие смежные адреса, находятся в различных
физических модулях памяти. Если ОП состоит из 4-х модулей, то номер модуля
кодируется двумя младшими разрядами адреса. При этом полные т-разрядные
адреса 0, 4, 8,... будут относиться к блоку 0, адреса 1, 5, 9, ... - к блоку 1, адреса 2, 6,
10,... — к блоку 2 и адреса 3, 7, 11,... - к блоку 3. В результате этого
последовательность обращений к адресам 0, 1, 2, 3, 4, 5, ... будет расслоена между
модулями 0,1,2,3,0,1,....
Поскольку каждый физический модуль памяти имеет собственные схемы
управления выборкой, можно обращение к следующему модулю производить, не
дожидаясь ответа от предыдущего. Так на временной диаграмме (рис. 4.20,6)
показано, что время доступа к каждому модулю составляет т = 4Т, где Т = ti+1-ti -
длительность такта. В каждом такте следуют непрерывно обращения к модулям
памяти в моменты времени t1, t2, t3 ... .
Кроме ПКЗ в состав блока защиты памяти входят: дешифратор номера страниц
ДШС для расшифровки кодов номеров страниц; регистр ключей защиты РКЗ для
фиксации выбираемых из ПКЗ кодов; регистр ключей программ РКП для приема и
хранения кодов ключей программ, поступающих из регистра слова состояния
программы (системного регистра) процессора, или кодов ключей каналов; узел
сравнения ключей УСК для сравнения ключей защиты с ключами программ (или
каналов).
Код ключа некоторой программы вводится в РКП операционной системой при
каждой инициализации этой программы, т.е. при каждом переходе к выполнению её
команд. При работе с каналом в РКП вводится ключ канала. В УСК,
представляющем собой комбинационную схему, производится сравнение ключа
защиты, выбранного из ПКЗ при данном обращении к ОП и зафиксированного в
РКЗ, и кода ключа программы (ключа канала), поступающего от РКП. По
результатам сравнения узел сравнения кодов формирует либо сигнал разрешения
обращения к ОП, либо сигнал прерывания выполняемой программы.
Функционирование БЗП начинается с ввода в ДШС кода номера страницы ОП,
к которой производится обращение. По номеру страницы из ПКЗ выбирается
соответствующий ключ защиты, код которого помещается в РКЗ. В УСК код ключа
защиты сравнивается с кодом ключа программы (канала) и формируются
управляющие сигналы разрешения или прерывания.
Защита памяти по ключам (уровням привилегий) является наиболее уни-
версальной и гибкой, особенно эффективной при страничной или сегментно-
страничной организации виртуальной памяти и динамическом её распределении.
Однако такой способ защиты требует для своей технической реализации заметных
дополнительных аппаратных затрат, прежде всего необходима ПКЗ с очень
небольшим временем выборки кода ключей. Память ключей защиты строится так,
чтобы время выборки кода было практически на порядок меньше времени выборки
из ОП.
EISA 32 8 33
МСА 32 10 -
VLB(VESA) 32 40 130
VME32 32 - 32
VME64 64 - 160
XDBus 64 - 310(400)
6. МНОГОПРОЦЕССОРНЫЕ И МНОГОМАШИННЫЕ
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
ОГЛАВЛЕНИЕ
Редактор: Н. Т. Синельникова