/
Tags: компьютерные технологии вычислительная техника микропроцессоры
ISBN: 978-5-7695-4485-9
Text
ВЫСШЕЕ ПРОФЕССИОНАЛЬНОЕ ОБРАЗОВАНИЕ
В.Ф. МЕЛЕХИН, Е. Г. ПАВЛОВСКИЙ
ВЫЧИСЛИТЕЛЬНЫЕ
МАШИНЫ, СИСТЕМЫ
И СЕТИ
Учебник
Рекомендовано
Учебно-методическим объединением по образованию
в области радиотехники, электроники, биомедицинской техники
и автоматизации в качестве учебника для студентов
высших учебных заведений, обучающихся по направлению
подготовки бакалавров, магистров, специалистов
«Автоматизация и управление»
2-е издание, стереотипное
Москва
Издательский центр «Академия»
2007
УДК 681.3(075.8)
ББК 32.97я73
М473
Рецензенты:
зав. кафедрой «Вычислительная техника» Санкт-Петербургского
государственного университета информационных технологий, механики
и оптики, д-р техн, наук, проф. Т. И. Алиев;
проф. кафедры «Вычислительная техника» Санкт-Петербургского
государственного электротехнического университета (ЛЭТИ),
д-р техн, наук А. И. Водяхо
Мелехин В.Ф.
М473 Вычислительные машины, системы и сети : учебник для
студ. высш. учеб, заведений / В. Ф. Мелехин, Е. Г. Павлов-
ский. — 2-е изд., стер. — М. : Издательский центр «Акаде-
мия», 2007. — 560 с.
ISBN 978-5-7695-4485-9
Изложены основы организации, архитектура и схемотехника постро-
ения вычислительных машин, систем и сетей. Рассмотрены устройства
вычислительных машин: процессоры, устройства памяти, интерфейсы,
контроллеры. Приведены основные характеристики различных классов
систем обработки данных и способы их оценки. Рассмотрены современ-
ные компьютеры, микропроцессорные системы на базе микроконтролле-
ров, вычислительные системы параллельной обработки данных, основы
построения компьютерных сетей, а также тенденции развития архитек-
тур, обусловленные успехами микроэлектроники и развитием информа-
ционных технологий.
Для студентов высших учебных заведений.
УДК 681.3(075.8)
ББК 32.97я73
Оригинал-макет данного издания является собственностью
Издательского центра «Академия», и его воспроизведение любым способом
без согласия правообладателя запрещается
© Мелехин В.Ф., Павловский Е. Г., 2006
© Образовательно-издательский центр «Академия», 2006
ISBN 978-5-7695-4485-9 © Оформление. Издательский центр «Академия», 2006
ПРЕДИСЛОВИЕ
Настоящее время относят к информационной эре развития
цивилизации и науки, в которой категория информации наряду
с материей и энергией стала определяющей. Экспоненциальный
рост объема используемой информации и влияние информаци-
онных процессов на все сферы жизни и деятельности людей пре-
допределили важную роль технических средств, обеспечивающих
автоматизацию сбора, хранения и обработки информации. Имен-
но такими средствами и являются вычислительные машины (ВМ),
системы и сети. В ВМ информация представлена в символьном
виде. Это могут быть числа, текст, речь, музыка, графические
изображения и т.д. В таком представлении информацию в ВМ
называют «данными». Поэтому обобщенно ВМ, системы и сети
называются системами обработки данных (СОД). Одним из сущест-
венных применений СОД является их использование в техниче-
ских системах для автоматизации управления, контроля и,диагно-
стики.
Назначение настоящего учебника: формирование знаний об
организации и архитектуре современных СОД — ВМ, систем и
сетей; основных тенденциях и направлениях их развития; основ-
ных характеристиках этих систем и методах их оценки.
Учебник содержит три раздела: «Введение в организацию вы-
числительных машин и систем», «Вычислительные машины», «Вы-
числительные системы и сети».
В разделе I с позиций общей теории систем рассматриваются
принципы организации ВМ и основные понятия вычислительной
техники, поясняются основные предпосылки унификации средств
вычислительной техники, рассматривается феномен персональ-
ных компьютеров (ПК) и их влияние на развитие компьютерной
индустрии.
Во разделе II, основном по содержанию и самом большом по
объему, рассматривается организация и функционирование со-
временной ВМ, архитектура устройств ВМ: процессоров, памя-
ти, периферийных устройств, методы и средства организации
обмена данными между устройствами, а также основные характе-
ристики ВМ и методы их количественных оценок.
В разделе III рассматриваются вычислительные системы (ВС)
и сети. Рассмотрение ВС начинается с встраиваемых микропро-
цессорных систем и микроконтроллеров (МК). Они широко ис-
пользуются в технических системах для управления и контроля.
Далее рассматриваются основные принципы, архитектура и сред-
ства построения мультипроцессорных систем, а также системы на
кристалле, особенно перспективные при переходе в производстве
интегральных схем (ИС) на нанотехнологии. Последняя глава по-
священа введению в компьютерные сети. Основные проблемы
развития сетей и методы их решения поясняются на примерах
простейших сетей. Достаточно подробно изложены принципы орга-
низации локальных вычислительных сетей. Рассматриваются ос-
новные принципы организации глобальной сети Internet.
Вопросы организации, архитектуры и тенденции развития ВМ,
систем и сетей рассматриваются с единых позиций. При изложе-
нии материала подчеркивается преемственность принципов орга-
низации и взаимное влияние на архитектуру трех основных клас-
сов СОД. Большое внимание уделяется влиянию на организацию
и архитектуру систем следующих факторов: развития технологии
производства ИС, тенденций перехода от централизованной к
распределенной обработке данных, распараллеливанию обработ-
ки на всех уровнях организации. В учебнике рассматривается толь-
ко введение в телекоммуникационные вычислительные сети (ТВС),
показывающее органическую связь ТВС с ВМ и ВС.
Прогресс в области СОД происходит ускоренными темпами,
существенно влияя на развитие цивилизации. Наиболее важными
характеристиками прогресса за последнее десятилетие стали сле-
дующие достижения:
1. Быстрое развитие субмикронной технологии производства ИС
и переход к нанотехнологии с возможностями изготовления на
одном кристалле десятков и сотен миллионов вентилей.
2. Массовое производство ПК и применение их во всех сферах
человеческой деятельности, причем не изолированно, а в составе
компьютерных сетей.
3. Перестройка компьютерной индустрии с возрастающей ро-
лью стандартов и международным разделением труда.
4. Превращение компьютерной индустрии и информационных
технологий в самую высокодоходную область производства. Как
следствие этого — огромные финансовые вложения, быстрый
прогресс в области развития элементной базы и архитектуры,
решающее влияние направления ПК на другие типы ВМ и си-
стем: серверы, контроллеры, ВС с параллельном обработкой дан-
ных.
5. Появление на рынке большого числа типов МК с широким
спектром вычислительной мощности и стоимости, а также «си-
стем на кристалле».
6. Распространение индустриальных систем с архитектурой про-
цессоров, разработанных для ПК.
7. Быстрое развитие параллельной обработки данных как важ-
нейший фактор повышения производительности.
8. Быстрое развитие компьютерных сетей и телекоммуникаций,
их влияние на организацию и архитектуру процессоров, инфор-
мационных и управляющих систем.
Значительный прогресс в рассматриваемых научных направле-
ниях, а также переход к многоуровневому образованию в Россий-
ской Федерации привели к существенным изменениям в образо-
вательных стандартах, рекомендуемых учебных планах, перечнях
дисциплин и содержании программ. Это учтено при подготовке
учебника.
Главы 1, 2, 3, 6, 8, 10 и 11 написал д-р техн, наук, проф.
В. Ф. Мелехин, гл. 4, 5, 7, 9 — канд. техн, наук, доц. Е. Г. Павловс-
кий. Общее редактирование книги выполнил В. Ф. Мелехин.
Авторы выражают благодарность канд. техн, наук, доц. А. А. Ав-
дюхину за представленные материалы для гл. 7 и О. М. Куссуль за
помощь в подготовке рисунков.
ABM - аналоговая вычислительная машина
АЛУ - арифметико-логическое устройство
АО — аппаратное обеспечение
АП - адресное пространство
АСНИ - автоматизированная система научных исследований
АСУ - автоматизированная система управления
АСУТП - автоматизированная система управления технологическим процессом
АЦП - аналого-цифровой преобразователь
БИС - большая интегральная схема
ВЗУ - внешнее запоминающее устройство
ВК - вычислительный комплекс
ВМ — вычислительная машина
ВП - внешняя память
ВС - вычислительная сеть
ГД - гибкий диск
ИС - интегральная схема
жд - жесткий диск
зэ - запоминающий элемент
КА - конечный автомат
кк - контрольный код
КМОП - комплементарная структура металл-окисел-полупроводник
КОП - код операции
КС - комбинационная схема
ЛВС - локальная вычислительная сеть
мк - микроконтроллер
МП — микропроцессор
МПА — микропрограммный автомат
мчм — модифицированная частотная модуляция
ОА - операционный автомат
ОБ - операционный блок
ОЗУ - оперативное запоминающее устройство
ОП - основная (оперативная) память
ОС - операционная система
пдп - прямой доступ к памяти
ПЗУ - постоянное запоминающее устройство
ПК - персональный компьютер
пкп - программируемый контроллер прерываний
пл — программируемая логика
по - программное обеспечение
РОН - регистры общего назначения
СБИС — сверхбольшая интегральная схема
СК — счетчик команд
СОЗУ — сверхоперативное запоминающее устройство
СЧПУ — система числового программного управления
ТВС — телекоммуникационная вычислительная техника
УА — управляющий автомат
УСО — устройство сопряжения с объектом
ФНЧ — фильтр нижних (низких) частот
ЦАП — цифроаналоговый преобразователь
ЦВМ — цифровая вычислительная машина
ЦПУ — центральное процессорное устройство
ЧМ — частотная модуляция
ШИМ — широтно-импульсная модуляция
CD — Compact Dick — компакт-диск
CISC — Complex Instruction Set Computer — компьютер с полным на-
бором команд
CPL — Current Privilege Level — текущий уровень привилегий
CPU — Central Processing Unit — ЦП, центральный процессор
DPI — Descriptor Privilege Level — дескриптор привилегирован-
ного уровня
DRAM — Dynamic Random Access Memory — динамическое ОЗУ
EEPROM — Electrical Erasable Programmable Read-Only Memory —
электрически стираемое программируемое ПЗУ
EPROM — Erasable Programmable Read-Only Memory — стираемое про-
граммируемое ПЗУ
FPU — Floating Point Unit — устройство для выполнения опера-
ций с плавающей точкой
MMX — Multimedia Extension — мультимедийное расширение, тех-
нология ММХ
МРР — Massive Parallel Processing — система с массовым паралле-
лизмом
NUMA — Non-Uniform Memory Architecture — архитектура мульти-
процессорной системы с несимметричным использовани-
ем процессорами ОП
PROM — Programmable ROM — программируемое ПЗУ
RISC — Reduced Instruction Set Computer — процессор с сокращен-
ным списком команд
ROM — Read Only Memory — постоянное запоминающее устройство
SIMD — Single Instruction Multiple Data— одиночный поток команд
и множественный поток данных
SP — Stack Pointer — указатель стека
VLIW — Very Long Instruction Word — очень длинное слово команды
РАЗДЕЛ I. ВВЕДЕНИЕ В ОРГАНИЗАЦИЮ
ВЫЧИСЛИТЕЛЬНЫХ МАШИН И СИСТЕМ
Глава 1
ОСНОВНЫЕ ПОНЯТИЯ ВЫЧИСЛИТЕЛЬНОЙ ТЕХНИКИ
И ПРИНЦИПЫ ПОСТРОЕНИЯ ВЫЧИСЛИТЕЛЬНЫХ
МАШИН
1.1. Кибернетика, информатика и вычислительная техника
ВМ и ВС используются для работы с информацией. Информа-
ция — сведения о событиях, процессах, объектах, являющиеся
предметом восприятия, передачи, преобразования, хранения.
Информация — основное понятие кибернетики. Кибернетика изу-
чает машины и живые организмы с точки зрения их способности
воспринимать определенную информацию, сохранять ее в памя-
ти, передавать по каналам связи, перерабатывать в сигналы, на-
правляющие деятельность машин и организмов в определенном
направлении.
Кибернетика — греческое слово, обозначающее искусство уп-
равления. Первым, кто употребил этот термин для управления в
общем смысле, был Платон (IV в. до н.э.). А. Ампер предложил
называть кибернетикой науку об управлении человеческим обще-
ством (1834). Н.Винер назвал кибернетикой науку об управлении
и связи в живом организме и машине. Началом развития этого
научного направления считают выход книги Н.Винера «Киберне-
тика» (1948). Предметом исследований кибернетики как научного
направления являются кибернетические системы. Кибернетической
системой называется абстрактное представление реальных систем
под определенным (информационным) углом зрения. При таком
абстрагировании основным методом исследования стали моделиро-
вание и эксперимент на ВМ. Поэтому развитие кибернетики как
направления в науке и технике стимулировало развитие двух дру-
гих направлений — информатики и вычислительной техники.
Предмет исследований информатики — информационные тех-
нологии, а вычислительной техники — ВМ, вычислительные ком-
плекты (ВК), ВС, сети.
ВМ, ВК, ВС и сети, на базе которых реализуются современные
информационные технологии, с одной стороны, служат инстру-
ментарием для реализации основных методов исследования ки-
бернетики, с другой стороны, они рассматриваются как киберне-
тические системы и поэтому в их проектировании, сопровожде-
нии, развитии существенную роль играет научный метод, зало-
женный в кибернетике. Рассмотрим связь этих научных направле-
ний с историей развития науки и техники.
В развитии цивилизации и науки выделяют три эры: сельскохо-
зяйственную (до XVI в.), индустриальную (XVI —XX вв.), инфор-
мационную (с 50-х гг. XX в.) [44]. В информационную эру катего-
рия информации стала определяющей. Экспоненциальный рост
объема информации, быстрый рост энерговооруженности, интен-
сификация и ускорение технологических процессов и связанное с
этим усиление роли и ответственности управления и контроля
обусловили потребность в опережающем развитии средств вычис-
лительной техники и базирующихся на них информационных тех-
нологий. В информационную эру происходит интенсивное пере-
распределение трудовых ресурсов. Если в начале XX в. более 90 %
трудоспособного населения было занято в сфере материального
производства и менее 10 % — в информационной сфере, то к концу
XX в. соответственно 35 и 65 % [14]. Успехи в развитии средств
вычислительной техники как средств автоматизации умственного
труда и информационных процессов изменили ориентиры и спо-
собствовали переходу к новому этапу в промышленной револю-
ции. Если в начале XX в. основной задачей экономики было уве-
личение производства и удовлетворение потребностей в предме-
тах массового спроса, то с начала 80-х гг. XX в.определяющим
стало обеспечение роста качества и разнообразия выбора товаров.
Основой реализации этой тенденции стало создание программ-
но-управляемого технологического оборудования и комплексная
автоматизация проектирования, производства и использования со-
здаваемых изделий. В связи с этим в современных технических си-
стемах обязательно используются развитые подсистемы комплек-
сного информационного обслуживания, обеспечивающие авто-
матизацию, управление, контроль, визуализацию протекающих
процессов.
С наступлением информационной эры создаются информаци-
онное общество и информационная экономика. Информацион-
ная экономика служит основой существования информационно-
го общества. Основой развития информационной экономики яв-
ляется создание и потребление информационных ресурсов или
информационных ценностей различных категорий [11].
Информационная экономика по сравнению с индустриальной
характеризуется рядом особенностей:
• основным предметом накопления становится накопление зна-
ний;
• определяющими становятся наукоемкость и информация, а
роль энергии и материи уменьшается;
• экономически целесообразным становится мелкосерийное
производство;
• создается информационная инфраструктура производств;
• усиливаются интеграционные процессы.
Создание информационной инфраструктуры связано с исполь-
зованием вычислительных машин и сетей, систем телекоммуни-
каций, развитием подготовки кадров в области информационных
средств и технологий, развитием правовых основ.
В развитии вычислительной техники и информатики определя-
ющим является опережающее развитие средств обработки, хране-
ния и передачи информации.
1.2. Основные понятия вычислительной техники
ВМ и ВС предназначены для автоматизации процессов обра-
ботки, хранения и передачи информации. ВМ относятся к слож-
ным системам, при их описании и проектировании используются
понятия и принципы, определенные в общей теории систем: си-
стема, алгоритм, функция, структура, функциональная и струк-
турная организации.
Система — это совокупность элементов или устройств, соеди-
ненных между собой для достижения определенной цели. Среди
систем выделяют сложные системы. Это качественное понятие.
Перечислим основные отличительные признаки сложных систем.
Большая размерность — большое число элементов: сотни, тысячи.
Разнородность элементов и узлов, как следствие этого — отсут-
ствие единого математического аппарата для описания поведения
этих элементов и узлов. Многокритериальность при оптимизации
выбора вариантов построения системы.
Вычислительная машина — это система, выполняющая задан-
ную, четко определенную последовательность операций (програм-
му) в соответствии с выбранным алгоритмом обработки инфор-
мации.
Алгоритм — набор предписаний, однозначно определяющий
содержание и последовательность выполнения действий для си-
стематического решения задачи. Для алгоритма можно выделить
семь характеризующих его параметров: совокупность возможных
исходных данных, совокупность возможных результатов, совокуп-
ность возможных промежуточных результатов, правило начала про-
цесса обработки данных, правило непосредственной обработки,
правило окончания процесса, правило извлечения результата. Ал-
горитм должен обладать свойствами массовости и результативно-
сти.
Массовость — применимость для решения задачи с любым на-
бором исходных данных из совокупности возможных, результа-
тивность — получение результата из совокупности возможных за
конечное число шагов.
Для наглядного представления ВМ и ВС изображаются в виде
схем, состоящих из блоков и связей между ними. Такие схемы
(функциональная, структурная) представляют собой ориентиро-
ванный граф, вершины которого — блоки. В функциональной схе-
ме блоки выделяются по функциональному признаку в ходе фун-
кциональной декомпозиции. В структурной схеме блоки соответ-
ствуют конструктивным компонентам — устройствам, конструк-
тивным узлам, интегральным схемам. В частном случае отдельные
блоки функциональной и структурной схем могут совпадать. С каж-
дым блоком связаны входы, выходы и функция.
Функция определяет алгоритм работы блока, т. е. правила полу-
чения выходных последовательностей по входным последователь-
ностям.
Структура показывает, как устроен блок, раскрывая его в виде
схемы, содержащей блоки более низкого уровня иерархии.
Функциональная организация ВМ (ВС) — это представление ее
как абстрактной системы в виде функциональной схемы, иллюст-
рирующей результат функциональной декомпозиции. В целях боль-
шей наглядности и простоты понимания для сложных систем (та-
ких,' как ВМ и ВС) используют иерархию представлений. При
этом на некотором уровне иерархии функциональные схемы пред-
ставляют функции отдельных блоков схемы более высокого уров-
ня представления. Чем ниже уровень представления, тем проще
функции соответствующих блоков.
Структурная организация — это представление системы (бло-
ка) в виде схемы, содержащей реально реализуемые устройства,
узлы, элементы.
При описании, проектировании ВМ и управлении вычисли-
тельными процессами применяется иерархический подход. При
его использовании обеспечивается возможность абстрагирования
от ряда деталей при рассмотрении системы в целом. Возможности
анализа по частям при переходе к более детальному описанию
составляют суть того упрощения, которое дает иерархический
подход.
Решению задачи на ВМ предшествуют алгоритмизация и про-
граммирование. Алгоритмизация — реализация причинно-след-
ственных связей и других закономерностей в виде направленного
процесса обработки информации по формальным правилам. Про-
граммирование — разработка программ для ВМ, реализующих за-
данный алгоритм. В ВМ управление процессами ввода, вывода и
обработки информации осуществляется на основе программ. Про-
грамма — алгоритм, записанный в виде последовательности ма-
шинных команд — кодов, соответствующих некоторым соглаше-
ниям, принятым при разработке ВМ. Для уменьшения трудоем-
кости программирования в настоящее время программы разраба-
тываются на одном из алгоритмических языков высокого уровня.
Далее перед исполнением такая программа транслируется в по-
следовательность машинных команд.
На ранних этапах развития ВМ реализовали преимущественно
вычислительные алгоритмы, что и нашло отражение в самом по-
нятии «вычислительная машина». Обработка, хранение и комму-
тация сигналов в ВМ в основном реализуется электронными схе-
мами. Поэтому для ВМ долгое время использовалась аббревиатура
ЭВМ (электронная вычислительная машина). Этот термин по-
явился у первых ЭВМ для их отличия от механических и элект-
ромеханических счетно-решающих устройств. В связи с успехами
микроэлектроники использование в ВМ сложных электронных уст-
ройств — сверхбольших интегральных схем (СБИС) стало обще-
принятым и привычным. Поэтому слово «электронная» примени-
тельно к ВМ уже не несет существенной информации. Кроме того,
ВМ содержат не только устройства обработки и хранения инфор-
мации, но и устройства ввода и вывода. Если устройства обработ-
ки и хранения информации реализуют на базе СБИС, то устрой-
ства ввода и вывода наряду с электронными компонентами со-
держат электромеханические, оптоэлектронные и другие узлы.
Поэтому в настоящее время предпочтительнее использовать тер-
мин «вычислительная машина».
По мере развития вычислительной техники и информацион-
ных технологий класс реализуемых алгоритмов существенно рас-
ширился. С помощью ВМ успешно решается широкий класс задач
«невычислительного» характера: обработка текстов и изображе-
ний, сжатие информации, распознавание образов, информаци-
онно-поисковые задачи и др. Однако, термин «вычислительная
машина» сохранился.
Существуют два типа ВМ: аналоговые (АВМ) и цифровые
(ЦВМ). В АВМ для представления информации используются не-
прерывные физические величины, чаще всего напряжение. В ЦВМ
информация представлена двоичными кодами. При этом каждый
разряд принимает два значения из набора {0, 1}. Для представле-
ния двоичной переменной используется дискретный сигнал. ЦВМ
являются более универсальным средством обработки информа-
ции и по ряду наиболее важных общетехнических показателей пре-
восходят АВМ. Поэтому они получили более широкое распрост-
ранение. В дальнейшем изложении под ВМ будем подразумевать
именно ЦВМ.
Отметим, что в настоящее время наряду с термином «вычис-
лительная машина» в отечественной литературе часто использует-
ся американский термин «компьютер». Этим отдается дань широ-
кому распространению нового класса вычислительной техники —
персональным ВМ.
В связи с массовым применением компьютеров закономерно-
сти взаимодействия человека с ВМ стали предметом научных ис-
следований. Результаты этих исследований воплощаются в так на-
зываемой информационной технологии — систематических методах
и приемах применения ВМ в производственных процессах, уп-
равлении, образовании, научной работе, проектировании и
других сферах деятельности. Практические применения информа-
ционных технологий обусловили создание быстро развивающего-
ся сектора промышленности, получившего название «индустрии
информатики» или «компьютерной индустрии».
1.3. Способы представления информации
в вычислительных машинах
Определим основные понятия, связанные с представлением
информации в ВМ.
Функциональные схемы ВМ и вычислительных устройств со-
стоят из блоков, каждый из которых является преобразователем
информации. Преобразователь информации — это некоторый блок,
имеющий входы, на которые поступают входная информация, и
некоторые выходы, на которых представлена выходная информа-
ция. Информация на входах и выходах блоков представлена сигна-
лами.
Сигнал — это носитель информации в виде изменяющейся во
времени физической величины, обеспечивающей передачу дан-
ных. Сигнал называется дискретным, если параметр сигнала мо-
жет принимать лишь конечное число значений.
В настоящее время подавляющее большинство преобразовате-
лей информации представляют собой электронные схемы, со-
держащие соединенные определенным образом между собой элек-
тронные ключи — вентили. Эти электронные схемы реализуются
с использованием технологий современной микроэлектроники
в виде ИС. ИС может содержать от нескольких единиц до не-
скольких миллионов вентилей. Для работы ИС к ней подводится
напряжение питания. При этом сигналы в ИС представлены уров-
нем напряжения. Для представления сигналов приняты всего два
непересекающихся диапазона уровней напряжения. При напря-
жении питания 5 В: диапазон 0 — 0,4 В, соответствующий логи-
ческому значению сигнала «0», и диапазон 5 — 2,4 В, соответ-
ствующий значению сигнала «1». Промежуточные значения на-
пряжения соответствуют неопределенному логическому значе-
нию сигнала. При исправной аппаратуре эти значения возника-
ют кратковременно только при переключениях значений сигна-
лов. В дисциплинах по организации и архитектуре информацион-
ных систем рассматриваются только логические значения сигна-
лов. Такие дискретные сигналы представляют логические и дво-
ичные переменные.
Переменные, имеющие всего два значения, используют как
логические переменные («О» соответствует значению «ложь», а «1» —
«истина»). Переменную с значениями («О» и «1») используют и
как двоичную переменную для представления отдельных разрядов
чисел в двоичной системе счисления. Двоичная система счисле-
ния — это позиционная система счисления с основанием 2.
Как уже отмечалось ранее, информацию, представленную в
закодированном виде и используемую в устройствах ВМ, называ-
ют данными. Данные разбиваются на составляющие, называемые
элементами данных. Элемент данных — это составная часть дан-
ных, воспринимаемая при разработке и использовании программ
как неделимый объект. Элементы данных имеют различные типы.
Указывая, к какому типу данных относится объект программы,
программист определяет множество значений, которые данные
могут принимать, и совокупность допустимых над ними опера-
ций. Примеры типов данных: целые и вещественные числа, логи-
ческие (булевы) переменные. Для представления различных ти-
пов данных с использованием двоичных переменных применяют
кодирование.
Код — это система условных знаков (символов) и правил их
интерпретации, используемая для представления информации в
виде данных.
Информационный обмен между устройствами в ВС, ВК и се-
тях осуществляется чаще всего передачей сообщений.
Сообщение — информация о ходе или состоянии вычислитель-
ного процесса, выдаваемая компонентами информационных си-
стем. Сообщение содержит символы для представления информа-
ции.
Символ — это элемент допустимого информационной систе-
мой набора знаков, который может быть закодирован, введен в
систему, отображен на дисплее. Пример символов — цифры в
той или иной системе счисления, буквы из некоторого алфавита
и пр. При информационных обменах каждый символ представ-
лен (закодирован) упорядоченной совокупностью двоичных сиг-
налов.
Поскольку любая алфавитная (буквенно-цифровая) информа-
ция может быть закодирована в двоичной форме, то подобным
образом с использованием двоичных сигналов можно закодиро-
вать условия и реализовать решение для любых алгоритмически
разрешимых задач.
Информация в ВМ представлена в виде кодов определенной
фиксированной длины (машинных слов). Представленную таким
образом информацию называют данными. Этот термин использу-
ется для закодированных чисел (аргументов и результатов вычи-
слений), программ, текстов, графических образов, звуков и др.
Входные данные, поступающие из памяти и различных устройств
ввода, под управлением команд программы в ВМ преобразуются
в выходные данные, направляемые в память и (или) устройства
вывода. При этом в процессы, связанные с получением, переда-
чей, хранением и обработкой информации (данных), вовлекают-
ся аппаратные и программные средства, называемые вычислитель-
ными ресурсами.
1.4. Основные принципы организации вычислительных
машин и систем
Принципы организации вычислительного процесса, исполь-
зуемые и в большинстве современных ВМ, базируется на концеп-
ции Дж. фон Неймана, выдвинутой им во второй половине 40-х гг.
XX в. [4]. Согласно этой концепции определена автономно работа-
ющая ВМ, содержащая устройство управления, арифметико-ло-
гическое устройство (АЛУ), память и устройства ввода, вывода
(рис. 1.1). В связях, соединяющих устройства, выделены потоки
данных, команд и управляющих сигналов. Преобразование дан-
ных осуществляется последовательно под централизованным уп-
равлением от программы, состоящей из команд. Набор (список)
команд составляет машинный язык низкого уровня.
Для организации ВМ предложены следующие принципы:
1. Двоичное кодирование информации, разделение ее на слова
фиксированной разрядности.
2. Линейно-адресная организация памяти (N ячеек по п разря-
дов). Аппаратные средства для записи, хранения и чтения слова
из п двоичных разрядов называют ячейкой памяти. Ячейки про-
нумерованы по порядку (0, 1, ..., N- 1). Номер ячейки — ад-
Рис. 1.1. Структура ВМ Дж. фон Неймана:
=> линии связи для данных; -> линии связи для команд;-> линии связи для
управления
pec. В командах программы адрес является именем (идентифика-
тором) переменной, хранящейся в соответствующей ячейке.
3. Представление алгоритма программой, состоящей из команд.
Команда является предписанием, определяющим шаг процесса
выполнения программы. Она содержит код операции, адреса опе-
рандов и другие служебные коды.
4. Хранение команд и данных в одной памяти. Различие их зак-
лючается только в способе использования и интерпретации счи-
танного из памяти слова.
5. Вычислительный процесс организуется как последователь-
ное выполнение команд в порядке, определяемом программой.
6. Жесткость архитектуры — неизменность в процессе работы
ВМ, ее структуры, списка команд, методов кодирования данных.
При работе ВМ (см. рис. 1.1) наиболее интенсивное взаимо-
действие осуществляется между АЛУ и устройством управления.
С развитием элементной базы в целях повышения производитель-
ности за счет уменьшения задержек в связях эти устройства объ-
единили в один блок, называемый процессором.
Процессор считывает и выполняет команды программы, орга-
низует обращение к оперативной памяти (ОП), в нужных случаях
инициирует работу устройств ввода и вывода.
Устройство ввода преобразует входные сигналы в сигналы,
принятые для представления данных на шине, соединяющей уст-
ройство ввода с АЛУ.
В памяти хранятся команды и данные, которыми оперирует
процессор. В нее же записываются результаты промежуточных вы-
числений. Результаты выполнения программы поступают в уст-
ройство вывода.
Устройство вывода преобразует выходные сигналы в форму,
удобную для восприятия человеком (тексты, графические образы
и др.).
Выборка команды из памяти и ее выполнение циклически по-
вторяются. Цикл включает следующие фазы: выборку, дешифра-
цию и исполнение.
В фазе выборки команды содержимое ячейки памяти, адресу-
емое специальной схемой устройства управления (программным
счетчиком), выбирается из памяти и помещается в специальный
регистр процессора, называемый регистром команд. В фазе де-
шифрации код команды из регистра команд поступает в дешиф-
ратор команд процессора и преобразуется в последовательность
управляющих сигналов, обеспечивающих настройку АЛУ для вы-
полнения функции, определяемой командой. После этого в уст-
ройстве управления формируется адрес следующей команды.
Следующей является фаза исполнения. После выполнения ко-
манды происходит возврат к первой фазе — выборке следующей
команды.
Принципы Дж. фон Неймана имеют глубокую внутреннюю со-
гласованность и в значительной мере используются в архитектуре
современных компьютеров. На ранних этапах развития вычисли-
тельной техники (в первых моделях ВМ) существенным было тре-
бование максимальной простоты машинного языка и в соответ-
ствии с этим — устройств ВМ. В настоящее время это требование
не является определяющим и наблюдается отход от исходных
принципов. В значительной мере он связан с введением паралле-
лизма на различных уровнях организации вычислительного про-
цесса и расширением функций, реализуемых аппаратно. Эти из-
менения связаны с постоянным ростом сложности выполняе-
мых преобразований и требований к скорости вычислений. Воз-
можности реализации изменений обусловлены успехами микро-
электроники и совершенствованием элементной базы современ-
ных компьютеров.
1.5. Вычислительные машины, комплексы, системы и сети
Совокупность технических и программных средств, предназ-
наченных для информационного обслуживания людей и техни-
ческих объектов, называют обобщающим термином система об-
работки данных [31]. Другим обобщающим термином является ин-
формационная система.
Если информационная система используется для управления в
технических системах, ее часто называют информационно-управля-
ющей системой. Это наиболее общие названия для систем такого
назначения.
ВМ — это один из классов информационных систем. Помимо
класса ВМ к ним относятся ВК, ВС и сети. Рассмотрим основные
отличительные признаки этих классов информационных систем.
ВМ предназначена для решения широкого круга задач пользо-
вателями, работающими в различных предметных областях (ре-
шение математических задач, обработка текстов, бухгалтерский
учет, игры и др.). Основным блоком ВМ, осуществляющим пре-
образование информации и управление вычислительным процес-
сом на основе программы, является процессор. (Слово «процес-
сор» является производным от слова «процесс») Процессор ини-
циализирует процесс исполнения программы и управляет им.
Вычислительный комплекс — это несколько ВМ (или вычисли-
тельных систем), информационно связанных между собой (обыч-
но по последовательному каналу). При этом каждая ВМ самосто-
ятельно управляет своими вычислительными процессами, и ин-
формационный обмен между ВМ комплекса не является ин-
тенсивным (в сравнении с информационным взаимодействием
процессоров в мультипроцессорных системах). Особенно широкое
применение ВК получили в информационно-управляющих си-
стемах. Объекты управления в технических системах часто имеют
значительную протяженность в пространстве и содержат большое
число агрегатов, технологических установок и т.п. Примером мо-
жет быть цех металлообработки, содержащий станки, обрабаты-
вающие центры, роботы. Другой пример: корабль с общекорабель-
ными системами, энергетическими системами, системой навига-
ции и пр. Все эти технические средства снабжаются датчиками,
характеризующими их состояние, исполнительными органами
(двигателями, электромагнитами и пр.), сигнализаторами. Датчи-
ки, исполнительные органы, сигнализаторы, распределенные в
пространстве, информационно по каналам связи связаны с ин-
формационно-управляющей системой. Для контроля и управле-
ния оборудованием технических систем желательно организовать
распределенную обработку данных, рассредоточив отдельные ВМ
по соответствующим помещениям. Это и приводит к организации
ВК. Информационное взаимодействие между ВМ в комплексе
организуется с использованием простейших средств ввода и вы-
вода, разработанных для ВМ. По мере развития средств и техно-
логий компьютерных сетей в информационно-управляющих си-
стемах используются современные телекоммуникационные сред-
ства, и информационно-управляющая система реализуется в виде
локальной вычислительной сети, а не ВК.
Вычислительной системой называют информационную систе-
му, настроенную на решение задач конкретной области примене-
ния, т.е. в ней имеется аппаратная и программная специализа-
ция, обеспечивающая повышение производительности и сниже-
ние стоимости. Часто ВС содержит несколько процессоров, между
которыми в процессе работы происходит интенсивный обмен
информацией, которые имеют единое управление вычислитель-
ными процессами. Такие системы называются мультипроцессорны-
ми. (Они рассматриваются в гл. 10.) Другим распространенным
типом ВС являются микропроцессорные системы. Они строятся с
использованием либо микропроцессора (МП), либо микроконт-
роллера, либо специализированного процессора цифровой обра-
ботки сигналов. Обычно такие системы специализированы для задач
локального управления и контроля технологическим оборудова-
нием в технических и бытовых системах. Соответствующие ВС ча-
сто называют встраиваемыми ВС. Примеры построения подобных
систем рассмотрены в гл. 9.
Рассмотрим особенности сетей как класса информационных
систем. Современные передовые компьютерные технологии бази-
руются на ТВС (используются также другие равнозначные терми-
ны: компьютерные сети, информационно-вычислительные сети).
ТВС — сеть обмена и распределенной обработки информации,
образуемая множеством абонентских систем и телекоммуникаци-
онной подсистемой, реализующей информационное взаимодей-
ствие абонентских систем. Отличительной особенностью сетей как
класса информационных систем являются развитые функции ин-
формационного взаимодействия. По подходам к организации ин-
формационного взаимодействия ВМ в сетях телекоммуникацион-
ная подсистема напоминает почтовую службу и систему телефон-
ной связи между людьми. При этом набор соответствующих функ-
ций непрерывно расширяется, а средства и технологии их реали-
зации совершенствуются.
Средства передачи и обработки информации в сети ориенти-
рованы на коллективное использование общесетевых ресурсов —
аппаратных, информационных и программных. Абонентская си-
стема — это совокупность ВМ, программного обеспечения (ПО),
периферийного оборудования, средств связи с телекоммуника-
ционной подсистемой (коммуникационной подсетью). Коммуни-
кационная подсистема — совокупность физической среды переда-
чи информации, аппаратных и программных средств, обеспечи-
вающих информационное взаимодействие абонентских систем.
В качестве физической среды передачи информации используют
витую пару, кабель, оптоволокно, электромагнитные волны.
Аппаратуру информационных систем, включающую устройства
вычислительной техники и телекоммуникаций, называют аппа-
ратным обеспечением (hardware).
Второй важной составляющей информационных систем явля-
ется математическое (программное) обеспечение (software). Оно
включает в себя: программы, обрабатываемые данные, языки про-
граммирования, документацию к ним.
Аппаратура ВМ и ПО — это сложные системы с определенной
структурой, содержащей большое число модулей.
Средства вычислительной техники — аппаратные и программ-
ные модули, производимые компьютерной индустрией и исполь-
зуемые для построения вычислительных машин, комплексов, си-
стем и сетей.
1.6. Этапы развития вычислительных машин. Феномен
персональных компьютеров
Со времени появления первых ВМ (50-е гг. XX в.) сменилось
пять поколений, отличающихся элементной базой, функциональ-
ными возможностями, быстродействием, архитектурой. В процес-
се развития расширялась сфера использования ВМ, совершенство-
вались информационные технологии, изменялись концептуаль-
ные принципы организации обработки данных. Статистический
анализ показывает, что рост производства средств вычислитель-
ной техники (в стоимостном выражении) имеет экспоненциаль-
ный характер, но отмечаются периоды спада темпов роста [14].
Эти периоды связаны с пересмотром концепций развития и ко-
ренной технологической перестройкой производства средств вы-
числительной техники. Соответственно можно выделить три этапа.
На первом этапе (50 —70-е гг. XX в.) преобладала централизо-
ванная обработка данных на универсальных ВМ в вычислитель-
ных центрах. Основной целью развития была экономия машинно-
го времени.
Второй этап (с середины 70-х гг. до середины 80-х гг. XX в.)
связан с массовым применением мини и микроЭВМ, созданием
и совершенствованием МП и микропроцессорных средств. Основ-
ной задачей для использования быстро развивающихся средств
вычислительной техники стала разработка эффективной техноло-
гии программирования. Этому способствовало создание средств
автоматизации разработки программ: в первую очередь языков вы-
сокого уровня, режима разделения времени работы ВМ и инте-
рактивных систем отладки.
Третий этап (со второй половины 80-х гг. XX в.) связан с мас-
совым распространением ПК. Особенностью этого этапа стало со-
здание высокоразвитого «доброжелательного» системного ПО. ПК
в значительной мере ориентированы на использование готовых
прикладных программ для информационного обслуживания в раз-
личных сферах деятельности. Для эффективного использования ПК
во многих областях человеческой деятельности не требуется быть
профессионалом-программистом.
Распространение ПК вызвало следующие процессы в обще-
ственном производстве: более широкую формализацию знаний в
самых различных областях, массовое тиражирование накаплива-
емых профессиональных знаний в виде прикладных программ, ус-
корение темпов развития ведущих отраслей общественного про-
изводства за счет активного включения формализованных знаний
в производственный процесс. Массовое применение ПК побудило
перестройку компьютерной индустрии. Основой перестройки ста-
ло изменение принципов организации производства ВМ. Ранее
полный комплекс работ по созданию определенного типа ВМ
выполнялся одной фирмой. Наиболее известны фирмы IBM, DEC,
HP, SUN. От такой организации перешли к разделению труда между
специализированными фирмами по производству отдельных час-
тей ВМ: МП, платформ, системного ПО, периферийного обору-
дования, приложений и др. Для обеспечения возможности комп-
лексирования систем из подсистем и средств, разрабатываемых
различными фирмами, большое значение приобрели международ-
ные стандарты.
Перестройка индустрии привела к расширению возможных
вариантов при комплексировании компьютера, ускорению про-
гресса в области средств обработки информации, снижению удель-
ных затрат на обработку. Повышение производительности и рас-
ширение ресурсов ПК позволили улучшить интерфейс с пользо-
вателем и расширить его функции, включая трехмерную графи-
ку, видео, аудио, сетевые коммуникации. Таким образом, проис-
ходит превращение ПК в информационную «супермагистраль»,
соединяющую в себе функции компьютера, телевизора, телефона
и обеспечивающего расширение возможностей и повышение ка-
чества информационного обслуживания. Все это привело к тому,
что ПК стали предметом массового потребления, число их уже
превысило число автомобилей и приближается к числу телевизо-
ров [33].
Отмеченные особенности развития ПК и соответствующих
средств вычислительной техники способствовало притоку боль-
ших инвестиций в эту область техники. Вложения в информаци-
онные технологии приносят 81 % годового дохода, в то время как
в среднем в других областях — 6,3 %. Это способствовало развитию
научных исследований и производства. Массовое производство
аппаратных средств для ПК существенно повлияло на развитие
таких направлений в вычислительной технике, как создание су-
перкомпьютеров, серверов, индустриальных систем.
ПК в настоящее время — самый распространенный тип СОД.
В начале их развития решаемые задачи были относительно про-
стыми: инженерные расчеты, работа с текстами, бухгалтерский
учет и расчеты, игры и т. п. Быстрый рост числа ПК и расшире-
ние предъявляемых к ним требований стимулировали опережа-
ющий прогресс в области соответствующих МП, элементов па-
мяти, энергонезависимой памяти, периферийных устройств. Ре-
сурсов первых поколений ПК было недостаточно для решения
более сложных задач информационного обслуживания, связан-
ных с автоматизацией проектирования в различных областях тех-
ники, автоматизацией управления сложными объектами, под-
держкой мощных баз данных и т. п. Для этого класса задач разви-
вались рабочие станции, серверы различных классов. Для них со-
здавались свои процессоры (такие, как SPARC, SuperSPARC, Alpha
и др.). Однако быстрый прогресс в области ПК привел к тому,
что они благодаря своим возможностям и более низкой цене в
значительной мере вытесняют рабочие станции и серверы с рын-
ка современных ВМ.
Характеристики современных ПК постоянно улучшаются. Од-
нако, даже самый лучший ПК, обеспечивающий производитель-
ность порядка 108—109 flops (операций с плавающей точкой в се-
кунду), не может удовлетворить требованиям, предъявляемым к
средствам обработки информации такими развивающимися науч-
ными направлениями как наука о земле, магнитогидродинамика,
исследования вещества, элементарных частиц и их взаимодействий
и др. Требуется производительность порядка 1012—1013 flops. Для
удовлетворения таким требованиям развиваются суперкомпьюте-
ры на основе векторно-конвейерных процессоров. Альтернатив-
ным подходом является создание ВС с массовым параллелизмом. В
них широко используются современные МП такие, как Pentium
Pro, РЗ, Р4, Alpha, UltraSPARC. В архитектуре этих процессоров
заложены возможности объединения их в кластеры и далее в сис-
темы с массовым параллелизмом [12]. Большие возможности ПК
и массовое производство соответствующих средств обусловило
вытеснение рабочих станций с рынка серверов. Следует отметить
также тенденции в развитии вычислений с использованием ПК.
Уже в настоящее время вычисления становятся сетевыми (с ис-
пользованием технологий клиент—сервер) и все «более визуаль-
ными».
Переход к вычислениям в составе сети, а не на изолированном
ПК, обусловлен экономической и вычислительной целесообраз-
ностью. В частности, это снижает совокупную стоимость владения
изолированным компьютером и расширяет возможности соответ-
ствующей ВС.
Отметим некоторые тенденции, связанные с использованием
ВМ в технических системах. ВМ и другие средства вычислитель-
ной техники в технических системах используются не изолиро-
ванно (для решения частных задач), а в составе различных по
уровню и назначению автоматизированных систем. Для комплек-
сной автоматизации, управления и контроля технических систем
создаются иерархические системы комплексного информацион-
ного обслуживания, реализуемые в виде гетерогенных локальных
вычислительных сетей, объединяющих ВМ с различной архитек-
турой.
На нижнем уровне часто используются встраиваемые системы
на базе МК. На более высоких уровнях используются унифициро-
ванные платформы индустриальных систем, архитектурно совме-
стимые с ПК.
Информационные и управляющие системы, реализуемые на
базе средств вычислительной техники, используются во всех фа-
зах жизненного цикла технических систем. На этапе проектирова-
ния технических систем — системы автоматизированного проек-
тирования (САПР) и автоматизированные системы научных ис-
следований (АСНИ). На этапе производства — автоматизирован-
ные системы управления (АСУ) и автоматизированные системы
управления технологическими процессами (АСУТП), в частно-
сти, системы числового программного управления станками и ро-
бототехническими комплексами. На этапе функционирования (эк-
сплуатации) — системы автоматического и автоматизированного
управления, контроля и диагностики.
Развитие этих сложных систем неразрывно связано с повыше-
нием качества информационного обслуживания.
Контрольные вопросы
1. Что является предметом исследований научных направлений: ки-
бернетика, информатика, вычислительная техника? Какова связь между
этими направлениями?
2. В чем заключаются отличительные черты информационной эконо-
мики?
3. Какие системы называются сложными? Назовите основные призна-
ки сложной системы. Почему ВМ, ВС и сети относятся к сложным систе-
мам?
4. Что такое алгоритм, чем он характеризуется? В чем различие алго-
ритма и программы?
5. Что такое алгоритмически разрешимые задачи? Почему ВМ — уни-
версальное средство для решения любых алгоритмически разрешимых
задач?
6. Что такое информационные технологии? Какое научное направле-
ние изучают информационные технологии?
7. Определите понятия: информация, сигнал, символ, сообщение,
код, данные, элементы данных, типы данных. Какие виды информации
можно представить в виде данных? Почему в ВМ информация представ-
лена в виде данных?
8. В чем отличительные признаки ВМ, ВС, ВК и сетей?
9. В чем заключаются принципы организации ВМ, предложенные
Дж. фон Нейманом? От каких принципов наблюдается отход в современ-
ных компьютерах?
10. Что такое процессор? Что такое вычислительный процесс? Како-
вы функции процессора в организации работы ВМ?
Глава 2
ВВЕДЕНИЕ В ОРГАНИЗАЦИЮ ПЕРСОНАЛЬНЫХ
КОМПЬЮТЕРОВ PC
2.1. Принцип «открытой» архитектуры. IBM PC
совместимые компьютеры
В гл. 1 отмечалось, что именно ПК существенно повлияли на
проникновение средств вычислительной техники и информаци-
онных технологий во все сферы человеческой деятельности и выз-
вали перестройку компьютерной индустрии. Поэтому в данном
учебнике большое внимание уделяется организации и направле-
ниям развития ПК. В этой главе рассматриваются основные поня-
тия и принципы, связанные с организацией ПК. Более детально
их организация, работа и тенденции развития рассматриваются в
гл. 8 (после рассмотрения отдельных устройств ВМ).
К началу 80-х гг. XX в. рынок малых ВМ существенно расши-
рился (до нескольких десятков тысяч штук в год) и наметилась
четкая рыночная перспектива дальнейшего их распространения.
Особенно быстро возрастал спрос на персональные ВМ. К их со-
зданию подключилась фирма IBM — мощнейший мировой про-
изводитель ВМ. Первые ПК фирмы IBM были представлены в се-
редине 1981 г. При их создании с учетом перспектив и темпов
развития этого класса ВМ фирмой IBM был предложен новый
принцип «открытой» архитектуры. При этом ПК PC рассматри-
вался как гибкая, легко расширяемая модульная система, в кото-
рой допускалась возможность использования аппаратных и про-
граммных модулей, производимых различными фирмами.
Принцип «открытой» архитектуры обеспечивал возможность
кооперации различных фирм, специализирующихся на производ-
стве отдельных устройств и подсистем компьютера. При этом су-
щественное значение приобрело развитие международных стан-
дартов на интерфейсы, шины, архитектуру процессоров, конст-
руктивы и др. Существенным шагом в реализации этого принципа
было создание системной (материнской) платы с разъемами рас-
ширения.
Важнейшим решением фирмы IBM при разработке ее первого
ПК был выбор типа МП — центрального базового устройства
компьютера. IBM остановила свой выбор на 16-разрядном МП
фирмы Intel. Большой успех первых ПК фирмы IBM подтвердил
правильность ее выбора. Большинство последующих моделей ПК
фирмы IBM также были реализованы с использованием МП фир-
мы Intel (семейство х86: 18086, 18088, I80286, I80386, 180486,
Pentium, ...).
Компьютеры, построенные на основе принципа «открытой»
архитектуры с процессорами приведенной архитектурной линии
(включая МП, производимые другими фирмами, но архитектур-
но совместимые с МП фирмы Intel), называются «IBM PC совме-
стимыми компьютерами». Для них часто используется аббревиату-
ра PC (Personal Computer). Другие ПК, например Macintosh, не
принято называть PC. В России основное распространение полу-
чили ПК типа PC. В дальнейшем изложении, говоря о ПК, будем
иметь в виду «IBM PC совместимые компьютеры», или просто
компьютеры PC.
Принцип «открытой» архитектуры обеспечивает возможность
периодического расширения функциональных возможностей и
повышения производительности компьютера заменой отдельных
модулей на более совершенные. Это, с одной стороны, продлева-
ет жизненный цикл компьютера, снижая эффект морального ста-
рения в условиях быстрого развития средств вычислительной тех-
ники, с другой стороны, стимулирует производителей средств вы-
числительной техники непрерывно совершенствовать выпуска-
емые ими изделия.
Компьютеры PC включают широкий спектр ВМ различного
назначения, отличающихся характеристиками ресурсов и стоимо-
стью. В зависимости от класса решаемых задач различают: серве-
ры, графические станции, портативные модели, настольные мо-
дели. Среди наиболее распространенного класса настольных мо-
делей выделяют две группы: компьютеры для корпоративных
пользователей, компьютеры для дома и малого офиса (SOHO —
Small Office, Home Office).
2.2. Базовая функциональная схема компьютера PC
Базовая функциональная схема компьютера PC (рис. 2.1) со-
держит четыре основных функциональных устройства: процессор,
основную память, устройства ввода-вывода (УВВ или периферий-
ные устройства), системную шину (СШ). СШ содержит три груп-
пы соединительных линий, которые называются шиной адреса
(ША), шиной данных (ШД) и шиной управления (ШУ). Разряд-
ность ША, ШД, ШУ, порядок взаимодействия устройств, уров-
ни и последовательности сигналов в СШ стандартизованы.
К основным УВВ относятся: клавиатура, манипулятор (мышь),
монитор (дисплей), винчестер — накопитель на жестком магнит-
ном диске (НЖМД или ЖД) Hard Disk Drive (HDD), дисковод
для гибких магнитных дисков Floppy Disk Drive (FDD), принтер.
Рис. 2.1. Базовая функциональная схема ПК
Компьютеры PC построены с использованием основных прин-
ципов Дж. фон Неймана, изложенных выше. Управление вычисли-
тельным процессом осуществляет процессор — Central Processing
Unit (CPU). ОП имеет линейно-адресную организацию. Адреса яв-
ляются именами данных, которые используются в командах про-
грамм. Множество адресов, используемых в командах, образует ад-
ресное пространство (АП). Обмен информацией между устройства-
ми по СШ называют внутримашинным обменом. В любом обмене
участвуют как минимум два устройства: активное (источник) и
пассивное (приемник). В PC для организации внутримашинных об-
менов используют два адресных пространства: АП ОП и АП УВВ.
Рассмотрим подробнее принципы организации обменов дан-
ными по СШ.
Шиной (магистралью) в ВС называют совокупность линий пе-
редачи сигналов, к которым параллельно может подключаться
несколько блоков. По шине передаются адреса, данные и управ-
ляющие сигналы. Физически шина представляет собой печатные
проводники, к которым подключаются одноименные входы-вы-
ходы различных блоков ВС.
ША служит для адресации ячеек памяти и регистров (портов)
внешних устройств, с которыми взаимодействует процессор. Ад-
рес по шине подается во все, подключенные к ней устройства.
Все устройства содержат селекторы адреса, с помощью которых
распознают собственный адрес. На обращение по шине реагирует
только адресуемое устройство. Именно оно по сигналу от селек-
тора адреса воспринимает управляющие сигналы, передаваемые
по ШУ, и реализует соответствующие операции.
Различают два типа информационного обмена по СШ: ввод
(чтение) и вывод (запись). Передача данных в процессор называ-
ется вводом, а от процессора — выводом. При обмене активное
устройство (чаще всего процессор) формирует код адреса, соот-
ветствующий номеру ячейки в ОП либо номеру порта, использу-
емого для временного хранения одного слова данных.
По ШД производится обмен данными между процессором,
памятью и УВВ, подключенными к шине. ШД — двунаправлен-
ная. По этой шине процессор имеет возможность как передавать
информацию в другие устройства, так и получать информацию от
других устройств.
В каждый конкретный момент времени информация по дву-
направленной ШД может передаваться только в одном направле-
нии, поэтому необходимо иметь специальные сигналы, указыва-
ющие это направление. Такие управляющие сигналы вырабатыва-
ет процессор. Эти сигналы определяют «режим обмена» по шине.
Все управляющие сигналы передаются по ШУ, в которой боль-
шинство линий — однонаправленные, а некоторые — двунаправ-
ленные. Управляющие сигналы передаются во все блоки ВС, под-
ключенные к шине, настраивая их на нужный режим работы.
Важнейшей характеристикой компьютера является его произ-
водительность. Производительность компьютера зависит от ресур-
сов и быстродействия всех устройств, но наиболее сильно она
зависит от быстродействия процессора. Не случайно процессоры в
компьютерах типа PC развиваются опережающими темпами. Для
сравнения производительности процессоров одной архитектурной
линии используют специальный параметр, определяющий число
операций, выполняемых процессором за единицу времени, кото-
рый измеряется в MIPS — Million Instruction Per Second. По срав-
нению с процессором 18086 (1976) производительность современ-
ных процессоров Pentium — Р4 (2000) увеличилась более чем в
5000 раз.
Для эффективного использования задействованных в системе
ресурсов характеристики функциональных устройств должны быть
сбалансированы. На основе мониторинга современных компьюте-
ров определено следующее усредненное правило согласования
характеристик основных ресурсов: «Сбалансированная компьютер-
ная система требует 1 Мбайт основной памяти и 1 Мбит/с пропус-
кной способности шины на каждый 1 MIPS производительности
процессора» [50].
На развитие PC существенно влияют успехи микроэлектро-
ники.
С ростом производительности процессора в компьютерах уве-
личивались объем ОП и пропускная способность шины. Повы-
шение пропускной способности шины непосредственно связано
с увеличением разрядности шин компьютера. Разрядность ША и
ШД процессоров PC по мере их совершенствования увеличивает-
ся (см. рис. 2.1).
Поскольку требования к скорости информационного обмена с
различными УВВ существенно отличаются, то в современных ком-
пьютерах используется несколько шин с различной пропускной
способностью (см. гл. 8).
Существенные изменения происходят и в организации обмена
между процессором и ОП. Для уменьшения затрат времени на
информационный обмен между ОП и процессором включают бу-
ферную кэш-память. Первый уровень кэш-памяти расположен на
кристалле современного процессора, второй уровень — на кри-
сталле процессора или в непосредственной близости от этого кри-
сталла. При этом обмен с ОП происходит не отдельными слова-
ми, а пакетами слов, что позволяет более эффективно использо-
вать разделяемый ресурс — шину.
Периферийные устройства или УВВ связывают компьютер с
внешним миром. Данные, вводимые пользователем через устрой-
ства ввода, должны быть предварительно обработаны таким обра-
зом, чтобы соответствовать требованиям со стороны СШ (фор-
мат, уровни сигналов, временные параметры). Требования эти
стандартизованы для различных типов шин. В случае вывода ин-
формация, поступающая из шины на монитор, принтер или дру-
гие устройства вывода, также должна быть обработана таким об-
разом, чтобы соответствовать спецификации соответствующих
устройств. Применительно к задачам информационного взаимо-
действия различных устройств используется понятие «интерфейс».
Под интерфейсом (Interface — сопряжение) понимается сово-
купность аппаратных, программных и конструктивных средств,
используемых для реализации информационного взаимодействия
функциональных блоков в ВМ (ПК). Понятие «интерфейс» ис-
пользуется для всех устройств ВМ: процессора, СШ, ОП, пери-
ферийных устройств. В целях обеспечения совместимости устройств
ВМ, выпускаемых разными производителями, интерфейсы соот-
ветствуют международным стандартам. Стандартизации подлежат
электрические и временные параметры, набор управляющих сиг-
налов, протокол обмена данными (временная последовательность
логически связанных сигналов, участвующих в обмене), конст-
руктивные особенности подключения. Обмен данными между уст-
ройствами компьютера возможен только в случае совместимости
их интерфейсов.
Для согласования интерфейсов СШ и периферийных устройств
используют аппаратные средства (адаптеры или контроллеры),
размещаемые на печатных платах расширения. Контроллер отли-
чается от адаптера тем, что он является активным устройством,
т.е. устройством, способным к самостоятельным действиям без
участия процессора после получения команд от обслуживающих
его программ.
Интерфейсные блоки (адаптеры, контроллеры, интерфейс-
ные карты) являются буфером между периферийными устрой-
ствами и процессором. Они содержат регистры (порты), кото-
рым соответствуют определенные адреса в АП ввода-вывода. Бу-
фер требуется для преобразования форматов представления дан-
ных и скорости передачи, свойственных периферийным устрой-
ствам, в форматы и скорости, с которыми работает процессор
компьютера.
Для организации информационного обмена с периферийны-
ми устройствами используются три способа:
1) программный опрос, в этом случае инициатором обмена
выступает процессор, который при необходимости обращается к
регистрам периферийных устройств (портам) по соответствую-
щим адресам;
2) обмен с прерыванием программы (он реализуется с помо-
щью механизма аппаратных прерываний, который обеспечивает
реакцию компьютера на асинхронные события по запросам пери-
ферийных устройств);
3) передача информации в режиме прямого доступа к памяти —
Direct Memory Access (DMA).
Прямой доступ к памяти используется, когда требуется высо-
кая скорость обмена между внешними устройствами и памятью.
В режиме DMA процессор отключается от СШ. Передача данных
производится не одиночными словами, а пакетами. Обменом уп-
равляет специальный контроллер DMA, который осуществляет
формирование управляющих сигналов в ШУ и адресов в ША. Кон-
троллер DMA можно рассматривать как сопроцессор ввода-выво-
да, освобождающий центральный процессор от задач управления
обменом при передаче массива между периферийными устрой-
ствами и ОП.
2.3. Конструктивные принципы построения
компьютеров PC. Термины
Конструктивные принципы определяют способы конструктив-
ного исполнения устройств компьютера, организации простран-
ственных механических и электрических связей между устройствами
и узлами. При этом весьма существенным является принцип «от-
крытой» архитектуры, согласно которому пользователь должен
иметь относительно простой доступ ко всем устройствам и узлам
для их замены либо дополнения системы новыми узлами.
Рассмотрим конструктивные принципы построения наиболее
распространенного класса настольных моделей PC. Компьютер
содержит следующие типы связанных в систему конструктивно
обособленных устройств: системный блок, монитор, клавиатуру,
мышь, принтер. Для работы с компьютером принтер не является
обязательным устройством. Он требуется для распечаток готовых
материалов на бумаге.
Основным по функциональному составу и стоимости является
системный блок. Он содержит все основные электронные схемы,
обеспечивающие запись, хранение и обработку данных, а также
НЖМД или ЖД (HDD), дисковод для гибких магнитных дисков
(FDD), привод CD-ROM (Compact Disk — компакт-дисков), блок
питания.
Системный блок расположен в корпусе. Корпус (Case) не только
защищает электронные схемы компьютера от внешних воздей-
ствий, но и служит конструктивной основой для последующего
расширения системы. Используется много типов корпусов и их
размеров. В настоящее время наиболее распространенным являет-
ся корпус типа «башня» (Tower). Это — параллелепипед, типи-
чные размеры которого: 21*40x40 см, где последний размер —
высота. В корпусе системного блока крепится системная плата, а в
специальных отсеках — дисковые накопители и блок питания. На
переднюю панель корпуса выведены: кнопка включения питания
(Power) с индикацией, кнопка перезапуска системы (Reset) с
индикацией, окна, через которые осуществляется доступ к дис-
ковым накопителям с использованием соответствующих механиз-
мов и органов управления. На задней панели корпуса имеются
выводы для подключения электропитания компьютера, а также
разъемы для подключения периферийных устройств (монитора,
клавиатуры, мыши и др.).
Системная (материнская) плата (System Board или Mother
Board) — основной узел системного блока. На ней расположены
процессор, основная (оперативная) память, вспомогательные
схемы и щелевые разъемы, предназначенные для подключения
так называемых плат (карт) расширения. К платам расширения
относятся видеокарты, звуковые карты, сетевые карты, встраива-
емые модемы и др. Состав и типы плат расширения могут быть
различными. Соответственно различными окажутся функциональ-
ные возможности и стоимость компьютера.
Унификация системных плат, корпусов и плат расширения обес-
печивается стандартами и соглашениями между фирмами — про-
изводителями компьютеров. Примерами соглашений являются:
• стандартизация размеров и количества контактов у разъемов
для подключения плат расширения;
• стандартизация расстояния от разъема до задней кромки пла-
ты в целях обеспечения возможности закрепления платы;
• фиксированный шаг между соседними разъемами расшире-
ния;
• максимальный габаритный размер плат расширения.
Используемые конструктивные принципы придают компьюте-
ру признаки игрушки-конструктора, «играя» с которым, пользо-
ватель может менять конфигурацию в соответствии с имеющими-
ся желаниями и возможностями. Однако в отличие от детского
конструктора для реализации принципов «открытой» архитекту-
ры одних конструкторских соглашений не достаточно. Для пони-
мания возможностей и сути стандартизации в области компь-
ютерной индустрии требуются глубокие знания по функциональ-
ной и структурной организации компьютеров и протекающих в
них процессов (эти вопросы рассмотрены в гл. 8).
Контрольные вопросы
1. Какой класс ВМ называют PC? В чем заключается принцип «откры-
той» архитектуры, реализованный в компьютерах PC?
2. Какие функциональные устройства входят в базовую функциональ-
ную схему ПК? Что такое СШ? Как организовано взаимодействие уст-
ройств в компьютере?
3. Как выполняются операции ввода (чтения) и вывода (записи)?
4. В чем заключается правило согласования основных ресурсов компь-
ютера?
5. Что такое интерфейс? Какие устройства используются для согласо-
вания интерфейсов СШ и устройств, подключенных к ней?
6. Что такое порт в интерфейсном блоке? В чем его назначение?
7. Какие способы организации обмена данными между ОП и перифе-
рийными устройствами используются в компьютерах? Какими средства-
ми реализуется каждый способ? В каких случаях они используются?
8. Какие конструктивно обособленные устройства входят в состав ком-
пьютера?
9. Что содержит системный блок компьютера?
10. Какие характеристики конструкции системного блока стандарти-
зованы?
Глава 3
ОСНОВНЫЕ ХАРАКТЕРИСТИКИ И ПАРАМЕТРЫ
ВЫЧИСЛИТЕЛЬНЫХ МАШИН. ФАКТОРЫ, ВЛИЯЮЩИЕ
НА ИХ РАЗВИТИЕ
3.1. Организация вычислительных машин и теория
автоматов. Унификация средств вычислительной техники.
Преобразования, выполняемые электронными схемами
При проектировании ВМ и систем приходится решать задачи
синтеза, анализа и принятия решений. Для эффективного реше-
ния этих задач требуется построение моделей устройств, блоков,
процессов. Модели позволяют проникнуть в суть организации ра-
боты устройств ВМ. Поэтому они полезны и при изучении орга-
низации ВМ и ВС. Теоретической базой построения моделей вы-
числительных устройств, используемых при синтезе, является те-
ория автоматов — раздел теории управляющих систем, изучающий
математические модели преобразования дискретной информации,
называемые автоматами. Для формализованного представления
устройств ВМ удобно использовать алгебраическую модель диск-
ретного преобразователя [21].
Дискретный преобразователь — это система из двух автоматов
(рис. 3.1): операционного (ОА) и управляющего (УА). ОА пред-
назначен для преобразования данных выполнением определенно-
го набора операций (сложение, вычитание, сдвиг, инвертирова-
ние разрядов и др.). УА предназначен для управления работой ОА.
Хотя функции, реализуемые автоматами ОА и УА, и соответству-
ют конечным автоматам, но в их структуре и подходах к синтезу
имеются существенные различия.
На входы УА поступают команды (К), настраивающие его на
реализацию того или иного алгоритма. На дополнительные входы
УА поступают сигналы со, называемые признаками. Они характе-
ризуют результат выполненных в ОА операций над данными и
Рис. 3.1. Структура дискретного преобразователя:
УА — управляющий автомат; ОА — операционный автомат; К — команды; и —
управляющие сигналы; со — сигналы-признаки; X — информационный вход; Y —
выход обрабатываемых данных
используются УА при ветвлениях в реализуемом алгоритме. На
выходах УА вырабатываются управляющие сигналы и, которые
поступают на управляющие входы ОА.
ОА имеет информационный вход Xи выход Кобрабатываемых
данных (D). На вход X поступают «-разрядные двоичные коды
Х[п: 1], п = 16, 32, ..., представляющие входные данные. ОА мо-
жет выполнять функции записи, хранения и обработки поступа-
ющих данных. Помимо входов X, на которые поступают данные,
ОА имеет еще и управляющие входы, на которые поступают уп-
равляющие сигналы и от управляющего автомата УА. Эти сигналы
настраивают ОА на выполнение той или иной операции. Помимо
выходов Y, на которые выводятся данные после обработки, ОА
имеет еще выходы для двоичных переменных со. Эти сигналы (при-
знаки) с выходов ОА поступают на входы УА.
Рассмотрим особенности ОА, определяющие целесообразность
выделения их в самостоятельный класс автоматов.
Множество кодов X называют информационным множеством
М. Код X как элемент множества М может представлять число с
фиксированной или плавающей точкой, строку символов, за-
кодированную видео или аудио информацию и др. Мощность
множества М определяется принятой в ОА разрядностью п и
равна 2".
На множестве Мопределены два вида преобразований: множе-
ство операций, результаты К которых принадлежат тому же мно-
жеству М, и выявление признаков, характеризующих полученные
результаты К Получение признаков со является отображением ре-
зультатов Кна множество {0,1}. Признак — это двоичная перемен-
ная, соответствующая выполнению «1» или невыполнению «0»
некоторого условия. Примеры условий: результат равен нулю, ре-
зультат положителен.
Для иллюстрации работы ОА, выполняющего операции на ин-
формационном множестве М, рассмотрим структуру простого АЛУ
ВМ (рис. 3.2). Она содержит регистры операндов (Рг1 и Рг2), ре-
зультата (РгЗ) и признаков (РП), а также комбинационную схему
(КС) автомат без памяти. Выходы регистров Рг1 и Рг2 соединены
с входами КС, а выходы КС соединены с входами регистров РгЗ и
РП. На управляющие входы блоков подаются управляющие сиг-
налы иь ..., и5. Управляющие сигналы регистров управляют запи-
сью в них кодов, подаваемых на информационные входы. Управ-
ляющий сигнал КС настраивает ее на выполнение одной из опе-
раций (сложение, вычитание, логические операции и т. п.). Каж-
дая операция в ОА выполняется регистровой передачей, выпол-
няемой за такт. Рассмотрим последовательность регистровых пе-
редач при выполнении операции сложения. Запись из внешних
источников 1-го операнда в Рг1; запись 2-го операнда — в Рг2;
передача сигналов с выходов Рг1 и Рг2 через КС, настроенную
Рис. 3.2. Структура АЛУ:
X, Х\, Хг — двоичные коды входных данных; Рг1 — регистр 1-го операнда; «ь ...,
щ — управляющие сигналы; РП — регистр признаков; ш — сигналы-признаки;
КС — комбинационная схема; РгЗ — регистр результата; Y — выходные сигналы;
Рг2 — регистр 2-го операнда
сигналом и4 на операцию сложения, с последующей записью ре-
зультата в РгЗ и признаков в РП. Такой уровень рассмотрения про-
цессов в ВМ называют уровнем регистровых передач.
Для пояснения сути различий в подходах к описанию и проек-
тированию ОА и УА рассмотрим их абстрактное теоретико-мно-
жественное представление.
Для ОА удобна модель многорегистрового автомата [21]. Мно-
горегистровый ОА определяется как совокупность множества ре-
гистров {/?,}, множества операторов {О,} и условий {со,}, опреде-
ленных на множестве слов, которые могут быть записаны в реги-
стры. Так, для ОА (см. рис. 3.2) получим
{Я,-} = {Рг1, Рг2, РгЗ, РП}.
Допустим, что разрядность Рг1, Рг2, РгЗ определяется значе-
нием п = 32, а РП — значением т = 16. Тогда содержимое регист-
ров можно представить в виде
(Рг1) = *1 [л: 1], (Рг2) = Х2 [л : 1], (РгЗ) = Y[n : 1], (РП) = О[л1:1],
где{%[л : 1]} = М — информационное множество слов, с которым
может работать ОА.
При этом посредством регистровых передач через КС выполня-
ются отображения:
О, о,
{Аг1}х{Аг2}-»{К}, или в другом обозначении МхМ^М,
где Oi — оператор;
а также
(Of
М-»{0,1},
где со, — признак выполнения либо невыполнения условия.
Эти признаки определяются для результатов выполненных опе-
раций. Областью значений результатов является информационное
множество М. Признак соответствует попаданию результата в одну
либо другую часть множества возможных значений. Поэтому при-
знак имеет два значения, одно из которых «1» соответствует вы-
полненному условию, а другое «О» — невыполненному.
Множество состояний регистров определяет множество Q внут-
ренних состояний ОА. Оценим мощность этого множества:
|Q| = 2Л х2л х2л x2m = 2112.
Приведенные оценки показывают, что хотя рассматриваемый
ОА и относится к конечным автоматам с памятью, но число его
внутренних состояний настолько велико, что без введения до-
полнительных ограничений решение задач синтеза и анализа с
использованием методов теории конечных автоматов не пред-
ставляется возможным. Практически необозримо и число опера-
торов 0h которые могут быть реализованы регистровыми пере-
дачами.
В целях ограничения сложности ОА должно быть ограничено и
число операторов 0„ реализуемых аппаратурой (электронными
схемами) при регистровых передачах. При этом необходимо учесть
требования функциональной полноты выбранного набора опера-
торов и эффективности выполнения основных типов операций,
используемых при алгоритмизации и программировании. Кроме
того, учитывается требование унификации операционных уст-
ройств, что необходимо для организации их промышленного про-
изводства. Для удовлетворения перечисленным требованиям в ос-
нову построения ОА положены две математические структуры:
арифметика и булева алгебра. При этом операционный базис со-
ставляет небольшое число операций, хорошо известных из курса
информатики. Это суммирование, логические операции И, ИЛИ,
НЕ, сдвиги и некоторые другие. Реально реализуемый базис фун-
кционально избыточен, но и он весьма ограничен, составляя не-
сколько десятков операций.
В математике доказано, что любая алгоритмически разреши-
мая задача может быть представлена алгоритмом, содержащим
операторы арифметики и булевой алгебры. Это определяет уни-
версальный характер ВМ как средств для программной обработки
информации. При этом электронные схемы операционных уст-
ройств выполняют ограниченный набор операций, а управляют
их работой УА, работа которых определяется программой.
Другой важной особенностью ОА является то, что в соответ-
ствии с арифметикой, оперирующей с числами в позиционной
системе счисления, в нем выполняются периодически определен-
ные преобразования. Это означает, что при регистровой передаче
над всеми разрядами слова выполняются одинаковые преобразо-
вания. Это определяет регулярность структуры регистров и КС ОА
С использованием рассмотренных ограничений многообразия опе-
рационного базиса и, как следствие, унификации операционных
устройств их схемотехника хорошо отработана и вошла в серии
ИС и библиотеки стандартных элементов систем автоматизиро-
ванного проектирования цифровых устройств. Изучению этой ча-
сти вычислительной техники посвящен специальный курс схемо-
техники.
Для УА подобная унификация схемных решений невозможна
вследствие необозримости числа алгоритмов, которые требуется
реализовать на базе средств вычислительной техники. Внутренние
состояния УА отражают пошаговый характер выполнения команд.
Каждый шаг соответствует регистровым передачам, выполняемым
за 1 такт. В отличие от ОА в УА число внутренних состояний отно-
сительно невелико (десятки, иногда более сотни). При этом для
решения задач синтеза и анализа вполне могут быть использова-
ны методы теории конечных автоматов. В зависимости от сложно-
сти УА используются различные подходы к их реализации, кото-
рые будут рассмотрены в разделе процессоров (см. гл. 4).
В соответствии с рассмотренной моделью дискретного преоб-
разователя при рассмотрении структур ВМ и систем будем выде-
лять операционные блоки, используемые для хранения, преобра-
зования и коммутации информации, и управляющие блоки, а
также будем различать тракты для передачи данных и управляю-
щих сигналов.
Вычисления в ВМ осуществляются последовательным испол-
нением команд программы. Программа зависит от списка команд,
на который существенно влияет операционный базис (набор опе-
раций, выполняемых при регистровых передачах).
Рассмотрим существующие модели вычислений, с использо-
ванием которых организуются вычислительные процессы обра-
ботки данных по программе. При организации обработки данных
существенно рассмотреть механизмы управления вычислениями
и взаимодействия процессора с данными в памяти. В связи с тем
что в основу организации ОА положен ограниченный операцион-
ный базис арифметики и булевой алгебры, вычисления при ре-
шении различных задач обработки данных выполняются в основ-
ном последовательно, шаг за шагом. Механизм управления опре-
деляет, как завершение одного шага вычислений вызывает следу-
ющий шаг. Механизм данных определяет, как используются дан-
ные в различных вычислениях (например, как используется неко-
торая переменная на различных шагах выполнения алгоритма од-
ним ОА, либо несколькими ОА, совместно решающими общую
задачу).
Существуют три механизма управления последовательностью
исполнения команд в программах, соответствующие формирова-
нию трех потоков: управления, данных и запросов [12].
Наиболее широкое применение в существующих ВМ и ВС имеет
1-й механизм управления, в соответствии с которым каждая ко-
манда получает возможность исполнения, как только ей переда-
ется управление от предшествующей команды. Во 2-м механизме
управления команда получает возможность исполнения, как только
становятся готовыми ее операнды. В 3-м механизме управления
обеспечивается возможность исполнения команды, когда потре-
буется ее результат.
В ВС с параллельной обработкой данных в дополнение к 1-му
используются 2-й и 3-й механизмы управления. Сочетание этих
механизмов позволяет выявлять внутренний параллелизм, прису-
щий решаемой задаче, и организовать параллельную обработку с
наиболее эффективным использованием ресурсов системы. Одна-
ко при этом существенно усложняются управление вычислитель-
ными процессами, организация памяти и организация средств
обмена информацией между устройствами системы. Пути преодо-
ления этих трудностей рассматриваются далее (см. гл. 10).
Механизм данных определяет способ, с помощью которого один
и тот же аргумент используется множеством команд. В основном
используются два варианта механизма.
В первом варианте доступ к операнду осуществляется по адре-
су, который содержится в команде как имя операнда. Различные
команды могут иметь ссылки по адресу на один и тот же операнд.
Операнд хранится в ОП в одном экземпляре. Этот механизм явля-
ется основным в современных компьютерах.
Во втором варианте механизма происходит копирование опе-
ранда для каждой использующей его программы в соответствую-
щую область памяти. При исполнении программа работает со сво-
ей копией и не зависит от других программ. Механизм использу-
ется в ВС с распараллеливанием вычислений. При этом возникает
проблема обеспечения одинаковых значений всех копий перемен-
ной при ее востребовании тем или иным процессором. Для этого
требуются специальные дополнительные средства (см. гл. 10).
Различные сочетания механизмов управления и данных опре-
деляют различные модели вычислений и существенно влияют на
архитектуру ВС [12].
3.2. Многоуровневая организация вычислительных
процессов. Понятия архитектуры вычислительной машины,
аппаратного и программного обеспечения
ВМ и ВС, являясь сложными системами, содержат большое
число взаимодействующих аппаратных и программных модулей.
Сложные системы не имеют простых описаний. Это связано со
следующими особенностями: большое число и разнородность эле-
ментов системы (модулей), разнообразие и нерегулярность связей
между ними, отсутствие единого аппарата для описания поведе-
ния различных модулей.
Для описания, проектирования и организации управления в
ВС используется иерархический подход. Рассмотрим уровни орга-
низации вычислительных процессов (рис. 3.3) в ВМ и ВС, а так-
же категории специалистов, использующие соответствующие уров-
ни представления в своей профессиональной деятельности, и
процессы, реализующие взаимодействие уровней.
На концептуальном уровне пользователь анализирует
задачу, выбирает метод ее решения, разрабатывает алгоритм. Для
сложных задач выполняется функциональная декомпозиция, оп-
ределяются структуры данных, выделяются программные моду-
Специалист,
организующий
взаимодействие
уровней
Процесс,
реализующий
взаимодействие
уровней
Пользователь
Системный
программист
Системотехник
Уровни
организации
вычислительного
процесса
Программирование
Компиляция
Микропрограм-
мирование
Логическое
проектирование
Электроник
Рис. 3.3. Многоуровневая организация вычислительных процессов
ли, определяются связи между ними. Весьма полезно использо-
вать какой-либо визуальный формализм для представления про-
цесса решения задачи.
Далее пишется программа на одном из языков высокого
уровня. Такое представление программы является машинно-не-
зависимым, то есть независимым от архитектуры ВС и от особен-
ностей аппаратного обеспечения.
На уровне машинных команд обеспечивается связь
программных и аппаратных средств. На этом уровне разрабатыва-
ется список команд, определяются способы кодирования опера-
ций и адресов, число адресных полей в команде и другие пара-
метры, заложенные в структуру ВМ. Перевод программы с языка
высокого уровня в машинные коды (на уровень машинных ко-
манд) осуществляет специальная системная программа — компи-
лятор. Компиляторы относятся к системному программному обес-
печению. Список команд ВМ функционально избыточен. Поэтому
для одной программы, написанной на языке высокого уровня,
можно породить много программ на уровне машинных команд,
которые по выполняемым функциям эквивалентны, но различа-
ются по использованию ресурсов ВМ (памяти, процессорного
времени). Поэтому актуальна задача построения оптимизирующе-
го компилятора. Чем ближе состав операторов языка высокого
уровня к списку команд ВМ, тем проще компилятор и эффектив-
нее полученная для исполнения программа. В частности, при про-
граммировании часто используют язык Ассемблера. Ассемблер —
машинно-зависимый язык программирования. Представление за-
дачи на языке Ассемблера занимает промежуточное положение в
иерархии представлений между языками высокого уровня и ма-
шинными командами. Язык Ассемблера используют при написа-
нии системных программ, кратность исполнения которых суще-
ственно выше, чем у прикладных программ. Используют его и при
написании прикладных программ, например для МК, ресурсы
которых ограничены, а прикладные программы для них — это,
как правило, программы управления оборудованием, которые
также исполняются многократно.
Следует отметить, что связь между языками высокого уровня и
машинными командами может осуществляться как методом ком-
пиляции, так и методом интерпретации. При компиляции про-
грамма на языке высокого уровня сначала преобразуется полнос-
тью в программу в машинных кодах, а затем может поступать для
исполнения с использованием более низких уровней организа-
ции вычислительного процесса. При работе компилятора (преоб-
разователя информации, реализованного с использованием про-
граммы-компилятора и аппаратуры ВМ) программа пользовате-
ля на языке высокого уровня — это входные данные, а соответ-
ствующая программа на языке машинных команд — выходные
данные, результат работы компилятора. При исполнении получен-
ная программа в машинных кодах уже используется не как данные,
а как программа, управляющая вычислительным процессом.
При интерпретации процессы организованы иначе. Программа
пользователя на языке высокого уровня непосредственно исполь-
зуется для управления вычислительным процессом с использова-
нием системной программы — интерпретатора. Интерпретатор
выбирает очередную команду программы на языке высокого уров-
ня, заменяет ее последовательностью машинных команд, выпол-
няющих требуемые функции, и сразу передает эту последователь-
ность машинных команд на исполнение. Затем с учетом призна-
ков, характеризующих результат выполненных преобразований,
выбирается следующая команда программы на языке высокого
уровня и т.д.
Сравнивая эти два метода взаимодействия между уровнями,
отметим следующее. При компиляции требуется более сложная
системная программа — компилятор, в процессе компиляции тре-
буется больший объем памяти, но зато исполнение пользователь-
ской программы происходит существенно быстрее. В связи с этим
в современных ВМ в основном используется метод компиляции.
На уровне регистровых передач осуществляются мик-
рооперации, выполняемые аппаратурой ВМ. Это операции пере-
дачи, запоминания и преобразования кодов, выполняемые пере-
сылкой сигналов между регистрами через комбинационные (ло-
гические) схемы (см. рис. 3.2). Микрооперация — это операция
над кодами, выполняемая одной регистровой передачей (за такт).
Для настройки схем на выполнение требуемой микрооперации
при регистровой передаче требуется сформировать соответствую-
щий набор управляющих сигналов. Код набора управляющих сиг-
налов называют микрокомандой. Последовательность микрокоманд,
соответствующая исполнению машинной команды, называют мик-
ропрограммой. Каждой машинной команде соответствует своя мик-
ропрограмма. Связь между уровнями машинных команд и регист-
ровых передач осуществляется методом интерпретации. Выборкой
команд из программы в машинных кодах и интерпретацией выб-
ранной команды управляет аппаратно устройство управления цен-
трального процессора. Уровень регистровых передач называют также
микропрограммным.
На уровне логических вентилей рассматриваются ло-
гические схемы при логическом проектировании аппаратуры ВМ.
Если на уровне регистровых передач рассматриваются операции с
«-разрядными кодами, то на уровне вентилей — с отдельными
двоичными переменными.
Многоуровневая организация упрощает реализацию ВМ и уп-
равление вычислительным процессом, но снижает эффективность
работы за счет «накладных расходов» на управление. В процессе
работы происходит «челночное» взаимодействие между уровня-
ми: выборка очередной команды на уровне машинных команд,
интерпретация команды на уровне регистровых передач, реализа-
ция регистровой передачи передачей сигналов в сети логических
элементов, фиксация признаков, характеризующих результат вы-
полнения операции, использование признаков для разветвления
при выборке следующей команды, и т.д.
В управлении вычислительным процессом с иерархической
организацией участвуют как программные, так и аппаратные сред-
ства. Функционирование ВМ и ВС заключается в тесном и нераз-
рывном взаимодействии аппаратуры и программ. Грань разделе-
ния функций, реализуемых аппаратно и программно, по мере
развития архитектуры ВМ и технологии их изготовления смеща-
ется в сторону аппаратной реализации.
Определим понятие «архитектура ВМ». Это понятие рассмат-
ривается с двух позиций: пользователя и разработчика ВМ. С то-
чки зрения пользователя архитектура — это совокупность систе-
мы команд, способов организации памяти, система адресации,
организация ввода и вывода и т. п. С точки зрения разработчика —
это структура аппаратного обеспечения, зависящая от элемент-
ной базы, конфигурация и взаимодействие основных узлов, рас-
пределение функций по уровням иерархической организации вы-
числительных процессов, определение границ и интерфейсов.
Как уже отмечалось в гл. 1, аппаратуру ВМ, включающую уст-
ройства и связи между ними, называют аппаратным обеспечением
(hardware), а программы, обрабатываемые данные, языки про-
граммирования — программным обеспечением (software) .
Изучению ПО в образовательных программах посвящены спе-
циальные дисциплины. Однако для понимания архитектуры и ра-
боты ВМ и ВС необходимы представления и о ПО. Рассмотрим
основные понятия, состав и структура ПО.
ПО принято подразделять на две части: системное и прикладное.
Системное ПО (system software) — это совокупность системных
программ, необходимых для эксплуатации и технического обслу-
живания ВМ, для организации вычислительных процессов и ав-
томатизации разработки прикладных программ. Важнейшей состав-
ляющей системного ПО является операционная система.
Прикладное ПО — пользовательское. Оно включает прикладные
программы и пакеты, предназначенные для решения на ВМ зада-
чи или класса задач в определенной области науки, техники, эко-
номики, искусства. Прикладные программы часто называют «при-
ложения». Существует ряд приложений, которые могут использо-
вать для своей работы специалисты различного профиля, не име-
ющие специальной подготовки в области программирования и
вычислительной техники. Программисты могут дополнительно
разрабатывать свои прикладные программы.
Перечислим некоторые из стандартных приложений.
Офисные приложения: текстовый и графический редакторы,
электронные таблицы, электронные словари и переводчики.
Мультимедийные приложения: аудио, видео, обучающие
приложения, экскурсии, выставки.
Пакеты прикладных программ для автоматизированного про-
ектирования дискретных устройств: Р-CAD, МАХ + PLUS 2, ....
Пакеты прикладных программ для решения математических
задач: MATHCAD, MATLAB.
По функциональному признаку программы системного ПО
делят на транслирующие, служебные, управляющие. Транслиру-
ющие программы преобразуют программы, представленные на
языках программирования, в машинные коды. Транслирующие
программы входят в состав так называемых систем программиро-
вания. Служебные программы — динамично изменяемая часть си-
стемного ПО, зависящая от назначения ВМ, состава аппаратного
обеспечения. К ним относятся драйверы (программы работы с
периферийными устройствами), тесты, диагностические програм-
мы и некоторые другие. Управляющие программы используются
при организации вычислительных процессов для распределения
ресурсов и для диспетчеризации процессов.
Управление вычислительными процессами в ВМ и ВС органи-
зовано по иерархическому принципу. Верхний уровень иерархии
занимает ОС. По определению ГОСТ под ОС понимают систему
программ, предназначенную для обеспечения определенного уров-
ня эффективности ВС за счет автоматизированного управления ее
работой и предоставляемых пользователям определенного рода
услуг. ОС обеспечивает взаимодействие ВС с пользователем и ко-
ординацию работы всех ее подсистем: запуск программ, разделе-
ние ОП и других ресурсов между ними, связь с внешними уст-
ройствами. ОС относится к системному ПО.
Для взаимодействия пользователя с ОС может использоваться
специальный язык команд. Эти команды, набираемые на клави-
атуре, воспринимаются специальной программой-интерпретато-
ром, которая их расшифровывает и запускает программные сред-
ства ОС, необходимые для исполнения. Такой способ взаимодей-
ствия пользователя с компьютером реализован, например, в ОС
MS DOS. В настоящее время для взаимодействия с пользователем
чаще используется графический интерфейс, а средством для воз-
действия на ОС со стороны пользователя является «мышь». Такой
подход реализован в ОС Windows NT, Windows 98, Windows 2000
и др.
Используя многоуровневое представление вычислительных
процессов (см. рис. 3.3), можно отметить, что ОС управляет вво-
дом программы на языке высокого уровня, трансляцией ее в ма-
шинные коды, предоставлением необходимых ресурсов и иници-
ированием исполнения. Собственно исполнением программы (вы-
борка команд, их интерпретация на уровне регистровых передач)
управляют аппаратные средства. Таким образом, в управлении
вычислительными процессами используются как аппаратные, так
и программные средства. В целях уменьшения затрат машинного
времени на управление и повышения производительности ВС с
развитием технологии производства ИС все большая часть функ-
ций управления реализуется аппаратными средствами.
Часть системного ПО, называемая базовой системой ввода-
вывода BIOS (Basic Input Output System), необходима для иници-
ализации работы ВС и управления выполнением ряда системных
функций. BIOS — это система программ на машинном языке, уп-
равляющая передачей данных между устройствами ВМ (процес-
сором, памятью, дисками, монитором), а также выполняющая
ряд дополнительных функций при включении компьютера. BIOS
поддерживает определенный стандарт интерфейса устройств и
ориентируется на конкретный тип материнской платы. От этой
системы существенно зависит производительность компьютера.
Программы BIOS записаны на энергонезависимой памяти (ROM
или FLASH). В компьютерах PC соответствующая микросхема энер-
гонезависимой памяти с записанными на ней программами уста-
навливается на материнской плате. В ней хранятся тестовые, заг-
рузочные программы, базовая система ввода-вывода. Использова-
ние флэш-памяти для хранения BIOS позволяет обновлять вер-
сию. Перечислим основные функции BIOS в компьютерах PC:
• инициализация и начальное тестирование аппаратных средств,
эти функции выполняет программа POST — Power On Self Test;
• настройка и конфигурирование аппаратных средств и си-
стемных ресурсов — BIOS Setup;
• загрузка ОС с дискового носителя — Bootstrap Loader;
• обслуживание аппаратных прерываний — BIOS Hardware
Interrupts;
• отработка базовых функций программных обращений (серви-
сов) к системным устройствам — ROM BIOS Services.
3.3. Основные характеристики вычислительных машин
и систем. Методы оценки
3.3.1. Общетехнические показатели вычислительных машин
и систем
Общетехническими показателями ВМ и ВС являются стоимость,
производительность и надежность. Для большинства систем мас-
сового применения структурная избыточность для повышения
надежности используется редко. Надежность повышается до не-
обходимого уровня за счет совершенствования качества элемен-
тов и конструкции. Для повышения надежности хранения и пе-
редачи информации между блоками системы используют избы-
точное кодирование. Эти вопросы рассмотрены в гл. 6. Вопросы
повышения надежности, безотказности, живучести за счет струк-
турного резервирования весьма актуальны для систем специально-
го назначения. В данном учебнике эти вопросы не рассматриваются.
Основными показателями, влияющими на архитектуру боль-
шинства ВМ и ВС, являются стоимость и производительность. Рас-
смотрим содержание этих понятий и методы их численной оценки.
3.3.2. Стоимость и цена аппаратного обеспечения
Стоимость определяется большим числом факторов, точный
учет которых весьма затруднителен. Существенно, что все эти фак-
торы (элементная база, технология изготовления печатных плат,
технология и инструментальные средства проектирования) нахо-
дятся в состоянии непрерывного развития. Соответственно абсо-
лютные значения отдельных составляющих стоимости также ди-
намично изменяются. Но с учетом взаимного влияния рассматри-
ваемых факторов в ходе технического прогресса относительные
показатели (доли отдельных составляющих) весьма устойчивы. Они
и используются для оценок.
Стоимость определяет часть цены. При определении цены учи-
тываются дополнительно затраты на научно-исследовательские
работы (НИР), маркетинг, отчисления на прибыль [50]:
Цена = сстоимость элементов> + <стоимость изготовления> +
+ <главная надбавка> + <неучтенные расходы:».
Главная надбавка учитывает стоимость НИР, маркетинга, при-
быль.
При установившемся производстве ВМ и стабильной эко-
номике относительные доли приведенных составляющих цены
достаточно устойчивы, но отличаются для разных классов ВМ
(табл. 3.1) [50].
Таблица 3.1
Структура цены для ПК н рабочих станций, %
Тип ВМ Стоимость Главная надбавка Неучтенные расходы
элемена изготовления
ПК 31 10 14 45
Рабочая 25 8 34 33
станция
Используя приведенные данные и узнав стоимость комплекту-
ющих элементов на текущий момент времени, можно оценить
стоимость ВМ.
3.3.3. Производительность вычислительных машин и систем
Производительность определяется количеством вычислитель-
ной работы, выполняемой за единицу времени [31]. Поскольку
нет единой меры (единиц) для измерения вычислительной рабо-
ты, отсутствует общепринятая методика оценки производитель-
ности. Для количественных оценок используют понятия номиналь-
ной и системной производительности.
Номинальной производительностью называют вектор Кн:
Ун =(vi,v2,...v„),
где V/ — быстродействие z-ro устройства ВС.
При оценках чаще всего выделяют устройства: процессор, ОП
и дисковую память. Номинальная производительность характери-
зует только потенциальные возможности устройств. При работе в
составе системы эти возможности полностью не используются.
Степень их использования зависит от характера и количества ре-
шаемых задач, интенсивности входного потока задач, ОС, вы-
полняющей функции распределения ресурсов системы и органи-
зации управления ими. Для характеристики степени использова-
ния потенциальных возможностей устройства в составе системы
используется показатель загрузки z-ro устройства р,-:
А = т;/т,
где 7} — время, в течение которого работало z’-e устройство за
время Т работы системы.
Системная производительность Vc учитывает совместную рабо-
ту устройств в системе под управлением ОС для определенного
класса задач:
kc=(aP!, лг2, ...Pnvn).
Однако следует учесть, что показатели р,- зависят от большого
числа факторов, оценка их значений может быть получена на ос-
нове статистических данных по результатам моделирования. По-
лучение достоверных оценок весьма затруднительно. Поэтому пока-
затель системной производительности для ВМ используется редко.
Чаще всего показатель производительности требуется не как
некоторая величина, измеренная в тех или иных единицах, а как
средство для количественного сопоставления производительно-
сти различных типов выпускаемых промышленностью ВМ и вы-
бора более быстродействующей, а также для оценки влияния на
ее производительность вводимых усовершенствований в архитек-
туре ВМ (ВС) при комплексировании и разработке. Для этого
используется упрощенный подход, основанный на следующих
положениях.
1. От абсолютных показателей переходим к относительным. Срав-
ниваем производительность двух ВС — X, Y. При большем числе
альтернативных вариантов (X, Y, Z, ...) одну (например, X) вы-
бираем за базовую и сравниваем попарно Хс Y, Хс Zh т. д. Опре-
деляем относительный показатель к, показывающий, во сколько
раз рассматриваемый вариант ВС производительнее базового:
& = <Время исполнения на Х>/<Время исполнения на Y> =
^Производительность У>/<Производительность Х>.
2. Для программ, на которых оценивается производительность,
используются:
• реальная программа, имеющая широкое применение (напри-
мер, компилятор языка программирования С, программы авто-
матизированного проектирования CAD, ...);
• ядро реальной программы;
• «игрушечный» тест объемом порядка 100 строк;
• синтетический тест (Syntetic Benchmark), содержащий набор
реальных программ (каждая содержит 2—10 тыс. строк) из раз-
личных областей использования компьютеров (в показателе про-
изводительности время выполнения отдельных программ теста учи-
тывается с весовыми коэффициентами).
Для оценки влияния на производительность вносимых в систе-
му усовершенствований (расширения определенных ресурсов)
используют подход (закон) Амдаля [8, 50]. Идея подхода заклю-
чается в том, чтобы оценку такого комплексного показателя, как
относительное увеличение производительности, представить как
композицию оценок более простых показателей. Для его примене-
ния требуется на основе знания архитектуры и организации вы-
числительного процесса оценить два показателя:
F <1
где £изм — показатель, показывающий, какая часть времени вы-
полнения программы в старой ВС изменится в новом варианте
системы;
5 > 1,
где s — показатель, показывающий, во сколько раз выделенная
показателем F„3M часть работы выполняется быстрее в новом вари-
анте системы по сравнению со старым.
Тогда для оценки относительного уменьшения времени выпол-
нения программы справедливо соотношение
( F А
7* — Т 1 — F । 1 изм
нов "" 1 ст 1 * изм ’
I s )
где Тнов и Тст — время выполнения программы в новой и старой
системе соответственно.
Первые два слагаемых оценивают, какая часть работы в новом
варианте выполняется по-старому. Третье слагаемое оценивает:
числитель — какая часть работы выполняется по-новому, зна-
менатель — во сколько раз эта часть работы выполняется быстрее.
С помощью этого соотношения легко оценивается также предель-
ный эффект от введения усовершенствования. Время выполнения
программы не может стать меньше, чем Тст (1 - F„3M).
Для сравнения различных моделей компьютеров PC и процес-
соров в настоящее время используют синтетические тесты (тесто-
вые пакеты). Например, популярными тестовыми пакетами явля-
ются SPECint92 и SPECfp92 комитета SPEC (Systems Performance
Evalution Cooperative — комитет по оценке показателей быстро-
действия систем).
SPECint92 интегрирует в себе шесть тестов оценки производи-
тельности с интенсивным использованием целочисленных инст-
рукций. Он является 32-битным и в наибольшей степени приго-
ден для оценки производительности процессоров при выполне-
нии коммерческих приложений типа MS Excel или Paradox for
Windows. Для определения производительности в приложениях,
где велика доля вычислений с плавающей точкой (например, CAD-
системы или пакеты программ для научных расчетов) использу-
ется тест SPECfp92. Он интегрирует в себе 14 тестов с интенсив-
ным использованием вычислений с плавающей точкой.
Для определения относительного быстродействия своих про-
цессоров фирма Intel использует интегральный индекс произво-
дительности iCOMP (Intel Comparative Microprocessor Performance).
Более подробно это будет рассмотрено в гл. 4.
3.4. Влияние технологии производства интегральных схем
на архитектуру и характеристики вычислительных машин
и систем
Структура ВМ и ВС и организация вычислительного процесса
существенно зависят от функциональной организации и распре-
деления функций между блоками. А это, в свою очередь, в значи-
тельной мере определяется функциональной емкостью СБИС.
Из теории и практики современных СБИС известно, что ос-
новную площадь на кристалле занимают не сами логические эле-
менты, а связи между ними [7]. Быстродействие схем также в ос-
новном ограничивается задержками в связях. При современных
технологиях стоимость связей и задержек, по меньшей мере, в 10
раз меньше в кристалле, чем на плате. Развитие технологии СБИС
позволяет все большее число элементов и связей перенести на
уровень кристалла, обеспечивая снижение стоимости, повыше-
ние быстродействия и надежности.
По мере увеличения уровня интеграции и функциональных
возможностей СБИС в развитии архитектуры прослеживаются сле-
дующие тенденции:
• перенос функций часто работающего системного ПО на ап-
паратные средства;
• широкое использование методов параллельной обработки на
всех уровнях организации вычислительного процесса;
• расширение сферы использования специализированных и фун-
кционально ориентированных процессоров;
• снижение относительных затрат времени на коммутацию в
сравнении с обработкой.
Наиболее сильное влияние на ВС оказывают технологии про-
изводства трех типов средств: МП, СБИС динамической памяти
(DRAM) и внешних запоминающих устройств на магнитных дис-
ках. Рассмотрим статистические закономерности развития этих
средств.
Развитие МП непосредственно связано с успехами технологии
производства ИС. Число вентилей на кристалле увеличивается еже-
годно на 60 —80 %. Это связано с развитием в двух направлениях:
совершенствованием технологии изготовления ИС, обеспечива-
ющим увеличение плотности размещения вентилей и соедине-
ний в среднем на 50 % в год, и развитием технологии выращива-
ния кристаллов полупроводников, обеспечивающим увеличение
площади кристалла СБИС в среднем на 10 —15 % в год. Приве-
денная статистическая закономерность в литературе известна как
закон Мура. Следует подчеркнуть, что обеспечивается не линей-
ный, а более быстрый (экспоненциальный) рост ресурсов на кри-
сталле.
Скорость переключения вентилей возрастает примерно в том
же темпе, что и плотность их размещения. Но из-за задержек в
связях и увеличения связей по мере роста степени интеграции
СБИС длительность такта (регистровой передачи) снижается мед-
леннее.
Все современные ИС выполняются по планарной технологии.
При этом полупроводниковая структура формируется на поверх-
ности кристалла в нескольких слоях (15 — 25). Отдельные слои ис-
пользуются для формирования топологических элементов полу-
проводниковой структуры: диффузионного, из поликремния,
металла, диэлектрика. Форма и размеры топологических элемен-
тов определяются с использованием маски (при фотолитографии)
либо с помощью управляемого электронного луча (при электрон-
ной литографии). При любом способе формирования полупровод-
никовой структуры неизбежны технологические отклонения, до-
пуск которых зависит от точности технологического оборудова-
ния. Основной тенденцией является уменьшение линейного раз-
мера, в пределах которого можно сформировать элемент. В каче-
стве меры используют параметр ц, кратно которому определяется
ширина металлического, поликремниевого соединения, линей-
ные размеры диффузионного участка и др. Этот параметр ц назы-
вается проектной нормой. Он равен значению максимального (с
заданной доверительной вероятностью) случайного смещения
границы топологического элемента. Чем меньше ц, тем выше уро-
вень интеграции ИС.
От ц существенно зависят функциональная сложность и быст-
родействие СБИС. Из-за технологического отставания России
даже на передовых заводах электронной промышленности в 2003 г.
ц > 0,6 мкм. У передовых зарубежных фирм (например, Intel) в
2Q00 г. ц < 0,13 мкм. Более детально эти вопросы, связанные с
переходом к нанотехнологии, рассмотрены в гл. 10.
Компьютерная индустрия — самая динамично развивающаяся
отрасль техники. В ней находят быстрое применение самые после-
дние достижения науки и технологий.
По статистическим данным фирмы Intel, производительность
МП удваивается в среднем каждые два года. Это обеспечивается
как за счет развития технологии производства ИС так и за счет
совершенствования архитектуры МП. Далее (см. гл. 4 и 10) эти
вопросы будут рассмотрены подробнее. МП относятся к СБИС мас-
сового производства с полным циклом проектирования. Это озна-
чает, что в рамках принятой архитектурной концепции (этому
соответствует определенный тип МП) выполняются все этапы про-
ектирования (от структуры до топологии), подчиненные страте-
гии получения максимальной производительности.
Другой тип массовых СБИС с полным циклом проектирова-
ния, развитие которых существенно влияет на архитектуру ВС —
это СБИС динамической памяти — DRAM. Их развитие также свя-
зано с развитием проектной нормы. Основным блоком структуры
DRAM является матрица запоминающих элементов (ЗЭ). Адрес
ячейки вводится параллельно-последовательно (сначала младшая
половина адреса, затем через те же выводы — старшая). При та-
кой организации увеличение на единицу числа адресных входов
приводит к увеличению числа ЗЭ в матрице в четыре раза. Поэтому
увеличение информационной емкости СБИС DRAM происходит
дискретно: 1983 г. — 64 Кбит, 1986 г. — 256 Кбит, 1989 г. — 1 Мбит,
1993 г. — 4 Мбит, 1996 г. — 16 Мбит, 1998 г. — 64 Мбит, 2000 г. —
256 Мбит, 2001 г. — 512 Мбит.
Из приведенных данных следует, что имеет место экспоненци-
альный рост информационной емкости с постоянным относитель-
ным приращением (в среднем в 4 раза за 3 года). Рост быстродей-
ствия происходит существенно медленнее из-за увеличения дли-
ны связей ЗЭ с внешним выводом СБИС по мере роста информа-
ционной емкости матрицы ЗЭ. Рост быстродействия характеризу-
ется следующим показателем: время доступа уменьшается на 30 %
за 10 лет. Поэтому весьма актуальны архитектурные методы повы-
шения производительности систем при ограниченном росте бы-
стродействия DRAM. Они будут рассмотрены в соответствующем
разделе.
Прогресс в области внешней памяти на магнитных дисках ха-
рактеризуется следующими данными [50]. Плотность размещения
информации на носителе и информационный объем увеличива-
ются в среднем в 4 раза за 3 года. Время доступа уменьшается в 1 —
3 раза за 10 лет.
Стоимость увеличивается существенно медленнее, чем предо-
ставляемые ресурсы.
Приведенные характеристики темпов развития основных уст-
ройств определяют средний срок морального старения процессо-
ра — 5 лет.
Контрольные вопросы
1. В чем основные различия ОА и УА как математических моделей
блоков вычислительных устройств? Что такое информационное множе-
ство? Чем определяется мощность этого множества? Как оно связано с
областью определения и областью значений функций, реализуемых в
ОА?
2. Как взаимодействуют ОА и УА в модели дискретного преобразова-
теля? Как распределены между ними функции обработки данных? Для
чего необходимы признаки значений результатов операций? Что являет-
ся областью определения и областью значений функций вычисления при-
знаков?
3. Что называют регистровой передачей? За сколько тактов выполня-
ется регистровая передача? Чем определяется тип регистровой передачи
(микрооперации), выполняемой в ОА?
4. Что положено в основу унификации схемотехнических решений
ОА? Для чего необходима унификация?
5. Какие модели вычислений положены в основу организации ВС?
Какие механизмы управления существуют? В чем их различия? В каких
типах систем используются различные механизмы? Какие механизмы
данных используются в ВС?
6. С какой целью используется иерархическая организация вычис-
лительных процессов в ВМ? Перечислите уровни организации и вы-
полняемые на них функции. С какими уровнями имеет дело пользова-
тель ВМ?
7. Функции каких уровней организации вычислительных процессов в
ВМ реализуются аппаратными средствами и каких — программными?
Исходя из чего производится выбор средств реализации?
8. Какими средствами реализуется взаимодействие между различны-
ми уровнями в многоуровневой организации вычислительных процессов
в ВМ?
9. Какие уровни организации вычислительных процессов задейство-
ваны при многократном исполнении программ, например в системах
управления?
10. В чем различие компиляции и интерпретации? На каких уровнях
организации вычислений используется метод компиляции, а на каких —
метод интерпретации? Почему?
11. Определите понятия и поясните назначение аппаратного и ПО,
системного ПО, ОС, прикладного ПО. Как взаимодействуют при работе
ВМ аппаратное обеспечение, системное и прикладное ПО?
12. Перечислите основные характеристики ВС. Как связаны стоимость
и цена? Как можно использовать стоимость элементов как базу для оце-
нок стоимости системы? Чем определяется стоимость СБИС?
13. Что такое производительность ВС, статистический характер про-
цессов обработки данных в ВС? Определите понятия номинальная и си-
стемная производительность. Какие составляющие ВС влияют на произ-
водительность? Как влияет ПО?
14. Что такое методика количественных оценок производительности
ВС, относительные показатели? Расскажите об использовании синте-
тических тестовых программ. От чего зависит объективность результатов
тестирования как характеристики производительности?
15. Расскажите о законе Амдаля и его использовании для оценки по-
вышения производительности от внесения усовершенствований в архи-
тектуру ВС. В чем смысл использования закона Амдаля? От чего зависит
объективность оценок производительности?
16. Что такое планарная технология изготовления ИС? Что такое про-
ектная норма, проектная норма как универсальная характеристика уровня
технологии? Как влияет проектная норма на уровень интеграции?
17. Каковы средние темпы улучшения основных характеристик про-
цессоров, СБИС памяти и накопителей магнитных дисков?
18. Дайте качественную характеристику того, как влияет совершен-
ствование технологии ИС на функциональную организацию, архитекту-
ру систем и тактовую частоту работы устройств.
РАЗДЕЛ II. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ
Глава 4
ОРГАНИЗАЦИЯ ПРОЦЕССОРОВ
4Л. Введение в функциональную организацию процессора
Процессором называется устройство, непосредственно осуще-
ствляющее процесс обработки цифровой информации в ВМ и
программное управление этим процессом. Процессор занимает
центральное место в структуре ВМ. С его помощью осуществляет-
ся управление взаимодействием всех устройств, входящих в со-
став ВМ. Процессор считывает и выполняет команды программы,
организует обращение к оперативной памяти, в нужных случаях
инициирует работу периферийных устройств, воспринимает и об-
служивает запросы прерываний, поступающие из устройств ВМ и
извне.
Процессоры современных ВМ в большинстве случаев реали-
зуют на одном кристалле с использованием технологии СБИС.
Соответствующую интегральную схему называют микропроцес-
сором. Понятие МП в функциональном отношении совпадает с
понятием процессор и отражает лишь особенности, связанные с
использованием технологии СБИС при его реализации. Основ-
ными достоинствами МП, как одного из наиболее массовых ти-
пов средств вычислительной техники, являются программируе-
мость, дешевизна, малые габариты и вес, надежность, простота
эксплуатации. Появление МП сыграло революционную роль в
автоматике и вычислительной технике, послужив мощным ус-
корителем развития средств и систем управления и контроля. С
созданием МП впервые появилась возможность применять вы-
числительные устройства в таких областях, где раньше это каза-
лось неэффективным либо просто невозможным. Уже первые ис-
пользования МП определили два основных направления их при-
менения: использование МП в качестве центральных процессо-
ров — ВМ и реализация на базе МП встраиваемых систем управ-
ления различными объектами.
В самом общем случае функциональную схему МП можно пред-
ставить в виде композиции трех функциональных блоков: опера-
ционного блока (ОБ), блока управления и интерфейсного блока
(рис. 4.1). Кроме них в состав микропроцессора могут входить и
некоторые другие блоки, участвующие в организации вычисли-
тельного процесса, например, блок прерывания, блок защиты
памяти, блоки контроля, диагностики и др.
Операционный блок. Предназначен для выполнения некоторо-
го функционально полного набора логических и арифметических
операций. Как правило, в его состав входят АЛУ, буферные реги-
стры операндов, регистр результата (аккумулятор), регистр при-
знаков и блок регистров общего назначения (РОН). Комбинаци-
онная схема (см. рис. 3.2), являющаяся основой АЛУ, содержит
Внешняя Внешняя Внешняя
шина шина шина
данных управления адреса
Рис. 4.1. Типовая структура МП:
РОН — регистры общего назначения; Тг1, Тг2 — триггеры переносов соответ-
ственно арифметических и сдвиговых операций; АЛУ — арифметико-логическое
устройство; С/, С/и — соответственно входной и выходной переносы АЛУ; БФУС —
блок формирования управляющих сигналов
двоичный сумматор и набор логических схем. В АЛУ выполняются
несколько простейших арифметических (сложение, вычитание)
и поразрядных логических (И, ИЛИ, НЕ и др.) операций. В мно-
гоуровневой организации вычислительного процесса (см. рис. 3.3)
указанные операции реализуются на уровне регистровых передач
между источниками операндов и приемником результата. Опера-
ции по обработке данных, для которых в ОБ отсутствуют аппа-
ратные средства, выполняют программно с помощью процедур.
Такие процедуры реализуются в виде последовательности про-
стых операций ОБ, т.е. выполняются на более высоком уровне
организации вычислительного процесса, чем уровень регистро-
вых передач.
Кроме универсального АЛУ МП может содержать одно или
несколько специализированных АЛУ. В качестве последних обы-
чно используют блоки аппаратного умножения и деления, а так-
же блоки для выполнения операций с плавающей точкой. Нали-
чие специализированных АЛУ естественно увеличивает сложность
СБИС МП, но за счет выполнения дополнительных операций на
уровне регистровых передач производительность МП повышается.
Важной составляющей ОБ современных МП является блок внут-
ренней памяти, реализованный в виде набора программно до-
ступных регистров, называемых регистрами общего назначения
(РОН). Время обращения к РОН меньше, чем к любым другим
устройствам памяти, поэтому память на РОН называется сверхо-
перативной, а устройство, в виде которого она реализована, —
сверхоперативным запоминающим устройством (СОЗУ). Число
РОН в МП невелико (6—16), тем не менее их наличие суще-
ственно ускоряет выполнение операций. При наличии блока РОН
операнды команд могут размещаться в одной из двух запоминаю-
щих сред — основной памяти или СОЗУ. Использование СОЗУ
позволяет исключить значительную часть обращений МП к ОП
через общую системную шину. С одной стороны, это повышает
производительность за счет более быстрого обращения к СОЗУ, с
другой стороны, появляется возможность параллельно с работой
МП использовать системную шину для обмена информацией между
другими устройствами ВМ. Используя специальные команды,
пользователь может либо записывать информацию в РОН, либо
считывать ее из РОН при выполнении различных арифметиче-
ских и логических операций.
Число, назначение и разрядность регистров блока РОН в раз-
личных МП могут существенно отличаться. В использовании РОН
имеются два крайних подхода. При первом подходе, реализуемом в
МП компании Motorola, почти все регистры МП выполняют абсо-
лютно одинаковые функции, т. е. являются универсальными и вза-
имозаменяемыми. При втором подходе, характерном для МП ком-
пании Intel, многие регистры наряду с возможностью использова-
ния в качестве универсальных в некоторых командах могут выпол-
нять специфические функции, закрепленные за этими регистрами.
Специализация регистров при выполнении наиболее часто исполь-
зуемых операций позволяет в соответствующих командах не ука-
зывать их адреса, что обеспечивает уменьшение необходимой для
управления информации и более компактное кодирование команд.
В частности, конкретные регистры МП Pentium используются в ко-
мандах умножения и деления, управления циклами, ввода-выво-
да, при табличных преобразованиях, в стековых и сдвиговых опе-
рациях. В МП фирмы Zilog используется промежуточный вариант
организации блока РОН, в котором часть РОН являются универ-
сальными, а другая часть — многофункциональными.
В большинстве ранних моделей МП один из общих регистров
выделялся в качестве главного регистра. Наделение главного реги-
стра, называемого аккумулятором, или регистром результата, осо-
быми функциями позволяло реализовать ОБ в виде одноадресно-
го устройства. В таком ОБ один из исходных операндов арифмети-
ческих и логических операций обязательно должен размещаться в
аккумуляторе и в него же помещается результат. Другой операнд
названных операций может находиться в памяти или РОН. Вход-
ные данные поступают в аккумулятор с внутренней шины МП, а
аккумулятор, в свою очередь, может посылать данные на эту шину.
Функциональные возможности ОБ, содержащего аккумулятор
(см. рис. 4.1), достаточно широки. С его помощью можно реализо-
вать различные операции. Рассмотрим основные микрооперации,
с использованием которых реализуется выполнение операций (ко-
манд). Содержимое любого РОН или ячейки памяти по внутрен-
ней шине данных может быть передано через аккумулятор в бу-
ферный регистр или напрямую в регистр-сдвигатель. АЛУ обеспе-
чивает выполнение арифметических и логических операций над
содержимым регистра-сдвигателя и буферного регистра с запи-
сью результата в аккумулятор, а признаков — в регистр призна-
ков. Из аккумулятора результат операции может быть передан в
любой РОН или ячейку памяти. Операция сдвига содержимого
любого РОН выполняется последовательно передачей слова из РОН
в сдвигающий регистр, сдвига этого слова и последующей записи
преобразованного слова в тот же регистр РОН.
Операции над словами с повышенной разрядностью реализу-
ются путем программно последовательной обработки отдельных
частей многоразрядных слов. Для обеспечения возможности обра-
ботки данных с разрядностью, превышающей разрядность АЛУ и
регистров, в структуре ОБ, предусмотрены два дополнительных
триггера: Тг1 и Тг2 (см. рис. 4.1). С их помощью осуществляется
запоминание сигналов арифметического переноса из АЛУ и вы-
ходного бита переноса регистра сдвига. Например, с помощью
8-разрядного МП сравнительно просто осуществляется арифме-
тическая обработка 24-разрядных слов. Для этого выполняют три
цикла обработки 8-разрядных частей этих слов.
Признаки операций АЛУ (флаги), характеризующие результаты
вычислений, запоминаются в одноименных флагах регистра при-
знаков. Типичными признаками являются: нулевой результат, на-
личие переноса, переполнение, четность, знак и некоторые другие.
Флаг нулевого результата ZF (Zero Rag) устанавливается в «1»
при нулевом значении результата. При ненулевом результате ZF = 0.
Флаг переноса CF (Сапу Flag) запоминает значение переноса
(заема) при сложении (вычитании) операндов. В некоторых МП
флаг CF также используется для запоминания выдвигаемого бита
при сдвиге операнда.
Флаг переполнения OF (Overflow Flag) фиксирует переполне-
ние разрядной сетки результата при выполнении операций со зна-
ковыми числами. Переполнение происходит только тогда, когда
коды слагаемых имеют одинаковые значения знаковых разрядов,
а код суммы имеет другое значение знакового разряда. Для опре-
деления переполнения OVR используют логическую операцию
XOR (Исключающее ИЛИ) над значениями переносов в знако-
вый разряд Cs_! и из знакового разряда С,:
OVR= С-1 © Cs.
В соответствии с этим выражением переполнение возникает,
если перенос в знаковый разряд Cs_! не совпадает со значением
переноса из знакового разряда Cs.
Флаг четности или паритета PF (Parity Flag) фиксирует нали-
чие четного числа единичных разрядов в младшем байте результа-
та операции. Флаг четности часто используют при контроле пра-
вильности передачи данных.
Флаг знака SF (Sign Flag) дублирует значение старшего бита
результата. Флаг SF при использовании дополнительного кода со-
ответствует знаку числа.
В большинстве случаев признаки результата используются для
программного управления последовательностями выполняемых
команд при разветвлениях и циклах.
Среди РОН часто выделяют регистры, используемые в каче-
стве базовых и индексных регистров. В ряде способов адресации
содержимое указанных регистров участвует в формировании ис-
полнительных адресов операндов в памяти.
Блок управления. В процессе выполнения программы блок уп-
равления (см. рис. 4.1) координирует работу всех блоков МП и
микропроцессорной системы в целом. С помощью блока управле-
ния формируются управляющие сигналы, необходимые для орга-
низации обмена информацией с внешними устройствами, и обес-
печивается выборка команд программы из памяти. В целом блок
управления выполняет следующие действия:
• считывает и запоминает текущую команду;
• формирует адрес следующей команды;
• реализует выполнение по тактам алгоритма поступившей ко-
манды;
• управляет обменом информацией с внешними устройствами
по системной шине.
Блок управления состоит из регистра команд (РгК), дешиф-
ратора команд (ДшК) и блока формирования управляющих сиг-
налов (БФУС). Управляющие сигналы с выходов БФУС поступа-
ют на управляющие входы других блоков МП, настраивая их на
выполнение определенных микроопераций. В состав блока управле-
ния также включают программно доступные счетчик команд PC
(Program Counter) и указатель стека SP (Stack Pointer). Большин-
ство элементов этого блока, кроме счетчика PC и указателя сте-
ка SP, являются программно недоступными. Счетчик PC (его
другое название Instruction Pointer — указатель команд IP) пред-
назначен для адресации команд программы. После выборки из
памяти очередной команды в регистре IP формируется адрес
следующей по порядку команды. В командах условных и безус-
ловных переходов, вызова подпрограмм и возврата из подпрог-
рамм в регистр IP непосредственно загружается адрес перехода.
Назначение и использование указателя стека рассматривается
ниже.
Выполнение любой команды реализуется как последователь-
ность трех фаз: выборка, декодирование и выполнение. Фаза вы-
борки обеспечивает считывание очередной команды из памяти и
пересылку ее в МП. Адрес считываемой команды определяется
содержимым программного счетчика PC. Любая команда, всегда
содержит всю необходимую информацию о выполняемой опера-
ции и об ее операндах. Для указания этой информации команды
МП имеют определенную структуру, называемую форматом или
структурой команды. Форматы команд у различных типов МП в
деталях отличаются. Общим является то, что структура команды
состоит из двух частей: кода операции и адресной части. Код
операции однозначно определяет тип выполняемой операции. Ад-
ресная часть указывает на ячейки памяти, к которым надо обра-
титься, выполняя команду. В ней содержится информация об ад-
ресах операндов и результата. В зависимости от типа команда может
состоять из одного или нескольких байтов, при этом код опера-
ции всегда размещается в первом байте команды. Код операции
текущей команды запоминается в РгК. В фазе декодирования со-
держимое РгК с помощью ДшК преобразуется в управляющее
слово. Схема синхронизации, используя это слово, вырабатыва-
ет совокупность сигналов, управляющих внутренними операци-
ями МП и обменом информацией между МП и внешними уст-
ройствами.
После выборки и дешифрирования команды ОБ в декодиро-
ванном виде получает информацию о том, какую операцию он
должен выполнить, где в памяти расположены данные, куда сле-
дует направить результат операции и где расположена следующая
команда. В фазе выполнения БФУС вырабатывает последователь-
ности управляющих сигналов, обеспечивающих выполнение опе-
рации, заданной в команде.
При описании функций, реализуемых блоками МП, после-
дние могут быть представлены как конечные автоматы (с памя-
тью или без памяти) либо как группы взаимосвязанных конеч-
ных автоматов. Автоматы с памятью — синхронные. Их работа
синхронизирована тактовыми импульсами. Частота этих импуль-
сов (тактовая частота) характеризует быстродействие МП. Каж-
дый блок за один такт может выполнить простейшую операцию.
Для регистра — это запись кода или выдача хранимого кода на
выходы. Для счетчика — запись кода в счетчик, прибавление или
вычитание единицы, выдача хранимого кода. Для мультиплексо-
ра — передача на выход сигнала с входа, определяемого управ-
ляющим кодом. Для АЛУ — одна из простейших операций, кото-
рая выполняется на уровне регистровых передач: сложение, вы-
читание, сдвиг, реализация одной из поразрядных логических
операций.
Элементарное действие, выполняемое в одном из узлов ОБ в
течение одного такта, называется микрооперацией. В некоторые такты
в различных узлах ОБ (регистрах, мультиплексорах, счетчиках и
др.) одновременно могут выполняться несколько микроопераций.
Настройка ОБ на выполнение одной из возможных микроопера-
ций осуществляется с помощью сигналов, поступающих на его
управляющие входы. Набор этих сигналов (вектор сигналов управ-
ления) вырабатывается БФУС. Совокупность одновременно вы-
полняемых микроопераций соответствует микрокоманде. Коман-
да в общем случае состоит из нескольких простейших действий и
обычно выполняется за несколько тактов, т. е. требует для своего
выполнения нескольких микрокоманд. Последовательность мик-
рокоманд, обеспечивающая выполнение команды, называется
микропрограммой команды.
Так как выполнение любой команды по тактам на уровне реги-
стровых передач реализуется микропрограммой команды, управ-
ляющий автомат, формирующий наборы управляющих сигналов,
называют микропрограммным автоматом (МПА). В соответствии с
реализуемой логикой управления МПА подразделяют на МПА с
«жесткой» логикой управления и МПА с «мягкой» логикой уп-
равления. Термин «микропрограммный автомат», вначале исполь-
зовавшийся только применительно к управляющим автоматам с
«мягкой» логикой, с начала 80-х гг. XX в. используется и для авто-
матов с «жесткой» логикой.
МПА с «жесткой» логикой управления представляется в виде
конечного автомата (в сложных случаях используется сеть конеч-
ных автоматов). Алгоритм команды в МП с подобным МПА задан
жестко соединениями схемы, поэтому список операций (система
команд) МП является неизменным, и это не позволяет вносить
какие-либо изменения в систему команд МП после его изготов-
ления. Основным достоинством МПА с «жесткой» логикой управ-
ления является его высокое быстродействие. Такие устройства уп-
равления используются в большинстве однокристальных МП, от-
личительной характеристикой которых является то, что все эле-
менты структуры МП выполнены на одном кристалле.
При реализации МПА с «мягкой» логикой управления исполь-
зуется типовая структура автомата с блоком памяти микропрог-
рамм, который, как и основная память, имеет линейно-адресную
организацию. До появления технологии СБИС МПА с «мягкой»
логикой управления имели преимущественное распространение.
В основном это было связано с тем, что при ограниченных воз-
можностях технологии производства ИС и средств автоматизации
проектирования МПА с «мягкой» логикой управления позволяли
эффективно использовать блоки памяти с регулярной структурой
для хранения микропрограмм команд проектируемой системы.
Явное представление микропрограмм команд в памяти облегчает
внесение изменений в алгоритмы управления. В целом разработка
УА МПА с «мягкой» логикой управления в значительной мере
определяется разработкой микропрограмм команд. Следует отме-
тить, что использование такого подхода внутри однокристально-
го МП не является предпочтительным, так как приводит к сни-
жению быстродействия. При необходимости изменения команд
таких МП вносят изменения в схемные реализации алгоритмов
команд, что при развитых средствах автоматизированного проек-
тирования не представляет труда.
В современных МП в зависимости от системы команд и слож-
ности алгоритмов микропрограмм команд используются оба под-
хода при построении МПА. На уровне регистровых передач с по-
мощью МПА независимо от типа управления непосредственно
осуществляется интерпретация машинных команд программы и
их выполнение. Именно поэтому уровень регистровых передач также
называют микропрограммным уровнем организации вычислитель-
ных процессов ВМ. Отметим, что выполнение программ на ко-
мандном уровне является более высоким уровнем организации
вычислительного процесса.
Интерфейсный блок. Предназначен для организации взаимо-
действия МП (см. рис. 4.1) с памятью и устройствами ввода-
вывода, расположенными на системной шине процессора, а также
для обмена данными между ОБ и внутренними устройствами МП.
Непосредственное подсоединение устройств ввода-вывода к МП
осуществляется с помощью специальных схем сопряжения, ко-
торые называются интерфейсом ввода-вывода. В общем случае ин-
терфейсный блок процессора должен выполнять следующие функ-
ции:
• формировать выходные сигналы на шинах адреса, данных и
управления в режиме вывода;
• формировать выходные сигналы адреса и управления и счи-
тывать (воспринимать) сигналы с шины данных в режиме ввода;
• синхронизировать процессы внутри процессора и на систем-
ной шине;
• реализовывать стандартный для системной шины протокол
обмена.
Системная шина объединяет сигналы шин данных, адреса и
управления. Протокол обмена информацией по СШ определяет
последовательности сигналов (временную диаграмму сигналов в
шине), обеспечивающих правильную передачу информации меж-
ду устройствами микропроцессорной системы.
Электрические спецификации сигналов, действующих на ли-
ниях СШ, определяют гарантированные уровни электрических
напряжений, идентифицирующих логические состояния «О» и
«1», и их нагрузочную способность. Одной из особенностей ком-
понентов ВМ, обеспечивающей возможность их электрического
сопряжения друг с другом и разнообразными периферийными
устройствами, является TTL-совместимость. Выбор такого стан-
дарта для интерфейса определяется широким распространением
разнообразных устройств на TTL-схемах. Выходные сигналы МП
являются маломощными (их нагрузочная способность эквивален-
тна одному входу TTL-схем). Для согласования выходных сигна-
лов МП с нагрузочными входами внешних устройств используют
специальные усилители, в частности шинные формирователи.
Взаимодействие по шине (регистровая пересылка между од-
ним из регистров ОБ процессора и ячейкой ОП либо портом пе-
риферийного устройства) осуществляется за цикл шины. Длитель-
ность цикла шины может изменяться в зависимости от быстро-
действия внешних устройств. Для согласования по быстродействию
взаимодействующих при обмене по шине устройств используется
принцип квитирования. Суть его в том, что процессор, управляю-
щий обменом, в каждом цикле ждет уведомления (квитанции) о
том, что устройство на шине выполнило операции, связанные с
обменом, т. е. выставило на шину данные при вводе либо воспри-
няло данные с шины при выводе. Для уведомления используется
сигнал «Готовность» (Ready), передаваемый от внешнего устрой-
ства в процессор по одной из линий шины управления. Управле-
ние обменом осуществляет автомат, входящий в состав интер-
фейсного блока процессора. Более детально реализация принципа
квитирования рассматривается в гл. 8.
4.2. Классификация и особенности организации
процессоров по числу и способу использования внутренних
регистров
Способ построения и состав внутренней памяти МП оказыва-
ют существенное влияние на организацию самого МП. В соответст-
вии с классификационным признаком по числу и способу использо-
вания регистров блока внутренней памяти различают следующие
типы МП: аккумуляторные, многоаккумуляторные и стековые.
МП с одним регистром результата иногда называют МП с ак-
кумуляторной архитектурой или просто аккумуляторными МП. Их
отличительной характеристикой является относительная просто-
та аппаратной реализации операционного и управляющего бло-
ков, а также упрощенный формат команд (см. подразд. 4.3). В ко-
мандах аккумуляторного МП адрес операнда в аккумуляторе не
указывается, а адресуется только второй операнд. Необходимость
предварительной загрузки операнда в аккумулятор перед выпол-
нением любой арифметической или логической операции, а так-
же невозможность непосредственной записи результата выполне-
ния команды в произвольную ячейку памяти или регистр в ряде
случаев приводят к увеличению числа команд и времени выпол-
нения программы. Отмеченные недостатки аккумуляторной архи-
тектуры ограничивают возможности и области ее применения.
В большинстве современных МП специальные регистры резуль-
тата не используются, а их функции может выполнять любой ре-
гистр блока РОН или ячейка памяти. МП с подобной архитекту-
рой часто называют многоаккумуляторными. В командах многоак-
кумуляторного МП оба операнда задаются явно, а результат опе-
рации чаще всего помещается на место одного из операндов.
Перед рассмотрением особенностей стеновых процессов кратко
охарактеризуем назначение стека. Стек — это память с линейно
упорядоченными ячейками и специальным механизмом доступа,
исключающим необходимость указания адреса при записи и чте-
нии. В зависимости от используемого правила доступа, называемо-
го дисциплиной, различают два типа организации стековой памя-
ти: очередь и стек. Дисциплина определяется применительно к вход-
ным (записываемым) и выходным (читаемым) последовательнос-
тям слов. Очередь реализует дисциплину FIFO (First-In-First-Out —
первый поступивший удаляется первым). Стек в отличие от очере-
ди организован в соответствии с дисциплиной LIFO (Last-In-First-
Out — последний поступивший извлекается первым), т.е. инфор-
мация из стека выбирается в обратном по отношению к записи по-
рядке. В МП обычно используют стек. Физически стек представляет
собой набор регистров (аппаратурный стек) или ячеек оперативной
памяти, снабженный указателем стека SP (рис. 4.2). Указатель SP, в
качестве которого используют реверсивный счетчик, всегда адре-
Стек после инициализации
(содержит недействительные
данные)
Стек после записи в него
командами PUSH данных
А, В, С, D
Стек после извлечения из него
элемента данных D
(данные D стеку не принадлежат)
Рис. 4.2. Принцип работы стека и способ адресации его вершины с использованием указателя SP
сует «вершину стека», под которой понимается ячейка стека, до-
ступная для чтения. По мере записи и считывания данных из стека
содержимое указателя SP меняется: при записи или загрузке в
стек, например при исполнении команд PUSH, значение указа-
теля SP уменьшается — стек растет в сторону младших адресов, а
при чтении или выталкивании данных из стека, в частности при
исполнении команд POP, значение указателя SP увеличивается.
Указанное правило при обращении к стеку реализуется автома-
тически, и поэтому при операциях со стеком возможно безадрес-
ное задание операнда. Стековая память является безадресной.
Важнейшей характеристикой стека является его размер. МП
может содержать относительно небольшой по размеру аппарат-
ный стек (число внутренних регистров стековой памяти, как пра-
вило, не превышает 8—16) или не содержать такового совсем.
Более распространена архитектура МП, использующая практи-
чески неограниченный внешний стек, моделируемый в ОП с про-
извольным доступом.
Стек играет важную роль в микропроцессорных системах как
средство сохранения адресов возврата и состояния данных при
работе с подпрограммами. Использование стека приводит к суще-
ственным упрощениям при организации вложенных подпрограмм,
когда одна программа вызывает другую, которая в свою очередь
может вызвать третью и т.д. В таких случаях при каждом вызове
адрес возврата текущей программы и другая необходимая инфор-
мация (содержимое РОН) загружаются в стек. При возврате ин-
формация в обратном порядке выбирается из стека. Заметим, что
при организации стека, моделируемого в памяти с произвольным
доступом, время обращения к элементам данных стека равно вре-
мени обращения к памяти. Однако стек наряду с отмеченными
особенностями его использования эффективнее обычной памяти.
Во-первых, используемые при обращении к стеку команды PUSH
и POP короче стандартных команд обращения к памяти, так как
в них один из операндов неявно адресуется через регистр SP, и,
во-вторых, инкремент или декремент указателя SP с образовани-
ем нового адреса производится автоматически.
В современных процессорах стек применяется для разных целей:
временного хранения данных, когда для них нет смысла выделять
фиксированные места в памяти; организации прерываний, вызо-
вов процедур и возвратов из них; передачи и возврата параметров
при вызовах процедур. Кроме того, стековая память является важ-
нейшей компонентой процессоров со стековой архитектурой.
В стековом процессоре обычно используется относительно боль-
шой аппаратный стек (регистровый файл объемом минимум 64
регистра) и дополнительный внешний стек в памяти, обращение
к которому осуществляется только в случаях нехватки памяти ап-
паратного стека, что случается сравнительно редко. Благодаря спе-
циальному размещению операндов в стеке арифметико-логиче-
скую обработку информации в стековом процессоре можно вы-
полнять полностью безадресными командами, содержащими толь-
ко код операции. В соответствии с кодом операции такие команды
извлекают из стека один или два операнда, выполняют над ними
предписанную операцию и заносят результат в вершину стека.
Безадресные команды на основе стековой адресации предельно
сокращают формат команд, экономят память и способствуют по-
вышению производительности ВМ. Недостатком стековых процес-
соров является необходимость специальной подготовки данных,
участвующих в вычислениях, с использованием адресных команд
для загрузки стека.
Структуру стекового процессора имеет специализированный
арифметический сопроцессор (блок вычислений с плавающей
точкой FPU) современных МП Pentium. Чтобы пояснить его на-
значение, кратко характеризуем предысторию его появления.
В связи с ограничениями на сложность схем ОБ младшие моде-
ли МП могли выполнять только операции над числами с фикси-
рованной точкой с ограниченной длиной слова. Обработка чисел
повышенной разрядности и чисел в формате с плавающей точкой
в таких МП реализовывались программно. Это приводило к зна-
чительному снижению производительности. Введение стандарта
IEEE 754 на численные данные и особенности их обработки ус-
ложнило форматы чисел. В частности, в 80-битном расширенном
формате вещественных чисел (рис. 4.3) 1 бит выделяется для зна-
ка числа (5), 15 бит отводятся для порядка (£) и 64 бит — для
указания его мантиссы (М). Для эффективной реализации опера-
ций над числами в стандартных форматах в конце 70-х гг. XX в.
был предложен принцип специализации. Суть его заключается в
разработке специализированных процессорных модулей (сопро-
цессоров) со своими системами команд, которые ориентированы
на конкретные приложения. Арифметический сопроцессор с пла-
вающей точкой является примером такого модуля. Сопроцессоры
обычно работают под управлением центрального процессора и
совместно используют ОП. Сопроцессор не имеет своей отдель-
ной программы и не может считывать команды из памяти, однако
он может обращаться к памяти для записи и считывания данных.
Часть кодов команд центрального процессора резервируется для
команд сопроцессора. Сопроцессор не может выполнять команды
79 78 64 63 0
S Е М
Рис. 4.3. Расширенный формат вещественных чисел:
5 — знак числа; Е — порядок числа; М — мантисса числа
центрального процессора, но свои команды выполняет очень бы-
стро (по сравнению с их программной эмуляцией командами цен-
трального процессора). В процессе работы и процессор, и сопро-
цессор из общего командного потока выбирают свои команды и
выполняют их. Сопроцессор выполняет свои «долгие» арифмети-
ческие операции параллельно с центральным процессором, при
этом последний может продолжать выполнение потока собствен-
ных команд. Такое архитектурное решение фирма Intel применила
в семействе программно совместных МП 8086, 80286, 80386, 80486
(i486). Обобщенно архитектуру процессов этого семейства обозна-
чают х86. Для младших членов семейства сопроцессоры были реа-
лизованы в виде специализированных СБИС — 8087 (для 8086),
80287 (для 80286), 80387 (для 80386). Благодаря росту уровня ин-
теграции микросхем в МП i486 и всех моделях Pentium арифмети-
ческий сопроцессор реализован в виде устройства операций с пла-
вающей точкой FPU как составная часть процессора, т. е. является
внутренним блоком МП. Размещение устройства FPU на кристал-
ле процессора значительно повышает производительность числен-
ных вычислений. Совместно с центральным процессором сопро-
цессор образует мощный тандем, производительность которого в
задачах численной обработки в 10 — 50 раз выше производитель-
ности одного центрального процессора. С точки зрения програм-
миста, система с сопроцессором выглядит как единый процессор
с расширенными возможностями ОБ, большим набором команд,
форматов чисел и числом регистров. Взаимодействие между цент-
ральным процессором и FPU невидимо для пользователя.
4.3. Система команд
4.3.1. Группы команд
Система команд является одной из важнейших архитектурных
характеристик процессора и ВМ в целом. Она определяет сово-
купность операций, реализуемых процессором. В понятие система
команд входят:
• форматы команд и обрабатываемых данных;
• список команд, их функциональное назначение;
• способы адресации данных.
Команды, реализуемые любым МП, можно подразделить на
следующие функциональные группы:
• пересылки данных и ввода-вывода;
• арифметических и поразрядных логических операций;
• передачи управления.
Команды пересылок данных обеспечивают как внутренний об-
мен информацией между регистрами внутри МП, так и внешние
обмены данными при их передаче в МП из памяти или устройства
ввода и из МП в память или устройство вывода. Обозначения ко-
манд пересылок, используемые в языках Ассемблера, имеют вид:
move (переслать), load (загрузить), store (запомнить), exchange
(обменять). В командах этой группы обычно указывается направ-
ление передачи, источник и (или) приемник данных. Так как боль-
шинство современных МП различают АП ввода-вывода и памя-
ти, то для обращения к портам ввода-вывода, выделенным в от-
дельное адресное пространство, используют специальные коман-
ды пересылок с обозначениями input для ввода и output для выво-
да. В группу команд пересылок часто включают команды загрузки
в стек push и извлечения pop из стека.
В большинстве случаев в число команд арифметических и пораз-
рядных логических операций входят команды простейших арифме-
тических операций: сложить (add), вычесть (subtract — sub) и ко-
манды поразрядных логических операций И (and), ИЛИ (or), ис-
ключающее ИЛИ (exclusive or — хог). К командам арифметиче-
ских операций часто относят команды сдвигов (арифметических и
логических), а к командам логических операций — команды срав-
нения compare (неразрушающего вычитания). Логические сдвиги
отличаются от арифметических тем, что в них участвуют все раз-
ряды чисел, включая знаковые.
Команды сложных арифметических операций типа умножения
и деления содержатся в системах команд не у всех МП. В простей-
ших МП таких команд нет, и эти операции выполняются про-
граммным путем, что требует существенно больших затрат време-
ни. В некоторых МП система команд ориентирована только на
обработку двоичных чисел с фиксированной запятой. Операции с
другими формами представления двоичных чисел чаще всего вы-
полняются программно. Большинство МП также обеспечивают об-
работку данных, представленных в двоично-десятичном коде. Для
коррекции результатов арифметических операций над такими
данными в группу команд арифметических операций включают
специальные команды десятичной коррекции типа decimal adjust.
В число команд этой группы могут входить команды обработки
чисел в формате с плавающей точкой, а также команды мульти-
медийной обработки.
Команды передачи управления используются для изменения по-
следовательности выполнения команд при наличии программных
ветвлений jump, обращении к подпрограммам call и выхода из
них return. Команды условных переходов реализуют передачи уп-
равления в зависимости от значения признаков результата в
регистре признаков. С их помощью МП может выбрать одну из
возможных ветвей продолжения программы. Обычно в системе ко-
манд имеется несколько команд условных переходов по прямому
и инверсному значениям различных признаков результата.
Системы команд современных МП наряду с традиционными
командами пересылок, арифметических и логических операций,
командами передачи управления содержат в своем составе груп-
пы команд, значительно расширяющие функциональные возмож-
ности МП по обработке информации, управлению его работой, а
также обеспечивающие реализацию многозадачного защищенно-
го режима работы. В частности, команды МП Pentium можно раз-
делить на следующие функциональные группы:
• команды операций над целыми числами (в их число включа-
ют команды пересылки данных и ввода-вывода, команды ариф-
метических и поразрядных логических операций, в том числе ко-
манды сдвига, команды операций со строками символов, коман-
ды битовых операций);
• команды операций над числами с плавающей точкой;
• команды передачи управления;
• системные команды поддержки функций ОС по управлению
памятью, средствами защиты и переключению задач;
• команды расширений ММХ и SSE, поддерживающие техно-
логию SIMD (Single Instruction — Multiple Data) над целыми чи-
слами (ММХ) и числами с плавающей точкой (SSE — Streaming
SIMD Extensions). Команды данной группы выполняют однотип-
ные действия сразу над всеми числами в упакованных форматах;
• команды поддержки языков высокого уровня;
• команды управления МП.
В системы команд конкретных МП могут входить команды, не
вписывающиеся в предложенную классификацию. Подобные ко-
манды не отражают общих принципов построения программ и
рассматриваются как дополнительные.
4.3.2. Структура команд
Ранее отмечалось, что команда МП в общем случае содержит
операционную и адресные части. Соглашение о распределении раз-
рядов между названными частями команды и о способе кодирова-
ния информации определяет структуру команды или ее формат
(рис. 4.4).
В операционной части команды, состоящей из п—к-двоичных
разрядов, содержится код операции, обеспечивающий кодирова-
ние 2п~к операций и определяющий, какие при этом будут задей-
п____________к____________I
| Код операции | Код адреса |
Операционная Адресная
часть часть
Рис. 4.4. Обобщенная структура команды
ствованы устройства в МП или вне его. В ^-разрядной адресной
части команды содержится информация об адресах операндов,
участвующих в выполнении операции. В общем случае адресная
часть команды должна содержать четыре адресных поля Al,..., А4.
Они предназначены для задания кодов адресов операндов (А1,
А2), адреса результата (АЗ) и адреса следующей команды (А4).
В качестве адресов А1,..., АЗ могут использоваться адреса ячеек
оперативной памяти и адреса регистров внутренней памяти МП,
а в качестве адреса А4 — только адреса ячеек оперативной памяти.
При использовании полного набора адресов в адресной части ко-
манды ее формат оказывается громоздким. Из-за ограниченного
числа разрядов в машинном слове, разрядность которого обычно
равна разрядности МП и ячеек оперативной памяти, актуальны
способы повышения экономичности представления информации
в команде. Прежде всего, было отмечено, что не для всех опера-
ций необходим полный набор адресов Al — А4. В адресной части
большинства команд указывается меньшее число адресов. В зави-
симости от указываемого числа адресов команды подразделяются
на безадресные (О-адресные), 1-, 2-, 3- и 4-адресные. Практиче-
ски во всех МП в адресном поле команды исключен адрес А4. Это
обусловлено тем, что большинство команд относятся к линейным
участкам алгоритмов и такие команды могут быть размещены в
ячейках ОП с последовательно возрастающими адресами. В этом
случае для получения адреса следующей команды к адресу теку-
щей достаточно прибавить единицу, что удобно реализовать с
помощью инкремента счетчика или указателя команд. Такой спо-
соб адресации команд называется естественным. Соответственно
процессоры, реализующие естественный способ адресации команд,
называются процессорами с естественным способом адресации ко-
манд. При нарушении естественного порядка следования команд
(разветвлениях, объединениях, циклах) используют специальные
команды передачи управления, в которых содержится адрес пе-
рехода, но не используются адреса операндов. В отличие от про-
цессоров с естественным способом адресации команд, процессо-
ры, в адресном поле команд которых используется адрес перехо-
да А4, называются процессорами с принудительным {произвольным)
способом адресации команд.
Использование адреса результата АЗ в адресном поле команды
во многих случаях также оказывается избыточным. Это обосновы-
вается тем, что результат арифметических и логических операций
над двумя операндами обычно может быть помещен на место од-
ного из операндов, который в дальнейшем скорее всего исполь-
зоваться не будет. При этом достигается не только сокращение
разрядности команды, но и повышается производительность МП,
так как исключаются лишние пересылки. Следует отметить, что
при переходе к 2-адресным командам в их адресное поле необхо-
димо вводить дополнительные разряды, кодирующие назначение
адресуемых операндов: кто из них является источником, а кто —
приемником информации. По схеме 2-адресного вычислителя ре-
ализованы все процессоры семейства х86 компании Intel, боль-
шинство процессоров фирмы Motorola и др.
В МП аккумуляторной архитектуры число адресов в адресной
части команды уменьшено до одного. В них один из операндов,
размещенный в аккумуляторе, неявно задается кодом команды, и
результат помещается в аккумулятор. По схеме 1-адресного вы-
числителя реализованы МП 8080, 8085, MCS-51 компании Intel и
ряд других.
Наконец, существует относительно небольшая группа безад-
ресных команд, в которых осуществляется безадресное (неявное)
задание операнда. К безадресным командам относятся команды
управления процессором, например, пуска, останова и некото-
рые другие. Безадресными также являются команды, реализующие
операции со стеком. В них операнд, адресуемый указателем SP,
неявно задается кодом команды. Безадресные команды за счет
исключения адресного поля имеют предельно сокращенный фор-
мат, но они не могут образовать функционально полную систему
команд и применяются только вместе с адресными.
Число адресов, указываемых в команде, влияет на время реше-
ния задач, затраты памяти, сложность процессора и зависит от
класса решаемых задач. В частности, для научно-технических рас-
четов, в которых большой объем занимают многошаговые вычис-
ления, более эффективными оказываются 1-адресные команды, а
в некоторых случаях (при использовании стекового процессора)
и безадресные команды. Для задач управления, где большую долю
составляют пересылки и логические операции эффективнее 2-ад-
ресные команды. С учетом сказанного в современных процессорах
обычно используют только безадресные, 1- и 2-адресные коман-
ды. 3-адресные команды используют очень редко, а 4-адресные не
используют совсем.
Рассмотренные способы указания адресов операндов иногда
используют для классификации МП по числу адресуемых в ко-
манде операндов. В соответствии с этим классификационным при-
знаком различают безадресные, 1-, 2- и 3-адресные архитектуры.
4.4. Способы адресации операндов и команд
4.4.1. Общие сведения
Рассматривая формат команды, мы предполагали, что адре-
са, содержащиеся в адресном поле команды, полностью иден-
тифицируют адрес операнда в памяти. Такой способ адресации
называют прямой адресацией. Прямая адресация неэкономична
с точки зрения затрачиваемых разрядов для представления адре-
са (при увеличении размера памяти разрядность адреса также
растет). Имеются и другие недостатки прямой адресации. Напри-
мер, в перемещаемых программах, где адреса операндов вычис-
ляются в процессе выполнения самой программы, использова-
ние прямой адресации просто невозможно. Поэтому наряду с
прямой адресацией разработаны и широко используются другие
способы адресации. Им соответствуют различные механизмы
формирования исполнительных адресов операндов в памяти. Для
указания конкретного способа вычисления исполнительного ад-
реса адресное поле команды дополняется специальным полем
признака адресации.
Основными способами адресации являются прямая, непосред-
ственная, неявная, косвенная и относительная адресации. Встре-
чаются и другие способы, представляющие собой разновидности
и комбинации перечисленных способов. При описании способов
адресации будем использовать следующие обозначения. Адрес, ука-
зываемый в команде, обозначим Ак, а адрес физической ячейки
памяти, к которой происходит обращение, назовем исполнитель-
ным адресом Аи.
4.4.2. Адресация данных
Прямая адресация — адрес операнда содержится в коде коман-
ды и обычно следует за кодом операции (рис. 4.5). Прямая адреса-
ция используется при работе с простыми переменными и кон-
стантами, местоположение которых в памяти не меняется в про-
цессе выполнения задачи. При прямой адресации Аи-Ак.
Прямая адресация операндов, размещенных в регистрах МП,
имеет специальное название прямая регистровая адресация, или
регистровая адресация. При использовании регистровой адреса-
ции в адресном поле команды указывается адрес (код) регистра.
Команды, содержащие только регистровые операнды, являются
наиболее компактными. В связи с тем, что все операции с реги-
стровыми операндами реализуются ОБ процессора без обраще-
Память
Рис. 4.5. Прямая адресация:
КОП — код операции
ния к основной оперативной памяти, ко-
манды с регистровыми операндами вы-
полняются быстрее других типов команд.
Непосредственная адресация позволя-
ет задавать фиксированные значения
КОП Операнд
Рис. 4.6. Непосредственная
адресация
операнда (Оп) непосредственно в адресной части команды (рис.
4.6). Собственно адресация при этом отсутствует, т.е. Оп = Лъ и
при обращении к операнду нет необходимости обращаться к па-
мяти. Непосредственная адресация удобна при работе с констан-
тами. Естественно, что непосредственный операнд может быть задан
только как операнд-источник. Недостатком непосредственной ад-
ресации является необходимость расширения формата команд за
счет указания самого операнда в адресном поле команды.
Неявная адресация — способ адресации, при котором в команде
не содержатся явные указания об адресе операнда. При неявной
адресации сам код операции определяет адрес операнда. При этом
в адресной части команды не указывается, но этот адрес подразу-
мевается. Неявно адресуемыми операндами могут быть отдельно ад-
ресуемые регистры процессора, например, аккумулятор, индекс-
ный и базовый регистры, указатель стека и некоторые др.
Косвенная адресация — эффективный и важный способ адреса-
ции, при котором адрес, указываемый в команде, является указа-
телем ячейки, содержащей исполнительный адрес операнда в
памяти. Фактически при косвенной адресации в команде указыва-
ется адрес адреса. Для обозначения косвенной адресации исполь-
зуется запись вида Аи = (Ак). Частным случаем косвенной адреса-
ции является регистровая косвенная адресация, при которой ис-
ходный адрес в команде адресует общий регистр процессора, со-
держащий адрес операнда в памяти (рис. 4.7). С точки зрения зат-
рачиваемых разрядов для представления адреса регистровая кос-
венная адресация оказывается много эффективнее прямой адре-
сации, так как в этом случае в адресном поле команды указывает-
ся только адрес общего регистра, а он много короче полного ад-
реса операнда в памяти. Неслучайно косвенная адресация широко
применяется в ВМ с коротким машинным словом. Однако реги-
Рис. 4.7. Косвенная адресация
стровая косвенная адресация требует предварительной загрузки
регистра косвенным адресом памяти и на это расходуется допол-
нительное время.
Косвенную адресацию удобно использовать при обработке спис-
ков и массивов данных, размещенных в памяти, а также при ре-
шении задач, когда, оставляя неизменным адрес в команде, можно
изменять содержимое ячейки с этим адресом. При использовании
косвенной адресации заметно упрощается построение цикличе-
ских программ. Способность выполнять циклы является одним
из фундаментальных свойств ВМ. Благодаря циклам можно поль-
зоваться командами по несколько раз, не дублируя их в памяти.
В качестве примера организации цикла (рис. 4.8) рассмотрим про-
цедуру вычисления суммы элементов массива, расположенных в
памяти в порядке возрастания их номеров (адресов):
где у — сумма элементов массива; х,- — i-й элемент массива; п —
размерность массива; i — номер элемента массива.
Вход в цикл
Выход из цикла
।--
I Инициализация
I параметров
{цикла
।—
Рабочая часть
цикла
Контроль
окончания цикла
Рис. 4.8. Алгоритм циклической обработки
Нетрудно заметить, что алгоритм вычисления суммы может
быть представлен в виде циклической процедуры, повторяемой п
раз. В каждом цикле, наряду с выполнением операции суммирова-
ния содержимого какого-либо регистра, например аккумулятора,
с последовательно выбираемыми из памяти элементами массива,
необходимо осуществлять модификацию адреса для выбора сле-
дующего элемента массива и контролировать окончание цикла.
В соответствии с представленным алгоритмом в циклических
программах выделяют три группы команд: инициализации пара-
метров цикла, рабочей части цикла, контроля окончание цикла и
модификации его параметров. Модификацию адресов операндов
при циклической обработке удобно выполнять с помощью ко-
манд инкрементирования или декрементирования содержимого
регистра с адресом текущего элемента массива. При инкременти-
ровании к значению регистра прибавляется число, определяемое
размером (количеством байт) операнда, а при декрементирова-
нии — из регистра вычитается соответствующее число. При нали-
чии средств автоматической модификации адреса косвенная ад-
ресация называется автоинкрементной или автодекрементной. При
автоинкрементной адресации содержимое адресуемого регистра в
каждом цикле сначала используется как адрес операнда, а затем
получает приращение, равное числу байт в элементе массива. Про-
верку окончания цикла чаще всего осуществляют путем анализа
содержимого счетчика циклов на соответствие заданному значе-
нию.
Развитием и модификацией метода косвенной адресации яв-
ляется относительная адресация, или базирование. Это обобщен-
ное название ряда методов адресации, обеспечивающих вычисле-
ние исполнительного адреса Аи операнда в памяти в виде суммы
базового значения адреса и «смещения» disp, указываемого в ко-
манде (рис. 4.9).
Поскольку вычисление исполнительного адреса Аи связано с
потерей времени, при определении адреса Аи операцию сумми-
рования часто заменяют операцией конкатенации (приписыва-
ния разрядов). При конкатенации базовый адрес содержит стар-
шие, а смещение — младшие разряды исполнительного адреса,
однако в этом случае базовый адрес может задавать не любую
Память
Рис. 4.9. Формирование исполнительного адреса при относительной
адресации
ячейку памяти, а только ячейки, адреса которых содержат нули в
младших разрядах.
Базирование (относительная адресация) широко применяется
для адресации памяти, представленной в виде блоков фиксиро-
ванного или произвольного размера. Блоки фиксированного раз-
мера называют страницами, а произвольного — сегментами. Со-
ответственно различают память со страничной организацией и
сегментированную память. Полная информация, необходимая для
определения физического адреса произвольной ячейки памяти с
подобной организацией, содержится в указателе адреса, который
включает в себя идентификатор базового адреса блока и смеще-
нии внутри блока. Для определения базового адреса блока (сег-
мента или страницы) используют различные способы идентифи-
кации. Чаще всего базовые адреса блоков хранятся в специальных
таблицах (сегментных или страничных) и идентификатор в указа-
теле адреса служит индексом (номером) строки такой таблицы.
Разрядность базового адреса в общем случае определяет макси-
мальное число адресуемых блоков памяти, а число бит в смеще-
нии задает максимальный размер блока. Исполнительный (физи-
ческий) адрес операнда образуется в результате суммирования
базового адреса блока и смещении внутри блока.
Важной особенностью базирования (относительной адресации)
является то, что при изменении базовых адресов блоков их содер-
жимое не меняется и блоки можно свободно перемещать в преде-
лах всего адресного пространства памяти. Благодаря этому свой-
ству базирование обеспечивает очень важную функцию ОС — так
называемую перемещаемость программ. Перемещаемость програм-
мы предполагает неизменяемость адресных ссылок в программе
при ее перемещении внутри доступного процессору пространства
памяти. Базовые адреса исполняемых программ определяются ОС
непосредственно при загрузке программы в ОП.
В системах виртуальной памяти базирование используется для
адресации памяти существенно большего размера, чем реальная
оперативная память ВМ. Наличие виртуальной памяти обеспечи-
вает возможность решения задач, объем которых превышает объем
ОП. Управление обменом информации в системах виртуальной па-
мяти осуществляет ОС. Более подробно вопросы организации вир-
туальной памяти рассматриваются в подразд. 8.4.
Собственно название относительная адресация закрепилось за
способом адресации команд программной памяти, при котором
базовый адрес размещается в счетчике команд (СК), а смещение
disp, указываемое в команде, определяет адрес перехода относи-
тельно текущего значения СК. При относительной адресации ко-
манд исполнительный адрес Аи определяется по формуле
Аи = (СК) + disp.
При использовании сравнительно коротких кодов смещения disp
относительная адресация операндов программной памяти позво-
ляет при меньшем формате команды обеспечить доступ к требуе-
мой ячейке памяти в ограниченном диапазоне адресов. В боль-
шинстве случаев относительную адресацию используют в коман-
дах условной и безусловной передачи управления для реализации
коротких переходов.
Относительную адресацию также часто используют для адреса-
ции специальных структур данных таких, как массивы однотип-
ных переменных, элементы записей и др. Базовые адреса операн-
дов при использовании относительной адресации обычно разме-
щаются в регистрах процессора (специальных или общего назна-
чения). Так как одна из составляющих исполнительного адреса
находится в адресуемом в команде регистре, относительную адре-
сацию данных иногда называют модифицированным способом
косвенной адресации или косвенной адресацией со смещением.
В зависимости от способа использования адресуемого в команде
регистра различают два вида косвенной адресации со смещени-
ем — базовую адресацию и индексную адресацию. Регистры, ад-
ресуемые в команде, которые соответствуют этим способам адре-
сации, называются базовыми В и индексными I.
Индексная адресация обычно применяется для обработки упо-
рядоченных массивов значений переменных, каждое из которых
определяется собственным номером. При индексной адресации
базовый адрес массива задается смещением disp, указываемым в
команде, а значение индекса (номер элемента массива) опреде-
ляется содержимым индексного регистра. Исполнительный адрес
при индексной адресации определяется путем суммирования сме-
щения с содержимым индексного регистра:
Аи = (/) + disp.
Индексная адресация удобна, если необходимо записать или
считать список данных из последовательных ячеек памяти не под-
ряд, а с некоторым шагом, указанным в индексе, например, ког-
да элементы матрицы, записанные по строкам, необходимо про-
читать по столбцам. Данный способ адресации особенно эффекти-
вен, если в процессоре используется механизм автоматического
приращения или уменьшения содержимого индексного регистра
при каждом обращении к нему. В целом индексная адресация яв-
ляется развитием метода косвенной адресации.
Для доступа к структурам данных переменной длины применя-
ют базовую адресацию. Базовой адресацией называется способ ад-
ресации, при котором базовый адрес, определяющий начало на-
бора элементов, хранится в базовом регистре, а смещение в ко-
манде определяет расстояние до определенного элемента:
Аи = (В) + disp;
Базовую адресацию удобно использовать для адресации эле-
ментов записи или структуры, под которыми понимают набор
именованных элементов данных, возможно различных типов. При-
мером записи является следующий набор элементов данных:
ФИО Год поступления Курс Группа и т.д.
Запись бывает простой и указываемой. В простой записи поло-
жение любого элемента зафиксировано, и к нему можно обра-
титься, используя прямую адресацию. По существу, простая за-
пись совпадает с простой переменной. В указываемой записи по-
ложение элемента записи зависит от указателя (содержимого ад-
ресуемого в команде базового регистра).
Режимы адресации операнда для указываемой записи и для
поиска элемента массива очень похожи. В обоих случаях использу-
ется режим косвенной адресации со смещением. Однако составля-
ющие исполнительного адреса для указываемой записи и массива
трактуются по-разному. В случае массива элементов смещение в
команде соответствует началу массива, а значение адресуемого
регистра — расстоянию в массиве. При указываемой записи со-
держимое адресуемого регистра соответствует началу записи, а
смещение в команде — расстоянию в записи.
Для адресации элемента в указываемом массиве, т.е. массиве,
адресуемом указателем, используют базово-индексную адресацию. При
этом способе адресации базовый адрес массива задается указате-
лем базы (базовым регистром), а номер элемента массива опреде-
ляется значением индексного регистра. Базово-индексная адреса-
ция удобна при работе со сложными структурами данных, так как
она позволяет одновременно изменять две адресных компоненты.
Базово-индексную адресацию со смещением применяют для
адресации элементов в указываемом массиве записей, т. е. в мас-
сиве, каждый элемент которого является записью. Базовый адрес
массива задается указателем базы, номер записи (элемента мас-
сива) определяется значением индексного регистра, а смещение
в команде указывает расстояние в записи.
4.4.3. Адресация команд
При адресации команд программы также используют основ-
ные способы адресации, но в силу специфики их назначения они
имеют специальные названия: абсолютная и относительная адре-
сация.
Абсолютная адресация — это прямая адресация команд программ-
ной памяти. При использовании абсолютной адресации в адрес-
ном поле команды содержится адрес, по которому размещается
следующая команда (адрес перехода). При считывании команды
адрес перехода загружается в СК процессора.
Относительная адресация команд рассмотрена в подразд. 4.4.2.
Основные способы адресации, представленные в данном под-
разделе, в тех или иных сочетаниях используются практически во
всех реализуемых системах команд, расширяя или сокращая спи-
сок команд реального МП. Тип адресации указывается либо не-
явно кодом операции, либо в явной форме в адресном поле ко-
манды.
Завершая рассмотрение способов адресации операндов в памя-
ти микропроцессорных систем, подчеркнем, что выбор режима
адресации определяется конкретной задачей и во многих случаях
очевиден. Однако нередки ситуации, когда для обращения к од-
ним и тем же элементам данных допускается использование раз-
личных режимов адресации. В конечном итоге только пользователь
осуществляет выбор конкретного режима адресации, и в этом ему
предоставлены большие возможности. С развитием технологии
производства процессоров конкретные механизмы адресации эво-
люционно изменяются.
4.5. Производительность процессоров.
Оценки производительности
Одной из наиболее важных характеристик МП является его
производительность. В общем случае производительность опреде-
ляется количеством вычислительной работы, выполняемой в еди-
ницу времени [31]. Чем выше производительность, тем меньше
времени требуется для выполнения программы. Из огромного числа
факторов, влияющих на производительность МП, важнейшими
являются тактовая частота работы процессора FT, число команд
программы Ук, а также среднее время выполнения отдельной ко-
манды (число тактов Утк, требуемое процессору для исполнения
отдельной команды). Очевидно, что время выполнения програм-
мы Тпр прямо пропорционально числу команд программы NK и
обратно пропорционально тактовой частоте. Учитывая, что число
команд программы Ук однозначно характеризуется числом тактов
Nt, необходимых для выполнения программы, представим время
Гпр в виде соотношения
Tnp = NT/FT.
Параметры этого выражения, определяющие Тпр, в первом
приближении, можно рассматривать как «грубые» оценки произ-
водительности. Действительно, чем выше тактовая частота работы
процессора FT, тем быстрее (при прочих равных условиях) вы-
полняется программа. Поэтому неслучайно использование значе-
ния тактовой частоты FT в качестве показателя производительно-
сти однотипных процессоров. Однако в общем случае оценку про-
изводительности необходимо выполнять с учетом показателя NT.
Рассмотрим влияние показателя Ут на время выполнения про-
граммы Тпр. Представим NT в следующем виде:
Ут = NK-Nn.
Значение Утк зависит от типа команд выполняемой программы
и в общем случае является случайной величиной. В соответствии
со способом оценки среднего значения для случайной величины
представим NTK в виде
V+1
71^,
)! м
где п — число типов команд в системе команд МП; NTKi — среднее
число тактов, затрачиваемое МП при исполнении команды /-го
типа; NKi — число команд /-го типа, исполненных при выполне-
нии программы.
Показатели могут быть определены из анализа соответству-
ющих микропрограмм команд, реализуемых управляющим бло-
ком процессора. Так как микропрограммы команд в общем случае
могут содержать ветвления и циклы, значения Утк, зависят от опе-
рандов выполняемых операций, а сам показатель Утк, также явля-
ется случайной величиной. Справедливости ради следует заметить,
что для большинства «коротких» команд типа пересылок из реги-
стра в регистр, арифметических и логических операций над со-
держимым регистров и некоторых других микропрограммы ока-
зываются сравнительно простыми и время TKi для таких команд
является величиной постоянной.
Внося знаменатель дроби в выражении для Атк под знак сум-
мы, окончательно представим Утк в виде
Атк = У ( nJy NKi 7 У N^iPi,
1+1 / i+l J 1+1
где pi — частота (вероятность) использования команды /-го типа.
Анализ данного выражения показывает, что среднее число так-
тов Атк, затрачиваемое процессором на исполнение отдельной ко-
манды, определяется с учетом вероятностей выполнения команд
различных типов. Набор значений р, для основных типов команд
называют смесью команд. При решении задач определенного класса
(вычислительных, управления различными технологическими
процессами и объектами, информационного обслуживания в кон-
кретных областях и др.) показатели р; для каждого класса имеют
близкие значения. Смеси команд опубликованы в литературе.
Для упрощенной оценки производительности процессора ча-
сто используют показатель КС (команд за секунду), который ха-
рактеризует среднее число команд, исполняемых за секунду:
КС = /7т/Утк.
Очевидно, что показатель КС непосредственно связан с важ-
нейшими составляющими показателя производительности FT и Уге,
не зависящими от конкретной программы.
При использовании показателя КС производительность про-
цессора измеряют в специальных единицах. При этом все множе-
ство задач условно делят на два подмножества: задачи цело-
численных вычислений с единицей измерения производитель-
ности MIPS (Meg Instruction Per Second) и задачи вычислений с
плавающей точкой с единицей измерения производительности
MFLOPS (Meg Floating Point Operations Per Second). Чтобы не
привязываться к быстродействию памяти, оценки показателя КС
проводят для операций с регистровыми операндами.
Приведенные оценки производительности были предложены
для МП со скалярной обработкой. Использование таких оценок,
безусловно, полезно и важно, в том числе для понимания на-
правлений совершенствования МП. Однако такие оценки не учи-
тывают некоторых особенностей архитектуры конкретных МП,
значительно влияющих на производительность, например парал-
лельное выполнение команд. Важно отметить, что на производи-
тельность компьютера в целом существенное влияние также ока-
зывают используемая ОС и многозадачный режим работы.
Точные аналитические оценки производительности из-за труд-
ностей учета большого числа факторов, влияющих на производи-
тельность, и сложности природы соответствующих зависимостей
получить не удается. Поэтому при сравнении МП различных фирм
используют относительные оценки производительности. Для по-
лучения достоверных относительных оценок производительности
используют тестовые программы. Наиболее распространенными
тестовыми пакетами являются тестовые смеси Комитета по оцен-
ке показателей быстродействия систем — SPEC (Systems
Performance Evaluation Cooperative). В их число входят пакеты
SPECint92, SPECfp92, CINT95 и CFP95.
Пакет SPECint92 включает шесть тестов оценки производитель-
ности с интенсивным использованием целочисленных инструк-
ций. Он применяется для оценки производительности МП при
выполнении коммерческих приложений типа MS Excel или Paradox
for Windows.
Пакет SPECfp92 включает 14 тестов производительности с ин-
тенсивным использованием вычислений с плавающей точкой. Его
используют для определения производительности МП в таких
приложениях, как CAD-системы (САПР) или научные расчеты.
Для определения относительного быстродействия своих МП
фирма Intel использует собственный индекс производительности
iCOMP (Intel Comparative Microprocessor Performance). Он бази-
руется на результатах оценки производительности процессора при
выполнении смеси 16- и 32-битных операций четырех типов: це-
лочисленных вычислений, вычислений с плавающей точкой,
оценке производительности при работе с графикой и при обра-
ботке видеоизображений. Интегральный индекс производитель-
ности получается с учетом доли этих типов операций в совре-
менных приложениях, которые ранжируются в соответствии с
интенсивностью своего использования. В качестве базового МП, по
отношению к которому определяются относительные скорости, с
1996 г. используют МП Pentium 120 МГц, для которого была вве-
дена специальная единица iCOMP Index 2.0. В 1999 г. появился
индекс iCOMP Index 3.0, характеризующий спектр производи-
тельности и базирующийся на использовании пяти специальных
групп тестов [18].
Индекс iCOMP отражает относительную производительность
МП, но не системы, в которой он установлен. Для определения
этого индекса МП чаще всего устанавливают в систему, обеспе-
чивающую наивысшую производительность, при этом тесты, про-
веденные на других системных платах, как правило, дают иные
результаты. Увеличение значений индекса, наблюдаемое от моде-
ли к модели, отражает достижения в архитектуре собственно про-
цессора, улучшения в схемотехнике и компонентах.
4.6. Направления совершенствования архитектуры
микропроцессоров
4.6.1. Архитектурные способы повышения производительности
микропроцессоров
Повышение производительности МП (больше задач за мень-
шее время) в большинстве случаев достигается за счет примене-
ния специальных технологических и архитектурных решений. В со-
ответствии с этими двумя направлениями происходит и развитие
современных МП, при этом оба направления взаимно влияют друг
на друга. Совершенствование технологий производства ИС и умень-
шение проектной нормы (см. подразд. 3.5) позволяют повышать
тактовую частоту и обеспечивают рост уровня интеграции ИС.
Повышению тактовой частоты способствует также «укорочение»
цепочек логических элементов, выполняющих элементарные пре-
образования данных за такт.
Архитектурные способы повышения производительности МП
связаны с рядом направлений развития архитектур: оптимизаци-
ей системы команд и форматов команд с учетом развития техно-
логии программирования, использованием методов и средств па-
раллельной обработки данных при исполнении команд и некото-
рыми другими.
Основным направлением совершенствования архитектуры МП,
обеспечивающим повышения его производительности, в настоя-
щее время является развитие средств параллельной обработки дан-
ных. Разработчики архитектуры используют увеличивающиеся ре-
сурсы (число вентилей на кристалле) для включения в структуру
процессора дополнительных аппаратных средств, с помощью ко-
торых реализуется вычислительный параллелизм несвязанных опе-
раций. Для этого используется несколько подходов:
1. Увеличение «естественного» параллелизма. По определению
академика В. М. Глушкова, это повышение разрядности обработ-
ки, передачи и коммутации данных. С момента появления первых
МП до современных разрядность процессоров постоянно повы-
шалась — 4, 8, 16, 32, 64 разряда.
2. Конвейеризация вычислительных процессов. При использо-
вании конвейеризации обработка данных разделяется на несколь-
ко фаз. Для каждой фазы используются свои средства и буфер хра-
нения результата (ступень конвейера). В процессе обработки дан-
ные проходят последовательно несколько ступеней. После пере-
дачи результата в буфер ступень освобождается и на ее вход может
поступать новая порция данных. При последовательной обработке
и полной загрузке конвейера, имеющего к ступеней, он одновре-
менно (параллельно) обеспечивает обработку к порций данных.
Конвейерная обработка может быть организована на нескольких
уровнях организации вычислительного процесса.
3. Параллельная обработка данных в нескольких операционных
блоках процессора. Способы параллельной обработки могут соче-
таться. Так в одном процессоре можно организовать несколько
операционных блоков, в каждом из которых можно использовать
конвейеризацию.
4.6.2. Архитектурные принципы организации
CISC- и RISC-процессоров. Сравнительная характеристика
В данном подразделе рассматривается направление, связанное
с оптимизацией списка и форматов команд.
Список команд современного МП может включать сравнительно
большое число команд. Однако не все команды МП используются
Таблица 4.1
Частота использования наиболее употребляемых семейства х86
команд МП семейства х8б
Команда Доля (частота) использования при целочисленных вычислениях, %
1. Загрузка 22
2. Условные переходы 20
3. Сравнение 16
4.Запоминание 12
5. Сложение 8
6. Логическое И 6
7. Вычитание 5
8. Пересылки регистр-регистр 4
9. Вызов подпрограмм 1
10. Возврат из подпрограмм 1
Всего 96
одинаково часто. Ранее говорилось, что вероятность использова-
ния различных команд в типовых программах определяется пока-
зателем Pi (см. выражение для числа тактов исполнения отдельной
команды).
Данные табл. 4.1 наглядно иллюстрируют неравномерность ис-
пользования различных команд в типовых программах. Это свой-
ство системы команд было предпосылкой для развития МП с
RISC-архитектурой (Reduced Instruction Set Computer — компь-
ютер с сокращенным набором команд). Идея заключалась в упро-
щении блока управления за счет сокращения списка команд и
использовании освобождающихся при этом ресурсов кристалла
МП для организации более быстрого исполнения оставшихся ко-
манд. МП с расширенным списком команд соответственно отно-
сят к CISC-архитектуре (Complex Instruction Set Computer — ком-
пьютер co сложной системой команд).
CISC- и RISC-процессоры характеризуются различными по-
казателями производительности. Оба типа процессоров обеспечива-
ют достижение максимальных показателей производительности,
используя для этого особенности собственной системы команд.
Для повышения производительности (уменьшения числа тактов
NTK, затрачиваемых на выполнение программы), необходимо
уменьшать либо число команд в программе NK, либо среднее вре-
мя выполнения команды (число тактов ^). Первая возможность
наиболее полно используется в CISC-архитектуре процессоров, а
вторая в RISC-архитектуре.
Исторически первыми были разработаны МП с CISC-архи-
тектурой. Важным достоинством CISC-архитектуры является мень-
шая длина программ. При разработке набора команд CISC заботи-
лись об удобстве написания программ при использовании низко-
уровневых языков, а не об эффективности исполнения команд
процессором. В систему команд вводили много сложных команд,
выполняющих по несколько простых действий. Часто эти коман-
ды представляли собой программы, написанные на микрокоде и
записанные в постоянном запоминающем устройстве процессора.
В наборе команд CISC, например, присутствуют команды орга-
низации циклов, команды вызова подпрограммы и возврата из
подпрограммы, используется сложная адресация, позволяющая
реализовать одной командой доступ к сложным структурам дан-
ных. Сложность и большое число команд CISC требуют для их
реализации значительного объема управляющей логики, которая
занимает до половины площади кристалла МП. Это не только удо-
рожает производство CISC-процессоров, но и является факто-
ром, сдерживающим повышение тактовой частоты работы про-
цессора, а, следовательно, и скорости выполнения операций. Боль-
шинство ранних и ряд современных моделей МП для ПК, в том
числе все МП Pentium, являются CISC-процессорами.
CISC-концепции противопоставляется RISC. Идея RISC-про-
цессора, предложенного в середине 70-х гг. XX в., родилась в свя-
зи с переходом в программировании на языки высокого уровня и
анализом статистических данных по частоте использования раз-
личных команд в типовых программах, получаемых после компи-
ляции. Статистика свидетельствовала, что в большинстве программ
из всего набора команд CISC только 20 % использовались доста-
точно часто, однако они составляли 80 % от исполняемых в про-
грамме команд. Значительная часть команд CISC (80 %) исполь-
зовались редко, более того, анализ показал, что при использова-
нии языков высокого уровня компиляторы не могут эффективно
использовать сложные команды. Важным и достаточно очевидным
выводом выполненного анализа явилось следующее: система ко-
манд процессора должна включать в себя ограниченное число ко-
манд и только те, которые используются часто.
Первые процессоры с сокращенным набором команд были
реализованы в начале 80-х гг. XX в. Процессор, разработанный в
калифорнийском университете г. Беркли (1981, руководитель про-
екта Давид Паттерсон), получил название RISC (были разработа-
ны модели RISC-I и RISC-II), а процессор, спроектированный в
университете г. Стэнфорд (1982, руководитель проекта Джон Хен-
неси), — MIPS. Позднее обе модели процессоров с сокращенным
набором команд стали называть RISC-процессорами.
В RISC-процессорах повышение производительности достига-
лось за счет аппаратных решений, обеспечивающих снижение числа
обращений к оперативной памяти. Отличительной особенностью
этих процессоров является большой набор РОН. С их помощью
делается попытка свести все пересылки к типу регистр-регистр.
В RISC-процессорах берклийской архитектуры большой набор
РОН (регистровый файл содержит от 128 до 256 РОН) разбивает-
ся на группы — так называемые регистровые окна. Назначение
«окон» — сократить затраты времени на передачу параметров при
вызове процедур и возврате из них. Каждое «окно» содержит оди-
наковое число регистров (обычно 32) и используется для размеще-
ния локальных переменных и параметров вызываемых процедур. От-
дельное «окно» назначается глобальным переменным, которые до-
ступны всем процедурам. Адрес «окна» (адрес первого регистра в
группе регистров) хранится в специальном поле регистра PSW (слова
состояния процессора). Этот поле называется указателем текущего
«окна». Каждое регистровое «окно» подразделяется на три группы
регистров (три поля). Левое поле текущего «регистрового окна» од-
новременно является правым полем предшествующего ему «окна».
Эти поля обеспечивают передачу параметров при вызове проце-
дур и возврате из них. Среднее поле используется для хранения
локальных переменных и констант процедуры. При вызове проце-
дуры ей выделяется «окно», непосредственно следующее за «ок-
ном» вызывающей процедуры. Переключение «окон» выполняет-
ся простым изменением указателя текущего «окна» в PSW. Благо-
даря перекрытию «окон» параметры вызывающей процедуры сра-
зу же становятся доступными вызванной процедуре без всяких
пересылок. Глубина вложения процедур определяется количеством
регистров регистрового файла, который обычно реализуется в виде
циклического буфера. Размещение данных в регистрах обычно воз-
лагается на оптимизирующий компилятор.
В MIPS-процессорах стенфордского университета предпочте-
ние отдавалось усиленной конвейерной обработке. Повышение
производительности МП обеспечивалось устранением задержек
конвейера за счет переупорядочения исходной последовательнос-
ти команд при помощи оптимизирующего компилятора и интен-
сивного использования регистров процессора. Аббревиатура MIPS —
от английского выражения Microprocessor Without Interlocked
Pipeline Stages — микропроцессор без блокировки конвейера.
Рассмотренные модели МП с сокращенным набором команд
активно развиваются и совершенствуются. В настоящее время на
их основе реализуются коммерчески важные продукты: SPARC- и
MIPS-системы.
Кратко характеризуем основные принципы RISC-архитектуры.
1. Одинаковая длина команд. Это облегчает их выборку из па-
мяти. В отличие от CISC-процессоров RISC-процессоры не требу-
ют выборки дополнительных слов команды. Все команды считы-
ваются за один такт. В современных RISC-процессорах длина ко-
манды равна 32 бит.
2. Сокращен набор действий над операндами, размещенными в
памяти. В RISC-процессорах не используются сложные адресные
вычисления и множественные ссылки. Простые способы адреса-
ции памяти обеспечивают быстрый доступ к операндам в памяти.
Обработка данных, реализуемая при выполнении команд RISC,
никогда не совмещается с операциями чтения (записи) памяти
подобно тому, как это делается во многих командах CISC. Обмен
операндами между памятью и регистрами выполняется специаль-
ными командами загрузки и запоминания. Большое число регист-
ров блока РОН позволяет уменьшить число обращений к памяти.
3. Все вычислительные операции выполняются над данными,
находящимися только в РОН. Так как регистров много, то все
скалярные переменные и даже небольшие массивы переменных
чаще всего размещаются в регистрах. Арифметические и логиче-
ские команды являются трехадресными. Формат этих команд вклю-
чает код операции и адреса регистров источников и приемника.
Использование простых команд упрощает реализацию их конвей-
ерной обработки. В среднем команды RISC выполняются за один
такт.
4. Относительно простые схемы управления.
Уменьшение списка команд, использование команд, реализу-
ющих только простые операции, исключение в командах обра-
ботки данных обращений к памяти позволили уменьшить расход
ресурсов кристалла на управление. Благодаря этому большая пло-
щадь кристалла выделяется для размещения устройств, обеспечи-
вающих повышение общей производительности процессора: до-
полнительных конвейеров выполнения команд, большего числа
РОН, увеличенной кэш-памяти 1-го уровня.
Важным достоинством RISC-процессоров является то, что при
одинаковой технологии производства они имеют более высокие
частоты работы по сравнению с CISC-процессорами. Это объяс-
няется тем, что RISC-процессоры для реализации своих простых
команд требуют меньше аппаратной логики. Уменьшение слож-
ности логики, в свою очередь, уменьшает задержки распростра-
нения сигналов внутри схем и благодаря этому становится воз-
можно повышение частоты работы.
Принадлежность того или иного МП к RISC-архитектуре оп-
ределяется нечетко. МП относят к классу RISC, если его архитек-
туру можно характеризовать следующей совокупностью призна-
ков:
• малое число команд (не более 100);
• малое число способов адресации (1 — 2);
• малое число форматов команд (1 — 2);
• большой регистровый файл (число РОН не менее 32);
• аппаратная реализация управления;
• выполнение всех или большей части команд в среднем за
один машинный такт;
• обращение к памяти только по командам LOAD/STORE.
Несмотря на очевидные преимущества (высокую производи-
тельность и технологичность в изготовлении) RISC-процессоры
не смогли «прорваться» на рынок ПК. В основном это объясняется
доминирующим положением на нем CISC-процессоров Pentium
фирмы Intel и наличием огромного объема программного обеспе-
чения, наработанного для ПК IBM PC.
Направление RISC в архитектуре МП появилось на определен-
ном этапе развития микроэлектроники как способ более эффек-
тивного по критерию производительности использования огра-
ниченных ресурсов кристалла. Современные МП благодаря воз-
росшим ресурсам на кристалле сочетают решения как CISC-, так
и RISC-архитектур. Поэтому отнесение их к одному из названных
классов является не очень корректным. Процессоры Pentium, ос-
таваясь CISC-процессорами, содержат RISC-ядро, с помощью
которого большинство простых и наиболее употребляемых команд
реализуются за один такт. Более сложные команды CISC, исполь-
зуемые значительно реже, выполняются относительно медленно.
Хотя и при таком подходе CISC-процессор работает не так быст-
ро по сравнению с RISC-процессором, архитектура Pentium име-
ет неоспоримые преимущества, поскольку позволяет использо-
вать все ранее наработанное для нее ПО без изменений. В целом в
наиболее совершенных процессорах заложено множество удачных
идей вне зависимости от их принадлежности к какой-либо кон-
цепции.
К RISC процессорам причисляют МП MIPS R4000, R8000,
R10000 фирмы MIPS Technologies Inc., UltraSPARC I, UltraSPARC
II, UltraSPARC III фирмы SUN, PowerPC фирм IBM-Motorola,
Alpha АХР фирмы DEC, РА-RISC фирмы Hewlett Packard, Intel
i860, AMD 29000, AVR микроконтроллеры фирмы Atmel, MK
фирмы Microchip. Большинство из перечисленных RISC-процес-
соров используются в качестве центральных процессоров так на-
зываемых рабочих станций.
4.6.3. Конвейеризация
Рассмотрим организацию конвейера (рис. 4.10, а) на уровне
исполнения машинной команды МП.
Основной принцип конвейерной обработки заключается в раз-
биении процесса исполнения команды на ряд фаз (ступеней),
которые последовательно исполняются в различных блоках про-
цессора. Каждый блок в конвейерной цепочке осуществляет толь-
ко один этап исполнения команды, и полная обработка команды
занимает несколько тактов.
Типовыми этапами выполнения команд являются:
• выборка команды IF (Instruction Fetch);
• дешифирование команды ID (Instruction Decode);
• чтение операндов RD (Read Memory);
• исполнение заданной в команде операции EX (Execute);
• запись результата WB (Write Back).
В ходе выполнения команда продвигается по конвейеру, осво-
бождая его очередную ступень для следующей команды. Для хра-
нения информации, передаваемой с одной ступени на другую,
используют внутренние промежуточные буферы. Содержимое бу-
феров обновляется в каждом такте по завершению этапа исполне-
ния очередной команды. Промежуточные буферы обеспечивают
параллельную независимую работу блоков конвейерной цепочки:
в то время, когда последующий блок начинает выполнять этап
очередной команды, предыдущий блок может приступать к обра-
ботке следующей команды. Благодаря этому в конвейере процес-
сора одновременно могут обрабатываться несколько следующих
друг за другом команд (рис. 4.10, б).
Следует отметить, что конвейерная обработка команд не умень-
шает время выполнения отдельной команды, которое в конвей-
ерном процессоре остается таким же, как и в обычном (некон-
Промежуточные буферы
Команда i
Команда Z+1
Команда i+2
Команда /+3
Команда /+4
Команда i+5
Такты работы процессора
123456789 10
IF ID RD EX WB
IF ID RD EX WB
IF ID RD EX WB
IF ID RD EX WB
IF ID RD EX WB
IF ID RD EX WB
6
Рис. 4.10. Конвейерная обработка:
a — структурная схема 5-ступенчатого конвейера; б — конвейерная обработка
команд
вейерном). Однако благодаря тому, что при конвейерной обра-
ботке большая часть вычислительного процесса проходит в режи-
ме одновременного выполнения команд, скорость выдачи резуль-
татов последовательно обрабатываемых команд увеличивается про-
порционально числу ступеней конвейера.
Продолжительность выполнения отдельных этапов исполнения
команды в общем случае зависит от типа команды и места разме-
щения операндов. Конвейеризация обработки команд наиболее
эффективна, если длительность всех фаз выполнения команды
примерно одинакова, в противном случае быстродействующим
блокам конвейера приходится простаивать в ожидании информа-
ции, поступающей от медленных блоков. Поскольку выполнение
любой команды предполагает обязательный этап — выборку ко-
манды из ОП и время обращения к ней в несколько раз превыша-
ет длительность этапов конвейера внутри МП, реализовать ука-
занное условие без изменения состава типовой структуры МП прак-
тически невозможно. Проблему доступа к памяти в конвейерном
МП решают с помощью внутренней кэш-памяти уровня L1, раз-
мещаемой на одном кристалле вместе с МП (см. подразд. 4.9). При
наличии внутренней кэш-памяти для доступа к командам и ее
операндам требуется примерно такое же время, что и для выпол-
нения базовых операций внутри МП. Это делает возможным раз-
делить процесс выполнения команд на относительно равные эта-
пы, реализуемые отдельными блоками конвейера, и достичь наи-
большей эффективности конвейерной обработки.
Конвейерная обработка является «естественным» средством
реализации параллелизма линейной последовательности команд,
т.е. команд, непосредственно следующих друг за другом. Процес-
сор, в котором процесс исполнения команды разбивается на пять-
шесть ступеней, называется обычным конвейерным процессором.
Принцип совмещения во времени отдельных этапов выполне-
ния различных команд был предложен академиком С. А. Лебеде-
вым. В 1956 г. конвейерная обработка в форме параллельного вы-
полнения операции в АЛУ и выборки следующей команды была
реализована в отечественной ВМ М-20. Много позднее (1978)
подобное совмещение во времени этапов исполнения текущей
команды и предварительной выборки следующих команд было
реализовано в МП 8086 компании Intel.
В современных процессорах применяют синхронные и асин-
хронные конвейеры выполнения команд. Если конвейер работает
в принудительном темпе и для выполнения любого этапа выделе-
но одно и то же время (таким временем является время выполне-
ния наиболее продолжительного этапа), то конвейер называется
синхронным. Синхронный конвейер исполнения команд реализо-
ван в ранних моделях процессора Pentium. В асинхронном конвей-
ере отсутствует единый квант времени работы его блоков. В таком
конвейере информация из предыдущего блока передается на следу-
ющий сразу же после окончания ее обработки этим блоком при
условии, что следующий блок полностью завершил обработку пре-
дыдущей команды. Асинхронный конвейер обработки команд при-
менен в старших моделях процессоров Pentium.
Из принципа работы конвейера следует, что повышение про-
изводительности, которое может быть получено при реализации
конвейерной обработки, прямо пропорционально количеству сту-
пеней конвейера п. В идеальном случае при непрерывной работе
конвейера процессор выполняет программы в п раз быстрее, чем
обычный последовательный процессор. К сожалению, обеспечить
непрерывную работу конвейера не всегда удается, и тому причи-
ной могут быть разные обстоятельства. В частности, при выполне-
нии некоторых команд этап исполнения ЕХ может потребовать
большее время, чем выделенный такт. В этом случае время испол-
нения этапа ЕХ должно быть увеличено за счет выделения допол-
нительного такта, при этом последующие ступени вынуждены
будут простаивать в течение этого дополнительного такта. Нару-
шение работы конвейера может произойти и при выполнении ко-
манд условного перехода, поскольку МП до вычисления адреса
перехода не может определить, какую последовательность команд
он должен выбирать. В подобных случаях приходится прерывать
работу конвейера на время, необходимое для устранения причин
нарушения его работы.
Ситуации, при которых в процессе выполнения команд про-
исходит временная остановка конвейера, называются конфликта-
ми [35]. Конфликты различных типов снижают производительность
процессора и для уменьшения их отрицательного влияния разра-
батывают специальные архитектурные способы борьбы с ними.
Различают конфликты по ресурсам, конфликты по данным и кон-
фликты по управлению.
Конфликты по ресурсам. Возникают, когда нескольким коман-
дам, находящимся на разных ступенях конвейера, требуется од-
новременное использование одного и того ресурса, например па-
мяти. Для пояснения сущности конфликта по ресурсам рассмот-
рим ситуацию, когда одной из команд конвейера требуется до-
ступ к памяти на этапе чтения операнда RD или записи резуль-
тата WB, а другой — на этапе выборки команды IF. При разме-
щении команд и данных в едином кэше такая ситуация приво-
дит к конфликту по ресурсу (в данном случае при обращении к
памяти), поскольку одновременный доступ к общему кэшу со
стороны разных устройств не возможен. Для разрешения такого
конфликта приходится задерживать исполнение одной из команд,
что снижает эффективность конвейерной обработки.
При раздельном доступе к командам и данным, например так,
как это реализуется в гарвардской архитектуре ВМ, причины воз-
никновения конфликта, рассмотренного в примере, устраняются.
Именно поэтому большинство современных МП имеют внутрен-
ние раздельные кэши команд и данных. Более того, внутренняя
кэш-память данных многих процессоров является двухпортовой.
Использование такой памяти практически устраняет конфликты
по ресурсу, возникающие при необходимости доступа к кэш дан-
ных со стороны последовательно выполняемых команд.
Конфликты по ресурсам могут возникать при выполнении ко-
манд, между которыми нет зависимостей по данным, из-за огра-
ниченного числа программно доступных регистров. Для разреше-
ния подобных конфликтов в современных процессорах использу-
ют расширенный блок внутренних регистров, с помощью кото-
рого осуществляется «размножение» и переименование ограни-
ченного числа архитектурных регистров. Благодаря наличию рас-
ширенного блока регистров одновременно могут выполняться
несколько команд, ссылающихся на одно и то же имя регистра.
Особенности реализации блока переименования регистров рас-
сматривается далее.
В целом влияние конфликтов по ресурсам на производитель-
ность конвейера по сравнению с конфликтами других типов неве-
лико.
Конфликты по данным. Это ситуации, когда или исходный опе-
ранд, или результат операции не доступны в положенное время.
Например, конфликт по данным возникает при выполнении
(/ + 1)-й команды, этап исполнения ЕХ которой требует не один,
а большее число тактов (рис. 4.11). В рассматриваемом примере
этап исполнения ЕХ (/ + 1)-й команды реализуется за три такта.
Соответственно пока не завершен этап ЕХ этой команды содер-
жимое буфера блока RD (см. рис. 4.10, а) не должно изменяться.
Это значит, что ступень 3 конвейера, а вместе с ней и ступени 1
и 2 блокируются до конца операции и не могут принимать новые
команды, поскольку информацию в буферах блоков IF и ID нельзя
обновлять прежде, чем ранее записанная в них информация будет
использована. Нормальное функционирование конвейера возоб-
Такты работы процессора
123456789 10 11
Команда i IF ID RD EX WB
Команда /+1 IF ID RD EX EX EX WB
Командаi+2 IF ID RD - - EX WB
Команда i+3 IF ID - - RD EX WB
Команда (+4 IF - - ID RD EX WB
Рис. 4.11. Работа конвейера при выполнении операции длительностью
более одного такта
новляется только после завершения этапа исполнения EX (/ + 1)-й
команды, т. е. после устранения конфликта по данным.
Другим примером конфликта по данным является ситуация,
когда последовательно выполняются команды, зависящие друг от
друга по данным. В частности, если результат z-й команды исполь-
зуется в качестве операнда (z + 1)-й команды, то до завершения
записи результата z-й команды нельзя выполнять этап чтение опе-
ранда (z + 1)-й команды. Рассмотренный тип зависимости по дан-
ным называют «чтение после записи» RAW. При игнорировании
RAW-зависимости (z + 1)-я команда ошибочно получит старое зна-
чение операнда вместо нового.
Зависимости по данным, характерные для рассмотренных при-
меров, достаточно очевидны и сравнительно легко выявляются.
Сложнее обнаруживать зависимости, определяемые командами,
при выполнении которых изменяется не только содержимое при-
емника результата, но и некоторого другого ресурса, неявно за-
даваемого в команде, например адресного регистра в командах с
автоинкрементной или автодекрементной адресацией. Для таких
команд все действия, которые проводятся при обнаружении за-
висимости от результирующих данных, должны выполняться и
по отношению к адресным регистрам, обеспечивающим автоинк-
рементацию или автодекрементацию.
В общем случае в зависимости от порядка операций чтения и
записи некоторой переменной х возможны четыре типа зависимо-
стей по данным между z-й и у-й командами, одновременно обра-
батываемыми на разных ступенях конвейера (z-я команда предше-
ствует у-й):
RAW (read after write) — «чтение после записи» — у-я команда
читает значение переменной хдо того, как z-я команда записыва-
ет новое (истинное) значение х;
WAR (write after read) — «запись после чтения» — у-я команда
записывает новое значение х до того, как z-я команда успела про-
читать старое (истинное) значение х;
WAW (write after write) — «запись после записи» — у-я команда
записывает новое значение х до того, как z-я команда записывает
свое значение х (х ошибочно содержит z-e значение вместоу-го);
RAR (read after read) — «чтение после чтения».
Зависимость между командами типа RAR к конфликту не при-
водит, так как последовательные чтения одного и того же опе-
ранда всегда дают правильный результат и порядок выполнения
команд значения не имеет.
Оставшиеся три зависимости не равнозначны и не все являются
источниками конфликтов по данным. Действительной взаимозави-
симостью команд по данным является только зависимость типа RAW
(чтение после записи), возникающая в случае, если выполняется
чтение еще не обновленных данных. Она определена структурой
конвейера, и поскольку ступень конвейера RD (чтение операн-
да) j-й команды в типовом конвейере всегда предшествует ступе-
ни WB (запись результата) г-й команды, устранить действитель-
ную взаимозависимость команд (RAW-зависимость) невозможно.
По этой же причине (из-за структуры конвейера) зависимости
типа WAR и WAW в обычном конвейере при упорядоченном вы-
полнении команд фактически являются «ложными» взаимозависи-
мостями, так как они не приводят к конфликтным ситуациям.
Проблемы появляются, если структура конвейера допускает вы-
полнение операции запись J-й команды перед операцией чтение
/-й команды или в конвейере осуществляется выполнение команд
в порядке, отличном от определенного программой. В частности,
конфликты WAR или WAW могут возникнуть, если в конвейере
происходит приостановка исполнения одной из команд и про-
должается выполнение последующих команд, т. е. если нарушает-
ся естественный порядок исполнения команд программы.
Для устранения конфликтов по данным применяются как про-
граммные, так и аппаратные методы. Использование программных
методов позволяет устранять зависимости по данным уже на ста-
дии компиляции программы. В случае обнаружения взаимозависи-
мых команд (RAW-зависимости) оптимизирующий компилятор
может изменить последовательность их выполнения, вставляя меж-
ду ними независимые команды или, если это не удается, коман-
ды типа NOP. Использование оптимизирующего компилятора во
многих случаях позволяет упростить аппаратную часть процессора.
Однако следует иметь в виду, что разработка оптимизирующего
компилятора достаточно сложна и, кроме того, он не является
универсальным, поскольку учитывает конкретную реализацию
процессора и может не подходить для другой аппаратной реализа-
ции той же архитектуры процессора.
Аппаратные решения, применяемые для борьбы с конфликта-
ми по данным, обеспечивают фактическое разрешение этих кон-
фликтов непосредственно в процессе конвейерной обработки.
Простейшим решением является останов исполнения J-й коман-
ды (и всех последующих) на несколько тактов, которые необхо-
димы для завершения /-й команды. Просто, но не эффективно,
поскольку остановы конвейера снижают его производительность
и производительность процессора в целом. Учитывая, что наибо-
лее часто встречающимися зависимостями по данным являются
зависимости типа RAW, именно для их устранения предложен
ряд аппаратных решений. Разрешить конфликт RAW, при кото-
ром j-я команда пытается использовать данные прежде, чем i-я
команда их обновит, можно с помощью относительно простой
аппаратной логики, обеспечивающей ускоренное продвижение
данных. Напомним, что в обычном конвейере отдельные ступени
разделены друг от друга специальными буферными регистрами,
при этом передача информации возможна только между соседни-
ми ступенями (от предыдущей к следующей). При использовании
логики ускоренного продвижения аппаратура процессора может
обнаружить ситуацию, когда очередной команде требуется опе-
ранд, вычисленный предыдущей командой, но не записанный в
приемник результата. В этом случае логические схемы выбирают
искомый операнд непосредственно из соответствующего буфер-
ного регистра, минуя все промежуточные ступени. Останов кон-
вейера не происходит, и скорость его работы не снижается. Для
организации цепей обхода в конвейере предусматривают допол-
нительные каналы обмена данными, снабженные средствами муль-
типлексирования. К сожалению, не все конфликты по данным
типа RAW могут устраняться с помощью механизма «обходов».
Если используемый J-й командой операнд выбирается z-й коман-
дой из памяти, то задержки в его выборе не могут быть устранены
обычной пересылкой по цепи обхода. В этом случае необходимо
использовать дополнительную логику, блокирующую работу кон-
вейера, начиная с J-й команды.
В целом выявление и устранение зависимостей по данным во
многих случаях требует существенного усложнения аппаратуры
конвейерного процессора. Методы устранения конфликтов по дан-
ным типа WAR и WAW при неупорядоченной обработке рассмат-
риваются ниже.
Конфликты по управлению. Конфликты, которые возникают при
конвейеризации команд перехода и в других ситуациях, изменя-
ющих значение счетчика команд, называются конфликтами по
управлению. Источником конфликтов по управлению являются
команды передачи управления (условные и безусловные перехо-
ды, запросы прерываний, исключения и пр.). Они оказывают раз-
рушительное действие на работу конвейера, поскольку при их вы-
полнении нарушается непрерывный поток исполняемых команд
на входе конвейера. Остановы конвейера, возникающие при пере-
дачах управления, существенно снижают производительность про-
цессора. Учитывая, что в типовых программах команды условных
и безусловных переходов по статистике составляют до 25 % вы-
полняемого кода программы [50], использование специальных
методов обработки этих команд является важным вопросом.
Безусловные переходы как будто бы проблем не вызывают, так
как процессор точно знает, что они будут выполнены. При обна-
ружении этих команд процессор просто начинает выборку следу-
ющей команды по указанному адресу. Казалось бы, непрерывный
поток команд на входе конвейера не должен нарушаться. Однако
это только внешнее впечатление. Рассмотрим работу типового кон-
вейера при выполнении последовательности команд, содержащих
(z + 1)-ю команду, которая является командой безусловного пере-
хода к (z + к)-й команде (рис. 4.12).
Такты работы процессора
1 2 3 4 5 6 7 8 9 10 11
Команда i IF ID RD EX WB
Команда Z+1 IF ID RD EX EX EX WB
Команда z+2 IF ID RD - - - Блоки конвейера
Команда Z+3 IF ID - - - простаивают
Команда i+k IF ID RD EX WB
Команда i+k+1 IF ID RD EX WB
Рис. 4.12. Работа конвейера при выполнении последовательности
команд, содержащих команду безусловного перехода
До этапа ЕХ команды перехода z-й команды конвейер работает
обычным образом — он успевает выбрать и приступить к испол-
нению нескольких последовательных команд: (z + 2)-й и (/ + 3)-й.
На этапе ID z-я команда идентифицируется как команда перехода.
Далее на следующей ступени конвейера осуществляется вычисле-
ние исполнительного адреса команды, к которой выполняется
переход. Необходимость выполнения этого этапа связана с тем,
что в командах перехода обычно указывается не целевой адрес
перехода, а способ адресации и адресное смещение, необходимые
для определения исполнительного адреса. Собственно переход (вы-
борка команды по целевому адресу перехода) осуществляется только
после того как вычисленный адрес перехода загружается в счетчик
команд. В рассматриваемом случае выбирается (z + к)-я команда.
Заметим, что аналогичные действия выполняются и при обработ-
ке команд условного перехода. На заключительном этапе выпол-
нения команд безусловного перехода проводится очистка конвей-
ера — аннулирование результатов исполнения команд, ошибочно
загруженных вслед за командой перехода (z + 2)-й и (z + 3)-й ко-
манд. Таким образом, независимо от типа перехода (условного
или безусловного) реализация перехода в конвейере требуют оп-
ределенных временных затрат (минимум двух тактов), которые эк-
вивалентны приостановке конвейера и приводят к снижению его
производительности. Для уменьшения этих потерь в современных
процессорах быстрое выявление команд перехода осуществляют
на стадии декодирования ID с помощью специальных подсистем
блока выборки команд.
Причиной остановки конвейера на один или большее число
тактов могут быть промахи при обращении к кэшу команд, воз-
никающие, если требуемая команда отсутствует во внутренней
кэш-памяти. В этом случае процессор вынужден временно приос-
тановить работу конвейера и обратиться за командой к кэш-памя-
ти более высокого уровня или к ОП. Для снижения потерь произ-
водительности от остановки конвейера по этой и другим причи-
нам, приводящим к аритмичной работе конвейера, используют
упреждающую выборку команд. В современных процессорах вы-
борка команд осуществляется не из памяти, а из специальных
блоков предвыборки, представляющих собой некоторую буфер-
ную память команд. Заполнение буферной памяти осуществляет-
ся строками длиной 128 — 256 бит, содержащими несколько пос-
ледовательных команд. В ранних моделях процессоров, например
в МП 8086, буферная память команд была реализована в виде
регистра очереди команд. Благодаря наличию буферной памяти
команд, блок выборки становится как бы независимым от кон-
вейера выполнения команд. С одной стороны, при наличии слу-
чайных задержек в выборке, как в случае кэш-промаха, работа
конвейера не нарушается, поскольку очередные команды извле-
каются из очереди, в которую они были заранее выбраны. С дру-
гой стороны, конфликты по данным, всегда приводящие к оста-
нову конвейера из-за невозможности его работы до разрешения
конфликта, не мешают блоку выборки продолжать извлекать ко-
манды из памяти и помещать их в очередь. Заполнение очереди
осуществляется всякий раз, как только в ней освобождается мес-
то для очередной команды. Естественно, что при выполнении ко-
манд перехода очередь должна очищаться и ее заполнение начи-
наться с команды по целевому адресу перехода. В процессоре
Pentium II (см. гл. 5) функции буферной памяти дешифрирован-
ных команд выполняет станция-резервуар. С ее помощью осуще-
ствляется демпфирование неравномерностей поступления команд
и обеспечивается загрузка исполнительных устройств непрерыв-
ным потоком команд.
Условные переходы — при выявлении команды условного пере-
хода ситуация сложнее, поскольку до этапа ЕХ исполнения этой
команды неизвестно, будет выполнен переход или нет. Чтобы выб-
рать правильную последовательность исполнения команд, про-
цессор должен до момента определения фактического адреса пе-
рехода остановить конвейер. Это приводит к снижению скорости
работы конвейера и отрицательно сказывается на производитель-
ности процессора. Для сохранения ритмичности работы и сокра-
щения остановок конвейера при выполнении команд условного
перехода блоки выборки команд современных процессоров обы-
чно содержат два буфера предвыборки команд, из которых в каж-
дый момент времени буфером исполняемых команд является только
один (рис. 4.13).
В процессе выполнения программы команды выбираются из
памяти и помещаются в «рабочий» буфер, откуда они поступают
на вход конвейера. При обнаружении команды условного перехо-
да (с помощью блока анализа перехода) и вычислении исполни-
тельного адреса перехода параллельно с заполнением «рабочего»
буфера выполняется заполнение дополнительного буфера, начи-
ная с команды по целевому адресу ветвления. В момент определе-
Рис. 4.13. Конвейер с двумя буферами предвыборки команд
ния фактического адреса перехода блок анализа перехода выбира-
ет соответствующий буфер в качестве «рабочего», а содержимое
другого буфера очищает. Благодаря этому обеспечивается выпол-
нение команд «правильной» ветви.
Рассмотренный способ буферирования команд обеих ветвей
программы при всех очевидных достоинствах имеет существен-
ный недостаток. Дело в том, что при наличии последовательных
или близко расположенных команд условного перехода количе-
ство ветвлений увеличивается и должно увеличиваться число бу-
феров команд.
Развитием метода буферированной предвыборки команд обеих
ветвей является дублирование начальных ступеней конвейера. При
использовании этого метода при выявлении команды условного
перехода конвейер как бы раздваивается, обеспечивая возмож-
ность параллельного выполнения команд обеих ветвей. После оп-
ределения условия перехода продолжается выполнение только
«правильной» ветви, а результаты выполнения команд «непра-
вильной» ветви в другом конвейере аннулируются. Недостатком
метода, как и при буферированной предвыборке команд, являет-
ся невозможность выполнения последовательных или близко рас-
положенных команд условного перехода, поскольку это требует
дополнительного дублирования аппаратуры конвейера.
Еще одним методом сокращения потерь производительности
из-за остановок конвейера при условных переходах является ме-
тод задержанного перехода. Предполагается, что оптимизирую-
щий компилятор после команды условного перехода может по-
местить некоторое количество «полезных» команд, которые дол-
жны выполняться независимо от выбора ветви продолжения про-
граммы, т. е. являющихся общими для обеих ветвей. Аппаратура
гарантирует выполнение этих команд перед выполнением соб-
ственно перехода. При использовании этого метода остановок
конвейера при выполнении команд условного перехода не про-
исходит. К сожалению, оптимизирующий компилятор не всегда
может найти требуемое число «полезных» команд и вынужден
помещать на их место холостые команды NOP. Из-за отмеченных
недостатков два последних метода имеют ограниченное приме-
нение.
Более общим и наиболее эффективным способом борьбы с
конфликтами по управлению является предсказание перехода,
выполняемое с помощью так называемого механизма предвиде-
ния. Для реализации механизма предвидения в процессорах пре-
дусматривают специальные аппаратные средства — блоки пред-
сказания ветвлений. С их помощью формируется прогнозируемый
адрес ветвления, и команды выбранной ветви загружаются в бу-
фер предвыборки. Способ использования предсказания достаточ-
но очевиден: если предсказывается, что переход будет осуществ-
лен, то конвейер должен загружаться последовательностью ко-
манд по целевому адресу ветвления, в противном случае, если
переход не прогнозируется, должен продолжаться последователь-
ный выбор команд программы. При правильном предсказании
перехода работа конвейера не нарушается, благодаря чему обеспе-
чивается повышение производительности процессора. При невер-
ном предсказании ветвления содержимое конвейера должно быть
аннулировано (процессор должен сбросить полученные результа-
ты и очистить конвейер) и выборка команд должна начаться с
правильного адреса перехода. На это расходуется много дополни-
тельных тактов, вследствии чего производительность процессора
снижается. В современных процессорах для предсказания ветвле-
ний используют как статические, так и динамические методы.
Статическим предсказанием перехода называется алгоритм
предсказания, при котором прогнозируемое направление перехо-
да выбирается разработчиком процессора на основании тех или
иных предпосылок и соображений и который не изменяется во
время работы программы. Например, можно предположить, что
все условные переходы «назад» будут выполняться, а переходы
«вперед» — не будут. Такое предположение (прогноз) неплохо ра-
ботает при реализации циклов, в которых команда условного пе-
рехода чаще всего помещается в конце тела цикла и переход назад
выполняется достаточно часто. Конечно, существует и множество
переходов вперед, но они, как правило, менее прогнозируемы.
Априорные предсказания, реализуемые в соответствии со стати-
ческим методом, менее точны, но они все-таки лучше, чем от-
сутствие какого-либо предсказания.
Динамические методы предсказания ветвления характеризу-
ются тем, что при их использовании прогнозируемое направле-
ния перехода зависит от результатов предшествующего выпол-
нения и может меняться в ходе выполнения программы. Дина-
мические методы предсказания являются более точными и эф-
фективными. Они базируются на предыстории выполнения ко-
манды условного перехода: для каждого условного перехода на-
капливается статистика поведения и переход реализуется в соот-
ветствии с этой статистикой. Для хранения результатов статис-
тики каждая команда условного перехода дополняется битами
«истории» предсказания. В простейших алгоритмах «история» опи-
сывает только результат последнего выполнения команды пере-
хода и для «хранения истории» требуется всего один бит преды-
стории. Значение этого бита указывает, был ли сделан переход
при предыдущем вызове команды ветвления. Выбор адреса пере-
хода принимается в соответствии со значением этого бита: пред-
полагается, что будет выбрана та же ветвь программы, что и при
предыдущем выполнении этой команды перехода. Если прогноз
оказывается неверен, бит предыстории меняет свое значение.
Рассмотренный алгоритм удачно работает при выполнении про-
граммных циклов. После входа в цикл, вплоть до выхода из него,
блок предсказания обычно правильно указывает адрес возврата
в начало цикла. Простота данного алгоритма предсказания явля-
ется его важным достоинством, однако он не совершенен и при
его использовании достаточно часто могут возникать ошибки. Во-
первых, при каждом выходе из цикла всегда предсказывается
неверный переход и, во-вторых, так как сбрасывается бит пре-
дыстории, то при очередном вызове команды перехода также
предсказывается неправильный переход.
Эффективность предсказания, как правило, повышается при
использовании большего объема информации об истории выпол-
нения команд перехода. В [35, 41] рассмотрен алгоритм предсказа-
ния, при котором прогноз меняется только после двух неправиль-
ных предсказаний. При его реализации «история» выполнения ус-
ловного перехода отображается 2 бит предыстории 61 и 62. С их
помощью можно закодировать четыре различных ситуации, учи-
тывающих предысторию. Пусть 61 указывает, предполагается ли
совершить переход, т.е. прогноз: «О» — перехода не будет, «1» —
переход будет. Собственно предысторию, т.е. выполнялся ли пе-
реход при предыдущем вызове команды ветвления, содержит бит
62: «О» — перехода не было, «1» — переход был. При таком коди-
ровании состояние «00» указывает, что перехода не было и он не
предсказывается, а состояние «11» — переход был и прогнозиру-
ется будущий переход. Состояния «01» и «10» отображают значе-
ния бит предсказания при ошибочном прогнозе: состояние «01»
устанавливается, если произошел переход при прогнозе отсут-
ствия ветвления, а состояние «10» — когда переход прогнозиро-
вался, а он не происходит. Алгоритм работы блока предсказания
удобно представить в виде конечного автомата с четырьмя состо-
яниями (рис. 4.14).
Состояния «00» и «11» отображают устойчивые состояния ав-
томата при прогнозе отсутствия перехода («00») или предсказа-
Рис. 4.14. Конечный автомат прогнозирования ветвлений с четырьмя
состояниями
нии перехода («И»). При ошибочном предсказании из состояния
«00» (переход произошел) автомат переходит в состояние «01», в
котором по-прежнему прогнозируется отсутствие перехода. Если
в этом состоянии «01» прогноз вторично оказался ошибочным и
происходит переход, то биты предсказания принимают значение
«11» и прогнозируется будущий переход. Если в состоянии «01»
переход не происходит, т. е. реализуется прогноз, автомат возвра-
щается в состояние «00». Из состояния «11» возможен переход в то
же состояние «11» (переход происходит) или в состояние «10»
(переход не произошел, но он предсказывается). Состояние «10»,
как и состояние «01», является неустойчивым состоянием. Если
переход происходит (правильный прогноз), из этого состояния
«10» автомат возвращается в состояние «11», в противном случае
при ошибочном прогнозе (переход не происходит) — в состоя-
ние «00». Обновление бит предсказания осуществляется автомати-
чески в соответствии с выполненным переходом.
Описанный алгоритм работы блока предсказания с 2 бит пре-
дыстории (конечного автомата с четырьмя состояниями) по срав-
нению с конечным автоматом с одним битом предыстории обес-
печивает большую вероятность правильного предсказания пере-
хода в программных циклах. Рассмотрим работу такого автомата,
считая, что команда перехода размещается в конце программного
цикла и начальным состоянием автомата является состояние «11»
(предсказывается переход). При таком допущении и при первом
выполнении команд цикла, и при последующих, кроме после-
днего, будет предсказываться правильный переход. Во время по-
следнего выполнения процедуры в цикле предсказание перехода
оказывается неверным — переход не выполняется и осуществля-
ется выход из цикла. Поскольку переход не выполнился, автомат
переходит в состояние «10» (повторное предсказание перехода).
При следующем входе в тот же цикл предсказание перехода ока-
зывается верным и автомат возвращается в прежнее состояние
«11». Рассмотренный алгоритм предсказания обеспечивает правиль-
ный прогноз при всех итерациях цикла, кроме последнего, когда
предсказывается неверный переход (его теоретически нельзя из-
бежать). Неслучайно, во всех современных МП вероятность пра-
вильного предсказания переходов не превышает 87 % [18, 35]. Для
предсказания ветвления с предысторией можно также использо-
вать алгоритмы с 4 бит или 8 бит предыстории.
Внимательный читатель, конечно, обратил внимание на то,
что выбор исходного состояния автомата никак не обоснован. Во-
обще говоря, не имея дополнительной информации о природе
команды перехода, автомат может оказаться в любом состоянии.
При других начальных условиях при входе в цикл возможны одно
или два неверных предсказания. Такое состояние, естественно,
нежелательно, поэтому, если команда условного перехода встре-
чается в первый раз, динамическое предсказание обычно не вы-
полняется. Для выбора правильного исходного состояния автома-
та используют статическое предсказание перехода.
Большинство реализаций блоков предсказания ветвлений ба-
зируется на использовании специального буфера меток ветвле-
ний — Branch Target Buffer (ВТВ). ВТВ удобно представить в виде
таблицы, размещаемой в специальной кэш-памяти. Число строк в
таблице определяет число адресов переходов, которое можно заг-
рузить в ВТВ. Каждая строка таблицы содержит адрес перехода,
два или большее количество бит предыстории и бит достоверно-
сти, указывающий, что адрес в строке и соответствующие ему
биты предсказания действительны. На рис. 4.15 показана органи-
зация ВТВ с 2 бит предыстории, битом достоверности и полем
адреса/тега перехода. В современных МП объем ВТВ может дости-
гать 4 Кбайт.
ВТВ достаточно просто реализовать в виде кэша с прямым ото-
бражением. При заполнении ВТВ адреса переходов (теги) и «исто-
рия» их выполнения (состояние битов предыстории) записыва-
ются в строки, номера которых определяются младшими разряда-
ми адреса команды перехода. Такой способ организации ВТВ уп-
рощает поиск строки, в которой может размещаться искомый адрес
команды перехода, однако при этом возможна конфликтная за-
Адрес/тег перехода Бит достоверности Биты предсказания
ы Ь2
Рис. 4.15. Организация буфера меток ветвлений
пись в одну и ту же строку таблицы «истории» двух команд услов-
ного перехода с одинаковыми значениями младших разрядов адреса
команд. Такая ситуация нежелательна, поскольку она чревата
неверным предсказанием перехода. Для исключения подобных
конфликтов обычно реализуют в виде многоканального (2- или
4-канального) кэша (см. подразд. 4.8.2). Блоки предсказания ветв-
лений процессоров Pentium, UltraSPARC имеют организацию,
аналогичную рассмотренной.
Блок предсказания ветвлений участвует в выборке команд из
памяти совместно с блоком предвыборки. Адреса всех выбираемых
команд сравниваются с адресами, хранящимися в ВТВ. Выборка
выполняется последовательно до тех пор, пока не будет выбрана
команда условного перехода. При обнаружении такой команды блок
предсказания в соответствии со значениями бит предыстории ра-
нее выполненных переходов формирует адрес следующей коман-
ды. При предсказании перехода выборка команд начинается с ад-
реса перехода, в противном случае продолжается линейная (пос-
ледовательная) выборка команд. Если команда ветвления встре-
чается впервые или информация об «истории» переходов являет-
ся недействительной, то такая команда анализируется статичес-
ким методом предсказания, при этом адрес перехода и биты пре-
дыстории записываются в соответствующую строку ВТВ. Стати-
ческое предсказание становится возможным только на этапе де-
кодирования, т. е. позднее, чем динамическое, которое выполня-
ется непосредственно в момент выборки команды. Как при стати-
ческом, так и при динамическом предсказании окончательное
решение о выборе правильной ветви программы, принимается на
этапе выполнения команды, т. е. при непосредственном вычисле-
нии адреса перехода, когда анализируется код условия. Важно от-
метить, что неправильное предсказание не приводит к ошибо-
чному выполнению программы — оно только вызывает задержку
в ее выполнении. Предсказание ветвлений выполняется прозрач-
ным для программ образом.
Спекулятивное исполнение. В современных МП в целях повыше-
ния их производительности стараются обеспечить непрерывную
работу конвейера даже в тех случаях, когда по каким-либо причи-
нам МП временно не может определить свои последующие дей-
ствия. В частности, как отмечалось ранее, при выявлении команд
условного перехода до момента вычисления адреса перехода не
известно, какая последовательность команд должна выполняться.
С помощью блока предсказания определяется вероятная ветвь про-
должения программы, организуется выборка команд этой ветви и
начинается их исполнение в предположении, что результаты вы-
полнения этих команд потребуются в будущем. Выполнение дей-
ствий, не предписанных в данный момент программным кодом,
называется спекулятивным исполнением. Если результаты зара-
нее выбранных и выполненных команд действительно потребуют-
ся, процессор, не затрачивая дополнительно время, просто ис-
пользует эти результаты. При выполнении условных переходов
реализовать спекулятивное исполнение несложно. Для этого до-
статочно загрузить требуемый адрес перехода в СК и продолжить
заполнение конвейера с этого адреса. Труднее запретить исполь-
зование результатов выполнения команд, которые ошибочно в
соответствии с неправильно выбранной ветвью были загружены в
конвейер. Для отмены команд можно использовать способ, суть
которого заключается в следующем. Команды выбранной ветви,
загружаемые в конвейер, помечаются с помощью специального
бита. Исходное значение этого бита «О». В момент определения при-
знака результата, в соответствии с которым осуществляется пере-
ход, специальному биту присваивается значение «1» (true), если
переход предсказан правильно или «О» (false) в противном случае.
При попытке записи результаты команд FALSE отбрасываются, а
результаты команд TRUE обычным образом фиксируются в соот-
ветствующих регистрах процессора или в памяти.
Суперконвейеризация. Расширением базовой конвейерной об-
работки является суперконвейеризация, обеспечивающая повы-
шение степени параллелизма выполняемых операций за счет уве-
личения числа ступеней конвейера с одновременным повышени-
ем тактовой частоты работы конвейера. С увеличением числа сту-
пеней каждая отдельная ступень выполняет меньшую работу и,
следовательно, содержит меньше аппаратной логики. Благодаря
более коротким задержкам распространения сигналов в каждой
отдельно взятой ступени конвейера достигается повышение ча-
стоты работы и соответствующее повышение производительности
процессора.
Суперконвейерным процессором называется процессор, имеющий
конвейер существенно глубже 5 — 6 ступеней обычного конвейер-
ного процессора. Одним из первых суперконвейерных МП стал
МП фирмы MIPS R4400 с числом ступеней конвейера 8. Супер-
конвейерными процессорами являются процессоры UltraSPARC
II (9 ступеней), Pentium II (12 ступеней), UltraSPARC III (14 сту-
пеней), Pentium 4 (20 ступеней).
На первый взгляд, применение конвейерной и тем более су-
перконвейерной обработки решает все проблемы повышения про-
изводительности процессора — при соответствующем увеличе-
нии числа ступеней конвейера можно обеспечить любую требу-
емую производительность. Однако не все так просто. И конвей-
ерная, и суперконвейерная обработка имеет существенный не-
достаток, связанный с тем, что обеспечить полную загрузку кон-
вейера по причинам, рассмотренным ранее, не удается, и про-
изводительность конвейера, как правило, меньше, чем одна ко-
манда за такт.
4.6.4. Параллельная обработка в нескольких операционных
блоках
Другой способ параллельной обработки данных, используемый
в современных МП, заимствован из архитектуры мультипроцес-
сорных систем (см. гл. 10). В мультипроцессорных системах исполь-
зуется параллелизм, обусловленный наличием независимых по-
токов команд. Такие системы позволяют распараллеливать во вре-
мени выполнение нескольких программ.
Вычислительный параллелизм, определяемый несвязностью
данных, обрабатываемых в одном потоке команд, менее очевиден
и, в общем, скрыт от программистов. Простейшим примером та-
кого параллелизма является последовательность выполнения двух
команд:
Л = В + С;
D = E + F.
Операнды команд не связаны между собой, поэтому обе ко-
манды можно выполнять одновременно. Для выполнения несвя-
занных операций в состав процессора включают набор арифмети-
ческих устройств, каждое из которых обычно имеет конвейерную
организацию. Рассмотренный пример наглядно иллюстрирует прин-
цип многооперационной обработки — параллельную работу не-
скольких ОБ процессора.
Процессор, содержащий в своем составе, несколько операци-
онных блоков, которые обеспечивают одновременное выполне-
ние более одной скалярной команды, называется суперскаляр-
ным процессором. Напомним, что команда называется скаляр-
ной, если входные операнды и результат являются числами (ска-
лярами). В отличие от суперскалярных процессоры, содержащие
только один ОБ, называют скалярными процессорами. Большин-
ство МП до Pentium имеют в своем составе единственный ОБ и
являются скалярными процессорами. Когда говорят о суперска-
лярном МП, обычно хотят подчеркнуть его отличие с одной сто-
роны от векторного, в котором осуществляется обработка векто-
ров (массивов чисел) одной командой, а с другой — от чисто
скалярного, в котором команды обрабатываются последователь-
но по одной с помощью единственного ОБ. В суперскалярном МП
обработка команд распараллелена не только во времени (конвей-
ер), но и в пространстве (несколько конвейеров). Производитель-
ность суперскалярного МП оценивается темпом схода исполнен-
ных команд со всех его конвейеров.
Конвейеризация и многооперационная обработка были пред-
ложены и реализованы в 70-х гг. XX в. в суперкомпьютерах Эльб-
pyc-1, Control Data 6600 и Control Data 7600. В МП названные спо-
собы параллельной обработки в полном объеме начали использо-
вать значительно позднее.
В настоящее время реализуются два способа суперскалярной
обработки. Первый способ базируется на чисто аппаратном меха-
низме выборки несвязанных команд программы из памяти (на-
пример, из кэш-памяти или буфера предвыборки) и параллель-
ном запуске их на исполнение. Выявление скрытого параллелизма
и управление параллельным исполнением команд в процессоре
подобного типа осуществляется управляющими схемами самого
процессора. При реализации данного способа суперскалярной об-
работки ответственность за эффективность загрузки параллельно
функционирующих конвейеров возлагается на аппаратные сред-
ства процессора и от программиста, разрабатывающего програм-
мы для подобного процессора, не требуется никаких специаль-
ных усилий. Отмеченное свойство рассмотренного способа супер-
скалярной обработки является его основным достоинством. Про-
цесс трансляции программ для суперскалярных процессоров по-
добного типа ничем не отличается от трансляции программ обыч-
ных скалярных процессоров. По данному способу суперскалярной
обработки сравнительно легко реализуются суперскалярные МП
различных семейств программно совместимых МП, при этом не
возникает проблем с использованием ранее созданного ПО и уп-
рощаются проблемы при внедрении новой модели в МП. Все МП
Pentium реализованы по этому способу.
Второй способ суперскалярной обработки предполагает карди-
нальную перестройку всего процесса подготовки программ к ис-
полнению. В процессорах, реализующих этот способ суперскаляр-
ной обработки, планирование параллельного исполнения несколь-
ких команд возлагается на распараллеливающий компилятор. Сна-
чала он анализирует исходную программу в целях выявления ко-
манд, которые могут выполняться одновременно. На следующем
этапе компилятор группирует такие команды в пакеты команд —
длинные командные слова — Very Long Instruction Word (VLIW).
Количество простых команд, объединяемых в одну сверхдлинную
команду, принимается равным числу имеющихся в процессоре
исполнительных блоков. Поскольку всю работу по подготовке
VLIW-команд к исполнению выполняет компилятор, конфликт-
ные ситуации при исполнении команд исключаются, при этом
каждая команда пакета исполняется специальным функциональ-
но независимым исполнительным блоком процессора параллель-
но с другими командами пакета.
Рассмотренный способ суперскалярной обработки реализуется
в так называемых VLIW-процессорах, имеющих статическую су-
перскалярную архитектуру. Характерной особенностью статиче-
ских суперскалярных архитектур является то, что в них распарал-
леливание кода проводится на этапе компиляции, а не динами-
чески во время исполнения, как в обычных суперскалярных про-
цессорах. Простые команды в составе VLIW-команд, как прави-
ло, являются командами RISC-типа. По этой причине VLIW-ap-
хитектуру иногда называют nocTRISC-архитектурой.
Предварительно скомпилированные VLIW-команды выполня-
ются в строгом соответствии с очередью их размещения в исход-
ном тексте программы. Благодаря структурированности команд и
особенностям их исполнения, структура VLIW-процессора пре-
дельно упрощена. В ней отсутствуют такие громоздкие модули тра-
диционных процессоров, как декодеры команд, блоки управле-
ния неупорядоченным выполнением и некоторые другие. Освобо-
дившуюся площадь кристалла в процессорах этого типа использу-
ют для расширения внутренней кэш-памяти 1-го уровня, увели-
чения числа исполнительных блоков, реализации других полез-
ных функций.
Отмеченные архитектурные особенности VLIW-процессоров
выгодно отличают их от распространенных суперскалярных про-
цессоров и в принципе могут обеспечить более высокую произво-
дительность при меньшем энергопотреблении и меньших разме-
рах кристалла. К сожалению, для VLIW-процессоров требуется
специальное ПО, их распространение может тормозиться его от-
сутствием. Использование обычных средств и методов программи-
рования существенно снижает производительность VLIW-процес-
соров. К компиляторам для VLIW-процессоров, выявляющим
«скрытый параллелизм», заложенный в программе, предъявля-
ются большие требования. Они должны быть намного «интеллек-
туальнее» и лучше знать особенности реализации конкретной струк-
туры МП. По этой причине программы, скомпилированные для
одного поколения МП, на процессорах следующего поколения
без перекомпиляции могут выполняться неэффективно. Следова-
тельно, разработчики ПО для различных моделей МП должны
выпускать модифицированные версии исполняемых файлов свое-
го продукта.
Идеи VLIW предложены российскими инженерами и учеными
во главе с профессором Б. А. Бабаяном при разработке отечествен-
ной супер-ЭВМ Эльбрус-3 (1990). В настоящее время VLIW-техно-
логия реализована в процессоре Эльбрус Е2К отечественной ком-
пании «Эльбрус Интернэшнл», в процессорах Crusoe фирмы
Transmeta, а также в семействе сигнальных процессоров
TMS320C60xx фирмы Texas Instruments. В процессорах Itanium фир-
мы Intel воплощена концепция вычисления с явным параллелиз-
мом команд — Explicitly Parallel Instruction Computing (EPIC), яв-
ляющаяся развитием VLIW-идеи.
Рассмотрим некоторые особенности реализации суперскаляр-
ной обработки.
Суперскалярные процессоры с аппаратным механизмом выборки
несвязанных команд из памяти и параллельным запуском их на ис-
полнение. В таких процессорах конфликты между командами по
данным, ресурсам и управлению сильнее влияют на производи-
тельность, чем в обычном конвейерном процессоре, вследствие
чего в них труднее обеспечить непрерывную работу конвейеров.
Для преодоления ограничений последовательного (упорядочен-
ного) выполнения команд используют специальные методы: пред-
варительную выборку и дешифрацию большого числа команд,
прогнозирование ветвлений, кэши целевых адресов переходов,
внеочередное, а в некоторых случаях и спекулятивное исполне-
ние команд, и некоторые другие. Важной проблемой при парал-
лельном исполнении команд является выбор стратегии выдачи
команд на исполнение и их завершение.
Наиболее простыми в реализации являются суперскалярные
МП, в которых осуществляется последовательная (упорядочен-
ная) выборка команд и их упорядоченная обработка. Подобная
стратегия реализована в первых моделях суперскалярных МП, в
частности Pentium. Для одновременного выполнения команд в
таких МП использовались два (рис. 4.16) или большее число кон-
вейеров.
Блок предвыборки процессора осуществляет предварительную
выборку команд из кэш-памяти и размещает их в буфере предвы-
борки команд. После дешифрации команды поступают в блок рас-
пределения команд по конвейерам. В каждый такт работы процес-
сора на вход конвейеров могут поступать две команды. Одновре-
менно с распределением команд проверяются их зависимости по
данным, ресурсам и управлению. Если в потоке последовательных
команд обнаруживается зависимая команда, то на обработку по-
ступают только команды, предшествующие зависимой. Недостат-
Рис. 4.16. Функциональная схема суперскалярного процессора с двумя
конвейерами исполнения команд
Рис. 4.17. Конвейер с несколькими исполнительными блоками
ком данного способа параллельной обработки является существен-
ная зависимость функционирования конвейеров друг от друга.
Действительно, поскольку команды должны покидать конвейеры
в соответствии с порядком поступления на них (упорядоченная
обработка), то все, что затрудняет завершение команды в одном
из конвейеров, останавливает и другие конвейеры. Кроме того,
увеличение числа параллельно работающих конвейеров требует
значительных аппаратных затрат. В современных процессорах рас-
смотренный способ суперскалярной обработки с помощью не-
скольких параллельно работающих конвейеров практически не
используется. Альтернативным решением реализации суперскаляр-
ной обработки является использование одного конвейера с не-
сколькими исполнительными блоками (рис. 4.17).
Возможность суперскалярной обработки с помощью одного
конвейера и несколькими функциональными исполнительными
блоками определяется несколькими факторами. Во-первых, от-
дельные ступени конвейера, как правило, имеют разную скорость
работы, в связи с чем время прохождения команды по отдельным
ступеням различно. Во-вторых, не все команды используют все
фазы исполнения: при исполнении некоторых команд фаза «чте-
ние операнда из памяти» может отсутствовать. В-третьих, собствен-
но исполнение команд, реализуемое в разных функциональных
блоках процессора, может существенно отличаться по времени.
Реально первые ступени конвейера, обеспечивающие выборку,
декодирование и подготовку команд к исполнению, работают
значительно быстрее ступени, на которой команды выполняются.
При наличии только одного исполнительного блока из-за неоди-
наковой скорости работы эти ступени большую часть времени
простаивают.
Более интенсивную работу ступеней конвейера обеспечивает
стратегия параллельной обработки, согласно которой осуществ-
ляется множественный выбор команд и их неупорядоченное вы-
полнение. Архитектура процессора с одним конвейером и несколь-
кими исполнительными блоками подходит для реализации этой
стратегии. В современных суперскалярных процессорах обычно
используют два исполнительных блока для операций целочислен-
ных вычислений, один или два блока выполнения операций над
числами с плавающей точкой, блоки загрузки (запоминания), ре-
ализующие операции обмена с памятью, и блок обработки пере-
ходов. Наличие нескольких исполнительных блоков позволяет од-
новременно исполнять и завершать исполнение большого числа
команд. Но эти команды необходимо иметь в наличии. Поэтому
для их выборки и дешифрации требуется более интенсивная рабо-
та первых ступеней конвейера. Для хранения дешифрированных
команд используют специальный буфер команд. С его помощью
ступень декодирования команд отделяется от ступени исполне-
ния. Благодаря этому обеспечивается непрерывная работа этих сту-
пеней, даже если нарушается работа одной из них. Например,
если происходит приостановка исполнения команды по причине
неготовности ее операндов, блок предвыборки продолжает вы-
борку команд из кэша, их дешифрацию и размещение в буфере
дешифрированных команд. Подобный метод многооперационной
обработки использован при построении старших моделей супер-
скалярных МП Pentium (Pentium Pro, Pentium II, Pentium III). Со-
временные суперскалярные МП могут иметь до восьми исполни-
тельных блоков, выполняющих в каждом такте до шести команд.
Более полная загрузка конвейера, характерная для неупорядо-
ченной обработки, обеспечивает повышение производительности
суперскалярного процессора. В то же время при неупорядоченной
обработке усугубляются проблемы параллельного исполнения боль-
шого числа команд последовательных программ. При суперска-
лярной обработке к проблеме обнаружения и устранения конф-
ликтных зависимостей по данным, ресурсам и управлению добав-
ляется проблема корректного использования результатов команд,
выполненных в порядке, отличном от предписанного програм-
мой. Вторая проблема обусловлена тем, что при неупорядоченной
обработке конечный результат выполнения программы должен
оставаться таким же, как и в случае последовательного (упорядо-
ченного) выполнения. Для решения названных проблем в совре-
менных процессорах используют как программные средства (оп-
тимизирующие компиляторы), так и специальные аппаратные
блоки.
При неупорядоченной обработке из-за ограниченности архи-
тектурных ресурсов попытки записи нового значения в соответ-
ствующий ресурс (чаще всего в регистр), пока предшествующая
команда не выполнила требуемую операцию чтения или записи,
могут приводить к возникновению конфликтных зависимостей по
данным типа WAR и WAW. Расширение числа архитектурных (про-
граммно доступных) регистров в принципе решает проблему не-
хватки ресурса, поскольку результат выполненной вне очереди
команды может быть временно записан в дополнительный регистр.
Однако простое расширение числа архитектурных регистров не
используют, так как оно приводит к изменению архитектуры и
нарушению программной совместимости с ранними моделями
семейств процессоров. Поэтому применяют более сложные реше-
ния, в частности прием, известный как переименование регист-
ров.
Переименование регистров. Является одним из методов мини-
мизации конфликтов по данным. Этот метод получил свое назва-
ние от широко применяемого в компиляторах метода переимено-
вания, который обеспечивает отображение необходимых исход-
ной программе объектов (переменных) на аппаратные ресурсы
процессора (ячейки памяти и регистры). Суть переименования
регистров заключается в «размножении» ограниченного числа ар-
хитектурных регистров процессора с помощью большого числа
физических регистров. В результате «размножения» с одним архи-
тектурным регистром может быть связано несколько физических
регистров. Когда в процессе выполнения программы изменяется
содержимое архитектурного регистра, новый результат временно
записывается в один из свободных физических регистров, при этом
старое значение операнда сохраняется. Регистру с новым значе-
нием операнда присваивается собственное имя. Во всех последу-
ющих командах это имя заменяет имя соответствующего архитек-
турного регистра. Однако если на выполнение поступит команда,
размещенная в исходной последовательности раньше команды,
вызвавшей переименование, она должна использовать старое (не-
измененное) значение операнда, которое сохранено в регистре с
другим именем. Такой прием исключает возникновение конфлик-
тных зависимостей по данным типа WAR и WAW.
Динамическое переименование (отображение) имен архитек-
турных регистров осуществляется с помощью специальной табли-
цы отображения, которая обновляется при любом изменении со-
держимого архитектурного регистра.
Множество временных результатов, генерируемое в процессе
выполнения программы, в конечном итоге должно быть преобра-
зовано в истинное значение архитектурного регистра. Временное
значение становится новым исходным значением архитектурного
регистра, когда все предыдущие команды успешно завершены в
заданном программой порядке. После этого в физическом регист-
ре фиксируется действительное значение архитектурного регист-
ра, а все другие физические регистры с промежуточными значе-
ниями архитектурного регистра возвращаются в список свобод-
ных регистров.
Переименование регистров выполняется на аппаратном уров-
не: программист имеет дело только с архитектурными (программно
доступными) регистрами и работа с физическими регистрами от
него скрыта.
Неупорядоченная обработка. При неупорядоченной обработке
обеспечивается более интенсивная загрузка конвейеров суперска-
лярного процессора и повышается его производительность, одна-
ко возникают значительные трудности сохранения последователь-
ной модели исполнения программы. Для того чтобы гарантиро-
вать правильное выполнение программы, результаты команд,
выполненных вне очереди, должны записываться по целевым ад-
ресам в том же порядке, в каком они следуют в исходной про-
грамме.
Важным блоком процессора, который допускает неупорядо-
ченную обработку, является специальный управляющий блок —
блок временного хранения результатов команд, выполненных вне
очереди. В состав этого блока входит так называемый буфер вос-
становления последовательности (ВВП), обеспечивающий полу-
чение правильных результатов выполнения программ при неупо-
рядоченной обработке. Он [46] представляет собой кольцевой ре-
гистр с указателями головной и хвостовой частей и многими вхо-
дами (рис. 4.18). В ВВП размещаются команды выполняемой про-
граммы и информация об их состоянии. Команды заносятся в бу-
фер в порядке, определенном программой, при этом очередная
команда поступает на следующий свободный вход буфера. Указа-
тель головной части буфера определяет адрес первого свободного
входа. Кроме самой команды каждый занятый вход содержит ин-
Головная
часть БВП
Хвостовая
часть БВП
Свободные (Первый свободный вход)
Удаляемая команда
Активные входы
входы
х
Направление заполнения БВП
Рис. 4.18. Организация буфера восстановления последовательности
(БВП):
i — поступившая команда; х — выполняемая команда; f — выполненная команда
формацию о состоянии команды. Команда может находиться в
одном из трех состояний: только что поступившей (состояние /),
в стадии исполнения (состояние х) или быть уже выполненной
(состояние/). Команды удаляются из буфера в порядке их поступ-
ления в буфер. Удаляемая команда идентифицируется с помощью
указателя хвостовой части буфера. Команда может быть удалена,
если она выполнена, а все предыдущие команды уже удалены. При
удалении команды ее результат из блока временного хранения
результатов переписывается в память или в архитектурный ре-
гистр. Правильность выполнения программы гарантируется благо-
даря тому, что команды поступают в буфер и извлекаются из него
в порядке, определенном программой, а результаты их выполне-
ния записываются в память или в архитектурные регистры только
тогда, когда команды покидают буфер.
4.7. Функции операционных систем, реализуемые
с аппаратной поддержкой процессора.
Встроенные средства тестирования и отладки
4.7.1. Общие сведения
В современной ВМ, как правило, одновременно исполняются
несколько программ, например собственно обработка данных ре-
шаемой задачи и вспомогательные программы, обеспечивающие
ввод и вывод необходимой информации в процессе выполнения и
реализацию интерфейса пользователя в интерактивном режиме.
Функцией последних является реагирование на манипуляции с
мышью и клавиатурой, вывод текстов, а также видео- и аудио-
информации, печать документов; при этом в организации вы-
числительных процессов участвует большое число устройств (ре-
сурсов) ВМ. Одновременно исполняемые программы могут кон-
курировать за использование разделяемых ресурсов: процессор-
ное время, память, системную шину и др. Для исключения конф-
ликтов и обеспечения эффективного использования ресурсов в
динамически изменяющихся условиях при реализации вычисли-
тельных процессов используется ОС. По ходу решения задач неко-
торые функции ОС в современных ВМ вызываются многократно
и достаточно часто. Реализация этих функций программно требует
значительных затрат времени, поэтому для ускорения их выпол-
нения в составе МП создают специализированные средства аппа-
ратной поддержки. Благодаря их наличию современные ОС пред-
ставляют собой аппаратно-программные комплексы, важной час-
тью которых являются аппаратные средства поддержки в составе
самого МП. В данном подразделе рассматриваются именно функ-
ции ОС, аппаратно поддерживаемые процессором. В гл. 5 органи-
зация аппаратных средств поддержки некоторых функций ОС ил-
люстрируется на примере МП Pentium.
Важными понятиями, характеризующими особенности ОС,
являются мультипрограммирование и многозадачность. Рассмот-
рим эти понятия на примере организации мультипрограммного
режима работы компьютера.
Мультипрограммный режим предполагает одновременное вы-
полнение процессором нескольких программ. Одновременность в
данном контексте понимается для интервала времени, соответ-
ствующего совместному выполнению программ. Естественно, в
каждый конкретный момент времени процессор может выпол-
нять только команды определенной программы.
Многозадачностью называется способ организации работы ком-
пьютера, при котором в его оперативной памяти содержатся про-
граммы и данные для одновременного выполнения нескольких
процессов обработки информации (задач). Многозадачность пред-
назначена для повышения «пропускной способности» компьюте-
ра путем более равномерной и плотной загрузкой всего его обору-
дования, в первую очередь процессора.
В многозадачном режиме работы компьютера каждая програм-
ма может находиться в одном из трех состояний: активном (про-
грамма обрабатывается процессором), готовности к обработке и
ожидания некоторого события, например завершения операции
ввода-вывода или освобождения нужного ресурса. Один из спосо-
бов реализации мультизадачности, называемый разделением вре-
мени, заключается в предоставлении каждой задаче некоторого
интервала времени (кванта обслуживания), в течение которого
процессор выполняет команды соответствующей программы. За-
дачи обслуживаются последовательно. Если в течение выделенно-
го программе кванта времени ее обработка не заканчивается, про-
грамма прерывается и она становится в очередь программ, ожи-
дающих обработку. ОС, которые используют разделение времени,
называют системами с разделением времени.
В многозадачных системах каждая задача представлена собствен-
ной локальной программой и может использовать фрагменты гло-
бальных программ и данных, общие для нескольких задач. Много-
задачная ОС, управляющая работой процессора, составляет рас-
писание задач, обеспечивает их выполнение на основе устанавли-
ваемых уровней приоритетов и для каждой задачи моделирует соб-
ственный виртуальный процессор. Виртуальный процессор (в об-
щем случае виртуальный ресурс) является еще одним важным
понятием, используемым в ОС. Виртуализация — это имитация
работы аппаратного ресурса программными средствами. Виртуаль-
ный процессор находится в монопольном использовании для за-
дачи. Выполнение отдельных задач с помощью виртуального про-
цессора создает иллюзию, что все задачи выполняются непрерыв-
но параллельно с другими. Однако это не так, поскольку в одно-
процессорной системе различные задачи могут выполняться од-
ним процессором только поочередно. Для поддержания впечатле-
ния, что каждая задача имеет свой собственный процессор, ОС
просто часто переключает реальный процессор на виртуальные,
выполняющие собственные задачи.
Быстрое переключение процессора на решение различных за-
дач является одной из важнейших проблем организации многоза-
дачной работы. Современные МП содержат эффективные аппа-
ратные средства поддержки многозадачного режима. В частности,
процессор Pentium ассоциирует с каждой задачей специальный
сегмент данных, содержащий всю информацию, необходимую для
запуска и останова задачи. Этот специальный сегмент называется
сегментом состояния задачи TSS. Содержимое этого сегмента фак-
тически определяет состояние виртуального процессора задачи.
Аппаратная реализация механизма запоминания и восстановле-
ния состояния виртуального процессора в сегменте TSS обеспе-
чивает быстрое переключение задач.
4.7.2. Виртуализация памяти
Виртуализация памяти — это моделирование памяти суще-
ственно большего размера, чем реальная оперативная память ВМ,
с помощью специальных программно-аппаратных средств. Вир-
туализация памяти фактически обеспечивает расширение до-
ступного адресного пространства ограниченной по объему ОП
с помощью внешней программно недоступной процессору па-
мяти.
Проблема совместного использования внешних запоминающих
устройств (ВЗУ) и ОП фактически возникла в момент появления
ВМ. ВЗУ в компьютере является основным хранилищем команд и
данных, но процессор не имеет к нему прямого доступа. В процес-
се выполнения программ процессор непосредственно взаимодей-
ствует только с ОП. В первых компьютерах программы, размер
которых превышал объем ОП, делили на несколько частей (так
называемые оверлеи) и загружали их в ОП по мере необходимо-
сти. Ответственность за разбиение программы на оверлеи, разме-
щение их в ВЗУ и управление обменом оверлеями между ОП и
ВЗУ осуществлял программист.
Проблема совместного использования ВЗУ и ОП усложнилась
при переходе к мультипрограммным (многозадачным) системам,
в работе которых одновременно могут участвовать несколько про-
грамм. Распределение памяти в таких системах не может быть ста-
тическим, т.е. не может проводиться предварительно до пуска
программы, а должно выполняться динамически непосредствен-
но в ходе вычислительного процесса. Попеременная загрузка ис-
полняемых программ (или их частей) в ОП при динамическом
распределении памяти может осуществляться только автомати-
чески (без участия программиста) с помощью специальных про-
граммно-аппаратных средств под управлением ОС. Именно для
такого способа совместного использования ВЗУ и ОП с автома-
тической подкачкой программ по мере необходимости в процессе
их выполнения и было введено понятие виртуальная память ВМ.
Наличие виртуальной памяти позволяет использовать в компь-
ютере ОП относительно малого размера, обеспечивая при этом
выполнение очень больших программ или групп программ. Важно
также подчеркнуть экономический аспект использования вирту-
альной памяти, поскольку относительная стоимость дисковой
внешней памяти примерно на два порядка дешевле ОП на эле-
ментах DRAM. Современные МП содержат специальные аппарат-
ные средства, обеспечивающие работу ОС при управлении вирту-
альной памятью. Более подробно работа систем виртуальной па-
мяти рассматривается в подразд. 4.8.4.
4.7.3. Функции защиты
Важной проблемой, решаемой при реализации многозадачно-
сти, является обеспечение взаимной защиты программ и данных,
относящихся к различным задачам. Современные ОС используют
так называемый защищенный режим работы процессора, в кото-
ром такая защита реализуется на аппаратном уровне. Поскольку
программы взаимодействуют с подсистемами компьютера только
через пространство памяти, порты ввода-вывода и также аппа-
ратные прерывания, то защищают эти три типа ресурсов. Самую
сложную защиту имеет память. Необходимость защиты памяти
связана с тем, что пользовательские программы могут содержать
ошибки, которые способны исказить и разрушить информацию,
принадлежащую другим программам. Последствия таких ошибок
особенно опасны, если разрушению подвергаются программы са-
мой ОС. Чтобы воспрепятствовать разрушению одних программ
другими, ОС выделяет каждой задаче определенные области па-
мяти с разными правами доступа. Программам ОС обеспечивается
более высокий уровень защищенности, ограничивающий к ним
доступ со стороны пользовательских задач. При попытке пользо-
вательской программы обратиться к программе ОС процессор
формирует сигнал общей защиты, принудительно завершающий
процесс несанкционированного доступа. В функции защиты па-
мяти могут входить и другие ограничения. Например, для облег-
чения отладки программ предложены решения, направленные на
выявление таких характерных ошибок при программировании, как
попытки использовать данные вместо команд или команды вме-
сто данных, а также контроль выхода за область памяти своей
программы. При нарушении защиты памяти исполнение програм-
мы приостанавливается и также вырабатывается запрос прерыва-
ния общей защиты.
Аппаратные средства поддержки операционных систем впер-
вые были внедрены в МП компанией Intel при разработке про-
цессора 80286 (1982). Использование таких средств существенно
упростило разработку ОС, например различных версий ОС Windows
для управления ПК.
4.7.4. Встроенные средства тестирования и отладки
Современный МП — сложное электронное устройство, со-
держащее миллионы вентилей. Для контроля работоспособности
и правильности функционирования блоков МП в них встраивают
специальные аппаратные средства тестирования. Состав этих
средств зависит от типа МП. Используемые методы контроля до-
вольно сложны и требуют знания принципов работы и особенно-
стей конкретной реализации контролируемых блоков. В МП Pentium
средства тестирования включают встроенный тест BIST (Built In
Self Test), при выполнении которого проверяется большая часть
оборудования МП и, прежде всего, внутренние блоки кэш-памя-
ти, буферы быстрой переадресации страниц TLB, блок управле-
ния. Тест автоматически запускается после сигнала сброса (RESET),
переводящего МП в исходное состояние. Для проверки внутрен-
ней кэш-памяти и некоторых других блоков МП, кроме внутрен-
него тестирования, обычно предусматриваются специальные про-
граммные процедуры контроля, которые используют встроенную
аппаратную поддержку тестирования. В состав МП включают бу-
фер заполнения кэш-памяти и буфер чтения ее содержимого, ис-
пользуемые при тестировании. Размеры буферов определяются
длиной строки внутренней кэш-памяти. При тестировании запи-
сываемые данные должны быть занесены в буфер заполнения
перед тем, как они попадут в нужную область кэш-памяти. При
чтении из кэш-памяти данные сначала попадают в буфер чте-
ния, а затем поступают в процессор. Программный обмен с бу-
ферами заполнения и чтения кэш-памяти осуществляется через
специальные регистры тестирования. В МП Pentium тестовые ре-
гистры входят в состав так называемых модельно-специфичес-
ких регистров MSR (Model Specific Register). Назначение и состав
регистров MSR определяется архитектурой конкретного процес-
сора. С помощью регистров MSR осуществляется управление от-
ладкой, мониторинг производительности, кэширование физиче-
ской памяти и некоторые другие операции.
Большинство современных МП поддерживает JTAG-интерфейс,
разработанный для тестирования сложных логических схем. При-
менительно к процессору тестированию подлежат внутренние схе-
мы процессора, установленного в системную плату. Диалог с про-
цессором по JTAG-интерфейсу осуществляется через тестовый
порт ТАР (Test Access Port). С его помощью тестируемый МП
подключается к тестирующему оборудованию, в качестве кото-
рого чаще всего используется другой компьютер. Для проверки
тестируемого МП разрабатывают специальную программу, в
соответствии с которой тестирующее оборудование формирует на-
бор тестовых сигналов и после их обработки тестируемым процес-
сором осуществляет сравнение результатов тестирования с этало-
нами.
Процессоры ПК начиная с Pentium имеют встроенные сред-
ства проверки функционирования аппаратуры во время работы.
В случае обнаружения аппаратной ошибки эти процессоры выра-
батывают сигнал исключения машинного контроля (Machine Check
Exception), который может быть обработан программами ОС.
4.8. Организация взаимодействия процессора с памятью
4.8.1. Общие требования к системе памяти компьютера
Память наряду с процессором в значительной мере определя-
ет основные возможности ВМ — ее производительность и слож-
ность решаемых задач, характеризуемую объемом программ и дан-
ных. Основными системными требованиями, предъявляемыми к
памяти, являются большой информационный объем, малое вре-
мя доступа к данным, низкая стоимость, энергонезависимость.
Эти требования противоречивы. В настоящее время не существу-
ют физические устройства памяти, полностью удовлетворяю-
щие перечисленным системным требованиями, в связи с чем
память ВМ реализуется не в виде отдельного устройства, а в
виде иерархической многоуровневой системы, представляющей
собой совокупность взаимодействующих устройств памяти. Чем
выше уровень памяти, тем выше ее быстродействие, но мень-
ше емкость. Взаимодействием устройств памяти управляет про-
цессор и дополнительные, координируемые им контроллеры.
В данной главе рассматриваются общие вопросы взаимодействия
процессора с ОП, формулируются требования к устройствам па-
мяти, размещенным на кристалле вместе с процессором (внут-
ренней памяти процессора), и приводится описание таких уст-
ройств. Принципы организации системы памяти и устройств, раз-
мещенных вне кристалла процессора, а также их характеристики
рассматриваются в гл. 6.
4.8.2. Основная память вычислительных машин.
Проблемы взаимодействия процессора с основной памятью
Информационный объем ОП в современных ПК составляет 64—
256 Мбайт. ОП имеет линейно-адресную организацию. В процессе
работы процессор постоянно взаимодействует с ОП, обменива-
ясь с ней данными и выбирая команды. Физически ОП реализу-
ется на СБИС динамической памяти (DRAM), быстродействие
которых в силу специфики работы ограничено значениями 30 —
60 нс (см. гл. 6).
Для достижения максимальной производительности ВМ и обес-
печения нормального функционирования в многозадачном режи-
ме разработчикам ВМ приходится решать ряд проблем, связан-
ных с обеспечением взаимодействия процессора с ОП.
Одной из проблем взаимодействия является согласование ско-
ростных характеристик процессора и ОП. При современном уров-
не развития микроэлектроники процессор имеет значительно бо-
лее высокое быстродействие по сравнению с быстродействием
ОП. При этом с ростом тактовой частоты процессоров все боль-
шую долю в задержке обмена процессора данными с ОП состав-
ляет задержка в связях по СШ (вне кристалла процессора). Основ-
ным архитектурным способом согласования скоростных характе-
ристик процессора и ОП является кэширование ОП. Под кэширо-
ванием понимается использование быстродействующей буферной
памяти относительно малого размера, выполненной на элементах
памяти статического типа (триггерах), которые имеют более вы-
сокое быстродействие по сравнению с динамическими элемента-
ми О П. В эту буферную память из ОП помещаются копии команд
и данных, относящихся к обрабатываемому в данный момент фраг-
менту программы. Работа буферной памяти прозрачна для про-
грамм, т. е. скрыта от пользователя. По этой причине ее называют
кэш-памятью (cache — тайник).
Кэш-память размещается в непосредственной близости от про-
цессорного ядра, при этом ее работа наиболее эффективна, если
она встроена внутрь кристалла процессора (кэш 1-го уровня —
L1). Ограниченность объема кристалла не позволяет реализовать в
процессоре внутренний кэш большой емкости. Объем внутренней
кэш-памяти процессоров редко превышает 16 — 32 Кбайт. В боль-
шинстве современных компьютеров используют 2- или 3-уровне-
вую кэш-память (рис. 4.19). Раздельные кэш команд и кэш данных
1-го уровня размещаются внутри кристалла процессора. Кэш-па-
мять 2-го уровня — L2 (ее размер составляет 256—512 Кбайт) ча-
сто располагается в одном корпусе с процессором и соединяется с
ним с помощью специальной локальной шины, работающей на
основной или половинной частоте процессора. Кэш-память 3-го
уровня — L3 объемом несколько Мбайт размещается на систем-
00
Процессор
Блок
РОН
Кэш
команд
L1
Кэш
данных
L1
Объединенная
кэш-память
L2
Объединенная
кэш-память
L3
на базе
статического
ЗУ
Оперативная
память
на базе
статического
ЗУ
Внешняя
дисковая
память
Емкость памяти 200 байт 16..,32 Кбайт 256...512 Кбайт
Время доступа..... 5 нс <10 нс <10 нс
1...4 Мбайт 64...256 Мбайт 8...64 Гбайт
<10 нс 30...60 нс 5...30 нс
Рис. 4.19. Структура памяти современных ВМ:
РОН — регистры общего назначения; Li, L2, L3 — уровни кэш-памяти; ОЗУ — оперативное запоминающее устройство; DRAM —
сверхбольшие интегральные схемы с динамической памятью
ной плате компьютера. Обычно все содержимое кэш L1 находится
в кэш L2, а все содержимое кэш L2 является частью кэш L3. Прин-
ципы построения кэш-памяти всех уровней сходны. В целом ОП
вместе с кэшами всех уровней представляет собой единую систе-
му памяти, непосредственно доступную процессору для чтения и
записи данных, а также считывания команд программы.
Вторая проблема организации взаимодействия процессора с
ОП связана с автоматизацией распределения ОП между процес-
сами (задачами) в многозадачном режиме работы ВМ и автома-
тизацией обменов ОП с внешней памятью.
При всех достоинствах ОП (относительно малое время досту-
па, возможность произвольного обращения к любым ячейкам па-
мяти и др.) стоимость ОП сравнительно велика, кроме того, она
не обладает энергонезависимостью. Поэтому основной по инфор-
мационному объему в системе памяти компьютера является вне-
шняя память ВЗУ. Она представлена в виде различных накопите-
лей со сменными и несменными носителями (ЖД, ГД, накопи-
тель на оптических магнитных дисках и т. п.). Принципы построе-
ния и работы этих устройств рассматриваются в гл. 6. Внешняя
память является самой медленной, но ее важным достоинством
является большой объем хранимой информации, энергонезави-
симость и существенно более низкая стоимость по сравнению с
другими типами памяти. В частности, информационная емкость
ЖД достигает нескольких десятков Гбайт, а относительная сто-
имость памяти ЖД более чем на два порядка ниже стоимости ОП.
Большой объем ВЗУ позволяет хранить программы и данные, раз-
мер которых может существенно превышать объем ОП. Однако
процессор не имеет прямого доступа к командам и данным, раз-
мещенным в ВЗУ, и вынужден осуществлять опосредованную связь
с ВЗУ через программно-аппаратное обеспечение. При отсутствии
требуемой части программы и данных в ОП осуществляется под-
качка недостающих данных из ВЗУ.
Проблема автоматизации обмена с внешней памятью решает-
ся с использованием концепции «виртуальной памяти» и созда-
нием в составе кристалла процессора средств аппаратной поддер-
жки управления виртуальной памятью.
4.8.3. Принципы организации кэш-памяти
Кэш-память используется в качестве промежуточного буфера
ОП для хранения копий блоков информации ОП, вероятность
обращения к которым в ближайшее время велика. Дополнитель-
но адресуемой памяти кэш не добавляет, и его использование не
расширяет адресного пространства процессора. При наличии в
кэш-памяти требуемых данных и команд процессор быстро обме-
нивается информацией с кэшем, не выполняя «медленных» об-
ращений к ОП. Такой иерархический способ организации ОП яв-
ляется разумным компромиссом для построения экономичных и
производительных систем. Он позволяет имитировать всю систему
ОП как быстродействующее запоминающее устройство сравни-
тельно низкой стоимости.
Эффективность использования кэш-памяти зависит от ряда
факторов, в том числе информационного объема (размера) кэша,
алгоритма управления, метода кэширования при записи и от вы-
полняемой программы.
В самом общем случае в системах с кэш-памятью информация
пересылается по цепочке: внешняя (дисковая) память <-> основ-
ная память <-> кэш-память <-> операционный блок процессора.
Как и в обычных системах памяти, вся доступная программе
информация размещается в ОП. При обращении процессора к па-
мяти вначале проверяется наличие требуемых данных в кэш-па-
мяти. Обнаружение искомой информации в кэше квалифицирует-
ся как кэш-попадание. При отсутствии требуемых данных в кэш-
памяти фиксируется кэш-промах. Обращение к кэшу считают ус-
пешным, если в нем содержатся команды и данные, за которыми
непосредственно обращается программа. Несмотря на то что адре-
са обращений к памяти при исполнении программы случайны, в
силу свойства «локальности» программ распределение вероятно-
стей по адресам неравномерны. В системах с кэш-памятью работа
строится по принципу предсказания с определенной вероятно-
стью следующего адреса обращения. Это сделать не так сложно,
поскольку программа чаще всего обращается к последовательным
ячейкам памяти или к ячейкам, расположенным вблизи от ранее
адресуемых.
Организация кэш-памяти предусматривает ее обмен с ОП ин-
формационными блоками — строкой из нескольких байт, в число
которых входит и адресуемый операнд. Размер информационного
блока является важным параметром кэш-памяти. Существует за-
висимость, согласно которой, чем больше размер блока, тем выше
коэффициент удачных обращений к кэшу. Однако выбор блока
слишком большого размера усложняет реализацию кэш-памяти.
К тому же, по мере увеличения размера блока каждое новое сло-
во располагается все дальше от запрашиваемого и вероятность его
реального использования снижается. В современных микропроцес-
сорных системах используют блоки фиксированного размера, на-
пример 32 байта.
Управляет кэш-памятью специальный контроллер кэша. Его
функции разнообразны. Он осуществляет формирование адресов
при обмене данными между ОП и кэшем, определяет, находится
ли запрашиваемый операнд в кэш-памяти, загружает и отмечает
как действительные блоки кэша, обеспечивает однозначное соот-
ветствие данных, записанных в кэш и находящихся в ОП. Указан-
ные функции реализуются аппаратно с помощью быстродейству-
ющих компараторов и других устройств контроллера кэша. Если
адресуемый операнд находится в кэше, он быстро извлекается из
него (при чтении) или результат операции заносится в кэш (при
записи). В противном случае, при отсутствии требуемого операнда
в кэш-памяти процессор считывает из ОП блок данных, содержа-
щий искомый операнд, и помещает его в кэш. Заполнение строк
кэша осуществляется только при кэш-промахах операций чтения,
т.е. когда кэш-контроллер не обнаруживает адресуемого операнда
в кэше. Запись данных, не имеющих копии в кэше, проводится
непосредственно в ОП. Для повышения быстродействия записы-
ваемые данные часто помещаются в специальный буфер записи
процессора, откуда посылаются в ОП через системную шину, когда
эта шина свободна.
Для того чтобы данные из ОП попали в кэш, необходимо не-
которым образом отображать ее сравнительно большой объем на
небольшой по емкости буфер. В системах с кэш-памятью ОП и
кэш разбиваются на одинаковые по размеру блоки данных (стро-
ки). Для указания, какие именно блоки ОП хранятся в кэше, каж-
дый блок данных в кэше снабжается тегом — указателем признака
адреса блока в ОП. Строки памяти с теговой организацией кроме
данных содержат специальное поле тега.
Теговая организации кэш-памяти обеспечивает однозначное
отображение информации, хранящейся в ОП, с ее копией в кэше.
С целью экономии объема кэш-памяти длину тега (размер адре-
сов, копируемых областей ОП) часто ограничивают определен-
ным числом разрядов. В связи с этим доступной для кэширования
становится не вся память процессора, а только ее определенная
часть, например первые 512 Мбайт.
При организации кэш-памяти наиболее важными задачами,
по способу решения которых разделяются варианты архитектуры,
являются:
• отображение ОП на кэш;
• выбор места в кэше при записи нового блока;
• обеспечение когерентности (согласованности) данных кэш-
памяти с данными в ОП.
В зависимости от способа отображения ОП на кэш различают
полностью ассоциативный кэш, кэш с прямым отображением и
частично ассоциативный или и-канальный множественно ассо-
циативный кэш.
Полностью ассоциативная кэш-память. В полностью ассоци-
ативной кэш-памяти любой блок ОП может быть помещен в лю-
бую строку кэша. Для идентификации блока в кэше необходимо в
поле его тега записывать полный адрес блока данных ОП. Основ-
ным достоинством полностью ассоциативного кэша является от-
сутствие ограничений при отображении любого блока ОП в лю-
бую строку кэша. Однако отмеченное достоинство полностью ас-
социативного кэша в то же время является и его существенным
недостатком. Дело в том, что алгоритм отыскания требуемых дан-
ных в полностью ассоциативной кэш-памяти сравнительно сло-
жен, поскольку требует при каждом обращении к памяти сравне-
ния адреса искомого операнда со всеми тегами кэша. Для сниже-
ния сложности аппаратуры такое сравнение обычно выполняется
последовательно по частям, при этом каждое сравнение дает либо
попадание, либо промах. В случае промаха можно поступить дво-
яко: продолжить последовательный (медленный) поиск или сразу
обратиться в ОП за искомым блоком. Для повышения эффектив-
ности поиска применяют параллельный поиск, требующий ис-
пользования более дорогой аппаратуры, содержащей быстродей-
ствующие компараторы и другие блоки, обеспечивающие быст-
рое определение наличия или отсутствие искомых данных в кэше.
Кроме того, из-за большого количества «независимых» строк ус-
ложняется решение вопроса, в какую именно строку кэша дол-
жен быть помещен загружаемый блок данных. Пока буфер еще не
заполнен, новый блок помещается в первую свободную строку.
Когда же буфер полон, то перед загрузкой нового блока в кэш
один из блоков кэша должен быть возвращен в ОП, после чего на
место вытесненного блока помещается новый блок. В большинстве
случаев в ОП возвращается блок, к которому было наименьшее
количество обращений.
В качестве примера рассмотрим организацию полностью ас-
социативной кэш-памяти в системе, содержащей ОП объемом
16 Мбайт и кэш-память объемом 64 Кбайт с 16-байтными блока-
ми. На рис. 4.20 представлены структуры ОП и полностью ассоци-
ативной кэш-памяти и показано использование отдельных разря-
дов физического адреса при обращении к кэшу. При выбранном
размере блока в кэш-памяти одновременно может быть размеще-
но 4096 (216: 24 = 212) блоков, а в ОП помещается 224: 24 = 220 бло-
ков. Для указания адреса (номера) блока ОП, размещенного в
кэше, требуется 20-разрядное поле тега.
Кэш-память с прямым отображением. Кэш-память с прямым
отображением по своей организации является самой простой. Пред-
полагается, что ОП разбита на области, равные размеру кэш-па-
мяти, при этом каждому блоку данных в таких областях соответ-
ствует вполне определенная строка кэша. Благодаря такой органи-
зации любой блок данных ОП может быть помещен на строго
фиксированное место в кэше и алгоритм поиска искомых данных
в кэше существенно упрощается. Тег блока данных в кэше с пря-
мым отображением содержит информацию о номере области ОП,
из которой выбран этот блок. Нетрудно заметить, что длина тега
данного типа кэша значительно короче длины тега полностью
23
4 3
О
20-разрядный признак (адрес блока) Номер байта внутри блока
Физический адрес операнда,
формируемый процессором
Номера разрядов
информационного
Физический блока
адрес блока 127 О
FFFFF
19 I О 127 О
Поле тега (20 разрядов) Данные (16-бай- товая строка- 128 разрядов)
1FF25 0FA31 954F0 F02CA ECD15 К L М N Р
Кэш-память (статическое ЗУ) 64 Кбайт
F02CA
ECD15
954F0
- 1FF25
0FA31
00000
Данные
N
Р
М
К
L
Основная память
(динамическое ЗУ)
16 Мбайт
Рис, 4.20. Организация полностью ассоциативной кэш-памяти
ассоциативного кэша. Пример организации 64-Кбайтного кэша с
прямым отображением в системе с 16-Мбайтным массивом ОП и
16-байтными блоками представлен на рис. 4.21. В такой системе ОП
разбивается на 256 областей, по размеру равных кэшу (224: 216 = 28),
а кэш содержит 4096 16-байтных блоков данных (216: 24 = 212).
Основное преимущество кэша с прямым отображением зак-
лючается в простоте выбора искомого операнда из кэша и, как
следствие, простота аппаратных средств управления кэшем. Для
поиска операнда требуется только одно сравнение номера обла-
сти ОП (поля признака) в формируемом адресе с соответствую-
щим полем тега в кэше. Однако кэш с прямым отображением не
лишен недостатков. Если процессор попеременно обращается к
блокам данных с одинаковым индексом из различных областей
ОП, то такие данные отображаются на одну и ту же строку кэша.
Это приводит к возникновению конфликта. Для его разрешения
необходимо переписать блок данных, размещенный в кэше, в
ОП, а на его место поместить новый. Необходимость выполне-
ния дополнительных пересылок между кэшем и ОП снижает эф-
фективность использования кэш-памяти с прямым отображени-
ем. Для исключения отмеченного недостатка (конфликта блоков,
имеющих одинаковый индекс) предложена структура кэш-памя-
ти, которая получила название частично ассоциативная кэш-па-
мять.
23
16 15 43 О
8-битовый признак (номер области основной памяти) 12-битовый индекс (номер строки в кэш-памяти) Номер байта в блоке
Физический адрес
операнда, формируемый
процессором
Информационный
блок данных (байт)
11 07 0 127 0
—т¥ ----------Г *”’-----Г' —------—
Индекс (№ строки) ТЕГ Данные
FFFh 54h К
FOOh FFh L
FBCh OOh M
25Bh FFh
OOOh OOh R
Кэш-память (статическое ЗУ)
64 Кбайт
127 0
Физический адрес блока Данные
Признак (тег) Индекс
FFh FFFh FOOh 25Bh OOOh L P
54h FFFh OOOh К
OOh FFFh FBCh OOOh M R
Основная память (динамическое ЗУ)
16 Мбайт
Рис. 4.21. Организация кэш-памяти с прямым отображением
В современных многоуровневых системах кэш-памяти кэш пря-
мого отображения в основном используется при реализации вне-
шних кэшей 2-го и 3-го уровней. Важно отметить, что кэш-систе-
мы прямого отображения обладают приемлемой производитель-
ностью при более низкой по сравнению с другими типами кэш-
систем стоимостью.
Частично ассоциативная кэш-память. Частично ассоциативная
кэш-память сочетает в себе преимущества кэша с прямым ото-
бражением и полностью ассоциативного. Кэш этого типа реализу-
ется в виде нескольких подкэшей с прямым отображением, кото-
рые функционируют параллельно. ОП в случае использования ча-
стично ассоциативного кэша разбивается на одинаковые области,
размер которых определяется размером подкэша. Для различных
строк ОП с одинаковым индексом в частично ассоциативном кэше
выделяется набор строк с таким же индексом. При записи какого-
либо блока ОП в кэш он помещается на свободную строку в набо-
ре, при этом реализуется такой же принцип записи, как и в пол-
ностью ассоциативном кэше. Поиск искомого операнда в части-
чно ассоциативном кэше осуществляется по индексу набора и вы-
полняется почти также быстро, как и в кэш прямого отображения.
В соответствии с количеством блоков в наборе частично ассоци-
ативный кэш также называют «-канальным или «-входовым мно-
жественно ассоциативным кэшем. При попеременном обращении
к блокам данных ОП с одинаковыми индексами в «-канальном
множественно ассоциативном кэше практически исключен кон-
фликт при записи таких блоков в кэш. Благодаря этому увеличен
коэффициент удачных обращений к кэшу, а вместе с ним и его
эффективность. Как и в кэш с прямым отображением, физиче-
ский адрес операнда в ОП в системах с множественно ассоциа-
тивным кэшем удобно представить в виде трех полей: «-битного
поля признака, кодирующего номер области основной памяти с
отображаемым блоком, «/-битного поля индекса, определяющего
строку (набор) в кэше и //-битного поля с номером байта в блоке.
В качестве примера рассмотрим структуру 2-входового множе-
ственноассоциативного 64-Кбайтного кэша в системе 16-Мбайт-
ной ОП с 16-байтовыми блоками (рис. 4.22). В такой системе кэш
разбивается на два подкэша по 32 Кбайт, каждый из которых со-
держит 2048 (215: 24 = 2Н) 16-байтовых блока (т = 11), а ОП вклю-
чает в себя 512 (224: 215 = 29) 32-Кбайтных областей (я = 9). Недо-
статком «-канального множественноассоциативного кэша явля-
ется то, что он содержит в «-раз меньше отображаемых блоков по
сравнению с одновходовым кэшем прямого отображения той же
емкости. Наиболее эффективными в плане достижения компро-
мисса между быстродействием и стоимостью оказываются 2- и 4-
входовые множественно ассоциативные кэш-системы.
Выбор места в «-канальном множественно ассоциативном кэше
при записи. При любом обращении процессора к ОП за операн-
дом кэш-контроллер сначала проверяет его наличие в кэш-памя-
ти. Для этого он по индексу в адресе операнда выделяет набор
кэша, в котором может находиться операнд, и, сравнивая значе-
ние признака в адресе операнда с тегами блоков выбранного на-
бора, окончательно определяет, находится искомый операнд в
кэше или нет. В 2-канальном кэше число блоков в наборе может
быть только два, поэтому сравнение и выбор блока в кэше выпол-
няется быстро. При отсутствии операнда в кэш-памяти кэш-конт-
роллер должен считать блок данных с искомым операндом из ОП
и решить на место какого блока в наборе кэш-памяти его можно
поместить. От интеллектуальности алгоритма замещения зависит
процент попадания, а, следовательно, и эффективность кэширо-
вания. Возможными вариантами решения являются: случайный
выбор, запись в последовательном порядке (алгоритм FIFO) и
запись на место блока, который не адресовался дольше других
(алгоритм LRU — Least Recently Used). Выбор варианта решения
обычно определяется характером выполняемой программы. В на-
стоящее время при замещении строк при относительно большом
23
15 14
4 3
О
Рис. 4.22. Организация двухканальной множественно ассоциативной
кэш-памяти
количестве каналов чаще других используют алгоритм Pseudo-LRU,
обеспечивающий некоторые упрощения организации замещения.
В частности, в 4-канальном множественно ассоциативном кэше
для четырех строк набора при принятии решения достаточно ис-
пользовать всего 3 бит дополнительно LRU [13].
Для организации правильной работы кэш-памяти при замеще-
нии строк в наборе используют дополнительные признаки, запи-
сываемые в специальное поле признаков каждой строки. Такими
признаками являются признак достоверности V (valid) данных,
размещенных в кэше, и признак модификации М. Использовать
данные кэша можно только в случае, если они находятся в дей-
ствительной строке, т. е. строке, содержащей достоверную копию
данных ОП. Действительные строки кэша имеют признак V, рав-
ный 1. При заполнении кэша новые данные могут быть записаны
только в недействительную строку со сброшенным признаком V.
Признак модификации М принимает значение 1 при изменении
(модификации) данных в строке кэша. Значение признака М учи-
тывается при выгрузке строки кэша в ОП: при М = 0 обновлять
ОП нет необходимости.
Целостность данных в системах кэш-памяти. Важнейшей осо-
бенностью при использовании кэш-памяти является наличие двух
копий данных — одной в кэш-памяти, а другой — в ОП. Если
одна из этих копий модифицирована, а другая нет, возникают
два различных набора данных, соответствующих одному адресу
памяти, что может привести к нарушению целостности хранимых
данных. Отмеченная особенность систем с кэш-памятью требует
специального механизма обновления информации в ОП процес-
сора. Поскольку около 30 % всех обращений к памяти приходятся
на операции записи, то на эффективность работы кэша суще-
ственное влияние оказывает используемый способ обновления ин-
формации в ОП, гарантирующий безошибочное использование
данных в системе с кэш-памятью. Наиболее распространенными
являются следующие способы обновления информации:
• сквозная запись (write through);
• буферированная сквозная запись (buffered write through);
• обратная запись (write back).
Метод сквозной записи проще других. Суть метода заключается
в том, что при любой операции записи всегда одновременно об-
новляются и ОП, и кэш-память. Так как обязательная запись в
ОП требует значительных временных затрат, то использование
метода сквозной записи в ряде случаев снижает общую эффектив-
ность системы.
Метод буферированной сквозной записи, являющийся раз-
витием метода сквозной записи, имеет определенные преиму-
щества. При использовании этого метода при записи данных в
кэш они одновременно помещаются в буфер записи, при этом
процессор может переходить к выполнению других операций, не
связанных с обменом. Организацией перезаписи данных из бу-
фера в ОП занимается контроллер кэша, который выполняет ее
в наиболее удобные моменты времени. При отсутствии копии
данных в кэш-памяти процессор, как и при сквозной записи,
должен выполнить цикл записи в ОП и только по его заверше-
нию может продолжить выполнение других операций. Метод бу-
ферированной сквозной записи позволяет «разгрузить» процес-
сор, но не шину.
Наиболее эффективным методом обновления информации счи-
тается метод обратной записи, при реализации которого процес-
сор записывает модифицированные данные только в кэш-память.
Основной предпосылкой использования этого метода является то,
что нередки ситуации, когда данные в процессе выполнения про-
граммы неоднократно обновляются, так и не побывав в ОП. Бе-
зусловно, содержимое кэш-памяти, в конце концов, обязательно
перепишется в ОП, но общее количество «медленных» циклов
записи в нее уменьшается, следовательно, в этом случае разгру-
жается не только процессор, но и шина.
При использовании метода обратной записи обновление ОП
осуществляется с помощью специального механизма поддержа-
ния целостности данных кэша. Он запускается либо при необхо-
димости отменить распределение строк кэша, например для рас-
пределения новых строк в уже заполненном кэше либо при пере-
даче данных в другое устройство в многопроцессорной системе.
Метод обратной записи во многих случаях обеспечивает большее
быстродействие по сравнению со сквозной записью.
Проблема обеспечения целостности данных в кэш-памяти осо-
бенно важна при работе мультипроцессорных систем, использую-
щих общую память. Для поддержания целостности данных при
работе таких систем разработаны специальные протоколы кэш—
согласования. Кэш-согласование означает, что при изменении
некоторых данных в памяти (основной или собственного кэша)
одним из процессоров остальные процессоры при обращении к
памяти будут получать скорректированные значения. Современ-
ные процессоры содержат аппаратные средства, поддерживающие
согласованность данных в кэше и в ОП. С их помощью процессор
отрабатывает циклы слежения, инициированные внешней (для
него) системой. В этих циклах он определяет присутствие затребо-
ванной строки данных в своем собственном кэше. При обнаруже-
нии соответствующей строки в кэше действия процессора зависят
от состояния этой строки и типа внешнего обращения. Операция
записи в ОП вызовет аннулирование адресуемой строки во внут-
реннем кэше процессора. При выполнении чтения ОП процес-
сор, содержащий модифицированную строку в собственной кэш-
памяти, должен выгрузить ее содержимое в ОП прежде, чем внеш-
нее устройство выполнит ее реальное считывание. Для обеспече-
ния кэш-согласования все кэш-контроллеры должны контроли-
ровать запросы обменов на шине от других процессоров, чтобы
предотвратить неправильное использование копий данных в соб-
ственных кэшах.
Большинство современных процессоров поддерживают прото-
кол кэш-согласования MESI, реализующий метод обратной за-
писи обновляемой информации. Протокол MESI представляет
собой набор правил, которые выполняются кэш-памятью, про-
цессором и ОП. С помощью этих правил предотвращается исполь-
зование различных значений одних и тех же данных, которые могут
формироваться в разных блоках памяти. В соответствии с протоко-
лом MESI в циклах чтения-записи памяти каждой строке кэш-
памяти присваивается одно из четырех состояний: М (Modified),
Е (Exclusive), S (Shared), I (Invalid). При изменении данных памя-
ти действия кэш-контроллера зависят от состояния строки кэш-
памяти.
В соответствии с отмеченными особенностями кэш-память МП
строится с учетом возможности обращений к памяти со стороны
других МП или других ведущих устройств шины. Для учета требо-
ваний современных систем поле тегов кэш-памяти расширяется.
Кроме адреса области ОП, содержащий кэшируемый блок дан-
ных, оно содержит 4 бит состояния строки кэша по протоколу
MESI, а также дополнительные признаки, характеризующие спо-
собы использования строки кэша (биты М, V, поле бит LRU).
В заключение еще раз подчеркнем, что эффективность кэши-
рования определяется не только объемом кэша и типом его орга-
низации, но и методом кэширования при записи данных. По не-
которым оценкам, приведенным в литературе, наиболее эффек-
тивной по соотношению цена—производительность является под-
система кэш-памяти с прямым отображением со сквозной запи-
сью, за ней следует 2-канальная множественно ассоциативная кэш-
память с обратной записью и самой медленной — система прямо-
го отображения с обратной записью.
4.8.4. Динамическое распределение памяти.
Организация виртуальной памяти
Непосредственно адресуемая процессором ОП имеет сравни-
тельно небольшой объем и в большинстве случаев не может вме-
стить все команды и данные исполняемых программ (обычно ОП
содержит только их фрагменты). Все программы и данные хранят-
ся во внешней относительно дешевой дисковой памяти — ВЗУ.
Процессор не имеет непосредственного доступа к ВЗУ. Чтобы ис-
пользовать команды и данные из ВЗУ, их необходимо предвари-
тельно переписать в ОП. Трудности размещения больших программ
в ОП усугубляются при реализации многозадачных систем, в ко-
торых в ОП одновременно должны находиться программы и дан-
ные нескольких задач. Понятно, что все они физически не могут
поместиться в ограниченном объеме ОП, и приходится решать
задачу распределения наличного ресурса ОП между отдельными
программами. Решение этой задачи осложняется тем, что разра-
ботка программ выполняется разными пользователями, которые
не знают и в принципе не могут знать, в комбинации с какими
программами будут выполняться их программы. По этой причине
в многозадачных системах распределение памяти между програм-
мами не может быть выполнено заранее до пуска программ и дол-
жно осуществляться динамически в ходе вычислительного про-
цесса. Управляет процессом динамического распределения памя-
ти ОС, которая активным частям программ выделяет определен-
ные области ОП и осуществляет привязку адресов загружаемых
программ к конкретным адресам физической ОП. Эта процедура
называется динамическим распределением памяти.
В основе всех известных методов динамического распределения
памяти лежат два положения: каждому заданию необходимо вы-
делять непрерывную и перемещаемую область памяти и должна обес-
печиваться возможность попеременной загрузки заданий в ОП [22].
Для организации обменов между ВЗУ и ОП внешняя память
представляется в виде набора частей (блоков) отдельных программ.
При отсутствии требуемого фрагмента программы в ОП процес-
сор обращается к ОС, которая, используя специальные процеду-
ры, обеспечивает обращение к внешней памяти и считывает из
нее в ОП соответствующий блок. Если для требуемого фрагмента
программы в ОП недостаточно места, ОС вначале освобождает
такое место, пересылая неиспользуемые блоки из ОП в ВЗУ. Пе-
ремещаемость программ при их размещении в ОП можно обеспе-
чить, если для адресации операндов внутри каждого блока ис-
пользовать метод базирования (см. подразд. 4.4.2), предполагаю-
щий, что все программы представлены в относительных адресах с
началом в нулевой ячейке. В соответствии с этим методом адрес
операнда определяется двумя составляющими: базовым адресом,
сохраняемым в одном из базовых регистров процессора, и смеще-
нием относительно базового адреса, указываемым или вычисляе-
мым в команде. Изменяя содержимое базовых регистров, програм-
мы можно перемещать внутри ОП, не нарушая их внутренней
адресации.
Попеременная загрузка заданий (программ) в современных ВС
осуществляется путем «свопинга» (англ, swap — обмен) между ОП
и ВЗУ. В мультипрограммных системах такой обмен проводится
автоматически (без участия программиста) с помощью специаль-
ных программно-аппаратных средств под управлением ОС. В це-
лом ОС при динамическом распределении памяти выполняет сле-
дующие задачи:
• размещает программы (или их части) в запоминающих уст-
ройствах разного типа — в ОП и ВЗУ;
• выделяет каждой задаче определенные области ОП и осуще-
ствляет настройку адресов программы на конкретные области
физической ОП (преобразует виртуальные адреса в физические);
• перераспределяет ОП, когда она не может вместить все зада-
чи (перемещает по мере необходимости программы или их части
между запоминающими устройствами разного типа);
• освобождает ОП по завершении задачи.
Автоматизация обменов между ОП и ВЗУ, обеспечивающая
динамическое распределение памяти, тесно связана с понятием
виртуальная память.
Виртуальная, или кажущаяся, память — это совокупность про-
граммно-аппаратных средств представления одноуровневой памя-
ти, которую использует пользователь при подготовке своих про-
грамм. Оперируя логическими адресами, пользователь абстраги-
руется от реального распределения памяти в системе и чаще всего
не учитывает ни объем реальной физической памяти, ни объемы
памяти других программ, которые могут выполняться одновре-
менно с его программой при мультипрограммной обработке. Ис-
пользование виртуальной памяти позволяет писать программы,
размер которых превосходит имеющуюся физическую ОП, при
этом с помощью виртуальных (логических) адресов, обеспечива-
ется адресация всего адресного пространства ВМ.
Систему виртуальной памяти можно представить в виде 1-уров-
невой логической и 2-уровневой (ОП и ВЗУ) физической памяти.
Адреса, к которым программа может обратиться, образуют вир-
туальное АП системы, а реальные адреса ОП — физическое АП.
Размер виртуального АП, определяемый форматом адресных по-
лей команд, как правило, много больше пространства физиче-
ских адресов ОП. Все копии исполняемых программ хранятся в
ВЗУ. При необходимости требуемая программа или ее фрагмент
переписываются из ВЗУ в ОП и исполняются. Если в ОП нет или
недостаточно места для новой программы, ОС сначала возвраща-
ет в ВЗУ неисполняемую в данный момент программу, а на осво-
бодившееся место помещает запрашиваемую программу. Все опе-
рации по управлению работой виртуальной памяти, динамиче-
скому распределению ОП и преобразованию логических адресов
в физические в ВМ выполняются автоматически. В современных
процессорах некоторые из указанных функций реализуются с по-
мощью специального контроллера управления памятью MMU
(Memory Management Unit). В частности, в МП Pentium встроен-
ный контроллер MMU обеспечивает трансляцию логических ад-
ресов в физические и их выдачу на внешнюю шину адреса МП.
Из известных моделей виртуальной памяти наиболее распрос-
транены модель сегментированной памяти и модель памяти со
страничной организацией. Названные модели виртуальной памя-
ти предполагают разбиение логического и физического АП памяти
на блоки с линейным способом адресации операндов внутри блока.
В сегментированной памяти размер блоков (сегментов) может быть
произвольным, в модели со страничной организацией — фикси-
рованный. Для адресации операндов в обеих моделях используют-
ся две составляющие логического адреса — базовый адрес сег-
мента (страницы) и смещение внутри сегмента (страницы). Раз-
рядность базового адреса в общем случае определяет максималь-
ное число допустимых в программе сегментов (страниц), а число
бит в смещении задает максимальный размер сегментов (стра-
ниц). Физический адрес операнда (см. рис. 4.9) вычисляется при
сложении базового адреса, определяющего конкретный сегмент
(страницу), и внутрисегментного (внутристраничного) смещения.
При загрузке текущей программы ОС помещает в регистры базо-
вых адресов сегментов (страниц) начальные адреса соответству-
ющих блоков, определяя их размещение в физической ОП.
Сегментирование. Сегментирование — это разделение памяти
на логические блоки произвольной длины с целью эффективно
управлять пространством логических адресов. Логическое адрес-
ное пространство задачи обычно представляется в виде несколь-
ких сегментов. Каждый сегмент имеет имя, в соответствии с кото-
рым ОС при распределении памяти назначает базовый адрес. Ко-
личество сегментов определяет пользователь при подготовке про-
граммы. Для раздельного хранения команд данных и стековых дан-
ных он выделяет специальные сегменты. Размещение команд про-
граммы в одном сегменте, а данных и стековых данных в других
сегментах позволяет предотвратить непредусмотренные алгорит-
мом разрушения кода и данных программы, благодаря этому по-
вышается надежность ПО. Использование относительной адреса-
ции при обращении к операндам сегментированной памяти обес-
печивает возможность динамического перемещения команд и дан-
ных в памяти при условии, что сама программа не модифицирует
указатели базовых адресов.
Всем сегментам активных задач, как виртуальным (логиче-
ским), так и физическим, ОС присваивает номера. Так как объем
физической ОП относительно невелик, то не все сегменты могут
быть загружены в ОП. Соответствие между виртуальной памятью
и физической ОП устанавливается ОС с помощью специальной
таблицы соответствия, которую ОС формирует каждый раз, когда
в распределении памяти происходят изменения, например, при
загрузке новой задачи. В таблице соответствия хранится информа-
ция о том, какие сегменты ВЗУ находятся в ОП и базовые адреса
этих сегментов.
В примере (рис. 4.23) виртуальное адресное пространство пред-
ставлено набором из 5 сегментов. Значение 5 определяется количе-
ством разрядов адресного поля команды, используемым для зада-
ния номера сегмента. В МП Pentium разрядность индекса селекто-
ра сегмента, с помощью которого выбирается строка таблицы с
базовым адресом сегмента, равна 13, следовательно, максималь-
ное число адресуемых сегментов не превышает 8192. Предельный
Виртуальное адресное
пространство,
представленное
набором сегментов
сегмент 5
сегмент т
сегмент /
сегмент к
сегмент 5
сегмент 4
сегмент 3
сегмент 2
сегмент 1
Таблица соответствия
(таблица сегментов)
Физическая память
ОП ВЗУ
№ сегмента Тип памяти Базовый адрес сегмента в ОП
S X
X
X сегмент т
т ВЗУ сегмент 1
1 ОП Базовый адрес
к ВЗУ сегмент 1 сегмент к
ВЗУ
ВЗУ
ВЗУ сегмент 5
5 ОП Базовый адрес сегмент 4
4 ВЗУ сегмент 2 сегмент 3
3 ОП Базовый адрес сегмент 5 сегмент 2
2 ОП Базовый адрес сегмент 3 сегмент 1
1 ВЗУ
Рис. 4.23. Сегментное распределение памяти
размер каждого сегмента, определяется разрядностью внутри-
сегментного смещения (для МП Pentium он ограничивается вели-
чиной 4 Гбайт). Указанные значения характеризуют теоретически
адресуемую виртуальную память. Реальные программы использу-
ют существенно меньшее число сегментов, размер которых, как
правило, значительно ниже предельных 4 Гбайт. Сегменты всех
задач, определенные в виртуальном АП, размещаются в ВЗУ. Из
общего числа т сегментов в ВЗУ (т < 5) в каждый момент време-
ни в ОП находится только часть из них. Число сегментов в ОП
зависит от объема ОП и размеров сегментов. Динамическое рас-
пределение памяти в системе отражает таблица соответствия. Раз-
мер таблицы определяется максимальным числом сегментов вир-
туального АП. Каждая строка таблицы содержит информацию о
листе размещения сегмента ВЗУ (находится ли он в ОП) и базо-
вый адрес сегмента в ОП. Базовые адреса назначаются ОС при
загрузке сегмента в ОП и при любом изменении в распределении
памяти. Стрелками на рис. 4.23 показано размещение сегментов в
ОП в соответствии с адресами, определяемыми ОС, а двойными
линиями — обмены данными между сегментами ОП и ВЗУ при
свопингах.
Кроме базового адреса сегмента в ОП, в каждой строке таб-
лицы соответствия содержатся биты управления виртуальной па-
мятью и дополнительные атрибуты, используемые механизмом
защиты процессора для определения возможности доступа к ячей-
кам памяти сегмента (его размер, тип, способ защиты данных).
В англоязычной литературе описание содержимого строки табли-
цы соответствия называется дескриптором (descriptor). В соответ-
ствии с этим названием таблицы соответствия часто именуют дес-
крипторными таблицами. Упрощенный формат 64-битного деск-
риптора сегментов (рис. 4.24) процессора Pentium содержит сле-
дующие функциональные поля:
• 32-битный базовый адрес, определяющий место сегмента
внутри линейного 4-Гбайтного адресного пространства ОП;
• 20-битовое поле предела, фиксирующее размер сегмента (про-
цессор в зависимости от состояния бита дробности G, не пока-
занного на рисунке, интерпретирует поле предела одним из двух
способов — в единицах байтов ((7= 0) для сегментов объемом до 1
Мбайт или в единицах четырех килобайтных страниц для сегмен-
тов объемом до 4 Гбайт);
• поле атрибутов, содержащее информацию о типе сегмента и
элементах его защиты.
Поле атрибутов А
Базовый адрес сегмента | Поле предела
Рис. 4.24. Упрощенный формат дескриптора
Специальные биты — бит присутствия Р (Present) и бит досту-
па A (Accessed), выделенные в поле атрибутов, используются для
управления работой системы виртуальной памяти. Бит Р показы-
вает, где находится искомый сегмент — в ОП (Р= 1) или на диске
(Р=0). Бит А помогает ОС выбрать сегмент, который возвращается
на диск, когда в ОП нет достаточного места для нового сегмента.
Доступ к элементам дескрипторной таблицы (ДТ) осуществ-
ляется с помощью указателей, для размещения которых в совре-
менных процессорах используют специальные сегментные регист-
ры. Для быстрого доступа к дескрипторам дескрипторные табли-
цы должны находиться в ОП. В процессоре Pentium для выбора
сегментных дескрипторов используются селекторы, содержащие
индекс дескрипторной таблицы. Селекторы размещаются в сег-
ментных регистрах CS, DS, ES, FS, GS, SS (см. регистровую мо-
дель процессора Pentium — подразд. 5.1.5). С их помощью процес-
сор в каждый момент времени может выбирать до шести дескрип-
торов текущих сегментов. Способ формирования физического ад-
реса операнда сегментированной памяти показан на рис. 4.25.
Система виртуальной памяти с разбиением на сегменты рабо-
тает следующим образом. При обращении к сегменту памяти, при-
сутствующему в ОП (Р= 1), в выполнении команд нет никаких
отличий по сравнению с системой линейной (обычной) физи-
ческой памяти. Отличия в работе для систем виртуальной памяти
проявляются при попытке обращения к сегменту, который отсут-
ствует в ОП (Р=0). В этом случае возникает особый случай (пре-
рывание), и процедура обработки этого особого случая (соответ-
ствующая программа ОС) переписывает в ОП требуемый сегмент.
Если в ОП имеется свободное место для загрузки сегмента, то
Логический адрес Селектор Внутрисегментное смещение
Рис. 4.25. Формирование физического адреса операнда сегментированной
памяти
никаких проблем не возникает, и после загрузки нового сегмента
в память осуществляется повторный запуск команды обращения к
памяти. Сложнее, если в ОП нет или недостаточно места для за-
писи отсутствующего сегмента. В таких случаях процедура ОС сна-
чала освобождает требуемое место, пересылая на диск один или
несколько неиспользуемых в данный момент сегментов, и затем
на освободившееся место загружает требуемый сегмент из внеш-
ней памяти. Используя механизм «свопинга», ОС создает иллю-
зию, что все сегменты программы все время находятся в ОП. Если
при выполнении программы нет частого обращения к различным
сегментам (нет частых swap-обменов), система с виртуальной па-
мятью работает так же быстро, как и система с большой ОП при
значительно меньшей цене.
ОС всегда пытается избежать передачи в ВЗУ тех сегментов,
которые могут потребоваться в ближайшем будущем. Широко ис-
пользуемой стратегией обмена является стратегия LRU, обеспе-
чивающая замену сегмента, к которому не было обращения самое
продолжительное время. Бит доступа А используется ОС для опре-
деления приблизительного времени последнего использования
сегмента. Этот бит не влияет на выполнение программы. Для ре-
ализации алгоритма LRU с каждым сегментом в ОП ОС связывает
отдельный счетчик. При каждом обращении к сегменту ОС уста-
навливает бит А в соответствующем сегментном дескрипторе и
обнуляет счетчик этого сегмента. В процессе работы ОС с заданной
периодичностью сканирует (просматривает) дескрипторы сегмен-
тов, размещенных в ОП, и сбрасывает их биты А. Если во время
сканирования обнаруживаются дескрипторы со сброшенным би-
том А (.4 = 0), то это значит, что к сегментам, определяемым этими
дескрипторами, в текущем цикле опроса не было обращения. Для
таких сегментов ОС проводит инкремент счетчиков их последнего
использования. Значения указанных счетчиков косвенно характе-
ризуют сегменты, которые не использовались дольше других.
Рассмотренный способ реализации виртуальной памяти, при
котором целые сегменты загружаются и удаляются из ОП только
при необходимости, называют сегментацией с подкачкой сегмен-
тов или сегментацией с вызовом сегментов по требованию. Суще-
ственной особенностью использования сегментированной моде-
ли виртуальной памяти является то, что после многократных «сво-
пингов» сегментов, размер которых не фиксирован, в ОП могут
образовываться свободные участки памяти слишком малого раз-
мера и неудобные для использования. Память, в которой имеется
большое число трудноиспользуемых, свободных областей, назы-
вается фрагментированной памятью. Наличие фрагментации не толь-
ко приводит к недоиспользованию дефицитной ОП, но и снижа-
ет производительность системы, поскольку реорганизация ОП,
требующая перемещения через ВЗУ других задач с целью освобо-
дить пространство для загрузки отсутствующего сегмента, связана
с дополнительными временными затратами.
Несмотря на отмеченный недостаток сегментированной моде-
ли памяти ее использование в значительной степени упрощает
изолирование программных блоков отдельных задач друг от друга
в мультизадачной среде. Сегментирование полезно для организа-
ции в памяти локальных модулей и является инструментом при-
кладного программиста.
При реализации многозадачных систем, в которых процессор
управляет работой нескольких одновременно выполняемых задач,
для каждой задачи обычно выделяется собственная локальная па-
мять и одновременно задача может разделять с другими задачами
совместную память, которую называют глобальной памятью. В со-
ответствии с общим принципом организации памяти и локаль-
ная, и глобальная память представляются в виде набора сегмен-
тов. Соответствие между логическими и физическими адресами
операндов в многозадачной системе устанавливается с помощью
глобальной GDT (общей для всех задач) и локальных LDT (от-
дельных для каждой задачи) дескрипторных таблиц. Общий объем
адресуемой виртуальной памяти отдельной задачи определяется
разрядностью адресных полей ее логического адреса. В МП Pentium
разрядность индекса селектора равна 13 + 1, а разрядность внут-
рисегментного смещения — 32, следовательно, пространство вир-
туальных адресов задачи, предоставляемое пользователю при на-
писании программ, не может превышать 64 Тбайт (214-232 = 246).
Страничная организация памяти. Для решения проблемы фраг-
ментации разработчики ВМ предложили распределять память бло-
ками фиксированного размера (страницами) с автоматическим
наложением блоков на адреса физической памяти. Подобная мо-
дель виртуальной памяти получила название память со странич-
ной организацией. Размер страниц обычно принимается равным
4 Кбайт (реже 4 Мбайт), а сами страницы часто называют стра-
ничными кадрами (page frame). Фиксированная длина страниц зна-
чительно упрощает распределение памяти. При необходимости заг-
рузки новой страницы в ОП ее можно поместить либо в незаня-
тую страницу, либо вытеснить другую страницу, чтобы освобо-
дить требуемое место. В любом случае не требуется по-новому рас-
полагать другие страницы в ОП. Благодаря этому обеспечивается
более эффективное использование физической памяти и устраня-
ется фрагментация памяти. В отличие от сегментации, требующей
загрузки сегмента целиком, страничная организация позволяет
сократить объем передаваемой информации между ВЗУ и ОП, за
счет того, что страницы программы могут не загружаться в ОП,
пока они действительно не понадобятся. Сначала в ОП загружает-
ся начальная страница программы и ей передается управление.
Если в процессе выполнения программы потребуется выборка
операндов из другой страницы, процессор обнаружит ее отсут-
ствие и передаст управление ОС, которая загрузит отсутствую-
щую страницу. Особенно заметны преимущества страничной орга-
низации памяти при реализации мультизадачных систем. В таких
системах при загрузке новой задачи ее страницы могут быть на-
правлены в любые свободные в данный момент физические стра-
ницы ОП независимо от того, расположены они подряд или нет.
Именно этим и объясняется широкое применение страничной
организации памяти для систем виртуальной памяти с подкачкой
страниц по запросу.
В модели виртуальной памяти со страничной организацией соот-
ветствие между виртуальными и физическими страницами уста-
навливается в процессе распределения памяти при заполнении
специальной таблицы страниц, каждая строка которой определя-
ет базовый адрес страницы в ОП. Кроме базового адреса, строка
таблицы страниц (страничный дескриптор) содержит биты при-
сутствия Р, обращения А и модификации D, а также дополни-
тельные биты защиты информации в адресуемой странице. На-
значение и использование битов присутствия Р и обращения А
аналогично функциям, выполняемым одноименными битами при
управлении сегментированной виртуальной памятью. Признак мо-
дификации D (англ, dirty — буквально грязный) устанавливается в
страничном дескрипторе при выполнении операции записи в оп-
ределяемую дескриптором страницу. ОС использует значение это-
го бита для исключения необязательных «свопингов» страницы,
если к странице не было обращений для записи (в этом случае
передавать страницу из ОП в ВЗУ нет необходимости).
Система виртуальной памяти со страничной организацией фун-
кционирует аналогично системе сегментированной памяти. При
обращении к памяти номер виртуальной страницы извлекается из
виртуального адреса и используется для входа в таблицу страниц.
Извлекаемый из таблицы базовый адрес соответствующей физи-
ческой страницы совместно со смещением в виртуальном адресе
определяет физический адрес операнда, к которому происходит
обращение (рис. 4.26). В случае обращения к странице, отсутству-
ющей в ОП (Р = 0), процессор формирует особый случай непри-
сутствия страницы и передает управление ОС. Последняя, обра-
батывая этот особый случай, считывает из дисковой памяти от-
сутствующую страницу в ОП, после чего управление возвращает-
ся процессору, который повторно выполняет команду обращения
к памяти. При необходимости освобождения памяти некоторые
страницы выгружаются из ОП в ВЗУ.
В отличие от сегментации страницы не имеют прямой связи с
логической структурой программ. В мультипрограммном режиме
для каждой задачи организуется своя виртуальная память и созда-
ется своя таблица страниц, при этом все программы делят между
Виртуальный адрес
Номер страницы Смещение внутри страницы
Индекс
Смещение
Таблица страниц
Страница
физической
памяти
Биты
защиты
Базовый адрес
физической
страницы
Биты
управления
виртуальной
памятью
Регистр адреса
Искомый
операнд
Базовый адрес
таблицы страниц таблицы страниц
Рис. 4.26. Преобразование виртуального адреса в физический при
страничной организации памяти
собой общую физическую ОП. Трансляция виртуального адреса в
физический осуществляется автоматически, т. е. на более низком
и прозрачном для программ уровне.
Достоинства сегментации и страничной организации сочетает
в себе сегментно-страничный способ распределения памяти, при
реализации которого сохраняется содержательное разбиение про-
граммы на сегменты, а последние разделены на страницы фикси-
рованной длины.
Современные процессоры содержат аппаратные средства, под-
держивающие различные модели логической организации памяти.
В частности, МП Pentium предоставляет операционной системе раз-
личные возможности определить адресное пространство системы.
Оно может быть представлено либо простым линейным АП, либо
АП, состоящим из сегментов переменной длины, либо линейным
АП, организованным в виде набора страниц фиксированного раз-
мера, либо сегментированным АП, разделенным на страницы. Каж-
дая модель памяти больше подходит для программ одного класса и
может не подходить для других. Достоинством архитектуры МП
Pentium является то, что она позволяет строить ОС со всеми вари-
антами представления логического АП.
Блок управления памятью MMU МП Pentium содержит как
блок сегментации, так и блок управления страницами и в общем
случае может осуществлять многоэтапное преобразование логи-
ческих адресов в физические. Сегментирование является обяза-
тельным этапом преобразования логических адресов (селектора и
внутрисегментного смещения), используемых пользователем при
написании своих программ. В результате такого преобразования на
выходе блока сегментации формируется 32-битный линейный ад-
рес. Если страничный механизм не включен, МП считает, что
линейный адрес является физическим и выдает его на внешнюю
шину адреса. В противном случае МП с помощью блока управле-
ния страницами осуществляет дополнительную трансляцию ли-
нейного адреса в физический. Включение-отключение механизма
страничного преобразования выполняется программно путем ус-
тановки-сброса бита PG в управляющем регистре управления CR0.
По сравнению с простым сегментированием при использова-
нии страничного преобразования изменяются как способ форми-
рования физического адреса операнда (выполняется в два этапа),
так и размер адресуемой виртуальной памяти. Первый этап преоб-
разования виртуального адреса, связанный с использованием сме-
щения, селектора и дескрипторной таблицы GDT или LDT, пол-
ностью совпадает с этапом преобразования при отключенном стра-
ничном механизме. Отличительной особенностью этого этапа пре-
образования является то, что в формировании линейного вирту-
ального адреса участвует базовый адрес сегмента в виртуальной
памяти, а не в физической памяти, как в случае простого сег-
ментирования при отключенном страничном механизме. Так как
виртуальная память объединяет все сегменты задачи объемом до
4 Гбайт каждый, то в режиме страничного преобразования воз-
можно наложение сегментов, однако процессор не контролирует
такие ситуации, оставляя решение этой проблемы ОС. На втором
этапе (этапе страничного преобразования) линейный виртуаль-
ный адрес преобразуется в адрес операнда физической страницы
ОП.
Размер виртуальной памяти при включенном механизме стра-
ничного преобразования определяется разрядностью линейного
адреса, формируемого блоком сегментирования. С помощью 32-раз-
рядного линейного адреса можно адресовать до 4 Гбайт виртуаль-
ной памяти или 1 Мбайт 4-Кбайтных страниц. В процессе стра-
ничного преобразования 20 бит линейного адреса (номер вирту-
альной страницы) заменяются другим 20-битным значением —
номером физической страницы. Эта операция может быть выпол-
нена с помощью специальной страничной таблицы, содержащей
1 Мбайт строк с базовыми адресами страниц и их атрибутами.
(В мультизадачной среде таблицы могут потребоваться для каж-
дой задачи). Для размещения таблицы страниц такого размера тре-
буется специальная системная память, занимающая сравнитель-
но много места в ОП. Для сокращения необходимой системной
памяти в 32-разрядных процессорах фирмы Intel таблица страниц
реализуется в виде двухуровневой структуры — каталога и разде-
лов. Размер каталога и каждого из разделов принят равным 4 Кбайт,
т.е. размеру одной физической страницы. Страница с каталогом
всегда должна находиться в ОП. Разделы загружаются в ОП по
мере необходимости. Каталог предназначен для хранения базовых
адресов и другой информации, относящейся к адресуемой стра-
нице раздела. Разделы представляют собой собственно таблицы
соответствия: строки раздела адресуют физические страницы ОП.
Преобразуя линейный адрес, процессор последовательно оп-
ределяет раздел в каталоге и выбирает страницу с искомым опе-
рандом. Выбор элементов каталога, раздела или страницы осуще-
ствляется с помощью индексов в соответствующих полях вирту-
ального адреса. Линейный (виртуальный) адрес (32 разряда) рас-
сматривается как совокупность трех полей: TABLE, PAGE и BYTE
(рис. 4.27). Разрядность полей TABLE и PAGE составляет 10 бит,
а поля BYTE — 12 бит. Поле TABLE указывает относительный
адрес (индекс) дескриптора с базовым адресом раздела в катало-
ге разделов. Поле Page задает относительный адрес дескриптора с
базовым адресом физической страницы в выбранном разделе.
12-разрядное поле BYTE содержит смещение искомого операнда
в физической странице ОП.
Предложенный механизм формирования физических адресов
операндов оказывается простым и эффективным. Однако как при
сегментации, так и при страничной организации, для получения
доступа к искомому операнду, требуется, как минимум, два об-
ращения к памяти: одно к таблице страниц или сегментов, а вто-
рое — собственно к странице или сегменту. При сегментно-стра-
ничной организации памяти затраты времени на преобразование
адресов логических (виртуальных) адресов в физические оказы-
ваются еще более значительными. Для ускорения преобразования
адресов в современных процессорах используют специальные ап-
паратные средства. Например, в процессорах Pentium базовые ад-
реса текущих сегментов кода, данных и стека, считываемые из
дескрипторных таблиц при перезагрузке сегментных регистров,
хранят в специальных кэш-регистрах (см. программную модель
процессора Pentium — подразд. 5.1.5). Последние автоматически
обновляются только при изменении содержимого соответству-
ющего сегментного регистра, т.е. при обращении к другому сег-
менту. В силу локальности программ и данных обращения к содер-
жимому сегмента проводятся гораздо чаще, чем перезагрузка сег-
ментных регистров. Поскольку дескриптор с базовым адресом сег-
мента находится в кэш-регистре, при всех последующих обраще-
ниях к адресуемому сегменту дополнительное время на определе-
ние базового адреса сегмента не требуется. Поэтому использова-
ние кэш-регистров сегментных адресов обеспечивает быстрый
доступ к операндам в ОП.
Преобразование линейного адреса в физический также требует
дополнительных временных затрат для выбора базовых адресов
разделов и страниц с искомыми операндами. Однако фактически
Селектор Дескрипторная таблица
Рис. 4.27. Преобразование логических адресов в физические в защищенном режиме процессора Pentium (физическая
память организована в виде сегментов переменной длины и страниц фиксированного размера):
CS, SS, DS, ES, FS, GS — сегментные регистры; TABLE, PAGE, BYTE — поля виртуального адреса
таких потерь времени при преобразовании адресов не происхо-
дит, поскольку для хранения старших 20 разрядов базовых адре-
сов 32 страниц, которые использовались последними, процессор
использует специализированную внутреннюю кэш-память. Эта
внутренняя кэш-память называется буфером быстрой переадреса-
ции TLB (Translation Look aside Buffer). Наличие буфера TLB по-
зволяет процессору преобразовывать линейный адрес в физиче-
ский внутри кристалла, не обращаясь к системным таблицам, раз-
мещенным в ОП. Процессор выполняет дополнительные циклы
шины, связанные с преобразованием линейного адреса в физи-
ческий, только при обращении к новой странице, адрес которой
отсутствует в TLB. Поэтому включение страничного механизма не
увеличивает время трансляции адреса и мало влияет на время ис-
полнения команд.
TLB (рис. 4.28) выполнен в виде 4-канального множественно
ассоциативного кэша объемом в 32 строки, которые объединены
в восемь наборов по четыре строки в наборе. Каждая строка TLB
содержит 21-битовое поле тега и 22-битовое поле данных. Для хра-
нения 17 старших разрядов линейного адреса (содержимого полей
TABLE и PAGE предназначены 17 старших разрядов тега. Так как
три младших разряда в теге запоминать не требуется, поскольку
номер набора, в котором хранится линейный адрес, однозначно
определяется этими разрядами. Информацию о правах доступа к
странице содержат четыре дополнительных разряда тега. В 22-би-
товом поле данных хранится 20-разрядный базовый адрес физи-
ческой страницы памяти и 2-битовое поле атрибутов этой стра-
ницы. При заполнении TLB-тег, базовый адрес физической стра-
ницы и другая дополнительная информация записывается в одну
из четырех строк адресуемого набора. Выбор строки определяется
принятым механизмом замещения. В МП Pentium реализуется ал-
горитм замещения псевдо-LRU. Для хранения трех бит LRU, с
помощью которых определяется замещаемая строка в наборе при
кэш-промахе, используется дополнительный блок памяти, содер-
жащий восемь строк по 3 бит.
При преобразовании линейного адреса в физический старшие
17 разрядов линейного адреса сравниваются с 17 битами тегов
каждой из строк выбранного набора. Если для какой-либо из строк
выбранного набора старшие разряды линейного адреса совпадают
с тегом, то указанный в этой строке 20-разрядный базовый адрес
выдается на адресные линии А31 — А12, обеспечивая выборку нуж-
ной страницы. Если базовый адрес требуемой страницы отсутствует
в TLB, то фиксируется кэш-промах. В этом случае процессор вы-
полняет полное преобразование линейного адреса в физический,
включающее выборку страницы каталога и определение базового
адреса страницы с разделом, выборку страницы раздела и непо-
средственное формирование физического адреса искомого опе-
21-битовое поле тега 22-битовое поле данных З-битовое поле LRU Номер набора
17-битовый тег (номер области таблицы страниц с базовым адресом физической страницы) 4-битовое поле прав доступа к странице 20-битовый базовый адрес физической страницы 2-битовое поле с атрибутами страницы ВО В1 В2
0
1
7
Рис. 4.28. Структура буфера быстрой переадресации (TLB)
Сь.
ранда. Одновременно обновляется содержимое TLB [старшие 20
разрядов базового адреса страницы, прочитанные из системной
страницы раздела, вместе с 17 старшими разрядами линейного
адреса (тегом) запоминаются в одной из четырех строк соответ-
ствующего набора TLB].
Завершая рассмотрение вопроса организации виртуальной па-
мяти, подчеркнем, что практическая реализация подобных си-
стем, кроме программной поддержки со стороны ОС, требует ап-
паратных затрат ОП для хранения специальных системных объек-
тов. Для сегментной модели памяти такими объектами являются
дескрипторные таблицы (глобальная GDT и локальные LDT), ре-
ализованные в виде сегментов объемом до 64 Кбайт. При странич-
ной организации системными объектами являются каталог и раз-
делы, представленные в виде 4-Кбайтных страниц. Сегмент GDT
и страница каталога постоянно находятся в ОП. Сегменты LDT и
страницы разделов загружаются в память по мере необходимости.
Важно также заметить, что процессор только предоставляет аппа-
ратные средства поддержки виртуальной памяти, а их реальное
использование и устойчивость работы программ зависят от кор-
ректного построения ОС.
Контрольные вопросы
1. Перечислите основные блоки типовой структуры МП и кратко оха-
рактеризуйте их назначение.
2. Поясните назначение и функции основных элементов операцион-
ного блока процессора: АЛУ, РОН, регистра признаков.
3. Почему РОН называют свехоперативной памятью процессора?
4. В 16-битном процессоре определите сумму и состояние флажков
знака (AF), нуля (ZF), паритета (PF) и переноса (CF) после прибавле-
ния числа 75BCh к числу A54Fh.
5. Какие из перечисленных операций не реализуются в АЛУ: сдвиг
влево (вправо) на заданное число разрядов, условные и безусловные
переходы, десятичная коррекция?
6. Поясните назначение и функции основных элементов блока управ-
ления: регистра команд, дешифратора команд, счетчика команд, указа-
теля стека.
7. Что определяет указатель стека SP (место размещения стека, коли-
чество байт, хранящееся в стеке, адрес последней запомненной ячейки
стековой памяти)?
8. В чем отличия микрооперации от микрокоманды?
9. Какие отличия характеризуют блоки управления с «жесткой» и «гиб-
кой» логикой управления и что между ними общего?
10. Охарактеризуйте формат команды, поясните назначение основ-
ных полей команды.
11. Рассмотрите преимущества и недостатки основных типов команд:
безадресных, 1-, 2- и 3-адресных.
12. Поясните, почему стековая память позволяет использовать безад-
ресные команды.
13. Перечислите основные способы адресации. Почему косвенная ад-
ресация названа именно так?
14. Укажите факторы, влияющие на производительность процессора.
Что такое смеси команд и как они используются при оценке производи-
тельности?
15. Перечислите основные признаки RISC-архитектуры. Какие осо-
бенности RISC-процессоров обеспечивают повышение их производитель-
ности?
16. Поясните функцию «регистровых окон» в RISC-процессорах берк-
лийской архитектуры. С какой целью «окна» реализуются в виде цикли-
ческого буфера?
17. Какие способы повышения производительности используются в
современных процессорах?
18. Сформулируйте основной принцип конвейеризации. Назовите ос-
новные этапы конвейерной обработки команд. Какую функцию выпол-
няют промежуточные буферы в конвейере?
19. Чем отличаются синхронный и асинхронный конвейеры?
20. В чем состоит суть конфликтов при конвейерном исполнении ко-
манд? Укажите причины и виды конфликтов.
21. Какие зависимости поданным существуют между командами, од-
новременно обрабатываемыми на разных ступенях конвейера? Какие
зависимости могут быть устранены переименованием регистров?
22. Как влияют на работу конвейера условные и безусловные перехо-
ды? Рассмотрите назначение и принцип действия блоков предсказания
ветвления.
23. Укажите особенности статического и динамического методов пред-
сказания ветвлений.
24. Укажите отличия суперконвейерных процессоров от конвейерных.
Какими достоинствами и недостатками характеризуется суперконвейе-
ризация?
25. В чем заключается основной принцип многооперационной обра-
ботки (суперскалярности)?
26. Какие способы суперскалярной обработки используются в совре-
менных процессорах? Чем отличаются два основных способа аппаратной
реализации суперскалярной обработки?
27. Поясните, в чем заключается принцип суперскалярной обработ-
ки, реализуемый во VLIW-процессорах. Каковы преимущества и недо-
статки данного способа суперскалярной обработки?
28. Какова сущность мультипрограммного режима работы компьюте-
ра? Назовите аппаратные средства поддержки многозадачности в совре-
менных процессорах.
29. Поясните, как проблемы взаимодействия процессора с ОП вли-
яют на производительность ВМ.
30. Какое влияние оказывает кэширование на производительность
систем с медленной памятью?
31. Что используется в кэш-памяти в качестве признака обращения к
данным (адрес команды, адрес операнда в ОП, адрес операнда в СОЗУ)?
32. Как устроена кэш-память с прямым отображением? Укажите ос-
новные достоинства и недостатки кэш-памяти этого типа.
33. Поясните принцип организации частично ассоциативной кэш-па-
мяти. Какие преимущества и недостатки она имеет по сравнению с кэш-
памятью прямого отображения?
34. В системе с 16-Мбайтным массивом ОП с 16-байтными строками
определите минимальную длину тега для различных типов кэш-памяти
объемом 8 Кбайт: полностью ассоциативной, с прямым отображением и
2-канальной частично ассоциативной.
35. Перечислите способы выбора места в л-канальном множественно
ассоциативном кэше при его заполнении новым блоком данных. В чем
основной смысл алгоритма LRU, используемого при замещении строк
кэша при кэш-промахе?
36. Назовите основные способы обновления информации в кэш-па-
мяти, которые обеспечивают целостность данных систем с медленной
памятью.
37. Что такое динамическое распределение памяти?
38. Что определяет понятие виртуальная память? Рассмотрите основ-
ные модели виртуальной памяти: модель сегментированной памяти и
модель памяти со страничной организацией. Какая требуется минималь-
ная аппаратная поддержка виртуальной памяти?
39. Поясните назначение дескриптора и дескрипторных таблиц в си-
стемах сегментированной памяти.
40. Что собой представляет фрагментация памяти? Как решается про-
блема фрагментации в системах памяти со страничной организацией?
Глава 5
АРХИТЕКТУРА ШИРОКО РАСПРОСТРАНЕННЫХ
СЕМЕЙСТВ ПРОЦЕССОРОВ
5.1. Направления развития архитектур современных
процессоров
Производительность процессора, как показано в подразд. 4.5,
является одной из наиболее важных его характеристик. Поскольку
потребности в повышении производительности постоянно опере-
жают возможности существующих процессоров, для обеспечения
все возрастающих требований к производительности разработчи-
ки процессоров постоянно модифицируют известные и предлага-
ют новые архитектурные решения. Направлений поиска новых
архитектурных решений относительно немного: это развитие па-
раллельной обработки на разных уровнях организации вычисли-
тельного процесса (см. подразд. 3.2), увеличение объема внутри-
кристальной кэш-памяти и развитие способов ее организации,
реализация механизмов вскрытия внутреннего параллелизма в про-
граммах, совершенствование способов управления исполнением
команд и некоторые другие.
На архитектуру процессоров существенно влияют возможно-
сти технологии производства ИС. На сегодняшний день основные
производители процессоров обладают примерно равными техно-
логическими возможностями. Снижение проектной нормы (см.
подразд. 3.5) и связанные с ним повышение уровня интеграции и
уменьшение временных задержек при переключениях вентилей,
увеличивают ресурсы на кристалле и создают предпосылки для
развития архитектуры процессоров.
Основные архитектурные способы повышения производитель-
ности в обобщенном виде (безотносительно к конкретным семей-
ствам процессоров) рассмотрены в подразд. 4.6. В данной главе на
примерах популярных семейств процессоров рассматривается ре-
ализация этих способов.
Доминирующее положение среди процессоров, используемых
для ПК, серверов и индустриальных систем, занимают CISC-про-
цессоры Pentium компании Intel и их клоны с системой команд
х86 (более 80 %). Архитектура и тенденции развития этих процес-
соров отражают достижение всей компьютерной индустрии. По-
этому рассмотрению особенностей архитектуры процессоров это-
го семейства уделено большое внимание. Архитектура процессо-
ров других семейств представлена более сжато. Большинство из
них являются RISC-процессорами. Наиболее известными и рас-
пространенными архитектурами семейств RISC-процессоров яв-
ляются: архитектура SPARC компании SUN, архитектура MIPS
компании Silicon Graphics, архитектура Alpha компании DEC,
архитектура PowerPC компаний IBM и Motorola.
5.2. Процессоры Pentium
5.2.1. Архитектурные особенности процессоров Pentium
МП Pentium (1993) является первым суперскалярным процес-
сором для ПК. Он содержит 3,1 млн транзисторов, изготовлен по
BiCMOS-технологии с проектной нормой 0,6 мкм, имеет такто-
вую частоту работы до 133 МГц. Блок выполнения целочисленных
вычислений реализован в виде двух конвейеров U и V, работа-
ющих параллельно. Наличие двух конвейеров вносит наиболее
существенный вклад в повышение производительности Pentium.
С их помощью процессор может выполнять до двух команд за такт.
Функциональная схема Pentium (рис. 5.1) содержит следующие
основные блоки:
• блок шинного интерфейса;
• два пятиступенчатых конвейера (U и V) выполнения команд
целочисленных вычислений;
• раздельные внутренние кэши команд и данных первого уров-
ня объемом 8 Кбайт каждый;
• конвейеризированный блок вычислений с плавающей точ-
кой FPU;
• блок предсказания ветвлений;
• блок управления памятью.
В структуре МП Pentium содержатся не показанные на рис. 5.1
средства самотестирования, обеспечивающие контроль внутрен-
них устройств процессора, средства отладки программного обес-
печения, порт ТАР интерфейса JTAG, а также встроенные сред-
ства для объединения в мультипроцессорные системы.
Большинство команд МП Pentium выполняются за один такт.
Благодаря этому повышается производительность без нарушения
программной совместимости с ранними моделями МП х86. В слу-
чае выполнения сложных команд используется расширенный мик-
рокод, хранящийся в ПЗУ микропрограмм сложных команд, и их
выполнение осуществляется последовательностью простых команд
с привлечением двух конвейеров.
Конвейеры МП Pentium (рис. 5.2) реализуют традиционные пять
этапов исполнения команд:
• предвыборка команд — Prefetch (PF);
ША ШД ШУ
Рис. 5.1. Функциональная схема процессора Pentium
• 1-ю ступень декодирования команды — Instruction Decode
(DI);
• 2-ю ступень декодирования команды — Address Generate (D2);
• собственно выполнение команды — Execute (EX);
• запись результата в буфер записи — Write Back (WB).
При исполнении команд операций с плавающей точкой добав-
ляются еще три шага, но их исполнение происходит на специаль-
ном конвейере блока FPU — ступенях XI, Х2 и WF. На ступени XI
выполняется преобразование данных во внутренний формат рас-
ширенной точности и запись в регистры FPU, на ступени Х2 осу-
ществляется выполнение FPU-команды, а на ступени WF прово-
дится округление результата и его запись в регистровый файл FPU.
Рис. 5.2. Конвейеры исполнения команд процессора Pentium:
D2 — 2-я ступень декодирования команды; ЕХ — ступень выполнения команды;
WB — ступень записи результата целочисленной команды; XI — ступень преоб-
разования данных в формате расширенной точности; Х2 — ступень выполнения
FPU-команды; WF — ступень округления и записи результата FPU-команды
Конвейеры не идентичны. Конвейер U может выполнять лю-
бые команды как целочисленные, так и команды вычислений с
плавающей точкой, при этом команды арифметики с плаваю-
щей точкой не могут запускаться в паре с целочисленными ко-
мандами. Кроме того, конвейер U содержит многоразрядный
сдвигатель, используемый при выполнении арифметических,
логических и циклических сдвигов, операций умножения и де-
ления. Конвейер V выполняет только простые целочисленные
команды.
Конвейеры целочисленных вычислений работают следующим
образом. На стадии предвыборки PF команды выбираются из кэш-
памяти команд или из ОП и поступают в блок предварительной
выборки. Блок предвыборки реализован в виде двух независимых
32-байтных FIFO-буферов. Работа буферов организована таким об-
разом, что в каждый момент времени осуществляется выборка
команд только в один из буферов. В большинстве случаев заполне-
ние буфера предвыборки осуществляется строкой из кэш-памяти
команд и выполняется за один такт процессора. На этапе PF, кро-
ме выборки команд, происходит разделение содержимого 32-бай-
тного буфера на отдельные команды и декодирование префиксов
команд.
Совместно с блоком предвыборки в выборке команд участвует
блок предсказания ветвлений, содержащий в своем составе буфер
меток перехода ВТВ объемом 256 строк. Основным назначением
этого блока является обеспечение более эффективного наполне-
ния конвейеров с целью исключения простоя в их работе. Работа
блока предсказания рассмотрена в подразд. 4.6.1. Предвыборка вы-
полняется последовательно до тех пор, пока не будет выбрана
команда условного перехода. Дальнейшее выполнение программы
зависит от решения, принимаемого блоком предсказания. Если
предсказывается переход, разрешается работа другого буфера пред-
выборки и выборка последующих команд проводится начиная с
целевого адреса ветвления. Если переход не предсказывается, бу-
фер предвыборки не переключается и продолжается линейная (пос-
ледовательная) выборка команд. Окончательное решение о выбо-
ре ветви перехода принимается на этапе исполнения команды ус-
ловного перехода при анализе кода условия. При неправильном
предсказании содержимое конвейеров аннулируется и выборка ко-
манд начинается с необходимого адреса. При корректной работе
блока предсказания ветвлений переходы выполняются без задер-
жек. Использование блока предсказания ветвлений повышает про-
изводительность МП Pentium примерно на 25 %.
С выхода блока предвыборки (ступени PF) две выбранные ко-
манды поступают на дешифрацию (ступень DI), где определяется
возможность их одновременного выполнения и осуществляется
преобразование кодов команд во внутренний формат, необходи-
мый для выполнения команд. Внутренний формат содержит такие
элементы, как адреса операндов, типы данных, коды операций
АЛУ, для некоторых операций начальные адреса микропрограмм.
Для одновременного выполнения двух команд в конвейерах U и V
обе команды должны классифицироваться как простые и не дол-
жны быть взаимозависимыми по данным и по ресурсам. Под про-
стыми командами понимаются команды, реализуемые за один такт.
Взаимозависимыми командами являются команды, одновремен-
ное выполнение которых по каким-либо причинам невозможно.
При обнаружении пары команд, зависящих по данным, процес-
сор автоматически переходит к их последовательному выполне-
нию, обеспечивая запуск выполнения 2-й команды после выпол-
нения 1-й. В МП Pentium в ситуации, когда одна команда исполь-
зует какой-либо регистр в качестве приемника, а следующая за
ней в конвейере команда использует этот же регистр для адреса-
ции, применяют блокировку генерации адреса. В этом случае на
ступени D2 исполнения 2-й команды вводится дополнительный
такт ожидания. В результате 2-я команда приступает к генерации
линейного адреса, когда 1-я команда переходит на ступень WB.
Из структуры, иллюстрирующей организацию конвейеров, вид-
но, что первые две ступени конвейера являются общими для кон-
вейеров U и V. С выхода ступени декодирования DI две дешифри-
рованные команды поступают на дешифратор 2-й ступени D2,
который вырабатывает последовательность управляющих сигна-
лов прохождения команды по конвейеру и одновременно, если
это необходимо, формирует исполнительные адреса операндов в
памяти.
После выбора операндов (ступени D2) команды поступают на
4-ю ступень конвейера ЕХ для выполнения операций в АЛУ. По
результатам выполнения команд осуществляется проверка кор-
ректности предсказания ветвления.
В последней ступени конвейера может выполняться запись ре-
зультата в блок записи результата (буфер записи WB). Буферы WB
обоих конвейеров предназначены для повышения производитель-
ности процессора при последовательных операциях записи в па-
мять. На внешнюю шину данных содержимое этих буферов на-
правляется в том же порядке, в каком осуществляется запись в
буфер. Наличие этапа WB позволяет реализовывать функции об-
ратной записи в ОП.
Порядок прохождения команд по обоим конвейерам опреде-
ляется порядком их следования в программе. В обоих конвейерах
команды выполняются синхронно: они одновременно поступают
на очередную ступень конвейера и при необходимости команда
одного из конвейеров ожидает другую, чтобы одновременно по-
ступить на следующую ступень. Для обеспечения одинаковой ско-
рости потоков команд по ступеням конвейера, предусмотрена
простая блокировка обработки следующей команды конкретным
блоком одного конвейера до завершения обработки предыдущей
команды на одноименной ступени другого конвейера. Например,
параллельно по двум конвейерам выполняются две команды, одна
из которых (в конвейере U) требует один такт на ступени ЕХ, а
другая в конвейере V — два такта. Попав на ступень ЕХ, обе ко-
манды выполняются вместе (1-й такт). В следующий такт команда
в конвейере V остается на ступени ЕХ, а команда в конвейере U
переходит на следующую ступень, но на ее место ничто не посту-
пает, т.е. параллельно с двухтактной командой не могут выпол-
няться две однотактные команды.
Следующий важный блок процессора — это блок вычислений
с плавающей точкой. С помощью этого блока осуществляется кон-
вейерное выполнение команд с плавающей точкой. Некоторые ма-
тематические операции (сложение, умножение и деление) реа-
лизуются аппаратно. Сохранив полную совместимость с моделями
арифметических сопроцессоров 80x87, блок вычислений с плава-
ющей точкой в МП Pentium выполнен в виде 7-ступенчатого кон-
вейера (см. рис. 5.2), у которого четыре ступени являются общими
с конвейером устройства целочисленных вычислений, а три до-
полнительные ступени XI, Х2 и WF используются только при
вычислениях с плавающей точкой. Инструкции FPU проходят по
общему конвейеру до ступени ЕХ, после чего, по крайней мере,
по одному такту они проводят на ступенях XI, Х2 и WF конвей-
ера FPU. Многие инструкции FPU для исполнения требуют зна-
чительно большего числа тактов, однако большинство из них кон-
вейеризируется. После перехода инструкции FPU на ступень кон-
вейера FPU целочисленный конвейер освобождается, и на нем
одновременно с исполнением инструкций FPU могут выполняться
другие команды программы.
МП Pentium содержит раздельные внутренние кэши команд и
данных 1-го уровня емкостью 8 Кбайт каждый. Использование не-
зависимых кэшей обеспечивает одновременный бесконфликтный
доступ к ним. В обе кэш-памяти заложены возможности их ис-
пользования при работе МП Pentium в составе многопроцессор-
ных систем. МП Pentium поддерживает протокол MESI, обеспе-
чивающий автоматическое поддержание соответствия данных в
ОП и внутренней кэш-памяти. Для смены хранимой в кэш-памя-
ти информации используется LRU-алгоритм, в соответствии с
которым при заполненном кэше осуществляется замена строки,
не использовавшейся дольше других.
Внутренняя кэш-память имеет несколько режимов работы,
обеспечивающих гибкость при выполнении рабочих программ и в
процессе отладки. Заполнение строки кэш-памяти осуществляет-
ся быстрыми пакетными циклами. Отдельные страницы памяти
могут быть закрыты для кэширования аппаратно или программно.
Обе кэш-памяти имеют 2-канальную множественно ассоциатив-
ную организацию. Каждая кэш-память содержит буфер преобра-
зования адресов TLB, предназначенный для хранения адресов
последних используемых страниц. Благодаря наличию TLB удается
уменьшить число обращений к таблицам страниц, находящимся в
ОП и тем самым сократить время выборки операндов из памяти.
Кэш-память команд связана с буферным регистром предвари-
тельной выборки 256-битовой шиной. Если выбираемая команда в
кэш-памяти отсутствует, то выполняется чтение искомой коман-
ды в ОП и ее загрузка в буфер предвыборки с одновременным
заполнением строки внутренней кэш-памяти команд.
Кэш-память данных организована как 2-портовая и с конвей-
ерами U и V соединяется при помощи пары 32-разрядных шин
данных. Этим обеспечивается возможность одновременного обра-
щения к ней со стороны каждого конвейера. Для обновления ин-
формации в ОП внутренняя кэш-память данных обеспечивает воз-
можность реализации двух способов построчной записи в ОП —
обратную запись (Write back) и сквозную запись (Write through).
Переключение режима кэширования осуществляется программно.
Блок управления памятью осуществляет 2-ступенчатое форми-
рование физического адреса ячейки памяти сначала в пределах
сегмента, а затем в пределах страницы. Наличие блоков сегмента-
ции и страничной адресации обеспечивает максимальную гибкость
проектируемых систем. Для управления работой внешнего кэша в
МП Pentium имеются специальные аппаратные средства.
Архитектурным нововведением МП Pentium является специ-
альный режим системного управления — System Management Mode
(SMM), который разработан для перевода системы в состояние
пониженного энергопотребления. Режим SMM недоступен при-
ложениям. Средствами этого режима управляет программа в ПЗУ
на кристалле процессора. В режиме SMM процессор использует
иное, изолированное от остальных режимов пространство памяти.
При этом реализуется дополнительная защита от несанкциониро-
ванного доступа.
Блок шинного интерфейса МП Pentium обеспечивает связь с
другими устройствами компьютера через системную шину, объе-
диняющую 64-битную ШД, 32-битную ША и ШУ. Он поддержи-
вает работу систем с физической памятью объемом до 4 Гбайт,
которая организована как массив 64-битных слов с возможностью
независимой адресации байтов. Выбор для шинного интерфейса
64-битной ШД позволил 32-разрядному МП Pentium повысить
скорость обмена информацией по системной шине между внут-
ренней кэш-памятью и другими устройствами компьютера. С по-
явлением МП Pentium частота 66 МГц стала стандартом для меж-
блочных обменов с системной платой, при этом пропускная спо-
собность шины возросла до 528 Мбайт/с.
Шина адреса включает адресные линии АЗ 1 — АЗ и восемь ли-
ний выбора байтВЕ7—ВЕО. Комбинация сигналов на выводах
А31—АЗ указывает 8-байтный фрагмент памяти, а кодВЕ7—ВЕО
определяет байты 64-битной ШД, участвующие в текущем обме-
не. Это позволяет согласовывать 64-битную ШД с байтовой орга-
низацией памяти. Линии адреса А31 — АЗ являются двунаправлен-
ными. Адрес вводится в процессор в циклах аннулирования строк
внутренней кэш-памяти. В процессе работы микропроцессорной
системы разрядность данных, участвующих в обмене, может из-
меняться. За один цикл шины в МП могут быть переданы 1, 2, 4
или 8 байт.
По шине управления передаются сигналы управления обме-
ном, а также сигналы системного контроллера в МП.
В МП Pentium обмен информацией между внутренней кэш-па-
мятью и остальными компонентами системы, прежде всего ОП и
внешней кэш-памятью, как правило, осуществляется блоками
данных, т. е. выполняется пакетный или блочный обмен. Исполь-
зование конвейеризации шины, при которой второй цикл стар-
тует до завершения первого, дает больше времени для декодиро-
вания адреса и реально повышает скорость обмена данными меж-
ду МП и памятью. Размер блока данных, передаваемого при вы-
полнении операций группового обмена, соответствует размеру
строки внутренней кэш-памяти — 32 байта. Для передачи 32 байт
данных по 64-битной ШД требуется четыре цикла шины, кото-
рые выполняются за пять тактов МП — два на первые 8 байт и по
одному такту на каждую из трех последующих передач.
МП Pentium первого поколения с тактовой частотой 60 и 66
МГц имели напряжение 5 В. Пиковая мощность, потребляемая
кристаллом МП Pentium на частоте 66 МГц, составляла 16 Вт,
что приводило к большому тепловыделению (кристалл нагре-
вался до температуры 71 °C). Во избежание недопустимого пере-
грева МП используют различные методы и средства его охлаж-
дения. Это или массивные теплосъемники (радиаторы) на самих
микросхемах либо несколько вентиляторов в машине, либо вен-
тиляторы, встроенные в теплосъемник микросхемы, либо даже
специальные охладители с термостатическим управлением. МП
Pentium второго поколения с пониженным напряжением пита-
ния (3,3 В и менее) имели пониженное энергопотребление. В них
использовалась технология снижения напряжения питания —
Voltage Reduction Technology (VRT). В соответствии с этой техно-
логией напряжение питания для интерфейсных схем составляло
3,3 В, а для питания ядра, потребляющего около 90 % мощно-
сти, напряжение снижалось до 2,9 В. В процессорах второго по-
коления применялось внутреннее умножение частоты. Интерфей-
сные схемы внешней системной шины работали на частотах 50,
60 или 66,66 МГц при частоте работы ядра МП 75, 90, 100, 120,
133, 150, 166, 180 и 200 МГц. Умножение частоты позволяло
полностью использовать достижения технологии изготовления
СБИС МП.
5.2.2. Параллельная обработка данных в процессоре
Pentium MMX
Процессор Pentium MMX (MultiMedia extension) является раз-
витием процессора Pentium. Он выполнен по более совершенной
технологии с проектной нормой 0,35 мкм. Это позволило повы-
сить уровень интеграции кристалла (4,5 млн транзисторов) и уве-
личить тактовую частоту работы до 233 МГц. Разработчики архи-
тектуры процессора Pentium MMX использовали увеличение ап-
паратного ресурса процессора для включения в его структуру до-
полнительных устройств, обеспечивающих повышение произво-
дительности, при этом особое внимание было обращено на ре-
ализацию высокопроизводительной обработки видео и аудиоин-
формации. Системы, в которых осуществлялась обработка изобра-
жений и звука в реальном времени, существовали и до Pentium
MMX (с средины 80-х гг. XX в.). В них выполнение мультимедий-
ных операций осуществлялось специальными аппаратными сред-
ствами — специализированными мультимедиа-процессорами, в
составе которых использовались дорогостоящие сигнальные про-
цессоры обработки сигналов. С ростом вычислительной мощности
процессоров типа Pentium появилась возможность обрабатывать
потоки данных мультимедиа без дополнительных аппаратных рас-
ширений и процессоров. При решении задач, связанных с обра-
боткой видео и аудиоинформации (двумерная фильтрация, быст-
рое преобразование Фурье, умножение матриц, свертки и т.п.),
обрабатываемые данные в большинстве случаев являются одно-
родными, и над ними совершаются одинаковые операции. Для
повышения производительности процессора при обработке по-
добной информации разработчики процессора Pentium MMX пред-
ложили использовать параллельную обработку многих данных од-
ной командой — SIMD-обработку (Single Instruction — Multiple
Data), сохранив при этом полную совместимость с ранее создан-
ным ПО и ОС. При SIMD-обработке используется векторная об-
работка данных, необходимая во многих мультимедийных и ком-
муникационных алгоритмах.
Предложенная технология ММХ представляет собой набор из
57 специализированных векторных команд, предназначенных для
обработки данных мультимедиа, и четыре новых типа данных.
В операциях параллельной обработки используются следующие
типы упакованных в векторы целочисленных данных:
• упакованные байты (Packed byte) — 8 байт, упакованных в
одно 64-разрядное число;
• упакованные слова (Packed word) — четыре слова, упакован-
ных в одно 64-разрядное число;
• упакованные двойные слова (Packed double word) — два двой-
ных слова, упакованных в 64-разрядное число;
• учетверенное слово (Quadword) — 64-разрядное число.
Чтобы уменьшить аппаратные затраты на реализацию вектор-
ной обработки данных, разработчики использовали существую-
щий набор регистров блока FPU не только при выполнении вы-
числений с плавающей точкой, но и для хранения данных ММХ,
при этом для реализации технологии ММХ в структуру МП до-
бавлены только логические схемы, обеспечивающие выполнение
операций ММХ. Предложенное решение в основном связано не
столько с упрощением структуры процессора (в принципе новые
регистры ММХ не слишком бы усложнили его структуру), сколь-
ко с необходимостью обеспечения программной совместимости
МП Pentium ММХ с ранее созданным ПО и ОС. Дело в том, что
в многозадачной среде при переключении с одной задачи на дру-
гую необходимо сохранять значения всех регистров МП. В МП
Pentium сохранность содержимого регистров блока целочислен-
ных вычислений и многих регистров системной архитектуры обес-
печивает сам процессор с помощью сегмента TSS. Сохранение
регистров сопроцессора FPU осуществляется ОС. Так как все ре-
гистры ММХ фактически являются регистрами FPU, то ОС, со-
храняя регистры FPU, сохраняет и регистры ММХ. Отмеченная
особенность использования регистров блока FPU МП Pentium
ММХ накладывает некоторые ограничения на программы обра-
ботки мультимедийных данных — в них операции с плавающей
точкой не должны использоваться. При необходимости выполне-
ния программ, содержащих фрагменты кода с командами ММХ и
командами FPU, пользователь должен следить, чтобы при пере-
ключении с режима вычислений с плавающей точкой на режим
обработки ММХ содержимое этих регистров соответствовало кон-
кретному контексту решаемой задачи.
Регистры ММХ с именами ММО —ММ7 в отличие от регист-
ров FPU имеют ширину 64 бит, и для обращения к ним использу-
ется прямая адресация по номеру регистра (рис. 5.3). После каж-
дой команды ММХ значение, записываемое в регистр ММХ, ав-
томатически появляется в младших 64 битах соответствующего ре-
гистра FPU, при этом биты тегов регистра назначения обнуляют-
13 и
TOS
FP TAG
00
00
00 /
00/
S
Х)0
/ 00
/ 00
Рис. 5.3. Отображение регистров ММХ на пространстве регистров FPU
SW (Status Word)
79 Порядок 63 Мантисса О
7 / ST7 /'
i ! ST6
i / ST5 /
7 / ST4 /
/ ! ST3 /
i f ST2 /
i t STI /
/ / STQ'
Набор
регистров
FPU
11...1/ /ММ7
11../1 / MM6
11/. 1 / MM5
1X...1 / MM4
41...1 / ММ3
/ ii... i / ММ2
/ 11...1 / MM1
/ u.,.1 / MM0
/ Набор
/ регистров
' ММХ
ся, а неиспользуемые в формате ММХ биты [79: 64] заполняются
единицами. Благодаря такому кодированию реализуется дополни-
тельная защита при ошибочной обработке данных ММХ коман-
дами FPU.
В МП Pentium ММХ используется модернизированный кон-
вейер выполнения команд целочисленных вычислений (в него
добавлена дополнительная ступень Fetch — выборка), а для кон-
вейерной обработки команд ММХ предназначены специальные
ступени (рис. 5.4). Рассмотрим работу конвейера МП Pentium
ММХ.
I Кэш команд |
Рис. 5.4. Конвейеры исполнения команд процессора Pentium ММХ:
D2 — 2-я ступень декодирования команды; ЕХ — ступень выполнения команды;
WB — ступень записи результата целочисленной команды; XI — ступень преоб-
разования данных в формат расширенной точности; Х2 — ступень выполнения
FPU-команды; WF — ступень округления и записи результата FPU-команды;
Мех — ступень исполнения команды ММХ; Wm/M2 — ступень записи результа-
та, если исполняемая команда не является командой ММХ умножения, или
осуществляется подготовка 1-го сомножителя; М3 — ступень подготовки 2-го сом-
ножителя; Wmul — ступень записи результата ММХ умножения
На ступени предвыборки PF (PreFetch) 32-байтная строка ко-
дов команды выбирается из кэш-памяти команд и помещается в
буфер предвыборки (при отсутствии искомой команды в кэше она
выбирается из ОП). На ступени F (Fetch) происходит синтакси-
ческий разбор и разделение выбранной порции кода на отдель-
ные команды, а также декодирование любых префиксов. Выбран-
ные команды (до двух за один такт) помещаются в FIFO-буфер
(на рис. 5.4 не показан). В нем может содержаться до четырех ко-
манд. FIFO-буфер предотвращает обеднение конвейера или его
полную остановку, если из-за задержек выборки на ступенях PF и
F в конвейер поступает менее двух команд. Далее пара команд, вы-
бираемая из FIFO-буфера, поступает на декодирование (ступень
DI). С учетом ограничений на взаимозависимости выбираемых ко-
манд МП Pentium ММХ допускает парное исполнение двух ко-
манд ММХ, обрабатывая за один такт до 16 байт целочисленных
данных. Работа конвейера на ступенях DI (1-я ступень декодиро-
вания), D2 (2-я ступень декодирования), ЕХ (выполнение) и WB
(запись результата) аналогична работе конвейера обычного МП
Pentium.
Исполнение команд FPU и ММХ реализуется на дополнитель-
ных ступенях конвейеров FPU и ММХ. Дополнительные ступени
конвейера ММХ реализуют следующие операции: на ступени Мех
осуществляется исполнение команды ММХ, на ступени Wm/M2
выполняется запись результата, если исполняемая команда не яв-
ляется командой ММХ умножения, или осуществляется подго-
товка первого сомножителя. На ступенях М3 и Wmul выполняют-
ся операции подготовки второго сомножителя и запись результата
умножения команды ММХ.
Расширение ММХ ориентировано на мультимедийные 2D- и
ЗВ-графические и коммуникационные применения. Все команды
обрабатывают 64-разрядные упакованные данные. Какие именно
данные обрабатываются, определяется типом данных, задаваемым
в команде.
Синтаксис команд ММХ может включать следующие эле-
менты:
• префикс Р (Packed), указывающий на обработку упакован-
ных форматов данных (все команды расширения ММХ начина-
ются с байта OFh);
• мнемонику операции, например, ADD, CMP или XOR;
• суффикс В, W, D, Q, обозначающий используемый тип дан-
ных (упакованные байты, слова, двойные слова или учетверенное
слово)*;
* Команды, которые имеют различный тип входных и выходных данных,
имеют два суффикса (примером таких команд являются команды преобразова-
ния данных из одного типа в другой).
• суффиксы US (Unsigned Saturation) и S (Signed Saturation),
указывающие на использование беззнакового или знакового на-
сыщения.
Поддержка арифметики с насыщением (saturating arithmetic)
является еще одной особенностью технологии ММХ. Отличие
арифметики с насыщением от обычной арифметики с цикли-
ческим переполнением (wraparound) заключается в том, что при
возникновении переполнения в результате фиксируется макси-
мально возможное значение для используемого типа данных, а
перенос игнорируется. В случае анти переполнения (потере зна-
чимости) в результате фиксируется минимально возможное зна-
чение. Во многих случаях такой режим вычисления оказывается
весьма полезным. Например, при вычислении цветов изображе-
ний цвет останется чисто белым или чисто черным, т. е. не про-
исходит инверсия цвета. Граничное значение определяется ти-
пом и разрядностью переменных, которые в синтаксисе команд
отображаются суффиксом. При выполнении команд ММХ ситу-
ации переполнения и потери точности не вырабатывают флагов
условий.
Команды ММХ используют обычный формат команд процес-
сора Pentium. Они содержат префикс, код операции, байты адре-
сации, смещение и (или) непосредственный операнд. Команды
ММХ доступны из любого режима процессора.
По числу команд MMX-набор выглядит довольно представи-
тельно, но состоит он из достаточно простых операций с беззна-
ковыми целочисленными данными — пересылок, сложения, ум-
ножения и логических операций и включает следующие группы
команд:
• пересылки данных 32- и 64-разрядных слов между регистрами
ММХ и целочисленными регистрами, между регистрами ММХ и
памятью или между регистрами ММХ;
• арифметические (арифметические команды реализуют все
четыре действия арифметики, кроме того, для 16-разрядных слов
есть специальная команда вычисления суммы произведений);
• логические (команды поразрядных логических операций И,
И-НЕ, ИЛИ и Исключающее ИЛИ, выполняемые над 64-битны-
ми операндами);
• арифметические и логические сдвиги влево или вправо на
указанное число разрядов;
• сравнения элементов данных на равенство или по величине.
Команды ММХ не влияют на флаги условий. Более подробно с
командами ММХ можно познакомиться в [18].
Помимо реализации операций ММХ в процессоре Pentium
ММХ по сравнению с обычным Pentium увеличен вдвое объем
кэш-памяти: 16 Кбайт для данных и 16 Кбайт для команд. Это
дополнительно повышает производительность.
5.2.3. Развитие принципов суперскалярной и суперконвейерной
организации в процессорах Pentium б-го поколения
Процессор Pentium Pro является представителем следующего
после Pentium 6-го поколения МП компании Intel. К этому поко-
лению также относятся все модификации процессоров Celeron,
Pentium II, Pentium III. Обобщенное название процессоров 6-го
поколения — Р6. Они имеют архитектуру, которая одновременно
является суперскалярной и суперконвейерной. Проблемы напол-
нения и обеспечения непрерывной работы конвейеров, свойствен-
ные обычным суперскалярным процессорам, в суперконвейерном
процессоре становятся еще более актуальными. Решение этих про-
блем оказывается чрезвычайно сложным и требует специальных
архитектурных решений. По сравнению с МП Pentium в МП Р6
реализованы следующие нововведения.
1. Суперконвейерная архитектура дополнена средствами из-
менения последовательности исполнения команд (out-of-order
execution). Исполнение программ с изменением последователь-
ности команд — это совокупность методов, позволяющих пере-
давать команды в исполнительные блоки в порядке, отличном
от предписанного программой. В МП Р6 команды, поступающие
на исполнение, разбиваются на микрокоманды, которые далее
выполняются суперскалярным процессорным ядром в порядке,
удобном процессору. При этом внешние шинные операции за-
писи результата (в устройства ввода-вывода и память) осуще-.
ствляются в строгом соответствии с порядком следования ко-
манд в программе. Возможность исполнения команд с измене-
нием последовательности обеспечивает более полную загрузку
конвейеров, и, благодаря этому, производительность МП Р6
повышается.
2. Применены более совершенные методы предсказания ветв-
лений и обеспечена возможность исполнения по предположению.
Основываясь на предсказании ветвления, процессор продолжает
выборку и декодирование команд выбранной им ветви програм-
мы, более того он начинает выполнять выбранные команды зара-
нее, не дожидаясь проверки самого условия. Результаты исполне-
ния записываются в промежуточный буфер, где они находятся до
подтверждения правильности предсказания.
3. Увеличено число регистров, используемых при исполнении
команд, а для программной совместимости с ранними моделями
МП Pentium реализовано переименование регистров. МП Р6 ото-
бражает набор регистров блока РОН и регистров FPU в более
широкий набор из 40 внутренних физических регистров. По суще-
ству, в МП Р6 осуществляется «размножение» ограниченного числа
программно-доступных регистров и выполняется их аппаратное
переименование. Благодаря наличию расширенного блока внут-
ренних физических регистров, одновременно могут исполняться
несколько команд, ссылающихся на одно и то же имя регистра,
если между ними нет фактических зависимостей по данным. Это
особенно важно при организации исполнения команд с измене-
нием последовательности.
Разработчики МП Р6 назвали все перечисленные технические
решения одним простым выражением, используемым для марке-
тинга, — «динамическое выполнение» (Dynamic Execution
Architecture), которое отражает способность МП Р6 оптимизиро-
вать исполнение программы, предсказывая его дальнейший ход,
выполняя некоторые команды до разрешения условия перехода и
выбирая лучший порядок исполнения команд программы. Факти-
чески МП Р6 из совокупности выбранных и подготовленных к
исполнению команд выполняет каждую команду как можно рань-
ше, независимо от места ее расположения в исходной программе.
Сохранение семантики программы (порядка следования команд в
программе) обеспечивается в процессе завершения исполнения,
когда результаты команд, исполненных с изменением последова-
тельности, становятся окончательными.
Первым МП 6-го поколения является МП Pentium Pro. Он
изготовлен по технологии с проектной нормой 0,35 мкм (5,5 млн
транзисторов) и содержит размещенные на кристалле процессо-
ра блоки кэш-памяти 1-го и 2-го уровней. Кэш-память 1-го уров-
ня включает раздельные кэши команд и данных емкостью 8 Кбайт
каждый. Кэш-память 2-го уровня, общая для команд и данных,
имеет объем 256 или 512 Кбайт (15,5 и 31 млн транзисторов
соответственно). Для связи с кэш 2-го уровня используется спе-
циальная шина, работающая на частоте ядра. Архитектура про-
цессорного ядра всех МП Р6 одинаковая. Особенности архитек-
туры конкретных представителей МП Р6 рассматриваются от-
дельно.
В суперскалярном МП Р6 при реализации принципа многоопе-
рационной обработки применен подход, отличный от подхода,
используемого в МП Pentium. Вместо увеличения числа конвейе-
ров исполнения команд, что требует значительных аппаратных
затрат, используется один конвейер с большим количеством ис-
полнительных блоков.
Обработка команд в МП Р6 конвейеризирована и выполняется
на 12-ступенчатом конвейере с достаточно сложным алгоритмом
функционирования. Условно конвейер МП Р6 можно разделить
на три относительно независимых конвейера:
• входной конвейер упорядоченной обработки (In-Order Issue
Front-End), который обеспечивает выборку команд из памяти,
декодирование их во внутренние RISC-команды (микрокоманды
по определению Intel) и устранение ложных взаимозависимостей
по данным и ресурсам;
• конвейер обработки с изменением последовательности или
конвейер неупорядоченной обработки (Out-of-Order Core), кото-
рый реализует собственно выполнение команд;
• конвейер вывода результатов исполнения микрокоманд (In-
Order Retirement Unit), который реализует операции упорядочи-
вающего вывода результатов — их запись в архитектурные регист-
ры процессора и системную память в порядке, предусмотренном
программой.
Конвейеры упорядоченной обработки и обработки с измене-
нием последовательности разделены буфером микрокоманд (стан-
цией-резервуаром RS). Разделение позволяет конвейерам функ-
ционировать в определенной степени независимо друг от друга,
благодаря чему повышается общая эффективность их одновремен-
ной работы.
Работу конвейеров удобно рассматривать одновременно с рас-
смотрением состава и назначения основных функциональных бло-
ков процессора Р6 (рис. 5.5). Конвейеры упорядоченной и неупо-
рядоченной обработки команд, конвейер вывода результатов вы-
делены пунктирными линиями.
Блок выборки-декодирования команд, поддерживающий ра-
боту входного конвейера упорядоченной обработки, включает
следующие функциональные блоки: блок выборки команд, блок
предсказания ветвлений, декодер команд, блок переименования
регистров и буфер переупорядочения. Блок выборки команд IFU
(Instruction Fetch Unit) выполняет линейную выборку кодов ко-
манд. Он соединен с внутренним кэш команд 1-го уровня. За один
такт блок IFU выбирает из кэша 32-байтную строку и размещает
ее в 32-байтном буфере. Выборка команды, адресуемой содержи-
мым счетчика команд IP, выполняется на первых трех ступенях
конвейера упорядоченной обработки. После выборки 32-байтной
строки команд (ступень IFUO) осуществляется разделение после-
довательности байтов кодов на отдельные команды (процессор
помечает начало и конец каждой команды). Эта операция реали-
зуется на ступени IFU1. На ступени IFU2 для упрощения после-
дующей дешифрации команд осуществляется их выравнивание по
16-байтной границе, и уже 16 выровненных байтов команд пере-
сылаются в декодер команд ID (Instruction Decoder).
В выборке команд совместно с блоком IFU участвует блок пред-
сказания ветвлений. В процессорах Р6 предсказания ветвлений ре-
ализуются с использованием как динамического, так и статичес-
кого методов предсказания. С помощью блока предсказания при
наличии команд перехода предсказывается наиболее вероятная
ветвь продолжения программы и, не дожидаясь прохождения ко-
манды ветвления через исполнительную ступень конвейера, фор-
мируется адрес следующей команды. В состав блока предсказания
входит буфер меток переходов — Branch Target Buffer (ВТВ), пред-
Внешние шины (системная шина)
Рис. 5.5. Упрощенная функциональная схема процессора Р6
ставляющий собой специальную кэш-память. Каждая из 512 строк
ВТВ, кроме адреса перехода, хранит 2 бит предыстории выполне-
ния переходов при предыдущих исполнениях команды условного
перехода. На 1-й ступени конвейера IUF0 адрес выбираемой ко-
манды транслируется через ВТВ, и блок предсказания проверяет,
имеется ли информация о данной команде в ВТВ. Проверка вы-
полняется на ступени IUF1. При декодировании команды на сле-
дующих ступенях конвейера информация о предыстории выпол-
нения переходов используется при выборе ветви продолжения
программы.
С помощью блока предсказания успешно предсказываются пе-
реходы в циклических процедурах, а также переходы, имеющие
регулярную повторяющуюся закономерность. Например, коррек-
тно предсказывается условный переход, который выполняется при
каждой четной итерации и не выполняется при нечетной итера-
ции. Общий принцип работы блока предсказания рассмотрен выше
в подразд. 4.6.1.
С выхода блока предвыборки команды х86 поступают на декодер
ID, который состоит из трех дешифраторов — одного сложного и
двух простых. Здесь и далее под командами х86 понимаются коман-
ды семейства МП фирмы Intel от 8086 до Pentium 4. С помощью
декодера CISC-команды х86 преобразуются в последовательности
RISC-команд, названных разработчиками МП Р6 микрокоманда-
ми. В зависимости от типа команды х86 могут преобразовываться в
одну или несколько микрокоманд. Каждая микрокоманда обеспе-
чивает выполнение простейшей операции в течение такта с помо-
щью одного из исполнительных блоков МП. Наиболее простые ко-
манды типа регистр-регистр и команды загрузки дешифрируются
простым дешифратором в одну микрокоманду. Более сложные ко-
манды дешифрируются сложным дешифратором, который преоб-
разует их в набор от одной до четырех микрокоманд. Так, команды
типа чтение-модификация и команды записи декодируются в две
микрокоманды, команды типа регистр —память, память—регистр
представляются 2 — 3 микрокомандами, а команды типа чтение—
модификация—запись — четырьмя микрокомандами. Некоторые
«очень сложные» команды невозможно непосредственно декоди-
ровать даже сложным дешифратором. Такие команды передаются в
планировщик последовательности микрокоманд — Microcode
Instruction Sequencer (MIS), который декодирует их за несколько
тактов и генерирует необходимое число микрокоманд. В общей
сложности при специально подобранном ассемблерном коде за
такт дешифраторы способны декодировать три команды. Макси-
мальное число микрокоманд, формируемых в каждом такте на
выходе всех дешифраторов, не может быть больше шести (1 — 1—4),
но обычно это число редко превышает 3—4. В значительной степе-
ни это связано с тем, что в ассемблерном коде программы после-
довательности команд х8б, преобразуемые в наборы микрокоманд
1 — 1—4, встречаются сравнительно редко. Кроме того, если про-
стой дешифратор встречает сложную команду, он не может ее де-
шифрировать, и эта команда в конечном итоге оказывается в слож-
ном дешифраторе или в планировщике последовательности мик-
рокоманд. Считается, что в среднем при исполнении типовых про-
грамм за такт на выходе трех дешифраторов выдаются три микро-
команды, которым соответствуют чуть меньше трех команд х8б.
Дешифрация команд х86 выполняется на двух ступенях кон-
вейера ID0 и ID1. Собственно дешифрирование происходит на
ступени IDO. После дешифрирования на ступени ID1 микроко-
манды поступают в специальную очередь, откуда в каждый такт
до трех микрокоманд пересылаются в блок переименования реги-
стров — таблицу псевдонимов регистров RAT (Register Alias Table).
Переименование регистров, выполняемое на следующей 6-й сту-
пени конвейера, состоит в отображении ограниченного числа ар-
хитектурных (программно доступных) регистров процессора в
более широкий набор из 40 внутренних регистров. При отображе-
нии регистров происходит преобразование программных ссылок
на архитектурные регистры процессора в ссылки на больший на-
бор физических регистров процессора. Переименование регистров
устраняет «ложные» зависимости по регистрам, но не позволяет
обойти истинные взаимозависимости по данным типа RAW, так
как способов их преодоления принципиально не существует. Пе-
реименование регистров невидимо для ПО, поэтому в программе
невозможно явно переименовывать регистры.
После переименования регистров микрокоманды в порядке,
определяемом программой, помещаются в буфер переупорядоче-
ния ROB (Re-Order Buffer) — циклическую очередь FIFO. Буфер
ROB организован в виде кольцевого буфера, в котором могут раз-
мещаться до 40 микрокоманд со своими операндами, результата-
ми исполнения и битами состояния исполнения. Ступень ROB яв-
ляется последней ступенью конвейера упорядоченной обработки.
С выхода этого конвейера микрокоманды поступают на станцию-
резервуар RS (Reservation Station), являющуюся входным буфе-
ром блока обработки с изменением последовательности. В этом
буфере микрокоманды ждут готовности своих операндов и при их
доступности направляются в блок обработки с изменением пос-
ледовательности. Станция-резервуар RS содержит до 20 готовых к
исполнению микрокоманд.
Блок обработки с изменением последовательности устанав-
ливает очередность и выполняет микрокоманды. В состав этого
блока, кроме станции-резервуара RS, входят исполнительные
блоки МП, число которых может быть достаточно большим (в
процессоре Pentium Pro их 11). Станция-резервуар RS демпфиру-
ет неравномерности прохождения микрокоманд по конвейеру
процессора. С одной стороны, она обеспечивает работу исполни-
тельных устройств, даже если дешифраторы по какой-либо при-
чине перестают работать, с другой стороны, если исполнитель-
ные устройства заняты, станция-резервуар RS предоставляет де-
шифраторам возможность продолжить работу. Порядок выполне-
ния команд основывается не на их первоначальной последова-
тельности в программе, а определяется только доступностью
операндов и исполнительных устройств. Это и есть исполнение с
изменением последовательности. Результаты исполнения микро-
команд с выходов исполнительных устройств посылаются назад
в буфер ROB и при необходимости без задержки, требуемой для
обновления и повторного чтения промежуточных регистров, могут
использоваться в качестве исходных операндов последующих
микрокоманд.
В общей сложности исполнительные устройства процессора
могут обеспечить исполнение до пяти микрокоманд за такт
процессора (по числу выходных портов РО —Р4 исполнительных
устройств). К некоторым выходным портам подключено несколько
функциональных исполнительных блоков. Если одновременно ока-
зываются готовыми к выполнению несколько микрокоманд на
входе какого-либо порта, к исполнению выбирается наиболее
значимая команда. Например, выполнение условного перехода
гораздо важнее, чем выполнение арифметической операции, по-
скольку переход влияет на ход программы. Распределением мик-
рокоманд по исполнительным блокам является следующей 8-й
ступенью конвейера. Собственно выполнение микрокоманд, ре-
ализуемое за один или большее число тактов, происходит на
9-й ступени конвейера. Отметим, что все исполнительные блоки
работают параллельно и независимо друг от друга. Несмотря на
то что из станции-резервуара RS в каждый такт могут посылать-
ся на исполнение пяти микрокоманд (по числу портов), при
работе с типичными кодовыми последовательностями более ве-
роятен непрерывный поток на исполнение трех микрокоманд за
такт.
К каждому из портов RS подключены вполне определенные
исполнительные блоки (рис. 5.6). В МП Pentium Pro к порту РО
подключены блок целочисленных вычислений и некоторые уст-
ройства блока FPU. Большинство микрокоманд целочисленной
арифметики, включая операции умножения, деления и сдвига, а
также многие команды блока FPU выполняются блоками, под-
ключенными к этому порту. Порт Р1 соединен со 2-м блоком
Блоки целочисленных
вычислений и вычислений
с плавающей точкой
Блок формирования
адреса чтения
Блок целочисленных
вычислений
Буфер записываемых
Блок формирования
адреса записи
данных
Рис. 5.6. Распределение исполнительных устройств процессора Pentium
Pro по портам RS
целочисленных вычислений, и соответственно микрокоманды,
выполняемые этим блоком, могут направляться через порт Р1.
К портам Р2 и РЗ подключены блоки генерации адреса чтения и
записи данных в память, а порт Р4 предназначен для буферирова-
ния записываемых в память данных. Отметим, что в других МП Р6
используется иное распределение исполнительных блоков по пор-
там РО —Р4.
Один целочисленный блок предназначен для исполнения мик-
рокоманд предсказанного ветвления. Этот блок способен опре-
делить ошибку в предсказании и при необходимости формиро-
вать сигнал на перезапуск конвейера. Реализуется это следую-
щим образом. При дешифрировании команды условного перехо-
да к ней прикрепляют оба адреса возможных путей продолжения
программы и предсказывается адрес ветвления. На этапе испол-
нения команды условного перехода процессор определяет, свер-
шилось ли предсказанное ветвление. При правильном предсказа-
нии исполнение микрокоманд выбранной ветви продолжается,
в противном случае микрокоманды неправильно предсказанной
ветви удаляются из буфера ROB, в блок предвыборки передается
правильный адрес перехода, и конвейер перезапускается с это-
го адреса.
После завершения исполнения микрокоманд в блоке неупо-
рядоченной обработки результаты выполнения поступают в
3-ступенчатый конвейер вывода результатов выполнения. Кон-
вейер или блок вывода осуществляет восстановление требуемой
последовательности выдачи результатов микрокоманд, которые
исполнялись с изменением последовательности. Важнейшими эле-
ментами блока вывода результатов являются буфер ROB, рас-
смотренный выше, и блок записи результата. Микрокоманды
поступают в кольцевой регистр буфера ROB и перемещаются в
нем в порядке, предписанном программой. Блок вывода посто-
янно проверяет статус микрокоманд, размещенных в ROB, от-
слеживая уже исполненные. На последней, 12-й, ступени кон-
вейера «неупорядоченные результаты», хранящиеся в буфере
ROB, записываются в архитектурные регистры х86 или в память.
После этого микрокоманды удаляются из буфера ROB. Удаление
происходит в порядке исходного программного кода, что обес-
печивает правильное ведение контекста программы. В каждый такт
из буфера ROB могут удаляться до трех микрокоманд, что при-
мерно соответствует средней производительности декодера ко-
манд процессора.
Специальный блок записи результата осуществляет буфериро-
вание записи в память, запоминая каждый запрос на запись. На-
личие этого блока позволяет МП продолжать выполнение команд,
не дожидаясь завершения операций записи в память (запись мо-
жет быть задержана для эффективного использования циклов шины
памяти). Запись в память из буфера записи всегда проводят в по-
рядке, предписанном программой.
Процессор Р6 содержит также блоки и устройства, назначение
которых аналогично назначению соответствующих блоков МП
Pentium. С помощью системных регистров, не указанных на функ-
циональной схеме (см. рис. 5.5), реализуются функции защиты,
многозадачности, контроля и отладки, и обеспечивается работа
процессора в различных режимах
Суперскалярный суперконвейерный МП Р6 обеспечил увели-
чение числа одновременно обрабатываемых команд и соответствен-
но резко повысил частоту запросов к системной шине за данны-
ми и командами. Для повышения суммарной пропускной способ-
ности шины в МП Р6 используется архитектура двойной незави-
симой шины DIB (Dual Independent Bus) (см. рис. 5.5). Одна из
шин процессорного ядра используется только для связи с вторич-
ным кэшем. Проводники этой шины имеют длину порядка еди-
ниц сантиметров. Благодаря этому возможна работа шины на ча-
стоте ядра процессора. Значительный объем вторичного кэша по-
зволяет устранять многие промахи первичного кэша и удовлетво-
рять большинство запросов к памяти сугубо локально, при этом
коэффициент загрузки шины достигает 90 %. В случае кэш-прома-
ха на обоих уровнях минимальная задержка выборки данных из
ОП DRAM составляет 11 — 14 тактов.
Вторая шина процессорного ядра — Front Side Bus (FSB) вы-
ходит на внешние выводы микросхемы и является внешней (си-
стемной) шиной процессора Pentium Pro. Шина работает на час-
тоте 66,66 МГц с пропускной способностью в пике пакетной пе-
редачи 533 Мбайт/с. Загрузка процессором внешней шины для обы-
чных «настольных» применений составляет порядка 10 % от ее
пропускной способности, а для серверных применений может до-
стигать 60 % при 4-процессорной конфигурации. Снижение заг-
рузки внешней шины позволяет эффективно использовать много-
процессорную архитектуру, не уменьшая производительность МП.
Двойная независимая шина потребовала изменения протокола
системной шины, принципиально изменив его по сравнению с
протоколом МП Pentium.
В МП Pentium Pro кэш-память 2-го уровня размещена на кри-
сталле вместе с процессором. Это обеспечило значительный при-
рост в быстродействии, но в то же время сильно затруднило про-
цесс производства и тестирования МП Pentium Pro. Кристалл МП
Pentium Pro оказался технологически сложным в изготовлении и
настолько дорогим, что в последующих модификациях МП Р6
разработчики отказались от размещения кэш 2-го уровня на од-
ном кристалле с процессором. Первые модели процессоров Celeron
вообще не содержали встроенного вторичного кэша, а в МП
Pentium II вторичный кэш выполнен в виде отдельного кристалла
и размещен на специальной плате (картридже) вместе с кристал-
лом центрального процессора. Более совершенные 0,18 мкм тех-
нологии позволяют разместить кэш 2-го уровня совместно с яд-
ром процессора на одном кристалле.
Процессор Pentium II. МП Pentium II объединяет архитектур-
ные решения МП Pentium Pro и МП Pentium ММХ [18, 29, 35].
МП Pentium II содержит несколько урезанный вариант ядра МП
Pentium Pro и четыре дополнительных блока, реализующих вы-
полнение команд ММХ. Указанные блоки работают с упакован-
ными типами целочисленных данных. Они подключены к выход-
ным портам РО и Р1. Первые МП Pentium II (1997) изготовлялись
по CMOS-технологии с проектной нормой 0,35 мкм. Они имели
напряжение питания 2,8 В, содержали 7,5 млн транзисторов и
работали на частоте до 300 МГц. По сравнению с МП Pentium Pro
размер внутренней кэш-памяти 1-го уровня МП Pentium II удво-
ен (16 Кбайт для кэш команд и 16 Кбайт для кэш данных). Не-
смотря на увеличенное число транзисторов МП Pentium II по-
требляет меньше энергии. Улучшение показателя энергопотребле-
ния достигнуто благодаря снижению напряжения питания и ис-
ключению биполярных транзисторов, которые использовались в
комбинированной BiCMOS-технологии ранних моделей МП
Pentium. Трудности размещения вторичного кэша на одной под-
ложке с ядром процессора, как это реализовано в процессоре
Pentium Pro, преодолены размещением кристалла с ядром про-
цессора и кристалла статической памяти вторичного кэша на не-
большой печатной плате — картридже с однорядным разъемом
SEC (Single Edge Contact). Оба кристалла закрыты крышкой и ох-
лаждаются специальным вентилятором. Объем вторичного кэша
(128 — 512 Кбайт) определяется емкостью и числом установлен-
ных микросхем памяти (в процессорах Pentium II Xeon объем кэш
2-го уровня может достигать 2 Мбайт).
МП Pentium II, как и МП Pentium Pro, использует архитекту-
ру двойной независимой шины, при этом локальная шина слу-
жит только для связи с кристаллом вторичного кэша. В отличие от
МП Pentium Pro, в котором вторичный кэш работает на тактовой
частоте центрального процессора, в ранних моделях МП Pentium
II вторичный кэш работал на половинной частоте процессора. Более
совершенные модели МП Pentium II, выполненные по техноло-
гии с проектной нормой 0,25 мкм, имеют напряжение питания 2 В и
более высокие частоты работы — до 450 МГц. Частота системной
шины этих процессоров была повышена до 100 МГц.
Упрощенным и значительно более дешевым вариантом МП
Pentium II является модель процессора, названная Celeron. Пер-
вые МП Celeron выпускались без микросхем вторичного кэша,
более поздние модели содержат вторичный кэш размером 128 Кбайт.
Одной из главных особенностей процессоров Celeron является то,
что они предназначены только для построения однопроцессор-
ных систем.
Процессор Pentium III. МП Pentium III — последний предста-
витель 6-го поколения процессоров х86 [18, 29]. Его главным от-
личием от МП Pentium II является SSE-расширение (Streaming
SIMD Extensions) набора векторных SIMD-команд для обработ-
ки упакованных данных в формате чисел с плавающей точкой
(одинарная точность). Использование команд SSE-расширения
обеспечило увеличение производительности процессора Pentium
III при выполнении прикладных программ обработки изображе-
ний и 3-мерной графики. Команды SSE-расширения оперируют
128-битовыми операндами, размещенными в дополнительном
блоке 128-разрядных регистров ХММО, ... , ХММ7 (extended
MultiMedia). Для управления обработкой числовых исключений,
установки режима округления и режима очистки, а также чтения
флагов состояния ХММ в структуру процессора Pentium III вве-
ден специальный регистр состояния (управления) MXCSR.
SSE-команды реализуют два типа операций над упакованными
32-разрядными операндами с плавающей точкой — параллель-
ные и скалярные. Векторные операции выполняются одновремен-
но над всеми четырьмя 32-разрядными элементами 128-разряд-
ных операндов. При выполнении скалярных операций обрабаты-
ваются только младшие 32-разрядные слова 128-разрядных опе-
рандов. Остальные три элемента данных не изменяются. При вы-
полнении SSE-команд блок регистров FPU/ММХ не использует-
ся. Вследствие этого снимаются ограничения на последователь-
ность команд ММХ и FPU, которые в программах могут следо-
вать в произвольном порядке.
Кроме новых команд арифметических и логических операций в
SSE-расширение входят дополнительные SIMD-команды для ра-
боты с 64-разрядными целочисленными данными в регистрах ММХ.
Новые команды ММХ, как и команды «классического» ММХ, не
допускают чередования с командами FPU без переключения кон-
текста FPU/MMX.
В целях повышения эффективности использования кэш-памя-
ти и сокращения числа обращений к ОП в SSE-расширение вве-
дены команды управления кэшированием. С их помощью обеспе-
чивается непосредственная запись данных из регистров ХММ и
ММХ в память, минуя кэш, а также осуществляется упреждаю-
щее кэширование данных из ОП в кэш 1-го и 2-го уровня.
Процессор Pentium III содержит 28 млн транзисторов и устой-
чиво работает на частотах до 1,2 ГГц.
Процессор Pentium IV. МП Pentium IV (2000) является предста-
вителем следующего (7-го) поколения процессоров х86 [18, 29,
35]. С программной точки зрения МП Pentium IV принципиаль-
ных архитектурных расширений не содержит. Его можно рассмат-
ривать как МП Pentium III с расширенным набором векторных
команд, оперирующих с регистрами ХММ и ММХ. Новые коман-
ды МП Pentium IV, работающие с числами разных форматов,
включая учетверенные слова (64 бит) и числа двойной точности с
плавающей точкой, получили название 88Е2-расширение.
МП Pentium IV изготовлен по CMOS-технологии с проектной
нормой 0,18 мкм, содержит около 42 млн транзисторов и рассчи-
тан на работу с тактовыми частотами свыше 1,4 ГГц. Процессор
требует мощного охлаждения — при напряжении питания 1,6 В он
потребляет ток до 40 А, что соответствует рассеиваемой мощно-
сти 65 — 70 Вт. Как и во всех МП Pentium, разрядность шины дан-
ных процессора Pentium IV составляет 64 разряда. Шина адреса
имеет ширину 36 бит, обеспечивая адресацию 64 Гбайт памяти,
из которых кэшируются только первые 4 Гбайт.
В МП Pentium IV обработка команд выполняется на 20-ступен-
чатом конвейере (по определению Intel — гиперконвейере). Удли-
нение конвейера позволяет упростить действия, выполняемые
каждой ступенью, и обеспечить упрощение аппаратной логики
ступеней. Более короткие цепочки логических вентилей вносят
меньшие задержки распространения сигналов, и благодаря этому
достигается увеличение тактовой частоты работы ядра процессо-
ра, скорости формирования результатов выполнения команд на
выходе конвейеров и соответствующий рост производительности
процессора. Эффективная работа гиперконвейера (его полная заг-
рузка) обеспечивается за счет использования неупорядоченной
обработки команд и их спекулятивного исполнения еще до опре-
деления реального адреса перехода.
Конвейер МП Pentium IV, как и в МП Р6, условно можно
разделить на три: входной конвейер предварительной обработки,
обеспечивающий выборку команд из памяти и их декодирование
в последовательность микрокоманд, конвейер обработки с изме-
нением последовательности, представляющий собой исполнитель-
ное ядро процессора, и конвейер вывода результатов исполнения
микрокоманд в порядке, предусмотренном программой. На реше-
ние проблем заполнения конвейера в МП Pentium IV обращено
особое внимание. В нем использован более совершенный алгоритм
предсказания ветвлений. Адреса команд переходов и метки ветв-
лений с подробной предысторией выполнения условных перехо-
дов сохраняются в расширенном буфере ВТВ объемом 4 Кбайт.
Внешним отличием МП Pentium IV (рис. 5.7) по сравнению с
ранними моделями МП Pentium является отсутствие в его струк-
туре внутреннего кэша команд с копиями некоторых команд из
ОП. Вместо него в МП Pentium IV использован так называемый
кэш трасс исполнения (Execution Trace Cache). Трассы — это пос-
ледовательности микрокоманд, в которые декодированы коман-
ды х86, принадлежащие одной или нескольким ветвям исходной
Внешняя (системная) шина FSB
Рис. 5.7. Упрощенная функциональная схема процессора Pentium IV
программы. Кэш трасс располагается после дешифраторов блока
выборки (декодирования). В нем могут размещаться до 12 Кбайт
микрокоманд. Важной особенностью кэша трасс является то, что
последовательности микрокоманд соответствующей ветви разме-
щаются в кэше трасс сразу за командой ветвления, т. е. могут на-
ходиться вместе с этой командой даже в одной строке кэша. До
МП Pentium IV команды перехода и выбранная ветвь продолже-
ния программы располагались в разных строках внутреннего кэша
команд, что очень невыгодно с точки зрения скорости обмена с
кэш-памятью, оптимизированной для передачи данных целыми
строками. Кроме того, память кэш трасс используется эффектив-
нее, чем в обычном кэше команд, — в кэша трасс не попадают
команды, которые никогда не будут использоваться. Кэш трасс
совместно с блоком выборки (декодирования) образует устрой-
ство предварительной обработки. При выборке команд, когда об-
наруживается команда перехода, определяющая трассу, именно
кэш трасс становится источником микрокоманд. Программа вы-
полняется быстрее, но требуется проверка, действительно ли пра-
вильно выбрана ветвь продолжения программы. Последующее ис-
полнение микрокоманд в конвейере с изменением последователь-
ности и конвейере вывода результатов реализуется аналогично
тому, как это происходит, в МП Pentium II и III. Использование
гиперконвейера, кэша трасс и более производительного испол-
нительного ядра позволило достигнуть в МП Pentium IV суще-
ственного повышения производительности.
5.2.4. Встроенные средства для организации
мультипроцессорных систем
МП Pentium, за исключением МП Pentium IV, имеют специ-
альные интерфейсные средства для построения мультипроцессор-
ных систем (с двумя и более процессорами). Интерфейс позволя-
ет на одной локальной системной шине устанавливать несколько
процессоров, при этом почти все их одноименные выводы просто
объединяются. Целью объединения является либо использование
симметричной мультипроцессорной обработки SMP (Symmetric
Multi-Processing), либо построение так называемых функциональ-
но-избыточных систем FRC (Functional Redundancy Checking), име-
ющих более высокие показатели достоверности обработки данных
[18]. Более детально организация и архитектура мультипроцессор-
ных систем рассмотрена в гл. 10.
Системная шина МП Р6, в отличие от локальной шины МП
Pentium, оптимизированной для обмена с памятью, ориенти-
рована на разделяемое управление множеством симметричных
(до четырех на шине) и несимметричных (до восьми) активных
устройств. В МП Р6 нет жесткой аппаратной привязки роли про-
цессора к его адресу: назначение роли процессора осуществля-
ется по загрузочному протоколу. Это позволяет повысить на-
дежность SMP-системы, поскольку любой процессор может без
механического вмешательства во время инициализации взять
на себя роль загрузочного процессора.
Для обработки аппаратных прерываний в многопроцессорных
системах традиционные аппаратные средства становятся непри-
годными. Для решения этой задачи в структуру МП Pentium вве-
ден расширенный программируемый контроллер прерываний APIC
(Advanced Programmable Controller). Этот контроллер имеет вне-
шние сигналы локальных прерываний LINT [1:0] и 3 линии ин-
терфейсной шины (PICD [1:0] и PICCLK), по которым процес-
соры связываются с контроллером APIC системной платы. Запро-
сы локальных прерываний обслуживаются только тем процессо-
ром, на выводы которого поступают сигналы их запросов. Общие
(разделяемые) прерывания приходят к процессорам в виде сооб-
щений по интерфейсу APIC. Функции каждого из процессоров в
случае возникновения того или иного аппаратного прерывания
задаются предварительно при программировании соответствую-
щего контроллера. Внешне программный интерфейс обработки
прерываний остается таким же (совместимым), как и при управ-
лении прерываниями с помощью контроллера 8259А, что обеспе-
чивает прозрачность присутствия APIC для прикладного ПО. Ре-
жим обработки прерываний посредством APIC разрешается сиг-
налом APICEN по аппаратному сбросу, впоследствии он может
быть программно запрещен.
В функционально избыточных системах с двумя процессора-
ми (Master/Checker) последние выступают как один логический.
Основной процессор Master работает в обычном однопроцессор-
ном режиме. Проверочный процессор Checker выполняет те же
операции, что и основной, но не управляет шиной. Он сравнива-
ет сигналы основного (проверяемого) процессора с теми сигна-
лами, которые он генерирует сам. В случае обнаружения расхож-
дения вырабатывается сигнал ошибки, который может обрабаты-
ваться как прерывание.
5.2.5. Программная модель процессора Pentium
МП является важнейшим компонентом любой микропроцес-
сорной системы. Его характеристики (разрядность, быстродействие,
система команд, режимы адресации памяти, число программно
доступных регистров и т.д.) в основном определяют характерис-
тики всей системы. Большая часть внутренних схем МП недоступ-
на извне, однако, для прикладного программиста это не так важ-
но. При программировании прикладных задач он обычно абстра-
гируется от всего многообразия элементов и устройств МП, опе-
рируя лишь его системой команд и ограниченным числом про-
граммно доступных регистров. Совокупность всех программно до-
ступных регистров микропроцессора образует его программную,
или регистровую, модель. Она показывает те ресурсы МП, кото-
рыми может пользоваться программист, привлекая его систему
команд. Знание программной модели и системы команд МП во
многих случаях оказывается достаточным для составления при-
кладных программ.
Общей объединяющей характеристикой рассмотренных МП
Pentium является то, что все они, несмотря на существенные раз-
личия в архитектуре, принадлежат семейству процессоров х86
фирмы Intel и обеспечивают программную совместимость стар-
ших моделей с младшими. Все рассмотренные МП Pentium имеют
одинаковую программную модель, организацию памяти, спосо-
бы адресации, используют одну и ту же базовую систему команд.
Ряд авторов [13, 18] для отражения особенностей функциони-
рования МП Pentium, основных режимов его работы, состава,
назначения и использования аппаратных средств поддержки со-
временных ОС представляют полную 32-битную архитектуру про-
цессора в виде двух программных моделей: отдельно прикладной
и отдельно системной.
В состав элементов прикладной модели, как правило, вклю-
чают:
• полный набор программно доступных регистров, которым
оперирует пользователь при написании прикладных программ;
• особенности организации памяти и допустимые способы ад-
ресации;
• типы данных и команд.
Системная программная модель в основном используется сис-
темными программистами. Она объединяет программно доступ-
ные системные ресурсы МП, с помощью которых обеспечивается
доступ к встроенным механизмам защиты и многозадачности.
Прикладная программная модель процессора Pentium. Регистры
прикладной программной модели МП Pentium (рис. 5.8) удобно
представить в виде четырех групп 32-разрядных регистров:
• регистры общего назначения (РОН) — EAX, ЕВХ, ЕСХ, EDX,
предназначенные для хранения операндов и промежуточных ре-
зультатов выполняемых операций;
• регистры-указатели (ESP, ЕВР) и индексные регистры (ESI,
EDI), используемые для хранения базовых адресов и индексов
при реализации некоторых способов адресации сложных структур
данных;
• указатель команд EIP;
• регистр признаков (флагов) EFLAGS, содержит признаки
результата выполненной операции и флаги управления.
31 16 15 8 7 О
ЕАХ АН AL AX
EDX DH DL DX
ЕСХ CH CL CX
ЕВХ BH BL bx|_ > Базовые регистры BP 1
ЕВР BP
ESP SP Указатель стека
ESI SI 1 Индексные
EDI DI J регистры
Регистры общего назначения, базовые и индексные регистры
31 22 21 20 19 18 17 1615 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Резерв ID VIP VIF AC VM R ) NT IOPL OF DF IF TF SF ZF AFI ) PF CF
Регистр признаков EFLAGS
31______________16 15_______________0
I IP
Указатель команд EIP
Рис. 5.8. Основные функциональные регистры прикладной модели
процессора Pentium
Кроме того, в число регистров прикладной модели часто вклю-
чают 16-разрядные сегментные регистры CS, SS, DS, ES, FS,
GS, предназначенные для хранения селекторов дескрипторов сег-
ментов памяти, с которыми оперирует выполняемая программа.
Однако, на наш взгляд, регистры, содержащие селекторы, более
логично включить в состав системной программной модели.
Отличительной особенностью рассматриваемой программной
модели является возможность использования РОН в формате байт,
слово или двойное слово, а остальных регистров — в формате
слово или двойное слово. Это сделано для обеспечения програм-
мной совместимости МП Pentium с 16-разрядными МП х86 .
8- и 16-разрядные РОН имеют стандартное обозначение АН,
AL, DH, DL, CH, CL, ВН, BL, АХ, DX, СХ, ВХ, BP, SP, SI,
DI. При обозначении 32-разрядных регистров в наименование
16-разрядных регистров добавляется буква Е (Extension). Регистры
EAX (АХ), ЕВХ (ВХ), ЕСХ (СХ), EDX (DX) предназначены преж-
де всего для хранения данных и результатов арифметических и
логических операций. В большинстве команд указанные регистры
выполняют функции универсальных регистров, однако, в ряде
команд эти же регистры используются для выполнения специаль-
ных функций и адресуются неявно. Регистр ЕАХ (АХ) в опреде-
ленном смысле выполняет функции аккумулятора. При выполне-
нии команд умножения, деления, ввода-вывода один из операн-
дов обязательно должен размещаться в аккумуляторе и в него же
помещается результат. Регистр ЕВХ (ВХ) используется как указа-
тель адреса при косвенной адресации. Отметим, что при наличии
постбайта адресации SIB в качестве указателей адреса при кос-
венной адресации могут использоваться и другие регистры блока
РОН (ЕАХ, ЕСХ и EDX). Регистр СХ выполняет функции счетчи-
ка циклов в командах управления циклом или счетчика числа
повторений в командах строковых операций. Регистр CL опреде-
ляет число сдвигов в командах сдвиговых операций. Регистр EDX
(DX) является расширителем аккумулятора в командах умноже-
ния и деления 32-битовых (16-битовых) слов. При умножении в
этом регистре размещаются старшие 32 бит (16 бит) 64-разрядно-
го (32-разрядного) результата, а при делении в регистре EDX
(DX) формируется остаток. Кроме того, при реализации косвен-
ной адресации к портам ввода-вывода в командах IN и OUT ре-
гистр DX используется для хранения адреса порта. Специальные
назначения регистров блока РОН возможно и усложняют про-
граммирование (надо помнить, кто за что отвечает), но в сочета-
нии с заложенным богатством функционального назначения ко-
манд принятое архитектурное решение фактически ведет к умень-
шению объема программ.
Регистры ESP (SP), EBP (BP), ESI (SI), EDI (DI) обычно
используются при формировании внутрисегментных смещений
адресуемых операндов (их исполнительных адресов ЕА). Указатель-
ные регистры ESP (SP), ЕВР (ВР) хранят смещение в пределах
текущего стекового сегмента. Учитывая, что регистр ESP (SP)
является указателем вершины стека и его содержимое автомати-
чески изменяется при выполнении команд с участием стека, ис-
пользование регистра ESP (SP) в качестве общедоступного прак-
тически исключается. Индексные регистры ESI (SI), EDI (DI)
при выполнении строковых команд хранят внутрисегментные сме-
щения соответственно в текущем сегменте данных, определяе-
мом селектором DS, и в текущем дополнительном сегменте, ад-
ресуемом с помощью селектора ES.
32-разрядный указатель команд EIP (Extension Instruction
Pointer) используется при формировании адреса очередной ко-
манды (задает смещение внутри сегмента CS). Младшие 16 бит
регистра EIP содержат 16-разрядный указатель команд IP, кото-
рый служит для адресации команд в программах, написанных для
16-разрядных процессоров х86. Указатель команд EIP программно
недоступен. Его содержимое изменяется при выполнении команд
передачи управления и при вызове обработчиков прерываний.
32-разрядный регистр признаков EFLAGS содержит флаги,
которые можно разделить на три класса: флаги результата, флаги
управления и системные флаги.
Флаги результата CF (переноса), PF (паритета), AF (межтет-
радного переноса), ZF (нуля), SF (знака) и OF (переполнения)
фиксируют признаки результата АЛУ. Значения флагов анализи-
руются при выполнении команд условных переходов и использу-
ются при выборе требуемой ветви продолжения программы. Ис-
ключение составляет флаг AF (Auxiliary Flag), фиксирующий пе-
ренос (заем) из младшей тетрады аккумулятора AL в старшую
при сложении (вычитании). Флаг AF используется только в ко-
мандах двоично-десятичной коррекции результата арифметичес-
ких операций с двоично-десятичными операндами.
Флаги управления DF, IF и TF используются для управления
работой МП. Флаг направления DF (Direction Flag) служит для
автоматического увеличения (инкремента) при DF = 0 или умень-
шения (декремента) при DF = 1 на единицу содержимого регист-
ров SI и DI при операциях со строками. Флаг разрешения преры-
ваний IF (Interrupt Enable Flag) управляет реакцией процессора
на поступающие запросы маскируемых прерываний по входу INTR.
При IF= 1 МП воспринимает запросы маскируемых прерываний
по входу INTR, при IF = 0 происходит запрещение (маскирова-
ние) прерываний по входу INTR. Флаг пошагового выполнения
TF (Trap Flag) переводит МП в пошаговый режим, который ис-
пользуется только при отладке.
Системные флаги управляют обработкой исключений, после-
довательностью вызываемых задач, вводом-выводом и рядом дру-
гих функций. Число системных флагов МП х86 зависит от модели
процессора. Каждая последующая модификация процессора х86
для обеспечения программной совместимости включает все си-
стемные флаги предыдущих моделей. Большинство системных фла-
гов предназначено для использования ОС, и в прикладных про-
граммах они обычно не используются. На практике для исключе-
ния возможного изменения системных флагов прикладными про-
граммами может быть применена система защиты процессора. Более
подробно с составом и назначением системных флагов можно
познакомиться в специальной литературе [13, 18].
Системная программная модель процессора Pentium. Системная
программная модель МП Pentium включает набор регистров, ис-
пользуемых системными программистами для задания режима
работы МП, управления сегментацией, страничным преобразо-
ванием, многозадачностью и другими системными функциями и
механизмами. В набор регистров (рис. 5.9), входящих в состав си-
стемной модели, входят:
• 6-байтные регистры GDTR и IDTR адресации системных сег-
ментов с глобальной дескрипторной таблицей GDT и дескрип-
торной таблицей прерываний IDT;
• 16-битные регистры LDTR и TR, предназначенные для хра-
нения селекторов выбора дескрипторов с базовыми адресами сег-
ментов локальной дескрипторной таблицы LTD и сегментов со-
стояния задачи TSS;
• 16-битные сегментные регистры CS, SS, DS, ES, FS, GS,
содержащие селекторы дескрипторов текущих сегментов кода,
данных и стека;
• 32-битные регистры управления процессором CRO, CR2, CR3,
CR4.
Большинство системных регистров обычно не доступно при-
кладным программам, поскольку оперировать с ними могут толь-
ко привилегированные команды программ ОС. Как правило, эти-
ми регистрами пользуется сам процессор, а ОС лишь их инициа-
лизирует.
В состав аппаратных средств МП Pentium, обеспечивающих под-
держку ОС, входят кэш-регистры дескрипторов текущих сегментов
кода, данных и стека, кэш-регистры дескрипторов системных сег-
ментов LDT и TSS, а также транслятор логического адреса в физи-
ческий. Элементы транслятора на рис. 5.9 не показаны.
Кроме аппаратных средств поддержки ОС, в состав системной
модели МП Pentium обычно включают регистры отладки и тести-
рования. Первые предназначены для облегчения отладки программ,
а вторые используются для тестирования внутренних устройств МП.
Назначение регистров системной модели МП Pentium следу-
ющее. Регистры базовых адресов системных дескрипторных таб-
лиц GDTR, IDTR и регистры системных селекторов TR и LDTR
15
О
cs
ss
DS
ES
FS
GS
Сегментные
регистры
Атрибуты Базовый адрес Размер сегмента
64-разрядные кэш-регистры сегментов
кода, данных и стека
CSt
SSt
DSt
ESt
FSt
GSt
Базовый адрес сегмента Предел
Базовый адрес сегмента Предел
31 0 15 0
GDTR
idtr
Регистры системных адресов дескрипторных таблиц
15 0 63 О
Селектор Атрибуты Базовый адрес сегмента Размер сегмента
Селектор Атрибуты Базовый адрес сегмента Размер сегмента
Регистры системных 64-разрядные кэш-регистры системных сегментов
сегментов
31 30 29 18 16 15 6 5 4 3 2 1 0
| PG | CD |NW| Резерв! АМ | | WP | Резерв | Ne| ЕТ| TS|EM| МР| РЕ | CR0
| Линейный адрес страничной ошибки | CR2
31_____________________________12 11________5 4 3 2 0
| Базовый адрес каталога страниц | Резерв | PCD | PWT | Резерв | CR3
31_______________________ 6 5 4 3 21 0
| | MSE | 0 | PSE | РЕ | TSP | PVI | УМЕ | CR4
Регистры управления процессора
Рис. 5.9, Системная программная модель процессора Pentium
служат для задания базовых адресов системных сегментов в защи-
щенном режиме. Содержимое указанных системных регистров ис-
пользуется при определении линейных адресов операндов и реа-
лизации механизма защиты. Регистры GDTR и IDTR определяют
базовый адрес и размер соответствующей дескрипторной табли-
цы. Регистры селекторов TR и LDTR содержат селекторы, с по-
мощью которых из таблицы GDT выбираются дескрипторы с ба-
зовыми адресами системных сегментов LDT и TSS отдельных за-
дач.
Сегментные регистры CS, SS, DS, ES, FS, GS используются
для хранения селекторов сегментов. МП Pentium содержит шесть
сегментных регистров, содержащих селекторы сегментов кода CS,
стека SS и данных DS, ES, FS, GS. Каждый сегментный регистр
указывает на сегмент, используемый программой в текущий мо-
мент времени. В любой момент времени программа имеет непо-
средственный доступ к шести сегментам памяти, при этом обес-
печена возможность обращения к существенно большему числу
сегментов. Остальные сегменты могут быть использованы при заг-
рузке их селекторов в сегментные регистры из прикладной про-
граммы во время ее выполнения. Единственным требованием яв-
ляется то, что загрузка соответствующего сегментного регистра
должна быть выполнена до обращения к искомому сегменту. При
обращении к памяти выбор сегментного регистра и способа вы-
числения исполнительного адреса ЕА зависят от типа обращения
к памяти. Большинство команд процессора оперируют только внут-
рисегментным смещением, при этом сам сегмент непосредствен-
но в команде не указывается: он адресуется неявно кодом опера-
ции.
В защищенном режиме дескриптор сегмента из дескрипторной
таблицы запоминается в соответствующем 8-байтовом програм-
мно недоступном кэш-регистре. Для хранения текущих дескрип-
торов в структуру процессора включены 8 кэш-регистров CSt,
SSt, DSt, ESt, FSt, GSt, LDTRt, TRt, определяющих сегменты
кода, данных, стека и системные сегменты LDT и TSS.
Регистры управления (32-разрядные) CRO, CR2, CR3, CR4
фиксируют общее состояние процессора (CR0), обеспечивают
аппаратную поддержку страничного механизма адресации (CR2,
CR3) и содержат ряд дополнительных сигналов управления (CR4).
Для доступа к регистрам управления процессора Pentium исполь-
зуются привилегированные команды загрузки (сохранения) со-
держимого CRn.
Регистр управления CR0 содержит системные флаги, которые
управляют режимами работы процессора или показывают состоя-
ние, относящееся ко всему процессору, а не к выполнению от-
дельной задачи. Отдельные биты регистра CR0 разрешают защи-
щенный режим (бит РЕ), страничную организацию памяти (бит
PG), обеспечивают управление устройством вычислений с плава-
ющей точкой FPU (биты МР, ЕМ), прерываниями FPU (бит NE),
защитой от записи страницы (бит WP), разрешением (запреще-
нием) заполнения внутренней кэш-памяти (бит CD) и способом
обновления кэш-памяти (бит NW).
Программно доступные регистры отладки DR0 — DR3, DR6,
DR7, не показанные на рис. 5.9, поддерживают процесс отладки
программ. Регистры DRO —DR3 используются для задания линей-
ных адресов четырех независимых контрольных точек останова,
которые могут быть использованы программами отладчика. Регистр
DR7 (Breakpoint Control) является регистром управления режи-
мом отладки, а регистр DR6 (Breakpoint Status) — регистром со-
стояния отладки.
В дополнение к базовой архитектуре 32-разрядных процессоров
х86 МП Pentium имеют набор регистров MSR (Model Specific
Registers), специфичных для конкретной модели процессора. В их
число входит группа тестовых регистров TRI — TR12, средства
мониторинга производительности, регистры-фиксаторы адреса и
данных цикла, вызвавшего срабатывание контроля машинной
ошибки. Тестовые регистры предназначены для управления опе-
рациями тестирования внутренней кэш-памяти команд и данных,
буфера быстрой переадресации TLB, буфера меток перехода ВТВ,
выполнения ряда других функций. Название регистров MSR ука-
зывает на их возможную несовместимость для разных классов и
моделей МП Pentium. Чтение и запись в регистры MSR выпол-
няется с помощью специальных команд rdmsr и wrmsr процессо-
ра. В указанных командах регистр ЕСХ определяет адрес (номер)
64-битного регистра MSR, содержимое которого считывается или
записывается из (в) регистров EDX:EAX.
Система команд процессора Pentium. Основу системы команд
процессора Pentium образует базовая система команд МП 8086,
эволюционно изменяющаяся при смене поколений процессоров
х86 (рис. 5.10). При разработке новых процессоров усовершенство-
вались алгоритмы выполнения некоторых команд, благодаря чему
сократилось время выполнения таких команд. Начиная с МП
Pentium ММХ все процессоры Pentium используют расширение
ММХ, направленное на ускорение обработки потоков и массивов
целочисленных мультимедийных данных. Ключевым в этом рас-
Расширенная система команд процессора РГУ
(расширение SSE2)
Расширенная система команд процессора РШ
(расширение SSE)
Расширенная система команд
процессоров РУГ (расширение ММХ)
Расширенная система команд
32-разрядных процессоров
Базовая система
команд 8086
Рис. 5.10. Эволюция системы команд процессоров компании Intel
ширении является принцип SIMD — одна команда на множество
данных. Система команд МП Pentium III дополнена набором ко-
манд SSE — потоковым SIMD расширением для чисел в формате
с плавающей точкой. Процессор Pentium IV дополнительно ис-
пользует расширение команд SSE2.
Базовая система команд МП х86 включает традиционные группы
команд пересылок и ввода-вывода, команды арифметических и
логических операций, расширенную группу команд передачи уп-
равления. Отличительной особенностью базовой системы команд
является наличие в ее составе цепочечных команд. Под цепочкой
понимается последовательность байт или слов в памяти, а цепо-
чечной операцией называется операция, выполняемая над каж-
дым элементом цепочки. МП х86 с помощью цепочечных (стро-
ковых) команд обеспечивают обработку текстов. Строковые ко-
манды, как правило, манипулируют большими структурами дан-
ных и часто используются совместно с префиксами повторения.
При наличии префикса повторения команда обработки строк ре-
ализуется многократно. В частности, цепочечная передача произво-
дит пересылку целой цепочки из одной области памяти в другую.
Набор команд МП Pentium обеспечивает выполнение опера-
ций над 8-, 16-, и 32-разрядными операндами, которые могут
размещаться в регистре, памяти или непосредственно указывать-
ся в команде. В набор команд процессора входят безадресные, 1- и
2-адресные команды. Для реализации различных типов команд оп-
ределены форматы, задающие порядок размещения информации
о выполняемой операции и способах выбора операндов. Обобщен-
ный вид формата команды процессора Pentium (рис. 5.11) допу-
скает наличие следующих полей: кода операции (1 или 2 байт),
байтов адресации (постбайта и SIB — 0, 1 или 2 байт), байтов
смещения (0, 1,2 или 4 байт), байтов непосредственных данных
(О, 1, 2 или 4 байт). При необходимости перед кодом команды
могут размещаться необязательные префиксы, модифицирующие
выполняемую операцию, например, префикс замены сегмента,
префикс повторения или префикс блокировки шины. С помощью
префикса замены сегмента в команде в явном виде указывается
адресуемый сегментный регистр, используемый вместо сегмент-
ного регистра по умолчанию. Префикс блокировки шины Lock
реализует возможность процессора монопольно использовать об-
щий ресурс, например, память в мультипроцессорной системе.
КОП Постбайт адресации SIB байт адресации Смещение Непосредственные данные
1 или 2 байт 0 или 1 байт 0 или 1 байт 0,1,2 или 4 байт 0,1,2 или 4 байт
Рис. 5.11. Общий формат команд
Система команд МП Pentium обеспечивает поддержку 11 режи-
мов адресации, при этом только в двух случаях операнды не связа-
ны с памятью. Это операнды, размещенные в регистрах и непос-
редственные операнды, содержащиеся в самой команде. АЛУ имеет
прямой доступ только к указанным операндам. При обращении к
операндам, хранящимся в памяти, на ступени D2 конвейера вы-
числяется и пересылается в блок управления памятью внутрисег-
ментное смещение, называемое исполнительным адресом ЕА
(effective address). Для адресации операндов используются практи-
чески все известные способы адресации: регистровая, непосред-
ственная, прямая, косвенная, базовая, индексная, базово-индекс-
ная без смещения и со смещением, а также адресация строковых
данных и адресация портов ввода-вывода (прямая и косвенная).
Используемые способы адресации кодируются в команде чаще
всего с помощью специального байта адресации (постбайта адре-
сации), который следует непосредственно за байтом кода опера-
ции. Постбайт адресации (рис. 5.12) содержит три поля — поле md
(режима), поле reg (регистра) и поле r/m (регистр/память). В МП
Pentium один из операндов всегда размещается в регистре блока
РОН, а другой операнд может располагаться в памяти или тоже
быть содержимым РОН. Код регистра, в котором хранится один
из операндов 2-адресных команд, указывается в 3-битовом поле
reg. 2-битное поле md определяет местоположение второго опе-
ранда. Двоичное значение «11» в поле md указывает на то, что оба
операнда размещены в РОН, при этом поле r/m кодирует имя
регистра, содержащего второй операнд. Если md * «11», то сово-
купность полей md и r/m задает 1 из 24 конкретных способов вы-
числения исполнительного адреса ЕА с нулевым (md = «00»), од-
нобайтным (md = «01»), или четырехбайтным (md = «10») смеще-
нием, дополнительно указываемым в команде.
В общем случае адрес ЕА образуется арифметическим сложе-
нием трех компонентов: содержимого базового регистра, содер-
жимого индексного регистра и 8-, 16- или 32-битного смещения
disp8, disp 16 или disp32, заданного в коде команды. В зависимости
от значения полей md и r/m для формирования ЕА используются
все или часть этих слагаемых.
В качестве базового и индексного регистров при 32-битной ад-
ресации можно использовать любой из 32-разрядных РОН, а при
16-битной адресации — только регистры ВР, ВХ и SI, DI соот-
ветственно. Базовый и индексный регистры удобно применять для
Рис. 5.12. Формат постбайта адресации
7 6 5
4 3 2
1 О
Scale 1 1 Index i । Base
Рис. 5.13. Формат байта SIB
формирования адресов, изменяемых в процессе выполнения про-
граммы, например для указания начала одной записи в массиве
записей или для определения начала одномерного массива в мно-
гомерном.
В командах с 32-битовой адресацией при значении поля г/ш =
= 100 В и значении mod # «11» в коде команды присутствует до-
полнительный байт адресации SIB (Scale — Index — Base — масш-
табирование с использованием индекса и базы), который за счет
дополнительного кодирования компонент адресации расширяет
возможности процессора при вычислении исполнительного адре-
са ЕА (рис. 5.13). 2-битное поле Scale кодирует значение масштаб-
ного множителя (1, 2, 4 или 8), указывающего размер элементов
массива при использовании индексной адресации. 3-битовые поля
Index и Base определяют имена РОН, используемые как индекс-
ный и базовый регистры соответственно. При наличии байта SIB
32-разрядное внутрисегментное смещение (исполнительный ад-
рес ЕА) вычисляется по формуле
ЕА = Base + Index • Scale + Disp.
Допустимые режимы адресации операндов в памяти при ис-
пользовании постбайта адресации приведены в табл. 5.1.
Таблица 5.1
Режимы адресации памяти процессора Pentium
Режим адресации Способ вычисления ЕА
Прямая ЕА = Disp
Косвенная регистровая ЕА = Base
Базовая ЕА = Base + Disp
Индексная ЕА = Index + Disp
Базово-индексная ЕА = Base + Index
Базово-индексная со смещением ЕА = Base + Index + Disp
Масштабированная индексная EA= Index + Disp
Масштабированная базово-индексная EA = Base + Scale Index
Масштабированная базово-индексная со смещением EA = Base + Scale • Index + Disp
5.2.6. Функции защиты и их аппаратная поддержка
в процессорах Pentium
Защита является одним из важнейших базовых принципов,
используемым при построении современных ОС. Проблема защи-
ты является многогранной (см. подразд. 4.7.3) и включает в себя
такие аспекты, как привилегии, защита областей памяти, защита
файлов, защита от зацикливаний и т. п.
Для обнаружения и идентификации ошибок МП 80x86 фирмы
Intel сконструированы со встроенным механизмом защиты. Этой
же цели способствует организация памяти, предусматривающая
взаимное разделение адресных пространств различных задач с по-
мощью сегментов. Система привилегий жестко регламентирует вза-
имоотношения задач с памятью, ОС и друг с другом. Для эффек-
тивного управления всей системой программам ОС разрешен дос-
туп к памяти всех программ, а пользовательским программам для
получения необходимого обслуживания от ОС обеспечивается до-
ступ к ее программам только в разрешенных точках входа. Для
поддержки указанных функций защиты в систему команд МП х86
введены некоторые привилегированные команды, которые могут
выполняться только в программах ОС, и, кроме того, в структуре
процессора имеется ряд регистров, к которым закрыт доступ со
стороны пользовательских программ.
Основной единицей защиты является сегмент. Сегменты, оп-
ределенные в дескрипторных таблицах, теоретически адресуемые.
Однако выбранный сегмент может быть недоступным для некото-
рых операций по результатам проверки атрибутов защиты, осу-
ществляемых процессором. При каждом обращении к сегменту
проверяется ряд параметров защиты, задаваемых в дескрипторе
сегмента (см. рис. 4.12). В их число входят уровень привилегий, пре-
дел, тип сегмента и права.
Специальное поле предел определяет границы сегмента. С его
помощью процессор обнаруживает такие распространенные ошиб-
ки, как переполнение стека, неверные указатели и индексы мас-
сивов, неправильные адреса вызовов и переходов. Процессор при
обращении к памяти параллельно с преобразованием адреса все-
гда контролирует смещение (исполнительный адрес ЕА) и сле-
дит, чтобы смещение было меньше или равно пределу. Если сме-
щение оказывается больше предела, то фиксируется особый слу-
чай нарушения защиты. Важно подчеркнуть, что ошибки наруше-
ния границы обнаруживаются в момент их возникновения, что
существенно облегчает поиск их причины. Без проверки границы
такие ошибки могли бы исказить другие программные модули. Эти
искажения обнаружились бы позднее по неправильной работе
искаженного модуля, но идентифицировать ошибку в этом случае
уже много труднее. Остальные параметры защиты хранятся в бай-
р DPL S 1 1 TYPE А
Рис. 5.14. Формат байта доступа дескриптора
те доступа (Access Rights) дескриптора (рис. 5.14) сегмента (на
рис. 4.12 — в поле атрибутов).
Бит присутствия Р указывает, где размещен искомый сегмент —
в основной памяти процессора (Р= 1) или на диске (Р = 0). Бит
доступа А фиксирует каждое обращение к сегменту. Выше мы от-
метили, что с помощью битов Р и А ОС реализует работу вирту-
альной памяти. Бит S кодирует назначение и способ использова-
ния дескриптора. При S = 0 дескрипторы являются системными.
Они используются для обращения к системным сегментам TSS,
LDT или являются шлюзам, которые предназначены для задания
разрешенных точек входа в защищенные программы ОС, вклю-
чая программы обслуживания прерываний. Дескрипторы несис-
темных сегментов кода, данных и стека имеют установленный бит
S(S = 1).
Поле TYPE доопределяет тип дескриптора. Проверка типа по-
зволяет обнаруживать программные ошибки при использовании
сегмента не по назначению. В частности, в сегмент кода нельзя
записывать, а с сегментом таблицы LDT и сегментом TSS нельзя
явно производить операции считывания, записи и выполнения.
Права, которыми может быть помечен несистемный дескрип-
тор, ограничивают множество операций, которое можно произ-
водить с его сегментом. Права указываются в поле TYPE несис-
темных дескрипторов. Например, исполняемый сегмент кода до-
полнительно может быть отмечен как читаемый, а доступный для
чтения сегмент данных — как сегмент с разрешенной записью.
Поле привилегий дескриптора DPL (Descriptor Privilege Level)
задает разрешенный уровень привилегий для доступа к сегменту.
Привилегии — это свойство, которое определяет, какие про-
граммы можно выполнять и к каким данным возможен доступ в
каждый конкретный момент времени. Концепция привилегий яв-
ляется центральной для нескольких аспектов защиты. В приложе-
нии к процедурам привилегии являются степенью доверия дан-
ной процедуре. В приложении к данным привилегии определяют
степень защиты, которой должна обладать структура данных, чтобы
не пострадать от менее защищенной процедуры. В целом уровень
привилегий программы определяет конкретное подмножество сег-
ментов адресного пространства, к которому программа может об-
ращаться. Попытка задачи использовать сегмент с более высоким
уровнем привилегий приводит к особому случаю защиты. Приви-
легии устанавливаются программами ОС в байте доступа дескрип-
тора сегмента при заполнении дескрипторных таблиц. Чем выше
Прикладные программы
Расширения ОС
(служебные программы), базы данных
Системные программы
и утилиты ОС
Ядро ОС
PL-0
PL=1
PL=2
PL=3
Рис. 5.15. Кольца защиты процессора 80 х 86:
PL — уровни привилегий
уровень привилегий PL, тем более привилегирована программа и
тем более защищены данные. Уровни привилегий удобно интер-
претировать в виде колец защиты (рис. 5.15). Уровни привилегий с
номерами 0, 1, 2 отводятся для программ ОС. Наиболее защищен-
ная часть ОС (ее ядро) имеет уровень PL0. В ядро входит часть
программ ОС, обеспечивающих инициализацию работы компью-
тера, управление доступом к памяти, защиту и ряд других важных
функций, нарушение которых препятствует правильной работе
процессора. Основная часть программ ОС (утилиты) обычно име-
ет уровень PL1. К уровню PL2 относят ряд служебных программ
ОС, например, драйверы внешних устройств, системы управле-
ния базами данных, специализированные системы программиро-
вания и др. Пользовательским программам присваивается уровень
привилегий PL3 (низший).
При любом межсегментном взаимодействии всегда участвуют
два сегмента — текущий сегмент кода и сегмент, к которому про-
исходит обращение (сегмент назначения). При доступе к сегменту
назначения всегда осуществляется проверка привилегий. Эта про-
верка выполняется сравнением уровня привилегий выполняемой
программы с уровнем привилегий сегмента назначения.
Для удобства интерпретации правил защиты разработчики,
наряду с уровнем привилегий дескриптора сегмента DPL, исполь-
зовали еще два обозначения привилегий: текущий уровень приви-
легий CPL (Current Privilege Level) и запрашиваемый уровень при-
вилегий RPL (Requested Privilege Level). Значение RPL указывает-
ся ОС в двух младших разрядах сегментного регистра (селектора).
Старшие разряды селектора (14-разрядный индекс) используют-
ся для выбора дискриптора сегмента. Уровень привилегий выпол-
няемой программы CPL равен значению DPL в байте доступа дес-
криптора, определяющего текущий кодовый сегмент. При выборе
дескриптора кодового сегмента из соответствующей дескриптор-
ной таблицы и запоминании его в кэш-регистре CSt значение
DPL байта доступа этого дескриптора копируется в поле RPL се-
лектора кодового сегмента CS и обозначается CPL. Регистр CS
нельзя использовать в качестве приемника, поэтому программа
не может изменить содержимое CS, и, следовательно, не может
изменить свой уровень привилегий. Текущий уровень привилегий
CPL может изменяться только при передаче управления через шлюз.
Максимальное значение из CPL и RPL определяет эффективный
уровень привилегий.
Для доступа к данным сегмента назначения необходимо, что-
бы уровень привилегий дескриптора сегмента назначения DPL был
больше или равен наибольшему из значений текущего CPL и зап-
рашиваемого RPL уровней привилегий:
DPL > max(RPL v CPL).
В отношении данных это правило можно трактовать следую-
щим образом: чем выше уровень привилегированности програм-
мы, тем к более защищенным данным она может обратиться. На-
рушение критерия защиты предотвращает начало цикла обмена и
приводит к обработке исключения общей защиты. Проверку уров-
ней привилегий удобно представить в виде схемы (рис. 5.16).
Операция присвоения уровней DPL и RPL выполняется во
время трансляции: в файл исходной программы вставляется спе-
циальный файл данных, описывающий дескрипторы в дескрип-
торной таблице и селекторы, их определяющие.
При межсегментных передачах управления (доступе к другому
сегменту кода) ограничения защиты оказываются более жестки-
Рис. 5.16. Схема проверки уровня привилегий при межсегментных
обращениях
ми. Программам z-того уровня не разрешается передавать управле-
ние коду с уровнем привилегий, отличном от i (передачи управ-
ления ограничиваются кольцом уровня привилегий текущей про-
граммы):
DPL = max(RPLvCPL).
В общем случае межсегментные обращения (рис. 5.17) с конт-
ролем доступа к сегменту являются достаточно сложными и тре-
буют значительных временных затрат. Правда, в реальных про-
граммах межсегментные обращения встречаются не так часто. Боль-
шинство обращений к памяти при выполнении программы явля-
ются внутрисегментными. При их реализации проверка уровня при-
вилегий сегмента назначения не проводится. Это связано с тем,
что дескриптор выбранного сегмента загружен в соответствую-
щий кэш-регистр сегмента при первом обращении к сегменту и
любые последовательные проверки защиты одного и того же сег-
мента не требуют дополнительных обращений к памяти.
Последовательность проверок при всех межсегментных обра-
щениях следующая. Перед тем как адресовать операнд в памяти,
т. е. перед началом цикла обмена, программа загружает селектор в
один из сегментных регистров, и аппаратным путем выполняется
проверка возможности обращения к адресуемому операнду. Сна-
чала процессор, сравнивая формируемое внутрисегментное сме-
щение со значением поля предела сегмента, определяет правиль-
ность адреса (в случае выхода за границы сегмента процессор фор-
мирует прерывание общей защиты). Затем процессор выполняет
проверку привилегий сегмента, к которому происходит обраще-
ние, при этом такая проверка зависит от типа сегмента назначе-
ния. Непосредственно перед каждым циклом обмена, в том числе
Рис. 5.17. Обращения в пределах колец защиты и между ними:
О — данные; □ — код; (>$-) — разрешенный (запрещенный) переход при
межсегментных передачах управления; (») — разрешенный (запрещенный)
переход при допуске данных в межсегментных обращениях; 0, 1, 2, 3 — уровни
защиты
и внутрисегментном, дополнительно аппаратным путем проверя-
ется еще ряд параметров защиты. В их число входят проверка типа
дескриптора, определение ограничений доступа к данным и не-
которые другие. Нарушение любого параметра защиты предотвра-
щает начало цикла обмена и приводит к обработке особого случая.
Таким образом, при работе в защищенном режиме процессор
следит за тем, достаточно ли привилегированна программа, что-
бы выполнять некоторые команды, обращаться к данным других
программ и передавать управление в другие сегменты кода. Меха-
низмы контроля выделенных ограничений составляют основу
средств защиты, которые процессоры Pentium предоставляют в
распоряжение разработчиков защищенных систем.
Передачи управления в защищенном режиме. Передача управле-
ния в защищенном режиме осуществляется командами CALL,
JMP, INT, RET и IRET, а также механизмами исключений и
прерываний. При выполнении команд внутрисегментного перехо-
да селектор кодового сегмента не перезагружается, и осуществля-
ется только проверка границы перехода. Процессор просто удо-
стоверяется, что команда, которой передается управление, нахо-
дится в пределах текущего кодового сегмента. При исполнении
межсегментных команд «дальнего» перехода осуществляется заг-
рузка сегментного регистра CS селектором, с помощью которого
выбирается дескриптор адресуемого кодового сегмента. Как и при
любом межсегментном переходе, процессор в этом случае выпол-
няет проверку привилегированности кодового сегмента назначе-
ния. Если межсегментный переход осуществляется в пределах од-
ного кольца защиты (DPL = CPL), требования защиты выполня-
ются, и доступ к вызываемому сегменту разрешен.
Реализуя защиту, процессор запрещает пользовательским про-
граммам выполнять те операции, которые могут и должны вы-
полняться программами ОС. Однако в любой системе есть некото-
рые стандартные процедуры, которые желательно выполнять на
любом уровне привилегий. Например, необходимо обеспечивать
доступ пользовательских программ к обслуживаниям ОС, проце-
дуры которых обычно размещают на уровне привилегий PL1 (об
услугах ОС можно судить по MS DOS, которая через прерывание
Int21h предоставляет пользователям более 150 разнообразных об-
служивании). При использовании общих правил защиты переход
к таким программам из пользовательских программ должен быть зап-
рещен. Возникает вопрос, как быть? Ответ довольно простой —
при межсегментных передачах управления без исключений из об-
щего правила защиты не обойтись.
Процессоры Pentium обеспечивают два способа реализации меж-
сегментных передач управления из менее привилегированного
сегмента в более привилегированный: обращение к согласован-
ному сегменту и использование шлюзов вызова.
Выделение согласованного сегмента осуществляется с помо-
щью специального бита подчинения С в поле ТУРЕ байта доступа
кодового сегмента. При установке бита С сегмент кода приобрета-
ет статус согласованного, отличительной особенностью которого
является лишение его защиты по привилегиям. Процедуры, раз-
мещенные в согласованном кодовом сегменте, можно вызывать
из программ с любым уровнем привилегий. Это единственный слу-
чай, когда уровень CPL выполняемой программы может быть не
равен уровню DPL вызываемого сегмента.
Наличие согласованных сегментов удобно для организации
системных библиотек, программы которых должны быть доступ-
ны всем задачам.
Большинство кодовых сегментов являются несогласованными
сегментами. Для этих сегментов управление может быть передано
к сегменту только на том же уровне привилегий. В МП Pentium для
обеспечения доступа менее привилегированных программ к более
привилегированным программам ОС предусмотрен специальный
механизм передачи управления только через разрешенные точки
входа. Допустимые точки входа в защищенные процедуры более
высокого уровня идентифицируются специальными дескрипто-
рами, которые называются шлюзами вызова. Благодаря шлюзам
вызова (рис. 5.18), пользовательские программы получают от ОС
только те обслуживания, которые ОС разрешает оказывать пользо-
вательским программам.
В отличие от дескрипторов сегментов кода, данных или стека,
а также системных дескрипторов сегментов LDT и TSS, шлюзы
вызова не определяют никакого адресного пространства, поэтому
в них нет полей базы и предела. По существу шлюзы вызова не
являются дескрипторами, но их удобно размещать в дескриптор-
ных таблицах. При использовании шлюзов вызова передача управ-
ления всегда осуществляется косвенно. Вызывающая программа
обращается к шлюзу вызова, а он (шлюз) определяет точку входа
в вызываемой процедуре (рис. 5.19).
С помощью указания в шлюзе полного адреса перехода (селек-
тор: смещение) обеспечивается вход в защищенную процедуру
только в разрешенной точке, а не в середину процедуры или, что
еще хуже, в середину команды. Учитывая, что при передаче уп-
равления более защищенной программе может потребоваться ко-
пирование параметров из стека вызывающей программы в стек
вызываемой, в шлюзе вызова предусмотрено специальном поле —
Р DPL01100 доступ ООО счетчик слов Селектор сегмента назначения Смещение
Рис. 5.18. Формат дескриптора шлюза вызова 32-разрядного процессора
Рис. 5.19. Схема работы шлюза вызова
счетчик слов WC, в котором указывается число копируемых пара-
метров.
Доступ к шлюзу вызова контролируется механизмом защиты.
Селекторы шлюзов вызова можно загружать только в сегментный
регистр кода CS. Поле DPL в байте доступа шлюза вызова показы-
вает, какой привилегией должна обладать вызывающая програм-
ма для доступа к шлюзу. Общее правило разрешения вызова через
шлюз гласит: шлюз нельзя использовать из кольца с уровнем при-
вилегий меньшим, чем уровень привилегий шлюза, при этом при
доступе к шлюзу действуют такие же ограничения, как и при об-
ращениях к данным другого уровня привилегий (рис. 5.20).
Использование шлюзов вызова удобно проиллюстрировать,
рассмотрев реализацию системы, в которой пользовательская про-
грамма имеет уровень привилегий PL3, а ОС разделена на два
уровня: ядро ОС с уровнем привилегий PL0 и менее критичные
сервисные программы с уровнем привилегий PL1 (уровень при-
вилегий PL2 не используется). В этой системе пользовательская
программа должна иметь возможность вызывать сервисные про-
Рис. 5.20. Схема межуровневых переходов с использованием шлюзов:
• — шлюз вызова; □ — код; 0, 1, 2, 3 — кольца зашиты
Пользовательская программа (PL=3)
Сервисная программа ОС (PL=1)
Ядро ОС (PL=0)
Шлюз ядра (DPL=1)
Сервисный шлюз (DPL=3)
Рис. 5.21. Использование шлюза вызова для передачи управления
в более привилегированный сегмент
цедуры, но не ядро ОС. Для реализации этой возможности целе-
сообразно использовать шлюз доступа к сервисным процедурам с
уровнем привилегий PL3 (рис. 5.21). Сервисные программы, в свою
очередь, могут вызывать ядро ОС. Для таких вызовов в системе
предусмотрен шлюз ядра с уровнем привилегий PL1, который
обеспечивает обращение сервисных процедур к программам ядра
ОС. Обращение пользовательских программ к шлюзу ядра оказы-
вается невозможным вследствие недостаточного уровня их при-
вилегий.
Аппаратные средства поддержки многозадачности. Важнейшей
архитектурной особенностью процессоров Pentium является на-
личие эффективных аппаратных средств поддержки многозадачного
режима, с помощью которых реализуется защита и быстрое пере-
ключение задач. В качестве таких средств используются специаль-
ная структура данных, организованная в виде сегмента состояния
задачи TSS, дескриптор сегмента TSS, дескриптор шлюза задачи,
16-разрядный регистр TR (Task Register) и связанный с ним про-
граммно недоступный теневой 64-разрядный регистр TRt.
Переключение задачи сходно с вызовом процедуры, но требу-
ет сохранения существенно большего количества информации о
состоянии процессора. Содержимое регистров процессора, уча-
ствующих в выполнении задачи, называют средой задачи. Среда
задачи запоминается в сегменте TSS. Для каждой задачи создается
собственный сегмент TSS, фактически характеризующий состо-
яние виртуального процессора задачи в многозадачной системе.
Выполнение задач МП осуществляется в соответствии с планом и
в порядке, определяемым ОС. При переключении задач среда вы-
полняемой задачи переписывается в сегмент TSS этой задачи (на
этот сегмент указывает регистр текущей задачи TRt). После этого
в регистр TR помещается селектор нового сегмента TSS, и в реги-
стры процессора из сегмента TSS вызываемой задачи загружается
содержимое ее среды. Выполнение программы новой задачи про-
должается с команды, адресуемой указателем команд EIP новой
задачи. Указанные операции реализуются автоматически с помо-
щью аппаратных средств процессора. В отличие от вызова под-
программ, при котором в стеке сохраняется адрес возврата (со-
держимое регистра EIP), при переключении задач в стек ничего
не помещается, а выполнение передается в полностью иную сре-
ду — среду вызываемой задачи.
Подобно всем сегментам программы, сегмент TSS определяет-
ся одноименным системным дескриптором, который может на-
ходиться только в глобальной дескрипторной таблице GDT. Си-
стемный дескриптор TSS предназначен для указания местонахож-
дения, размера и уровня привилегий сегмента состояния задачи
TSS. Выбор дескриптора TSS текущей задачи в таблице GDT осу-
ществляется с помощью селектора, загружаемого в программно-
доступный регистр задачи TR. Для уменьшения времени обраще-
ния к операндам сегмента TSS дескриптор TSS текущей задачи
после выборки из таблицы GDT запоминается в программно-не-
доступном регистре TRt.
Сохранение в регистре TRt значений базы и границы сегмента
TSS делает выполнение задачи более эффективным, поскольку
для ссылки к TSS текущей задачи процессору не требуется извле-
кать эти значения из памяти. Содержимое регистра TRt автомати-
чески обновляется процессором при смене задачи (при перезаг-
рузке программно-доступного регистра TR).
При инициализации системы с помощью привилегированной
команды LTR в регистр TR загружают селектор исходной задачи.
В процессе работы содержимое TR может модифицироваться.
С системными сегментами LDT и TSS нельзя явно проводить
операции записи, считывания и выполнения, даже в нулевом
кольце защиты. При необходимости инициализации таких сегмен-
тов в программе должны быть объявлены дополнительные сег-
менты данных с разрешенной записью, определяемые дескрип-
торами, которые имеют тот же базовый адрес и предел, что и
программно недоступный системный сегмент.
Сегмент данных, имеющий одинаковые поля базы и предела с
другим сегментом, называется алиасным сегментом, или сегмен-
том псевдосинонимом.
Обычные правила защиты сегментов применимы и к сегмен-
там TSS. Сегмент TSS можно использовать только внутри кольца,
определенного уровнем привилегий дескриптора этого сегмента.
Для вызова задач в более привилегированном кольце используют-
ся шлюзы задач.
Сегменты TSS 16-разрядных и 32-разрядных процессоров х86
отличаются. Структура сегмента TSS процессора Pentium (рис.
31 15 О
_ 1 Системно-зависимая часть
68h
Базовый адрес БКВВ 0 т 64h
0 LDTR 60h
0 GS 5Ch
0 FS 58h
0 DS 54h
0 SS 50h
0 CS 4Ch
0 ES 48h
EDI 44h
ESI 40h
EBP 3Ch
ESP 38h
ЕВХ 34h
EDX 30h
ЕСХ 2Ch
ЕАХ 28h
EFLAGS 24h
EIP 20h
CR3 ICh
0 SS2 18h
ESP2 14h
0 SSI lOh
ESP1 OCh
o SSO 08h
ESPO 04h
o Обратная связь OOh
Рис. 5.22. Содержимое 32-разряд-
ного сегмента TSS процессора
Pentium
5.22) состоит из обязательной и
необязательной частей. Обяза-
тельная часть сегмента TSS со-
держит всю информацию, необ-
ходимую процессору для реше-
ния задачи. Дополнительная часть
может содержать какую-либо ин-
формацию о задаче, которая ис-
пользуется ОС для собственных
нужд. Обязательную часть сегмен-
та TSS можно представить как
динамический набор регистров,
содержимое которых обновляет-
ся процессором при каждом пе-
реключении задачи, и статиче-
ский набор регистров, содержи-
мое которых процессор считыва-
ет, но не обновляет.
В обновляемую часть TSS вхо-
дят шесть сегментных регистров
CS, DS, ES, FS, GS, SS, восемь
регистров общего назначения
ЕАХ, ЕСХ, EDX, ЕВХ, ESP,
EBP, ESI, EDI, регистр флагов
EFLAGS, указатель команд EIP
и поле, имеющее название «обрат-
ная связь». Это поле обновляется
только при выполнении команд
вызова задач, т.е. когда предпо-
лагается возврат в вызывающую
задачу. При переключении задач
в него записывается селектор TSS
из регистра TR вызывающей за-
дачи. В отличие от процедур по-
вторно вызвать задачу в цепочке
вложенных задач нельзя, так как
уничтожение старого поля «обратная связь» приведет к разруше-
нию всей цепочки.
Необновляемая часть сегмента TSS содержит селектор деск-
риптора таблицы LDT (содержимое регистра LDTR), а также пол-
ные логические адреса трех привилегированных стеков — по од-
ному для каждого из трех колец защиты 0—2.
Некоторые регистры процессора Pentium при переключении
задач не запоминаются в сегменте TSS. В число этих регистров
входят регистры GDTR, TR и теневые регистры. Они либо оста-
ются неизменными (GDTR), либо определяются вновь.
Одна из причин быстрого переключения задач заключается в
том, что объем информации, подлежащей сохранению и повтор-
ному определению, сравнительно невелик.
Сегмент TSS МП Pentium может занимать любую непрерыв-
ную область ОП. Его размер не может быть меньше 104 байт,
поскольку именно такая область памяти необходима для запо-
минания состояния процессора. При переключении задач про-
цессор аппаратно контролирует нижний предел сегмента TSS
и, если он оказывается меньше 104 байт, фиксируется особый
случай неверного TSS. При необходимости сегмент TSS может
быть расширен за счет включения дополнительных областей.
Верхний предел сегмента ограничен значением 4 Гбайт. Допол-
нительные области в сегменте TSS полностью определяются
пользователем и используются по его усмотрению (могут и не
определяться, что чаще всего и делается). Например, в этой
области сегмента TSS удобно хранить содержимое регистров
арифметического сопроцессора задачи. Заметим, что все дан-
ные, размещенные в дополнительной области TSS, сверх аппа-
ратно поддерживаемых 104 байт, процессор игнорирует. Для
использования этих данных необходимо программно вызывать
алиасный сегмент данных.
Кроме содержимого регистров процессора, в обязательной ча-
сти сегмента TSS размещаются 16-битное поле с базой карты раз-
решения ввода-вывода (БКВВ) и бит ловушки Т (Trap), приме-
няемый для отладки. Поле БКВВ содержит 16-битовое смещение в
сегменте TSS, с которого начинается сама двоичная карта ввода-
вывода. Если это поле содержит «0», карта ввода-вывода отсут-
ствует. Двоичная карта разрешения ввода-вывода служит допол-
нительным средством механизма защиты по привилегиям команд
ввода-вывода. Прежде чем рассматривать особенности ее исполь-
зования, кратко охарактеризуем немногочисленную группу ко-
манд ограниченного применения, к которой относятся и коман-
ды ввода-вывода. Процессоры Pentium имеют два класса команд
ограниченного применения: привилегированные команды и чув-
ствительные команды. Ограничения по использованию таких ко-
манд помогают предупреждать столкновения между прикладны-
ми программами и программами ОС.
Привилегированные команды влияют на системные структуры дан-
ных и системные регистры. Они могут использоваться только в
программах с CPL = 0. Если процессор обнаруживает привилеги-
рованную команду в программе с CPL * 0, то он вызывает обра-
ботчик ошибки. В число привилегированных входят команды заг-
рузки регистров дескрипторных таблиц (LGDT, LLDT, LIDT,
LTR), команды запоминания содержимого управляющих, тести-
рующих и отладочных регистров, команда сброса флага переклю-
чения задач CLTS и команда останова HLT.
Чувствительными командами являются команды, использова-
ние которых может быть ограничено задаваемым уровнем приви-
легий. Примером таких команд служат IOPL-чувствительные ко-
манды ввода-вывода IN, INS, OUT, OUTS и команды установки
(сброса) флага разрешения прерываний STI/CLI. Их выполнение
зависит от установленного в регистре EFLAGS уровня привилегий
ввода-вывода IOPL. Поле IOPL указывает не текущий уровень при-
вилегий, а минимальный уровень привилегий, необходимый для
выполнения чувствительных команд. Ограничение в использова-
нии команд ввода-вывода предусмотрено для того, чтобы пользо-
вательская программа случайно или преднамеренно не могла пере-
программировать контроллер прерываний или контроллер прямо-
го доступа к памяти и тем самым открыть доступ к непосредствен-
ной модификации по физическим адресам. Чтобы пользователь не
мог произвольно изменить статус IOPL-чувствительных команд,
поля IOPL и IF в регистре EFLAGS являются защищенными. При
выполнении операций с регистром флагов, например, при вос-
становлении его из стека, биты IOPL и IF регистра EFlags меняют
свое значение только в программах ОС с уровнем привилегий PL0.
При попытке изменения EFLAGS командами с другим уровнем
привилегий эти поля остаются без изменений.
Важно заметить, что ограничения в использовании команд вво-
да-вывода являются не очень жесткими. Разработчики процессора
обеспечили возможность изменять статус IOPL-чувствительных
команд. Это делается с помощью двоичной карты разрешения вво-
да-вывода (рис. 5.23).
Такая карта при необходимости создается для отдельной задачи
и ее содержимое участвует в контроле привилегий команд ввода-
вывода. Без двоичной карты разрешения ввода-вывода выполнение
Рис. 5.23. Организация двоичной карты разрешения ввода-вывода
IOPL-чувствительных команд возможно только при условии, что
уровень привилегий CPL исполняемой программы не больше уровня
привилегий IOPL (CPL < IOPL). Когда для задачи определена карта
разрешения ввода-вывода, механизм защиты при выполнении ко-
манд ввода-вывода изменяется. Если обычная защита по привиле-
гиям запрещает выполнение команд ввода-вывода, процессор об-
ращается к карте ввода-вывода для дополнительной проверки воз-
можности ввода-вывода по конкретным адресам. В двоичной карте
разрешения ввода-вывода каждый бит соответствует одному адресу
порта. Если соответствующие биты карты ввода-вывода содержат
«О», операции ввода-вывода разрешаются, в противном случае
формируется особый случай нарушения общей защиты. Поскольку
процессор обеспечивает обслуживание до 65 356 портов, то полная
карта ввода-вывода, определяющая возможность обслуживания всех
портов, представляет строку длиной 64 Кбит и занимает 8 Кбайт
пространства памяти. Конечно, такая карта требуется не всегда и ее
можно «отсечь» по байтной границе. Все отсутствующие в усечен-
ной карте биты считаются равными «1».
Размещение карты ввода-вывода в сегменте TSS определяется
значением ее базового адреса относительно начала этого сегмента.
Карта заканчивается либо по достижению 8 Кбайт, либо по пре-
делу сегмента TSS. За последним байтом карты разрешения ввода-
вывода должен следовать заключительный байт, содержащий «1»
во всех разрядах. Адрес этого байта должен соответствовать грани-
це сегмента, указанной в дескрипторе TSS.
Двоичная карта разрешения ввода-вывода обеспечивает зада-
чам свободный доступ к незащищенным портам ввода-вывода без
требования понижения значения уровня привилегий в поле IOPL.
Защиту можно обеспечить как для всех, так и для части портов.
Если конец карты ввода-вывода выходит за границу сегмента TSS,
определенную в дескрипторе TSS, то доступность соответствую-
щих портов с высокими номерами не зависит от битовой карты.
Задача, имеющая сегмент TSS с такой картой, может обра-
щаться к портам 8, 9, 10, 11, 12 без учета обычных правил защи-
ты по привилегиям.
5.3. Особенности процессоров, архитектурно близких
к процессорам семейства Pentium
Процессоры, архитектурно близкие к МП семейства Pentium,
производят ряд фирм, в том числе AMD (Advanced micro Devises),
IBM, Cyrix [18, 29]. В основном процессоры этих фирм обладают
близкими, а в ряде случаев и лучшими характеристиками по срав-
нению с процессорами Intel, но имеют меньшую стоимость. Улуч-
шение характеристик достигается за счет технологии и некото-
рых оригинальных архитектурных решений. Так, в МП Nx586
фирмы NexGen, впоследствии поглощенной фирмой AMD, впер-
вые был применен архитектурный прием, обеспечивающий пре-
образование сложных CISC-команд х86 в RISC-команды, испол-
няемые RISC-ядром процессора. Позднее подобное решение в
своих процессорах стали применять и другие производители, вклю-
чая Intel.
Большинство ранних моделей процессоров компании AMD
производились по лицензируемой технологии Intel. Эти процессо-
ры архитектурно не отличались от процессоров Intel, но обычно
появлялись позже и были дешевле. Ситуация изменилась с появ-
лением процессора AMD К5, который создавался параллельно с
МП Pentium.
МП AMD К5 — первый процессор, разработанный самой фир-
мой AMD. При близкой к МП Pentium архитектуре МП AMD К5
имеет более высокие характеристики производительности, кото-
рые достигнуты благодаря использованию кэш-памяти большего
объема (16 Кбайт кэш команд и 8 Кбайт кэш данных) и более
прогрессивной суперскалярной архитектуры. В МП AMD К5 ис-
пользуется преобразователь CISC-команд х86 в RISC-команды и
имеется пять исполнительных блоков, которые одновременно могут
обрабатывать до четырех RISC-команд. Внутренние форматы RISC-
команд (ROP по определению AMD) имеют одинаковую длину.
Обращения к памяти выполняются специальными командами заг-
рузки и записи. Динамическое переименование регистров, пред-
сказание переходов, исполнение команд с возможностью изме-
нения их порядка и другие методы динамического выполнения
обеспечили увеличение производительности МП AMD К5 по срав-
нению с МП Pentium при той же тактовой частоте работы при-
мерно на 30 %.
МП AMD Кб — суперскалярный процессор 6-го поколения.
Он изготавливается по КМОП-технологии с проектной нормой
0,35 мкм, содержит 8,8 млн транзисторов и работает на тактовой
частоте до 233 МГц. Важной характеристикой МП AMD Кб явля-
ется расширение системы команд, которая дополнена мультиме-
дийными командами ММХ. По сравнению с МП AMD К5 размер
кэш-памяти 1-го уровня в МП AMD Кб увеличен. В нем использу-
ются раздельные кэш команд и данных объемом 32 Кбайт каждый.
Как и в МП AMD К5, в МП AMD Кб осуществляется преобразо-
вание CISC-команд х86 в RISC-команды. По архитектуре ядра и
свойствам МП AMD Кб близок к МП Pentium II (МП AMD Кб
был представлен на месяц раньше МП Pentium II), однако в нем
отсутствует кэш-память 2-го уровня и встроенные средства под-
держки многопроцессорных систем. Процессор МП AMD Кб со-
держит семь исполнительных блоков: два блока целочисленных
вычислений, блок мультимедийных команд ММХ, блок опера-
ций с плавающей точкой, блоки загрузки, сохранения и перехо-
дов. Наличие буфера RISC-команд на выходе декодера команд обес-
печивает максимальную загрузку исполнительных блоков. МП AMD
Кб может выполнять до шести RISC-команд за такт. В процессоре
используется спекулятивное исполнение с изменением последо-
вательности команд, переименование регистров, предсказание пе-
реходов. Производительность МП AMD Кб соответствует произ-
водительности процессора Pentium II.
Процессоры AMD К6-2 представляют собой дальнейшее раз-
витие МП AMD Кб. В них впервые применена технология 3DNow!
с расширенным блоком команд ММХ, оперирующих с упакован-
ными числами, в том числе парой упакованных чисел в формате
с плавающей точкой. Применение технология 3DNow! позволило
повысить производительность вычислений с плавающей точкой
при обработке аудиосигналов и 3-мерной графики.
Процессор AMD К7 (Athlon) развивает архитектуру процессо-
ров х86 и по своим характеристикам является аналогом МП Pentium
III, несколько опережая его по производительности. В нем в от-
личие от других процессоров х86 для вычислений с плавающей
точкой применена полностью конвейеризированная суперскаляр-
ная обработка с изменением порядка выполнения команд. Для
повышения эффективности мультимедийной обработки в МП
AMD К7 использована расширенная технология 3DNow!. Боль-
шинство новых команд расширения 3DNow! по выполняемым
функциям совпадает с одноименными командами расширения
SSE процессора Pentium III. Процессор AMD К7 имеет девять
исполнительных блоков: три независимых конвейера целочис-
ленных вычислений, три конвейера для вычисления адресов опе-
рандов и три мультимедийных блока (один для загрузки (сохра-
нения) данных с плавающей точкой и два конвейерных блока
для исполнения команд FPU/MMX/3DNow!). В каждый такт рабо-
ты декодер процессора декодирует три команды х86 в шесть
RISC-команд. Последние поступают в переупорядочивающий бу-
фер емкостью 72 команды. Блок управления распределяет декоди-
рованные команды по исполнительным блокам, выполняет пере-
именование регистров и обеспечивает восстановление правиль-
ной последовательности завершения команд, которые могли вы-
полняться в порядке, отличном от предписанного программой.
Внутренняя кэш-память МП AMD К7 имеет объем 128 Кбайт
(64 Кбайт для команд и 64 Кбайт для данных). Для взаимодей-
ствия с внешним кэшем, размещенным на картридже процессо-
ра, используется специальная шина (как в процессорах Р6 фирмы
Intel). Объем внешнего кэша может варьироваться от 512 Кбайт до
8 Мбайт. На момент создания, благодаря совокупности использо-
ванных архитектурных решений, МП AMD К7 стал самым про-
изводительным процессором семейства х86.
5.4. Процессоры архитектуры IA-64 и VLIW-процессоры
Transmeta Crusoe
Суперскалярная архитектура IA-64 (Intel Architecture 64) явля-
ется результатом совместной разработки компаний Intel и Hewlett
Packard [29, 35]. Эта архитектура радикально отличается от всего,
что до нее использовалось на рынке ПК. Архитектура IA-64 не
является ни 64-разрядным расширением 32-разрядной архитекту-
ры х86 компании Intel, ни переработкой 64-разрядной архитекту-
ры процессора РА-RISC компании Hewlett Packard. В IA-64 реали-
зуется ряд новых подходов, обеспечивающих больший паралле-
лизм при исполнении кода программы и существенное повыше-
ние производительности. К ним относятся «предикация» (способ
обработки ветвлений) и «загрузка данных по предположению».
Одной из наиболее существенных особенностей архитектуры
IA-64 является использование очень длинных командных слов
(VLIW-команд) и большого числа регистров. В суперскалярных
VLIW-процессорах реализуется принцип планирования исполне-
ния команд во время компиляции. Ответственность за параллель-
ное выполнение операций при этом возлагается на внешние сред-
ства, не участвующие непосредственно в управлении исполнением
машинных команд. С помощью оптимизирующего компилятора ис-
ходный текст программы преобразуется в пакеты несвязанных опе-
раций.
IA-64 — полностью 64-разрядная архитектура. В ней определе-
ны 64-разрядное адресное пространство и 64-разрядные форматы
целых чисел и чисел с плавающей запятой. Первым процессором
с архитектурой IA-64 стал МП Itanium фирмы Intel. Как и любой
суперскалярный процессор, МП Itanium содержит большое число
исполнительных блоков, способных одновременно выполнять не-
сколько независимых команд различных типов: целочисленных,
мультимедийных, с плавающей запятой. Конвейер МП Itanium
(10-ступенчатый) в каждый такт работы процессора выдает на
исполнение до восьми машинных команд.
В архитектуре IA-64 определены 128 (64-разрядных) для цело-
численных операндов R0-R127, 128 регистров для 80-разрядных
чисел с плавающей запятой F0-F127, 64 одноразрядных преди-
катных регистра Р0-Р63, 8 адресных 64-разрядных регистров RAO-
RA?, указатель команд IP и ряд регистров управления (рис. 5.24).
Файл целочисленных регистров имеет восемь портов чтения и
шесть портов записи, обеспечивающих одновременный обмен дан-
ными с несколькими исполнительными блоками. В МП Itanium
только первые 32 регистра регистрового файла с именами R0-R31
являются РОН. В них размещаются глобальные переменные, до-
ступные всем подпрограммам. Остальные 96 регистров предназна-
чены для хранения локальных переменных отдельных подпрог-
Рис. 5.24. Программная модель процессора Itanium
рамм и параметров, пересылаемых от вызывающих подпрограмм
к вызываемым и обратно. Указанные регистры организуются в виде
перекрывающихся «регистровых окон» (см. подразд. 4.6.2). Каждой
вновь вызываемой подпрограмме назначается собственное «окно»,
непосредственно следующее за «окном» вызывающей подпрограм-
мы. Размер «окна» назначается при вызове. Использование «реги-
стровых окон» упрощает и ускоряет передачу параметров между
подпрограммами и повышает производительность процессора. Если
размер «регистровых окон» всех подпрограмм превысит 96 регис-
тров, аппаратное обеспечение процессора автоматически расши-
рит «оконное пространство» за счет использования стековой па-
мяти: процессор сохранит содержимое регистров вызывающей
подпрограммы в памяти и восстановит его при возврате.
В состав исполнительных блоков входят по четыре блока вы-
полнения целочисленных операций и операций с плавающей за-
пятой, четыре блока обработки мультимедийных данных, два блока
загрузки (запоминания) и три блока обработки переходов.
На кристалле процессора размещаются раздельные кэш команд
и данных 1-го уровня (по 16 Кбайт каждый) и кэш 2-го уровня
(96 Кбайт). Внешняя кэш-память 3-го уровня (4 Мбайт) выполне-
на в виде отдельной микросхемы, упакованной в один картридж
с процессором.
Оптимизирующий компилятор при компиляции исходного текс-
та программы, представленного, как правило, на языке высоко-
го уровня, формирует 41-битные 3-адресные машинные коман-
ды. Формат машинной команды МП Itanium (рис. 5.25) содержит
14-битовое поле кода операции, три адресных поля (7-битовых)
и 6-битовое поле предикатов.
Отдельные машинные команды компилятор объединяет в длин-
ные командные слова (VLIW-команды), представляющие собой
блок (связку) машинных команд. VLIW-команда (128-битовая)
включает три машинных команды (41-битовых) и 5-битовое поле
шаблона, используемое для управления суперскалярной обработ-
Код операции Адрес приемника Адрес операнда 1 Адрес операнда 2 Поле предикатов
Рис. 5.25. Формат машинной команды процессора Itanium
кой. Соседние блоки (связки) машинных команд могут объеди-
няться в группы команд (суперсвязки). В поле шаблона компиля-
тор указывает, какие команды связки (суперсвязки) будут вы-
полняться параллельно. Рассмотрим варианты шаблона, управля-
ющего выполнением машинных команд (il, i2, i3) одной VLIW-
команды:
il || i2 || i3 — все команды исполняются параллельно;
il & i2 || i3 — сначала исполняется il, затем параллельно i2 и i3;
il || i2 & i3 — параллельно исполняются il и i2, после них — i3;
il & i2 & i3 — команды il, i2, i3 исполняются последовательно.
Компания Intel называет технологию длинных и сверхдлинных
команд IA-64 термином EPIC (Explicitly Parallel Instruction
Computing — вычисления с явным параллелизмом команд).
В МП Itanium используется ряд новых архитектурных решений,
обеспечивающих «извлечение большего параллелизма» из кода
программы и способствующих повышению производительности
процессора. Среди нововведений выделяют устранение условных
ветвлений, обеспечение предварительной загрузки данных и ряд
других. Рассмотрим основные особенности EPIC-архитектуры,
реализованные в этом процессоре.
Предикация — способ обработки условных ветвлений. В основе
данного способа заложена возможность выполнения так называ-
емых предикатных команд, в формате которых, кроме кода опе-
рации и адресных полей, имеется специальное поле предиката.
Использование результата выполнения предикатной команды за-
висит от значения переменной (флага) в поле предиката. Если
флаг установлен, результат предикатной команды фиксируется
(признается действительным), в противном случае предикатная
команда никакого действия не производит, т. е. ведет себя как хо-
лостая команда. Предикаты, в зависимости от значения которых
происходит выполнение предикатных команд, расширяют поня-
тие признаков результата.
Использование предикатных команд в ряде случаев позволяет
исключить в программе команды условного перехода, уменьшить
за счет этого число последовательно исполняемых команд и одно-
временно повысить загрузку исполнительных блоков процессора.
Рассмотрим предикацию более подробно.
Технология компилирования с использование предикации су-
щественно отличается от традиционного компилирования. Ком-
пилятор IA-64 при обнаружении в исходном тексте программы
оператора условного ветвления, например IF-THEN-ELSE, пред-
варительно анализирует его. На основании анализа принимается
решение выделять («отмечать») данное ветвление или нет. Для
отмеченного ветвления компилятор помечает все команды, отно-
сящиеся к одному пути ветвления, уникальным идентификато-
ром, называемым предикатом. Например, командам одной аль-
тернативной ветви, присваивается предикат Р1, а каждой коман-
де другой ветви — предикат Р2. Для кодирования предикатов в
формате команд IA-64 предусмотрено 6-битовое поле. Этому полю
соответствует набор из 64 предикатных однобитовых регистров РО—
Р63. После того как команды «отмечены» компилятор определяет,
какие из них могут выполняться параллельно, и формирует
VLIW-команды.
Когда в процессе выполнения программы процессор встречает
«отмеченное» ветвление, вместо попытки предсказать значение
признака ветвления и выбора команд предсказанного пути он
начинает одновременно выполнять обе «ветви». К моменту опре-
деления значения признака ветвления процессор выполнит неко-
торое количество команд обеих возможных ветвей, но результат
их выполнения временно не фиксируется. Предположим, что ис-
тинное значение условия ветвления соответствует ветви, коман-
ды которой отмечены предикатом Р1. Процессор записывает «1» в
регистр предиката Р1 и «О» — в регистр предиката Р2. После опре-
деления «истинной» ветви процессор проверяет предикатные ре-
гистры предварительно исполненных команд. Если в регистре пре-
диката записана «1», то команда верна и процессор завершает ее
выполнение, сохраняя результат. Если «О», результат отбрасыва-
ется. Благодаря такой организации обработки ветвлений на ма-
шинном уровне ветвления как бы отсутствуют.
Следует заметить, что не все ветвления могут быть отмечены.
Если компилятор «не отметил» ветвление, процессор IA-64 дей-
ствует практически так же, как и современные процессоры: пы-
тается предсказать путь ветвления.
Технология «отмеченных» ветвлений существенно снижает не-
гативное влияние ветвлений на производительность конвейеров.
Испытания показали, что описанная технология позволяет устра-
нить более половины ветвлений в типичной программе, умень-
шая более чем в два раза число ошибок в предсказаниях.
Загрузка по предположению предназначена снизить простои про-
цессора, связанные с ожиданием выполнения команд загрузки
данных из медленной ОП, и повысить производительность про-
цессора. Загрузка по предположению обеспечивает разделение соб-
ственно загрузки данных и их последующее использование.
Компилятор IA-64, просматривая исходный текст програм-
мы, выделяет команды загрузки, использующие данные в памя-
ти. Для каждой из них он добавляет в код программы пару ко-
манд — команду предварительной загрузки (speculative loading),
размещаемую на достаточно большом расстоянии от команды,
использующей данные, и команду проверки загрузки (speculative
check), располагаемую непосредственно перед командой, исполь-
зующей данные. Перемещенные таким образом команды называ-
ются командами загрузки по предположению и помечаются осо-
бым образом. На этапе выполнения процессор заранее исполняет
команду предварительной загрузки и делает это в моменты, ког-
да системная шина не занята. Однако использование считанных
данных откладывается до команды проверки загрузки, которая
проверяет, успешно ли произошла загрузка. Проверка выполня-
ется внутри кристалла процессора и требует меньше времени,
чем загрузка из ОП.
После предварительного просмотра исходного текста програм-
мы, выделения «отмеченных» ветвлений и команд загрузки дан-
ных из памяти компилятор формирует машинный код и упаковы-
вает его в 128-битовые VLIW-команды. Служебная информация в
шаблоне пакета указывает не только на то, какие команды в па-
кете могут выполняться независимо, но и какие команды из сле-
дующего пакета (суперсвязки) могут с ними выполняться парал-
лельно. Команды в пакетах могут принадлежать к различным пу-
тям ветвлений и необязательно должны быть расположены в том
же порядке, что и в исходном коде программы. Поскольку воз-
можность выполнения команд определяется служебной информа-
цией шаблона, компилятор может помещать в пакет зависимые и
независимые команды.
При всех достоинствах МП Itanium ему, как и другим VLIW-
процессорам, свойственен существенный недостаток — произво-
дительность этого процессора существенно зависит от качества
компилятора. Некоторые авторы считают, что разработка каче-
ственного распараллеливающего компилятора может оказаться
задачей более сложной, чем разработка самого процессора.
Рассмотрим особенности VLIW-процессора Transmeta Crusoe
компании Transmeta. Для обеспечения совместимости с процессо-
рами х86 архитектура данного процессора дополнена аппаратны-
ми и программными средствами Code Morphing. С помощью этих
средств во время выполнения программы команды х86 преобразу-
ются во VLIW команды, которые исполняются ядром процессо-
ра, при этом вся окружающая среда, с которой сталкивается про-
цессор, начиная от BIOS и заканчивая программами ОС и пользо-
вательскими программами, контактирует только с Code Morphing,
не имея прямого доступа к ядру процессора.
Ядро процессора Crusoe состоит из пяти модулей четырех раз-
личных типов: два блока для операций с целыми числами, блок
для операций с числами с плавающей точкой, блок для операций
с памятью и модуль обработки переходов. Соответственно и каж-
дая VLIW-команда, длиной 64 или 128 бит, может состоять из
пяти машинных операций этих типов.
Использование средств слоя Code Morphing представляется
достаточно перспективным, так как ничто не мешает сделать вер-
сию встроенного эмулятора (других средств Code Morphing) для
любого набора команд. Плюсом такого подхода является возмож-
ность достаточно радикально изменять архитектуру «исполнитель-
ного процессора», модернизируя его под те или иные требования.
Программная совместимость реализуется сравнительно несложно
путем маскирования изменений архитектуры на уровне Code
Morphing. Основным недостатком предложенного подхода являет-
ся эмуляция базовой системы команд и соответствующее сниже-
ние производительности.
Разработчики Crusoe стремились сделать свой процессор на-
столько маленьким, насколько возможно. Однако им не удалось
добиться достаточного быстродействия. Поэтому процессор нашел
применение на рынке мобильных устройств.
5.5. Семейство процессоров SPARC
Название SPARC (Scaleable Processor ARChitecture — нара-
щиваемая архитектура процессора) определено не для конкрет-
ного процессора, а для системы команд, которой соответствует
семейство процессоров. Основным производителем процессоров
SPARC является компания SUN, которая и предложила эту ар-
хитектуру.
Первые реализации SPARC-архитектуры были выполнены ком-
панией SUN в середине 80-х гг. XX в. на базе процессора RISC-II,
разработанного в университете города Беркли. Это был 32-разряд-
ный суперскалярный процессор с адресуемым пространством па-
мяти 4 Гбайт, расширенным набором регистров и фиксирован-
ным форматом 3-адресных команд.
SPARC — открытая архитектура, поэтому любые производите-
ли могут строить свои процессоры в соответствии с этой архитек-
турой [29, 35]. В настоящее время известны несколько версий спе-
цификации архитектуры SPARC: 32-битные MicroSPARC,
SuperSPARC, HyperSPARC и 64-битные UltraSPARC. Последняя
64-битная версия с адресами и регистрами по 64 бит получила
название SPARC-V9. Архитектура UltraSPARC реализована в се-
мействе процессоров с одноименным названием: процессоры
UltraSPARC I, UltraSPARC II и UltraSPARC III. На базе этих про-
цессоров компания SUN разрабатывает 64-битные рабочие стан-
ции, предназначенные для решения широкого круга задач, в том
числе для работы с мультимедийными приложениями (графиче-
скими изображениями, ауди- и видеообъектами). В настоящее время
стандарт UltraSPARC является стандартом для высокопроизводи-
тельных рабочих станций.
В составе 64-разрядных суперскалярных процессоров
UltraSPARC-1 и UltraSPARC-II (рис. 5.26) можно выделить следу-
ющие основные функциональные блоки [35]:
• блок выборки и распределения команд;
• блоки внутренней кэш-памяти команд и данных;
• блок выполнения целочисленных команд;
• блок выполнения команд с плавающей точкой, объединен-
ный с блоком графических команд;
• блок загрузки (записи);
• контроллер внешней кэш-памяти;
• блок управления памятью и блок интерфейса с внешними
устройствами.
Спецификация системы команд SPARC содержит описание
целочисленных команд и команд с плавающей запятой. Набор
команд SPARC традиционен для RISC-процессора. Он включает
группы команд пересылок, арифметических и логических опера-
ций и передачи управления. Доступ к памяти имеют только ко-
Рис. 5.26. Функциональная схема процессора UltraSPARC
манды загрузки и запоминания. Число способов адресации при
обращении к памяти сведено к минимуму — используется только
индексная адресация. В 3-адресных командах арифметических и
логических операций задаются адреса операндов-источников и
приемника результата. Все операнды этой группы команд разме-
щаются только в РОН. Отличительной особенностью набора ариф-
метических и логических команд является наличие двух модифи-
каций каждой команды набора: одна устанавливает флаги резуль-
тата, а другая — нет. Благодаря такому составу команд, оптимизи-
рующий компилятор имеет больше возможностей реорганизовы-
вать последовательности выполняемых команд так, чтобы исклю-
чать остановы конвейеров.
Набор команд UltraSPARC, наряду с базовой системой команд
SPARC, включает дополнительную группу команд для выполне-
ния операций с мультимедийными данными. Они называются VIS-
командами (Visual Instruction Set). В число VIS-команд входят ко-
манды упаковки и распаковки пикселей в 64-битных словах, ко-
манды перемещения блоков, а также команды поддержки графи-
ческих и мультимедийных приложений, в том числе команды ком-
прессии и декомпрессии видео в реальном времени. Команды для
мультимедиа являются аналогом команд ММХ МП Pentium. Фор-
мат команд SPARC-V9 остался таким же, как и в младших моде-
лях МП SPARC (32 разряда). Неизменной осталась и программная
модель процессора.
Выполнение команд в процессорах UltraSPARC I и UltraSPARC II
осуществляется на четырех 9-ступенчатых конвейерах (рис. 5.27).
Первые три ступени являются общими для всех конвейеров. На
этих ступенях в блоке выборки и распределения команд выполня-
ется предварительная выборка команд из любого уровня иерар-
хии памяти: внутреннего кэша команд, внешнего кэша или ОП.
При выборке команд осуществляется их декодирование и реали-
зуется прогнозирование вероятной ветви продолжения програм-
мы. Выбранные и декодированные команды сохраняются в буфере
декодированных команд (максимум 12 команд). Наличие буфера
команд позволяет согласовывать скорость работы памяти со ско-
ростью обработки команд в исполнительных блоках. Не показан-
ный на рис. 5.26 логический блок группирования команд в каж-
дый такт отбирает максимально возможное число (не более четы-
рех) команд, подготовленных к выполнению, и направляет их
для параллельного выполнения в конвейеры операционного бло-
ка процессора. Взаимозависимые команды (по данным или по ре-
сурсам), как и команды, следующие за ними, в группу одновре-
менно запускаемых команд включены быть не могут. Если по ка-
кой-либо причине группирование команд выполнить нельзя, ко-
манды выполняются последовательно. В каждом такте работы на
выполнение могут выдаваться не более двух целочисленных ко-
Рис. 5.27. Конвейеры процессоров UltraSPARC I и UltraSPARC II
манд или команд плавающей точки (VIS-команд), команды заг-
рузки (записи) и команды перехода.
Собственно выполнение команды реализуется на одном из че-
тырех 6-ступенчатых конвейеров. Первые четыре ступени каждого
конвейера используются для обработки команды, а две после-
дние — для проверки исключений и записи результата.
Блок целочисленных вычислений содержит два АЛУ для вы-
полнения арифметических и логических операций и блоки мно-
готактного целочисленного умножения и деления. В этот же блок
вычислений входит блок загрузки (сохранения), представленный
в виде очереди чтения и очереди записи (см. рис. 5.26). Блок рабо-
тает при выполнении команд обращения к памяти в тех случаях,
когда внутренний кэш данных не содержит адресуемых в коман-
де операндов. При выполнении названных команд после вычис-
ления исполнительного адреса операнда в памяти (на ступени Е
конвейера целочисленных вычислений) команда считается как
бы выполненной: она выталкивается из конвейера и направляет-
ся в очередь чтения (записи), где ожидает завершения своего
исполнения, при этом конвейер не останавливается и может заг-
ружаться новыми командами. Благодаря наличию очереди чте-
ния (записи), конвейер изолируется от медленных операций
внешнего обращения к памяти, и последние практически не вли-
яют на скорость выполнения команд, если, конечно, их резуль-
тат непосредственно не используется в следующих командах про-
граммы.
Количество целочисленных регистров зависит от конкретной
реализации SPARC-процессора и варьируется от 64 до 528. Боль-
шой набор РОНя, характерный для берклийской архитектуры
RISC, используется для организации «регистровых окон» (см. под-
разд. 4.6.2). За счет снижения числа обращений к памяти с их по-
мощью обеспечивается быстрое переключение процедур и дости-
гается повышение производительности.
Большинство операций целочисленных вычислений выполня-
ются за такт на ступени Е, и их результат на следующей ступени
С (кэширование) пересылается во временный регистровый файл,
содержащий блок переименования регистров. Кроме того, в ко-
мандах, устанавливающих флаги, на ступени С фиксируются при-
знаки результата. Поскольку время выполнения команд целочис-
ленных вычислений и команд операций с плавающей запятой
различно, для согласования длин конвейеров в конвейерах цело-
численных вычислений используются две холостые ступени N1 и
N2, на которых никакие действия не проводятся. Для выполнения
немногочисленных многотактовых команд целочисленных вычи-
слений, например команды деления, требуется два или большее
число тактов и они не могут быть завершены на ступени С. Вы-
полнение таких команд продолжается на ступенях N1 и N2, при
этом независимо от длительности выполнения команда попадает
на ступень N2 только на завершающем такте исполнения коман-
ды (между ступенями N1 и N2 добавляется требуемое число так-
тов). На ступени N3 процессор анализирует различные условия
исключений и при необходимости формирует запрос прерывания.
Последняя ступень W (запись результата) предназначена для за-
поминания результата в регистре или кэше.
Блок выполнения команд с плавающей запятой состоит из пяти
отдельных функциональных блоков. Он обеспечивает выполнение
операций с плавающей запятой и обработку мультимедийных дан-
ных. Конвейеры выполнения команд с плавающей запятой име-
ют несколько отличную структуру (см. рис. 5.27), поскольку для
их исполнения требуется более такта (чаще всего не более трех).
Команды деления и извлечения квадратного корня не конвейе-
ризированы. Они выполняются за большее количество тактов, но
не приостанавливают конвейер. Для снижения взаимного влияния
конвейеров процессора друг на друга команды с плавающей запя-
той дополнительно буферизируются с помощью очереди на три
команды.
Блок регистров с плавающей запятой содержит 64 регистра
(32-разрядных). Они предназначены для хранения операндов оди-
нарной, двойной или четверной точности. В регистрах F0 — F63
можно разместить 64 операнда одинарной точности, 32 операнда
двойной точности (регистры FO, F2, F4,..., F62) или 16 операн-
дов четверной точности (регистры FO, F4, F8,..., F60).
Первые четыре ступени конвейера команд с плавающей запя-
той обеспечивают выбор операндов из блока регистров операций
с плавающей запятой (ступень R) и непосредственное исполне-
ние операции, заданной в команде (ступени XI, Х2, ХЗ). При
выполнении «длинных» команд, в частности извлечения квадрат-
ного корня, дополнительные такты вставляются между ступеня-
ми Х2 и ХЗ. Назначение ступеней N3 и W такое же, как и в кон-
вейере целочисленных вычислений: на них осуществляется про-
верка исключений и запись результата в регистровый файл или
кэш.
В процессорах UltraSPARC I и UltraSPARC II используется
кэш-память двух уровней: объединенный внешний кэш команд и
данных прямого отображения емкостью 4 или 8 Мбайт и два внут-
ренних кэша (раздельные кэш команд и кэш данных емкостью по
16 Кбайт). Обращение к памяти осуществляется с помощью блока
управления памятью, в состав которого входят буферы TLB для
команд и для данных (на рис. 5.26 не показаны).
Процессор UltraSPARC III предназначен для использования в
вычислительных системах разного уровня: от высокопроизводи-
тельных рабочих станций и серверов до суперкомпьютеров, объе-
диняющих сотни процессоров. Он изготовляется по технологии
КМОП 0,18 мкм, содержит 16 млн транзисторов (12 млн — па-
мять, 4 млн — логика) и работает на частоте свыше 1 ГГц. МП
UltraSPARC III содержит четыре исполнительных блока целочи-
сленных операций и три блока операций с плавающей запятой.
Совместно блоки выполнения целочисленных команд и команд с
плавающей запятой могут одновременно исполнять до шести ко-
манд за такт. Выполнение команд осуществляется на 14-ступенча-
том конвейере. Для максимальной загрузки исполнительных уст-
ройств параллелизм на уровне команд выявляется статическим
компилятором. В процессоре UltraSPARC III используются рас-
ширенные блоки внутренней кэш-памяти: раздельные кэш ко-
манд (32 Кбайт) и кэш данных (64 Кбайт). МП UltraSPARC III
совместим со всеми ОС и приложениями, созданными для SPARC-
процессоров.
5.6. Микропроцессоры семейства MIPS
Процессоры архитектуры MIPS предложены компанией MIPS
Technology в 1986 г. Первые процессоры MIPS R2000, R3000 рабо-
тали на частоте до 40 МГц. Они были 32-разрядными с 32-разряд-
ной шиной адреса. В состав этих процессоров входили блоки вы-
полнения команд целочисленной арифметики и команд опера-
ций с плавающей запятой. Они содержали 32 РОН для целочи-
сленных вычислений, 16 регистров блока выполнения операций
с плавающей запятой и специальную пару регистров для хране-
ния результатов выполнения операций целочисленного умноже-
ния и деления. Формат команд был фиксирован и составлял 32
разряда. Для обращения к операндам в памяти использовались
только команды Load/Store и один способ адресации. Процессоры
R2000, R3000 имели стандартный 5-ступенчатый конвейер. Они
достаточно долго служили основой для построения рабочих стан-
ций и серверов компаний Silicon Graphics, Digital и др. Позднее
после упразднения фирмы MIPS основным производителем про-
цессоров семейства MIPS стала компания Silicon Graphics.
Следующими членами семейства процессоров MIPS стали
64-битовые процессоры R4000 и R4400. (Компания MIPS
Technology стала первой компанией, освоившей выпуск МП с
64-битовой архитектурой). Набор команд процессоров R4000 и
R4400 (спецификация MIPS II) был расширен командами за-
грузки и записи 64-разрядных чисел с плавающей запятой, коман-
дами вычисления квадратного корня с одинарной и двойной точ-
ностью, командами условных прерываний и некоторыми други-
ми. Процессоры R4000 и R4400 имеют 64-битовую ШД и 64-бито-
вые регистры. В них применяется 8-ступенчатый конвейер выпол-
нения команд и используется удвоение внутренней частоты рабо-
ты процессора. Увеличение числа ступеней конвейера позволило
уменьшить работу, выполняемую на отдельных ступенях конвейе-
ра, и соответственно аппаратную логику этих ступеней. Благодаря
более коротким задержкам распространения сигнала в каждой от-
дельной ступени конвейера, тактовая частота работы процессора
R4400 возросла до 150 МГц. В процессорах R4000 и R4400 исполь-
зовались раздельные внутренние кэши команд и данных емко-
стью по 8 Кбайт каждый. Были разработаны три модификации
этих процессоров. Процессоры с Primary Cache (раздельные внут-
ренние кэши команд и данных имели объем по 16 Кбайт каж-
дый) предназначались для построения наиболее простых рабо-
чих станций. Процессоры с Second Cache содержали логику уп-
равления кэш-памятью 2-го уровня. В модификации с Multi-
processor Cache использовались специальные алгоритмы обеспе-
чения когерентности и согласования состояния памяти для мно-
гопроцессорных конфигураций.
Первой суперскалярной реализацией 64-битовой архитектуры
MIPS стал процессор R8000 (1994), предназначавшийся для ре-
шения задач с интенсивным использованием операций с плаваю-
щей точкой. В каждый такт своей работы процессор может выпол-
нять до четырех команд с плавающей точкой. Процессор R8000
построен на двух кристаллах: на одном — собственно суперска-
лярный процессор, содержащий блок управления внешним кэшем,
а на другом — внешний кэш увеличенного объема (до 16 Мбайт).
Высокая скорость доступа к данным (до 3,2 Гбайт/с) и высокая
скорость выполнения операций позволяет достигать высокой про-
изводительности даже при решении сложных вычислительных за-
дач, например при работе с матрицами размером до 1000x1000
элементов. Процессор R8000 имеет специальные аппаратные сред-
ства поддержки целостности данных в кэше и интерфейсные схе-
мы, обеспечивающие возможность построения симметричных вы-
сокопроизводительных многопроцессорных систем. По произво-
дительности такие системы соответствуют производительности су-
перкомпьютеров, например Cray Y-MP, но много дешевле пос-
леднего.
Наиболее «продвинутым» процессором семейства MIPS явля-
ется суперскалярный 64-битовый процессор R10000 [13]. По срав-
нению с процессором R8000 он более универсален и может ис-
пользоваться как в качестве процессора ПК, так и в рабочих стан-
циях, а также в многопроцессорных серверах баз данных. Процес-
сор R10000 содержит около 7 млн транзисторов (из них 4,5 млн
транзисторов расходуется на внутренний кэш 1-го уровня L1) и
работает на частоте до 200 МГц.
Процессор R10000 (рис. 5.28) содержит следующие основные
блоки:
• системный интерфейс;
• два блока внутренней кэш-памяти 1-го уровня: раздельные
кэш команд и кэш данных емкостью 32 Кбайт каждый;
• блок управления вторичным кэшем;
• блок предварительной выборки команд, обеспечивающий
упреждающую выборку команд, их частичную дешифрацию и
переименование регистров;
• блок предсказания ветвлений;
• три очереди команд;
• блок вычисления адресов, обеспечивающий вычисление ис-
полнительных адресов операндов в памяти;
• блок выполнения команд целочисленной арифметики, в со-
став которого входят АЛУ1, АЛУ2 и блок целочисленных регист-
ров, соединенный через коммутатор с внутренней кэш-памятью
данных;
• блок выполнения команд с плавающей точкой (в его состав
входят сумматор, умножитель и блок регистров с плавающей то-
чкой).
В процессоре R10000 реализованы многие достижения в обла-
сти технологии и архитектуры процессоров на момент его созда-
ния. Большое внимание уделено эффективной реализации иерар-
хии памяти, раннее обнаружение кэш-промахов и параллельная
перезагрузка строк кэша с выполнением другой полезной работы.
Процессор R10000 способен выполнять до четырех команд за такт,
в нем используется эффективное предсказание переходов и пла-
нирование загрузки исполнительных блоков.
Системная шина: адрес (данные) — 64 бит, команды — 12 бит, 8 бит контроля
Рис. 5.28. Функциональная схема процессора R10000
Кратко поясним работу процессора.
Взаимодействие процессора R10000 с ОП осуществляется с по-
мощью системного интерфейса через блоки внешней и внутрен-
ней кэш-памяти. Шина адрес/данные (64-разрядная) системного
интерфейса без дополнительных интерфейсных схем позволяет
строить многопроцессорные системы, объединяющие до четырех
процессоров R10000.
В процессе загрузки внутреннего кэша команды частично деко-
дируются, при этом к каждой команде добавляются 4 бит, указы-
вающие на исполнительный блок, в котором команда будет ис-
полняться. Частично декодированные команды хранятся во внут-
реннем кэше команд в 36-битовом формате. Процессор обеспе-
чивает упреждающую выборку команд из внутренней кэш-памяти
команд, загружая в блок предварительной выборки до четырех
команд в каждом такте работы. В блоке предвыборки на 2-м этапе
декодирования выявляются и, если возможно, с помощью меха-
низма переименования регистров устраняются зависимости по
данным. После декодирования и переименования регистров ко-
манды распределяются по трем очередям (очередь целочисленных
команд, очередь команд и очередь адресных команд). Каждая оче-
редь содержит до 16 команд и осуществляет динамическое рас-
пределение команд по исполнительным блокам (конвейерам вы-
полнения команд). С каждой командой в очереди команд хранится
тег команды, который перемещается вместе с командой по сту-
пеням конвейера. Очередь устанавливает порядок выполнения ко-
манд: она определяет моменты времени, когда становятся дос-
тупными операнды команды, и анализирует состояние соответ-
ствующих исполнительных устройств. Как только ресурс оказыва-
ется свободным, а операнды команд доступны, очередь направ-
ляет команду на исполнение в это устройство.
Декодированная и выбранная из соответствующей очереди ко-
манда выполняется в одном из пяти конвейеров исполнения ко-
манд. Исполнительные блоки выполнения операций целочислен-
ных вычислений и с плавающей запятой являются независимы-
ми, имеют раздельные регистровые файлы и пути передачи дан-
ных. Длина конвейеров исполнения команд различного типа нео-
динакова. Конвейеры целочисленных вычислений имеют длину
1 такт, конвейер вычисления адресов (в командах загрузки (сохра-
нения)) — 2 такта, а конвейеры операций с плавающей запятой —
3 такта.
Целочисленные команды поступают в свободные строки оче-
реди целочисленных команд, при этом в каждом такте в очередь
могут поступать до четырех команд. Команды остаются в очереди,
пока они не будут запущены на исполнение в АЛУ1 или АЛУ2.
Целочисленные АЛУ выполняют стандартные операции сложе-
ния, вычитания и логические операции. Время выполнения всех
целочисленных операций АЛУ, кроме операций умножения и де-
ления, составляет такт. Наряду со стандартными операциями, АЛУ1
реализует сдвиговые операции и обрабатывает все команды пере-
ходов, а АЛУ2 — операции умножения и деления с использова-
нием итерационных алгоритмов. Во время выполнения операций
умножения в АЛУ2 могут выполняться другие однотактные ко-
манды, но сам умножитель оказывается занятым и не может уча-
ствовать в конвейерной обработке. По окончанию умножения АЛУ2
в течение двух тактов записывает результат умножения в двух спе-
циальных регистра, и на это время его работа блокируется. Во
время выполнения «длинных» операций деления АЛУ2 занято на
все время выполнения деления.
Команды операций с плавающей точкой поступают в свобод-
ные строки очереди команд с плавающей точкой, откуда они
выдаются в блок выполнения операций с плавающей точкой. По-
следний с помощью сумматора реализует операции сложения а с
помощью умножителя — выполняет функции умножения. Время
выполнения команд сложения и вычитания чисел с плавающей
запятой равно двум тактам. Логика управления выполнением ко-
манд типа «умножить-сложить» обеспечивает следующую после-
довательность выполнения операций: команда сначала направля-
ется в устройство умножения, а затем в устройство сложения. В
блоке операций с плавающей точкой также обрабатываются «длин-
ные» операции деления и извлечение квадратного корня, при этом
обе операции могут выполняться параллельно. Устройства деле-
ния и извлечение квадратного корня не конвейеризированы и не
могут начать выполнение следующей операции, пока не завер-
шится выполнение текущей.
Адресные команды, обеспечивающие выполнение операций
загрузки (запоминания), реализуются блоком загрузки (запоми-
нания). Этот блок (см. рис. 5.28) представлен в виде нескольких
блоков: очереди адресных команд, блока вычисления адресов, бу-
фера быстрой переадресации виртуальных адресов в физические
(буфера TLB), внутреннего кэша данных, а также не показанных
на рис. 5.28, стека адресов и буфера записи. Очередь организована
в виде циклического буфера FIFO. Адресные команды записыва-
ются в очередь и изымаются из нее строго последовательно. Блок
загрузки (запоминания) выполняет команды загрузки, записи,
предварительную выборку, а также команды работы с кэш-па-
мятью. При обнаружении зависимости по адресам, при кэш-про-
махах или при выявлении конфликта по ресурсам операции за-
грузки (запоминания) не завершаются. В этом случае адресная ко-
манда из очереди не извлекается и повторяется до тех пор, пока
ее выполнение не завершится.
Выполнение всех команд загрузки (запоминания) реализуется
за три такта: выдача команды, вычисление виртуального адреса и
его преобразование в физический. Если данные находятся в кэш-
памяти 1-го уровня, то пересылка данных завершается. В против-
ном случае (при отсутствии данных в кэш 1-го уровня или при
занятости разделяемого порта регистрового файла) обращение к
кэш данных должно быть повторено, что естественно происходит
после извлечения данных из кэш-памяти 2-го уровня или из ОП.
Кэш данных 1-го уровня емкостью 32 Кбайт представляет со-
бой 2-канальную множественно ассоциативную кэш-память. Кро-
ме данных, каждый кэш хранит теги физических адресов памяти,
откуда эти данные выбраны. Массивы тегов и данных являются
независимыми. Они обслуживаются общим потоком адресных ко-
манд. В очереди адресных команд одновременно могут находиться
до 16 команд загрузки (запоминания). Адресные команды обраба-
тываются в четырех параллельно работающих конвейерах. После-
дние обеспечивают вычисление исполнительного виртуального
адреса и его преобразование в физический (1-й конвейер), вы-
полняют проверку тегов (2-й конвейер), осуществляют пересыл-
ку данных в командах загрузки и завершают выполнение команд
записи в память (3-й и 4-й конвейеры). Работа конвейеров выпол-
нения адресных команд тесно координирована. Например, команды
записи сразу же начинают проверку тегов, чтобы в случае необхо-
димости, как можно раньше, инициировать заполнение строки
из кэш-памяти 2-го уровня, но непосредственная запись данных в
кэш задерживается до разрешения записи результата, т.е. пока
команда записи не станет последней в общей очереди выполняе-
мых команд. При выполнении команд загрузки одновременно с
заполнением строки кэш-памяти данные могут поступать по це-
пям обхода в регистровый файл.
Отличительной особенностью процессора R10000 является то,
что при обнаружении промаха в кэш данных его работа не блоки-
руется, т.е. кэш может продолжать обслуживание следующих зап-
росов без остановки конвейеров адресных команд. Эффект приме-
нения неблокируемой кэш-памяти зависит от характеристики
программ. Для реальных программ применение неблокируемого
кэша уменьшает потери времени при кэш-промахах примерно на
15-20%.
Кэш-память 2-го уровня организована как псевдодвухканаль-
ная множественно ассоциативная. В такой кэш-памяти частота про-
махов находится на уровне частоты промахов множественно ассо-
циативной памяти, а время выборки при кэш-попаданиях соот-
ветствует памяти с прямым отображением. Минимальный объем
кэш-памяти 2-го уровня составляет 512 Кбайт, максимальный —
16 Мбайт. Размер строки внешнего кэша программируется и мо-
жет составлять 64 или 128 бит. Для обеспечения целостности дан-
ных каждая 64-битовая строка хранит дополнительный 9-битовый
ЕСС-код, исправляющий одиночные ошибки, и бит четности. При
использовании бита четности проверка на четность выполняется
очень быстро и предотвращается работа с некорректными дан-
ными.
Блок управления вторичным кэшем имеет специальный порт
для подсоединения внешней кэш-памяти 2-го уровня. Обмен дан-
ными между внешней и внутренней кэш-памятью осуществляет-
ся по специальной 128-разрядной шине на внутренней тактовой
частоте процессора 200 МГц с максимальной скоростью 3,2 Гбайт/с.
Большое внимание при разработке процессора R10000 было
уделено разрешению конфликтов по данным, ресурсам и управ-
лению, которые возникают при конвейерном выполнении команд.
Для уменьшения потерь производительности из-за конфликтов по
данным используется метод аппаратного переименования регист-
ров. Регистровый файл процессора R10000 содержит 64 физиче-
ских регистров блока целочисленных вычислений и столько же
регистров блока операций с плавающей точкой. В то же время чис-
ло логических (программно доступных) регистров процессора, об-
ращение к которым выполняется с помощью адресных полей ко-
манд, составляет 32 регистра для блока целочисленных вычисле-
ний и 32 регистра для блока операций с плавающей точкой. Соот-
ветствие между логическими и физическими регистрами устанав-
ливается с помощью таблицы отображения, которая обновляется
при декодировании каждой очередной команды. Новые операнды
или результат спекулятивно выполненной команды временно за-
писываются в один из физических регистров, при этом старое
значение логического регистра сохраняется и может быть при не-
обходимости, например, при прерывании восстановлено в каче-
стве постоянного значения. В процессе выполнения программы
генерируется множество временных значений. Они сохраняются
в физических регистрах вместе с постоянными значениями. По-
сле завершения исполнения команды, когда фиксируется ее ре-
зультат, временные значения становятся новыми постоянными
значениями. Программист имеет дело только с логическими ре-
гистрами. Содержимое физических программно не доступных ре-
гистров от него скрыто. Механизм переименования регистров,
используемый в процессоре R10000, устраняет все конфликты
типа «запись после чтения» и «запись после записи», которые
нередко возникают при неупорядоченном выполнении команд.
Кроме того, при использовании этого механизма упрощается
контроль зависимостей по данным. Действительно, в каждом такте
из очереди команд на выполнение поступают до четырех команд.
Для определения зависимостей по данным между командами,
декодированным в одном такте, достаточно сравнить номера ло-
гических регистров.
Для снижения потерь производительности от приостановок
конвейеров при выполнении команд передачи управления в МП
R10000 используются два наиболее распространенных метода: «ап-
паратное прогнозирование вероятной ветви продолжения програм-
мы» и «выполнение по предположению». Суть названных методов
рассмотрена ранее в подразд. 4.6.2.
При выявлении команд условного перехода выбор прогнози-
руемой ветви продолжения программы выполняется блоком пред-
сказания, содержащим в своем составе специальную кэш-память
емкостью 512 строк. Каждая строка этой кэш-памяти хранит ад-
рес команды условного перехода и 2-битовое поле предыстории
выполнения этой команды. Биты предыстории обновляются в па-
мяти каждый раз, когда принимается окончательное решение о
направлении перехода. Процессор допускает прогнозирование вет-
влений четырех команд условного перехода. Поскольку заранее
неизвестно, будут ли завершены команды выбранной ветви, счи-
тается, что эти команды выполняются по предположению. В со-
ставе блока предсказания имеется специальный стек переходов,
в который записывается информация, необходимая для восста-
новления состояния процессора, если направление перехода пред-
сказывается неверно. Стек переходов имеет глубину в четыре эле-
мента (по числу одновременно обрабатываемых команд условно-
го перехода). При неправильном предсказании направления пере-
хода с его помощью осуществляется быстрое (за такт) восстанов-
ление конвейера.
5.7. Микропроцессоры семейства PowerPC
Архитектура МП PowerPC [29,45] разработана в середине 90-х гг.
XX в. совместными усилиями трех фирм: IBM, Motorola, Apple
для ПК. Основой архитектуры этого семейства является RISC-про-
цессор POWER фирмы IBM. POWER является аббревиатурой на-
звания Performance Optimization With Enhanced — оптимизация
работы с использованием усовершенствованного RISC. По срав-
нению с традиционным RISC-процессором МП POWER имеет
ряд дополнительных свойств.
1. МП POWER — суперскалярный процессор, содержащий в
своем составе три независимых исполнительных блока: целочи-
сленных вычислений, операций с плавающей запятой и обработ-
ки переходов. Для каждого исполнительного блока определен соб-
ственный набор регистров и обеспечена независимость работы этих
блоков. Благодаря такой организации исполнительных блоков ко-
манды могут заканчиваться не в порядке поступления.
2. Система простых RISC-команд МП POWER расширена не-
большим числом «сложных» команд, которые реализуют относи-
тельно сложные операции, например групповую загрузку и чте-
ние памяти. Использование «смешанных» команд позволяет ми-
нимизировать размер программного кода, устраняя основной не-
достаток RISC-архитектур — большой размер программного кода.
3. В МП POWER усовершенствован механизм обработки ко-
манд условного перехода. Традиционно в RISC-процессорах при
выполнении любой команды арифметических и логических опе-
раций в регистре флагов фиксируются признаки результата. Един-
ственный регистр флагов результата существенно ограничивает
возможности процессора выполнять несколько команд одновре-
менно, особенно в случае неупорядоченной обработки. В МП
POWER для устранения указанного ограничения используется
несколько (восемь) регистров условий и условные переходы об-
рабатываются с помощью специального блока обработки ветвле-
ний. Работа этого блока основана на том, что ветви большинства
условных переходов являются короткими и при выполнении ко-
манд ветви происходит возврат к основной программной после-
довательности. Блок обработки ветвлений выделяет в потоке вход-
ных команд условные переходы и заранее выбирает ветвь продол-
жения программы. Если переход не предсказывается, выполнение
программы происходит так, будто команды перехода не было. При
предсказании перехода блок ветвления запрашивает из кэша
последовательность команд, расположенных по адресу ветвления.
В МП POWER реализовано статическое предсказание переходов.
Формат команд МП POWER расширен специальным битом усло-
вий. Модифицируя этот бит, компилятор может изменить прави-
ла предсказания переходов.
В однокристальных МП семейства PowerPC сохранены свой-
ства архитектуры МП POWER и усовершенствован процесс па-
раллельного выполнения команд. Семейство представлено несколь-
кими процессорами: МП PowerPC 601, МП PowerPC 603, МП
PowerPC 604, МП PowerPC 620, МП PowerPC 750, МП PowerPC
G4, МП PowerPC G5 и некоторыми другими. Младшие модели
суперскалярных процессоров семейства (МП PowerPC 601, МП
PowerPC 603, МП PowerPC 604) являются 32-разрядными, а стар-
шие модели (МП PowerPC 620) — 64-разрядными. МП PowerPC
содержат в своем составе несколько исполнительных блоков: блок
целочисленных вычислений, блок операций с плавающей точкой
и блок обработки переходов. Все блоки конвейеризированы. МП
PowerPC допускают внеочередное исполнение команд и обеспе-
чивают одновременную выдачу на исполнение до четырех команд.
В каждом такте работы МП PowerPC 601 и МП PowerPC 603 могут
завершать исполнение до трех команд, а процессор PowerPC 604 —
до шести команд.
Суперскалярный процессор PowerPC 620 стал первой 64-раз-
рядной реализацией архитектуры PowerPC. Он предназначен для
построения высокопроизводительных ВМ, серверов и мульти-
процессорных систем. МП PowerPC 620 совместим по коду с ран-
ними моделями процессоров PowerPC. Благодаря этому он может
выполнять не только новые, специально разработанные для него
64-битовые программы, но и ранее созданные 32-битовые про-
граммы МП PowerPC.
Суперскалярный процессор PowerPC 620 (рис. 5.29) содержит
шесть независимых исполнительных блоков, высокоскоростной
интерфейс, раздельные кэш команд и кэш данных 1-го уровня
емкостью 32 Кбайт каждый, контроллер внешней кэш-памяти. За
такт процессор может выполнять до четырех команд. Для поддер-
жания эффективной загрузки исполнительных блоков в процес-
соре применяется динамическое предсказание переходов и спеку-
лятивное исполнение команд.
Новым блоком процессора PowerPC 620 по сравнению с ран-
ними моделями МП PowerPC является блок предварительного де-
кодирования команд. При выборке команд из ОП или внешней
Системная шина Внешняя кэш-память
Рис. 5.29. Структурная схема процессора PowerPC6 20:
ША — шина адресов; ШД — шина данных
кэш-памяти они предварительно декодируются. Во внутренний кэш
команд 1-го уровня команды поступают уже частично дешифри-
рованными. Предварительное декодирование позволило сократить
число ступеней конвейера и обеспечить выполнение команд за
меньшее число тактов.
Архитектура МП PowerPC развивается и дополняется новыми
моделями. Кроме компании IBM, процессоры этой архитектуры
производит компания Motorola, использующая в обозначении
своих процессоров префикс МРС. Отличительной особенностью
новых моделей процессоров PowerPC является использование в
них технологии обработки мультимедийных данных AltiVec, пред-
ложенной компанией Motorola. В обеспечение этой технологии в
структуру процессора вводят специальные аппаратные средства —
блок векторной обработки. В его состав входят 32 регистра (128-
разрядных) для хранения мультимедийных (векторных) данных
и специализированные арифметико-логические блоки для обра-
ботки этих данных. Технология AltiVec близка к обработке муль-
тимедийных данных командами ММХ и SSE в процессорах Penti-
um II, Pentium III, Pentium IV. Она обеспечивает параллельную
обработку упакованных данных (векторов) длиной 4, 8 или 16 эле-
ментов. Команды AltiVec ускоряют работу мультимедийных прило-
жений и приложений цифровой обработки сигналов. Общее число
команд блока векторной обработки составляет 162 команды.
32-разрядные процессоры МРС750 (G3) предназначены для
использования в мобильных и настольных системах. В них особое
внимание уделено снижению энергопотребления. Напряжение
питания выбирается равным 2,6 или 1,9 В. Развитием МП G3 яв-
ляется процессор G4. Технология обработки мультимедийных дан-
ных AltiVec впервые была использована именно в этом процессо-
ре семейства PowerPC. Важной особенностью процессора G4 яв-
ляется наличие в нем аппаратных средств, обеспечивающих воз-
можность объединения в кластер до четырех процессоров, каж-
дый из которых имеет доступ к кэш-памяти любого другого про-
цессора. Наличие средств поддержки мультипроцессорного режи-
ма позволяет использовать этот процессор в системах симметрич-
ной мультипроцессорной обработки SMP (см. гл. 10).
5.8. Семейство процессоров Alpha
Высокопроизводительные суперскалярные МП Alpha компа-
нии DEC (Digital Equipment) представлены семейством Alpha21x64
(х = 0, 1, 2, 3) [29, 35]. Высокая производительность этих процес-
соров (по данному показателю они являются лидерами среди од-
нокристальных МП) в основном обеспечивается за счет высокой
тактовой частоты работы и использования длинных конвейеров
выполнения операций. Упрощенная логика работы отдельных сту-
пеней конвейеров позволяет минимизировать время исполнения
операций в каждой ступени и благодаря этому повысить частоту
работы конвейеров.
Первый член семейства 64-разрядный RISC-процессор Alpha
21064, разработанный в 1993 г. практически одновременно с МП
Pentium, работает на частоте 200 МГц (частота работы МП Pentium
была 66 МГц). В его составе имеются четыре конвейеризирован-
ных операционных блоков: целочисленных вычислений, опера-
ций с плавающей запятой, обработки переходов и загрузки (за-
поминания) с числом ступеней 7, 10, 6 и 7 соответственно. Реги-
стровый файл процессора содержит по 32 регистра (64-битовых)
блоков целочисленных вычислений и операций с плавающей за-
пятой. Внутренние раздельные кэши команд и данных, размещен-
ные на кристалле процессора, имеют емкость 8 Кбайт каждый.
Первые четыре ступени конвейеров являются общими для всех
конвейеров. За такт процессор может выполнять до двух команд:
команду целочисленной арифметики и команду операций с пла-
вающей запятой или команду перехода. В процессоре Alpha 21064
не используются сложная логика переупорядочения команд и пе-
реименование регистров. Обеспечение эффективной загрузки ис-
полнительных блоков возлагается на компилятор. Разработаны не-
сколько моделей процессоров Alpha 21064.
МП Alpha 21066 и МП Alpha 21068 работают на частоте 166 и 66
МГц, но имеют существенно более низкую потребляемую мощ-
ность. Они используются в одноплатных ВМ и ПК. Отличительной
особенностью этих процессоров является реализация на их крис-
талле встроенного контроллера шины PCI.
Следующий член семейства 64-разрядных процессоров МП Alpha
21164 имеет производительность, вдвое превышающую произво-
дительность своего предшественника. Он выполнен по КМОП-
технологии 0,5 мкм, содержит 9,3 млн транзисторов и работает на
частотах до 500 МГц. По сравнению с МП Alpha 21064 в этом про-
цессоре вдвое увеличено число исполнительных устройств. На кри-
сталле процессора, кроме раздельных внутренних кэшей с пря-
мым отображением команд и данных емкостью 8 Кбайт каждый,
размещен 3-канальный частично ассоциативный кэш 2-го уров-
ня (96 Кбайт). Вторичный кэш значительно снижает количество
обращений к внешней памяти. Процессор содержит аппаратные
средства поддержки работы с внешним кэшем 3-го уровня.
МП Alpha 21164 может выполнять до четырех команд за такт
(две целочисленные и две с плавающей запятой). Блоки целочис-
ленных операций не идентичны. Кроме типичных команд цело-
численной арифметики, один из них может выполнять команды
загрузки, запоминания, сдвиговые операции и целочисленное ум-
ножение, а другой обрабатывает условные переходы. Конвейеры
блоков целочисленных вычислений, операций с плавающей за-
пятой и обращения к памяти отличаются. Их длина варьируется:
при выполнении целочисленных команд используются 7 ступе-
ней, операции с плавающей запятой реализуются 9 ступенями, а
команды обращения к памяти в пределах кристалла процессора
выполняются на 12 ступенях конвейера. Команды выполняются
строго последовательно. Результаты их исполнения непосредственно
записываются в регистры соответствующего регистрового файла,
переименование регистров не выполняется.
Процессор Alpha 21264 (1997) значительно превосходит по про-
изводительности ранние модели МП Alpha 21x64. Его важным от-
личием является способность обрабатывать команды в операци-
онный блок в порядке, отличном от их размещения в программе.
В МП Alpha 21264 (рис. 5.30) реализуется сложный механизм дина-
мического исполнения команд, допускающий динамическое пла-
нирование и спекулятивное исполнение команд, прогнозирова-
ние ветвлений, переименование регистров.
На кристалле процессора размещаются раздельные бдоки внут-
ренней кэш-памяти команд и данных емкостью по 64 Кбайт каж-
дый и контроллер внешней кэш-памяти. Процессор Alpha 21264
содержит четыре исполнительных блока целочисленных операций
и два блока операций с плавающей запятой. Исполнительные блоки
целочисленных операций неравнозначны: два из них являются це-
лочисленными блоками общего назначения, а два других — бло-
Системная шина Шина кэш-памяти 2-го уровня
Рис. 5.30. Функциональная схема процессора Alpha 21264
ками адресных вычислений. Наряду с выполнением арифметиче-
ских и логических команд, блоки адресных вычислений обеспе-
чивают выполнение команд загрузки (сохранения) целочислен-
ных данных и данных в формате с плавающей точкой. Целочис-
ленные блоки общего назначения реализуют сдвиговые операции
и переходы. Кроме того, один из этих блоков выполняет команды
обработки мультимедийных данных.
После выборки, декодирования и переименования регистров
команды помещаются в одну из очередей выполнения команд
(целочисленных операций и операций с плавающей запятой). Ко-
манды, подготовленные к исполнению (с доступными операнда-
ми), могут выполняться в порядке, отличном от их размещения в
программе. Больший приоритет имеют команды, дольше находив-
шиеся в очереди. Одновременно могут исполняться до шести ко-
манд.
Последним членом семейства процессоров Alpha 21x64 являет-
ся процессор Alpha 21364 компании Compaq (в конце 90-х гг. XX в.
Compaq приобрела компанию DEC). Процессор производится по тех-
нологии с проектной нормой 0,18 мкм, содержит около 100 млн
транзисторов (из них 92 млн расходуются на кэш). МП Alpha 21364
является развитием процессора Alpha 21264. В нем наряду с ядром
МП Alpha 21264 использован ряд архитектурных решений, обес-
печивших существенное повышение производительности [29]. Но-
выми блоками процессора Alpha 21364 являются 6-канальный час-
тично ассоциативный кэш 2-го уровня объемом 1,5 Мбайт, конт-
роллер управления внешней динамической памятью и встроенный
сетевой интерфейс. Значительный объем кэша 2-го уровня и встро-
енные средства управления внешней памятью удешевляют постро-
ение систем на основе данного процессора, а благодаря наличию
встроенного сетевого интерфейса существенно упрощается объ-
единение процессоров в высокопроизводительные ВС (см. гл. 12).
5.9. Процессоры PA-RISC
Основным назначением процессоров семейства РА-RISC яв-
ляется их применение для выполнения научных расчетов с интен-
сивной переработкой больших объемов данных. Отличительной
особенностью процессоров этого семейства является наличие в
них специальных аппаратных средств поддержки работы внешних
кэшей команд и данных.
В состав семейства входят суперскалярные 32-разрядные RISC-
процессоры РА-7100, РА-7200 и 64-разрядные процессоры РА-
8000, РА-8200 и РА-8500. В каждом последующем члене семейства
разработчики реализуют практически все известные способы по-
вышения производительности. В процессоре РА-8000 (первом про-
цессоре с 64-битной архитектурой) нововведением является ди-
намическое (внеочередное) исполнение команд (в терминах
Hewlett-Packard «интеллектуальное выполнение»). Средства вне-
очередного исполнения команд обеспечивают аппаратное распре-
деление команд по четырем конвейерам процессора и лучшее ис-
пользование функциональных блоков. Процессор РА-8000 [29] со-
держит в своем составе большой набор исполнительных блоков:
два блока для выполнения целочисленных операций, два цело-
численных блока операций сдвига, два блока умножения (сло-
жения) чисел с. плавающей точкой, два блока деления (извле-
чения) квадратного корня и два блока загрузки (запоминания).
После выборки команд из внешнего кэша и их декодирования ко-
манды поступают в буфер переупорядочения объемом в 56 команд.
Этот буфер позволяет поддерживать постоянную занятость испол-
нительных блоков и минимизирует конфликты по ресурсам (с по-
мощью механизма переименования регистров). Наряду с динами-
ческим исполнением, высокие характеристики производительно-
сти процессора РА-8000 обеспечивают предсказание переходов и
выполнение команд по предположению, а также наличие высоко-
производительного интерфейса. В каждом такте работы процессора
на исполнение могут поступать до четырех команд. Недостатком
процессоров архитектуры РА-RISC является отсутствие в их со-
ставе внутренних кэшей команд и данных. Более медленный до-
ступ к данным во внешнем кэше компенсируется большим объ-
емом внешнего кэша (до 4 Мбайт). Использование большого кэша
повышает стоимость систем. Для устранения отмеченного недо-
статка в процессоре РА-8500, изготавливаемом по технологии с
проектной нормой 0,25 мкм, в состав процессора введен внутрен-
ний кэш объемом 0,5 Мбайт для команд и 1 Мбайт для данных.
5.10. Тенденции развития архитектур процессоров
Приведенный в данном разделе обзор архитектур процессоров
для ПК, высокопроизводительных серверов и рабочих станций
позволяет отметить общие тенденции их развития. Движущим мо-
тивом развития архитектур служит опережающий рост потребно-
стей в увеличении производительности процессоров.
Самым существенным фактором, влияющим на архитектурные
решения современных МП, является постоянное совершенствова-
ние технологии производства ИС и, как следствие, — рост уровня
интеграции, уменьшение задержек в вентилях и связях, снижение
энергопотребления при переключениях вентиля. В целом с ростом
уровня интеграции увеличиваются ресурсы на кристалле и повы-
шается тактовая частота работы микросхем. Большое число венти-
лей на кристалле делает возможным применить в одном МП все
известные приемы повышения производительности процессора.
Важнейшими являются два: уменьшение относительного числа об-
менов данными с внешними по отношению к кристаллу устрой-
ствами и использование параллельной обработки на всех уровнях
организации вычислительного процесса. Разработчики процессо-
ров используют увеличивающие ресурсы кристалла для повыше-
ния производительности именно по эти двум направлениям. Пер-
вое направление связано с увеличением объема внутренней кэш-
памяти и совершенствованием способов ее организации. Второе
направление характеризуется реализацией в процессорах принци-
пов конвейеризации и параллельной обработки в нескольких кон-
вейерах на разных стадиях выборки и исполнения команд.
Практически все накопленные в процессе конкуренции раз-
личных фирм архитектурные решения находят свое воплощение в
новых архитектурах. По этой причине в архитектуре современных
процессоров различных фирм много общего и ставится вопрос об
унификации архитектур [29]. На сегодняшний день можно выде-
лить три основных тенденции развития архитектур современных
процессоров:
• применение суперскалярной обработки с динамическим па-
раллелизмом в процессорах с чисто аппаратным механизмом вы-
борки несвязанных команд программы из памяти и параллельном
запуске их на исполнение (процессоры Pentium, PowerPC, Alpha,
SPARC и др.);
• развитие суперскалярной обработки со статическим паралле-
лизмом, при котором выявление скрытого параллелизма и опре-
деление возможности параллельного исполнения команд возлага-
ется на оптимизирующий компилятор (VLIW-процессоры Е2К,
Itanium, Crusoe);
• использование аппаратных средств, обеспечивающих вектор-
ную обработку данных.
Современный процессор — это 64-разрядный суперконвейвей-
ерный, суперскалярный процессор с RISC-операционным ядром
и большим числом исполнительных блоков, реализующий дина-
мическое исполнение команд. Для эффективной обработки дан-
ных мультимедиа и графики система команд современных про-
цессоров расширяется за счет специализированных команд муль-
тимедийной обработки: команд расширений ММХ, SSE, SSE2 в
процессорах компании Intel; AltiVec — IBM, Motorola; VIS —
SPARC; 3DNow! - AMD.
Для объединения процессоров в высокопроизводительные ВС
большинство современных процессоров содержат средства поддер-
жки симметричной мультипроцессорной обработки SMP (см. гл. 10).
Для унификации структур обработки данных в структуры не-
которых современных процессоров включают специальные пре-
образователи исходных кодов команд во внутренние машинные
команды «исполнительного процессора» (например, сложных
CISC-команд в RISC-команды в процессорах Pentium, AMD или
в VLIW-команды в процессоре Crusoe).
Контрольные вопросы
1. Перечислите основные блоки суперскалярного МП Pentium. Как
реализован конвейер исполнения команд МП Pentium?
2. С какой целью в 32-разрядных МП Pentium используется 64-разряд-
ная шина данных? Какие преимущества обеспечивает использование
пакетных (блочных) обменов информации в МП Pentium?
3. Какие особенности аппаратной реализации МП Pentium ММХ обес-
печивают выполнение команд векторной обработки данных? Как реали-
зован конвейер исполнения команд МП Pentium ММХ?
4. Рассмотрите достоинства и недостатки используемого способа ап-
паратной реализации технологии ММХ в МП Pentium ММХ. Что яви-
лось определяющим в выборе такого способа?
5. Что определяет понятие «принцип динамического исполнения ко-
манд» в процессорах Р6?
6. Какие преимущества обеспечивает конвейер неупорядоченной об-
работки в процессорах Р6?
7. Поясните назначение и функции блока переименования регистров
в процессорах Р6.
8. Поясните назначение команд SSE МП Pentium III. Какие дополне-
ния были внесены в структуру МП для их реализации?
9. Поясните назначение кэш трасс в структуре МП Pentium IV. За счет
чего обеспечивается повышение производительности процессора Pentium
IV при использовании кэш трасс?
10. Поясните назначение регистров прикладной программной модели
МП Pentium.
11. Поясните назначение регистров системной программной модели
МП Pentium. Почему регистры глобальной и локальной дескрипторных
таблиц имеют разный формат?
12. Какие режимы (способы) адресации допускает МП Pentium при
обращении к операндам в памяти? Каким образом в этих процессорах
кодируются используемые способы адресации?
13. Поясните назначение и использование атрибутов защиты, указы-
ваемых в дескрипторе сегмента МП Pentium. Что понимается под приви-
легиями?
14. Как реализуются межсегментные передачи управления в защи-
щенном режиме? Поясните назначение согласованных сегментов и шлю-
зов вызова. Где размещаются шлюзы вызова и чем они отличаются от
дескрипторов сегментов?
15. Какие аппаратные средства поддержки многозадачности исполь-
зуются в МП Pentium?
16. Проанализируйте формат VLIW-команд МП Itanium. Какую ин-
формацию содержит поле шаблона и как оно используется в процессе
суперскалярной обработки?
17. Что определяет предикация? За счет чего повышается производи-
тельность процессора при использовании предикации?
18. Укажите основную архитектурную особенность процессора Crusoe
компании Transmeta.
19. Охарактеризуйте особенности архитектуры SPARC.
20. Что можно выделить в качестве основной архитектурной особен-
ности процессоров семейства Alpha?
21. Перечислите основные тенденции развития архитектур современ-
ных процессоров.
Глава 6
ПАМЯТЬ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
6.1. Иерархическая организация системы памяти
Память — одна из наиболее важных подсистем ВМ. В первую
очередь от памяти зависят функциональные возможности ВМ как
средства обработки данных (зависит возможность установки и ис-
полнения того или иного ПО). Организация и характеристики па-
мяти существенно влияют на все общетехнические показатели ВМ:
производительность, стоимость и надежность.
Назначение памяти — запись, хранение и чтение информа-
ции, используемой в процессе работы ВМ.
Основные характеристики памяти — информационная емкость
Кп, время доступа к информации ZaoCT, стоимость Сп хранения еди-
ницы информации (бита). Под временем доступа понимают про-
межуток времени между началом обращения процессора за дан-
ными и моментом их появления на выходе памяти. Полный цикл
обращения к памяти занимает несколько большее время и назы-
вается временем обращения. Память относится к основным ресур-
сам ВМ и влияет на ее возможности.
Требования увеличения информационной емкости памяти,
снижения времени доступа и стоимости противоречивы. Поэтому
разработчики ВМ и ВС используют такие компромиссные реше-
ния, которые обеспечивают эффективное функционирование ВМ
при разумных ограничениях на стоимость. Таким компромиссным
решением является многоуровневая организация памяти с исполь-
зованием различных устройств.
Совокупность устройств, обеспечивающих запись, хранение и
чтение информации в ВМ, образует систему памяти. Она включа-
ет: регистры процессора, кэш-память (одного или двух уровней),
ОП, внешнюю память (на ЖД и МД, на компакт-дисках с опти-
ческим считыванием, на магнитной ленте), архивную память в
виде сменных дисков и кассет.
Особо следует выделить ОП. Она имеет линейно-адресную орга-
низацию (см. подразд. 1.3). При этом запоминающие элементы ОП
(электронные схемы, предназначенные для записи, хранения и
чтения 1 бит) сгруппированы в ячейки. Информационная емкость
ячейки кратна байту (1 байт = 8 бит) и может составлять 8, 16, 32,
64 бит. Байт — минимальная адресуемая единица информации.
Запоминающие устройства, в которых доступ к данным осуще-
ствляется по адресу, называют запоминающими устройствами с
произвольным доступом.
Информационный обмен процессора с периферийными уст-
ройствами осуществляется через регистры соответствующих кон-
троллеров и адаптеров. Эти регистры упорядочены и перенумеро-
ваны. Номер регистра является его адресом. В командах ввода-вы-
вода указываются эти адреса.
Чтобы различать адреса ячеек ОП и регистров ввода-вывода в
большинстве ВМ используют два различных АП: ОП и перифе-
рийных устройств. Тип используемого процессором АП определя-
ется типом исполняемой команды.
Кэш-память является буфером между ОП и процессором. По-
этому адреса кэша повторяют соответствующие адреса ОП. Необ-
ходимость введения кэш-памяти и основные принципы ее орга-
низации были рассмотрены в гл. 4.
Организация информации во внешней памяти построена на
принципах, отличных от линейно-адресной организации ОП.
Информация структурируется с учетом содержания и соответству-
ющих логических связей. Основной единицей информации здесь
является файл. Файл — совокупность связанных записей, рассмат-
риваемая как единое целое. Записью называют совокупность дан-
ных, характеризующую тот или иной объект. По виду информа-
ции различают программные файлы и файлы данных. Пользова-
тель определяет имя файла и его логическую организацию. Поиск
нужного файла осуществляется не по адресу, а по имени файла.
Вычислительный процесс в ВМ организует процессор. При
обработке и перемещении данных процессор обращается по адре-
су. Но адреса есть только в ОП. Поэтому данные, хранимые во
внешней памяти, при обработке требуется переписать в ОП. Кон-
троллеры ВЗУ содержат регистры, каждый из которых имеет ад-
рес в АП внешних (периферийных) устройств. Используя эти ад-
реса, процессор организует обмен данными между основной и
внешней памятью. Работой процессора при этом управляет ОС.
В процессе работы ВМ информация (программы, данные), необ-
ходимая процессору, передается из ВЗУ в ОП и записывается на
место утратившей для процессора актуальность информации, ко-
торая предварительно копируется в ВЗУ. Обмен информацией осу-
ществляется файлами. Чем больше информационная емкость ОП,
тем реже требуется обмен с ВЗУ, тем быстрее решаются задачи на
ВМ.
В табл. 6.1 приведены типичные характеристики различных уст-
ройств системы памяти. Следует отметить, что с развитием техноло-
гий изготовления запоминающих устройств характеристики посто-
янно улучшаются. Темпы изменений были рассмотрены в гл. 3.
Таблица 6.1
Основные характеристики устройств системы памяти ВМ
Характеристика Уровень иерархии
Регистр Кэш-память ОП НЖМД
1. Информа- ционная емкость Ип, байт <103 <4 106 <4-109 >10“
2. Время доступа (цост> НС 0,5-3 1-3 30-100 2-106
3. Применяемая технолоия изготовления CMOS*, BiCMOS** CMOS SRAM*** CMOS DRAM**** Магнитный диск
4. Устройство (программа) уп- равления обме- ном МПА МП Контролер кэша, ОП ОС ОСи пользователь
5. Следующий уровень обмена информацией кэш-память ОП НЖМД Магнитная лента, ком- пакт-диск
* SMOS — транзисторы, изготовленные по КМОП-технологии.
** BiCMOS — БИКМОП-технология, сочетающая биполярные и униполяр-
ные транзисторы.
*** CMOS SRAM — СБИС статической памяти, выполненные по КМОП-
технологии.
**** CMOS DRAM — СБИС динамической памяти, выполненные по КМОП-
технологии.
Из табл. 6.1 видно, что чем ниже уровень иерархии, тем боль-
ше быстродействие, но при этом и стоимость запоминающего эле-
мента также выше.
Алгоритмический характер обработки данных и принципы
организации ВМ обусловливают свойство временной и простран-
ственной локальности программ и данных. Оно проявляется в
том, что на отдельных этапах решения какой-либо задачи в вы-
числительном процессе задействована относительно небольшая
доля команд и данных соответствующей программы. Но в про-
цессе работы эту задействованную часть информации требуется
обновлять. Это свойство и позволяет использовать в ВС устрой-
ства памяти с различным быстродействием. Выбор информаци-
онного объема устройств памяти и организация обмена информа-
цией между ними проводятся в целях оптимизации соотношения
стоимости к быстродействию всей системы памяти. Согласно из-
вестной статистике свойство локальности программ и данных чис-
ленно характеризуется соотношением 90/10—10 % команд текста
программы при ее выполнении составляют 90 % выполненных ко-
манд (за счет многократного выполнения этой небольшой части
команд) [50].
ОП строится на СБИС полупроводниковых запоминающих уст-
ройств. Как указано в табл. 6.1, в основном используются СБИС
динамической и статической памяти, выполненные по КМОП-
технологии. Особенности схемотехники и организации работы
СБИС существенно влияют на структурную организацию устрой-
ства ОП. Иерархическая организация ОП имеет следующие уров-
ни: СБИС, модуль памяти (SIMM, DIMM), накопитель, разде-
ленный на банки. На организацию ОП и ее взаимодействие с цен-
тральным процессором существенно влияет использование кэшей.
6.2. Схемотехника и организация работы СБИС
динамической памяти
С развитием технологии производства ИС изменяются структу-
ра и организация работы СБИС динамической памяти — СБИС
DRAM. Однако при этом построение ЗЭ для хранения 1 бит ин-
формации и организация матрицы ЗЭ остаются неизменными. Но
именно эти решения в значительной мере определяют структуру
СБИС и особенности ее использования в составе ОП. Поэтому
рассмотрим структуру, схемотехнику и организацию работы асин-
хронной СБИС DRAM. Далее, после рассмотрения организации
работы ОП с использованием кэшей, вернемся к вопросам раз-
вития структуры СБИС DRAM и влиянию изменений в структуре
СБИС на характеристики ВМ.
Представим СБИС DRAM в виде «черного ящика», использу-
емого в функциональных схемах, с указанием входов и выходов.
ЗЭ в СБИС образуют прямоугольную матрицу. Доступ к отдельно-
му ЗЭ осуществляется выбором соответствующей строки и столб-
ца в матрице. При этом код адреса организован следующим обра-
зом: старшие ш разрядов кода адреса соответствуют номеру стро-
ки в матрице, а оставшиеся младшие разряды — номеру столбца.
Для ввода кода адреса используются входы А (рис. 6.1). Код адреса
вводится в два приема: сначала т разрядов адреса строки, а затем
оставшиеся разряды кода адреса — адрес столбца. С использова-
нием т контактов поля А можно адресовать до N= 22т ячеек. Как
будет показано ниже, параллельно-последовательный способ ввода
адреса ячейки памяти не увеличивает время доступа, уменьшение
же числа требуемых контактов СБИС существенно для снижения
ее стоимости.
Информационный объем VСБИС DRAM определяется числом
ячеек N и числом разрядов п в ячейке: V= N'x п. С целью умень-
шить число выводов в корпусе
СБИС DRAM на первых этапах их
создания получили распростране-
ние СБИС с однобитовой орга-
низацией (и=1). Приведенная на
рис. 6.1 СБИС относится к одно-
битовым. Вход DI (Data In) слу-
жит для ввода одного бита при
записи. Выход DO (Data Out) —
для вывода считанного бита. Для
управления работой СБИС ис-
пользуются три сигнала: RAS# —
строб адреса строки, CAS# —
строб адреса столбца, WE# — раз-
т
А DRAM $
DI
DO
RAS#
CAS#
WUff
Рис. 6.1. Входы и выходы
асинхронной СБИС DRAM
решение записи. Знак # используется для указания того, что ак-
тивный уровень сигнала — низкий. Выходной ключ, связанный с
выводом DO, имеет три состояния: «О», «1» и «большое сопро-
тивление». Во всех режимах работы, кроме чтения, DO находится
в состоянии большого сопротивления. Это позволяет при необхо-
димости увеличения информационного объема накопителя ОП
объединять выводы нескольких СБИС.
Структурная схема СБИС DRAM (рис. 6.2) содержит: матрицу
ЗЭ, регистры адреса, дешифраторы адреса, ключи выбора столб-
цов, блоки ввода-вывода и управления.
Матрица ЗЭ содержит строк (адресные шины) и N2 столб-
цов (разрядные шины). На каждом пересечении шин расположен
ЗЭ. Для выбора ЗЭ в матрице необходимо выбрать строку и стол-
бец. Все разрядные шины разделены пополам. Между половина-
ми каждой разрядной шины включен усилитель воспроизведе-
ния (записи).
Регистры адреса РгАх и РгАу служат для запоминания, а де-
шифраторы ДАХ и ДАу — для дешифрации кода адреса строки и
столбца соответственно. Выбор регистра адреса при записи /«-раз-
рядного кода и разрешение работы соответствующего дешифра-
тора осуществляют управляющие сигналы Ux и U3, формируемые
блоком управления БУ.
Ключи столбцов осуществляют коммутацию сигналов между
разрядными шинами матрицы ЗЭ и шиной ввода-вывода. В режи-
ме чтения информации из СБИС они выполняют функцию муль-
типлексора JV2 —> 1, в режиме записи — селектора (демультиплек-
сора) 1 —»У2. Управляются ключи столбцов сигналами с соот-
ветствующих выходов дешифратора ДАГ
Блок ввода-вывода осуществляет коммутацию сигналов между
шиной ввода (вывода) и внешними выводами СБИС: DI и DO.
Управляют коммутацией управляющие сигналы UA и Us, выраба-
тываемые блоком управления.
DI DO
Рис. 6.2. Структурная схема СБИС DRAM:
ЗЭ — запоминающий элемент; БУ — блок управления; БВВ — блок ввода-выво-
да; ШВВ — шина ввода-вывода; U^.. Us — управляющие сигналы; РгАх, РгА, —
регистры адреса; ДАХ — дешифратор кода адреса строки; ДА, — дешифратор ко-
да адреса столбца; т — число разрядов кода адреса строки
Блок управления вырабатывает управляющие сигналы UV..US,
с помощью которых управляет работой всех операционных эле-
ментов. Работа организована по определенному алгоритму, кото-
рый будет рассмотрен ниже. Цикл работы занимает четыре такта.
Тактовые импульсы вырабатываются тактовым устройством, вхо-
дящим в состав блока управления СБИС. Инициирование рабо-
ты, выбор алгоритма и формирование соответствующих последо-
вательностей управляющих сигналов в блоке управления осуще-
ствляется под управлением внешних сигналов RAS#, CAS# , WE#.
Рассмотрим работу СБИС DRAM на схеме одного (/-го) стол-
бца (рис. 6.3) матрицы ЗЭ. Разрядная шина разделена на две поло-
вины А и В. На рисунке показано пересечение разрядной шины с
адресными шинами х, и хк. На работу существенное влияние ока-
зывают паразитные емкости обеих половин разрядной шины СА и
Св. В промежутках между обращениями к СБИС эти паразитные
емкости заряжаются до напряжения до Е„„, равного половине на-
пряжения питания СБИС Е„. Напряжение Е„„ формируется внутри
СБИС. Заряд емкостей СА и Св до уровня Е„„ производится через
специальные ключи предзаряда VT1 и VT2, управляемые сигна-
лом RAS#.
На каждом пересечении /-й адресной и у-й разрядной шин рас-
положен ЗЭ,;. Он представляет собой МОП-транзистор с каналом
типа п. Затвор транзистора подключен к адресной шине, сток — к
разрядной, а исток в явном виде не подключается к шинам, а
через емкость Су между истоком и подложкой СБИС связан с ну-
левой шиной. Полупроводниковая структура ЗЭ (рис. 6.4, а) со-
держит подложку из кремния с р-электропроводностью, две об-
ласти п+, образующие две «-перехода, пленку диоксида крем-
ния, в которой из поликремния сформированы затвор и участок
цепи истока транзистора, являющийся одной обкладкой конден-
сатора Су, а другой обкладкой служит подложка. Металлизиро-
ванные выводы стока С и затвора 3 (рис. 6.4, б) подключают тран-
Рис. 6.3. Схема столбца матрицы запоминающего элемента СБИС
DRAM
Рис. 6.4. Запоминающий элемент СБИС DRAM:
а — полупроводниковая структура ЗЭ; б — схема включения ЗЭ в матрицу; ЗЭ —
запоминающий элемент
зистор ЗЭ на пересечении адресной и разрядной шин матрицы ЗЭ.
Емкость Cv ЗЭ может быть заряжена до напряжения, близкого к
напряжению питания Е„, либо разряжена до нуля. Эти две воз-
можности и соответствуют двум значениям хранимого бита («1»
либо «О»), Простота полупроводниковой структуры и минималь-
ное число соединений на кристалле обусловливают малые затра-
ты площади кристалла на ЗЭ и его низкую стоимость.
Можно выделить следующие режимы работы СБИС DRAM:
хранение информации, чтение, запись, регенерацию.
В режиме хранения внешние управляющие сигналы RAS# —
строб адреса строки, CAS# — строб адреса столбца, WE# — раз-
решение записи пассивны (имеют высокий уровень). При этом
тактовое устройство в блоке управления не работает, управляю-
щие сигналы U\... U5 пассивны (равны «О»), на всех выходах де-
шифратора ДАХ сигналы равны
«О», поэтому транзисторы всех
ЗЭ матрицы закрыты. Таким об-
разом, емкости Су всех ЗЭ изо-
лированы друг от друга и от ос-
тальных цепей СБИС. Из-за ко-
нечного значения сопротивле-
ния утечек емкости ЗЭ (1012—
1014 Ом) те из них, которые
были заряжены до Е„, постепен-
но разряжаются, те, на которых
было нулевое напряжение, не
меняют своего заряда. Чтобы не
Рис. 6.5. Диаграмма напряжения на потерять хранимую информа-
емкости Су запоминающего эле- цию, заряды на емкостях необ-
мента при хранении «Ь и «0» ходимо периодически восста-
навливать. Для этого используется режим регенерации (refresh).
Важным для СБИС является параметр TRF— период регенерации.
Он составляет порядка 64 миллисекунд. На емкостях ЗЭ в режиме
хранения информации и при регенерации напряжение изменяет-
ся (рис. 6.5). При регенерации напряжение на ЗЭ, которые храни-
ли заряд, быстро (за 10—20 нс) возрастает до Е„.
Рассмотрим работу СБИС в режиме чтения (рис. 6.6). Цифрами
отмечены события, последовательность которых характеризует ра-
боту СБИС. Штриховкой отмечены интервалы времени, когда зна-
чение соответствующего сигнала не оказывает влияния на работу
СБИС. Работа начинается с установления на входах А адреса стро-
ки Ar (событие 0). После этого поступает сигнал RAS# (событие 1).
При этом закрываются ключи предзаряда VT1 и VT2 (см. рис. 6.3),
начинает работать тактовое устройство в блоке управления и син-
хронно с 1-м тактом появляется управляющий сигнал U\. Адрес
Рис. 6.6. Временные диаграммы работы СБИС DRAM:
Ar — адрес строки; Ас — адрес столбца; /чт — время чтения; /зп — время записи;
/пр — время предзаряда; /дост — время доступа
строки защелкивается в регистре Рг.Ах, и разрешается работа де-
шифратора ДАХ. В одной из адресных шин (например, z-й), соот-
ветствующей коду адреса строки матрицы ЗЭ, появится сигнал
высокого уровня. Это приведет к открыванию транзисторов всех
ЗЭ данной строки (см. рис. 6.3). При этом емкость ЗЭ Q окажется
подключенной параллельно к емкости разрядной шины. Соответ-
ственно в точке А установится напряжение:
= (Сд-Спп + Сзэ^3э)/(СА +Сзэ),
где СА — паразитная емкость шины; Сзэ — емкость конденсатора
ЗЭ; U33 — напряжение на конденсаторе ЗЭ.
Паразитная емкость шины СА во много раз (102—103) превы-
шает емкость Сзэ ЗЭ. Поэтому напряжение СА получает небольшое
приращение Д£7 (единицы милливольт), знак которого зависит от
значения U33 в режиме хранения.
Если U33 = (1 — 0,8)Еп (см. рис. 6.5), то ДС> 0, если £7зэ = 0, то
ДС< 0 (рис. 6.7).
В следующем (втором) такте тактовое устройство СБИС выра-
батывает сигнал U2, который открывает нагрузочные транзисто-
ры VT5 и VT6 в усилителях воспроизведения-записи. При этом в
каждом усилителе возникает регенеративный процесс, направле-
ние развития которого определяется разницей напряжений СА и
UB (см. рис. 6.7). В результате на разрядных шинах А и В устанавлива-
ются напряжения, соответствующие логическому значению счи-
танного бита. Заряды на емкостях всех ЗЭ выбранной строки вос-
станавливаются (произошла регенерация строки). Для продолже-
ния работы тактового устройства, при котором формируются 3-й
и 4-й такт, требуется поступление сигнала CAS#.
Продолжим рассмотрение операции чтения по временным ди-
аграммам (см. рис. 6.6). На адресных входах «А» СБИС происходит
смена кода (события 2, 3). Подается код столбца Ас (С — Column).
2
при 17зэ(0)=0
при {/зэ(0)=£п
Рис. 6.7. Временные диаграммы
напряжения на шине А матрицы
ЗЭ при обращении к ЗЭ
Далее становится активным строб
столбца CAS# (событие 4), кото-
рый разрешает продолжение ра-
боты тактового устройства. Такто-
вое устройство формирует 3-й так-
товый импульс и синхронно с ним
сигнал U3. Адрес столбца защел-
кивается в регистре РгАу, и раз-
решается работа дешифратора ДАГ
После этого сигналы на адресных
входах могут изменяться (собы-
тие 5). На выходах ДАУ на одной
из линий шины У (см. рис. 6.2) по-
является сигнал, открывающий
ключ столбца VT7(см. рис. 6.3). Устанавливается соединение выб-
ранного столбца с шиной ввода-вывода. Поскольку сигнал разре-
шения записи WE# пассивен, то блок управления формирует уп-
равляющий сигнал U4, открывающий выходной ключ в блоке вво-
да-вывода (см. рис. 6.2). При этом сигнал из шины ввода-вывода
поступает на выход DO. Этому соответствует событие б (см. рис.
6.6). Интервал времени от начала обращения к СБИС (событие 0)
до появления данных на выходе (событие 6) называют временем
доступа /дост. Это важный параметр, характеризующий быстродей-
ствие СБИС. Через интервал времени, необходимый для переда-
чи считанного кода данных по шине компьютера в другие блоки,
обращение к СБИС завершается. При этом становятся пассивны-
ми управляющие сигналы RAS# и CAS# ( события 7,8). В резуль-
тате закрываются выходные ключи и исчезают сигналы на выхо-
дах DO (событие 9). Как только сигнал RAS# принимает высокий
уровень (событие 7), открываются транзисторы предзаряда VT1,
VT2 (см. рис. 6.3), происходит заряд паразитных емкостей шин СА
и Св до напряжения £пп, равного половине напряжения питания.
Это время называют временем предзаряда гпр. Это время для кон-
кретного типа СБИС нормировано. Оно составляет часть времени
цикла чтения (см. рис. 6.6). До завершения предзаряда нельзя
начинать следующее обращение к СБИС. Это связано с рассмот-
ренным выше механизмом воспроизведения считанной информа-
ции (см. рис. 6.7).
Рассмотрим работу СБИС в режиме записи (рис. 6.6). Начало
работы и первые 2 такта аналогичны режиму чтения (события О—
2). Отличия заключаются в следующем: до поступления адреса стол-
бца (событие 3) на входы DI подается код записываемых данных
(событие 4) и становится активным сигнал WE# (событие 5). При
поступлении строба CAS# (событие б) разрешается продолжение
работы тактового устройства (см. рис. 6.2). В 3-м такте формируется
сигнал U5 записи, который открывает входные ключи в блоке вво-
да-вывода. При этом сигнал с входа DI передается в шину ввода-
вывода. В соответствии с кодом адреса столбца открывается один
из ключей VT7(см. рис. 6.3). На разрядной шине В устанавливается
такое же напряжение, как на шине ввода-вывода (и на входе DI).
Если это высокий уровень, то транзистор VT3 открывается, и триг-
гер (усилитель воспроизведения записи) переходит в состояние:
[/А = 0, UB = £п; если это низкий уровень, то транзистор VT3 закры-
вается, и триггер переходит в состояние: t/A = £п, UB = 0. В соответ-
ствии с установившимися на разрядных шинах А и В напряжени-
ями заряжается (или разряжается) емкость «выбранного» ЗЭ. Да-
лее становятся пассивными управляющие сигналы WE#, RAS# и
CAS# (события 8, 10, 11). Далее, как и в режиме чтения, следует
предзаряд. Длительность цикла записи Гзп — параметр, характери-
зующий быстродействие СБИС.
Из изложенного следует, что запись в ЗЭ происходит по-раз-
ному, в зависимости от расположения ЗЭ в матрице. Если ЗЭ рас-
положен в верхней половине матрицы, то при записи сигнал
инвертируется, но и при чтении он также инвертируется. Если ЗЭ
расположен в нижней половине матрицы, то инвертирования не
происходит ни при записи, ни при чтении. Во внешнем окружении
СБИС эти особенности внутренних процессов не проявляются.
В режиме регенерации из управляющих сигналов подается только
RAS#. Работа занимает два такта с последующим предзарядом. При
этом, как и в режимах чтения и записи, во 2-м такте «срабатыва-
ют» все усилители выбранной строки, в результате чего восста-
навливаются напряжения на конденсаторах всех ЗЭ этой строки.
Из приведенного описания работы СБИС следуют ее особен-
ности:
• простота ЗЭ и его соединений (всего два соединения), это
определяет низкую стоимость на 1 бит;
• необходимость регенерации, при которой систематически вос-
станавливаются заряды всех емкостей ЗЭ матрицы (использова-
ние для этого обращений в режимах чтения и записи невозмож-
но, так как эти обращения связаны с произвольными адресами и
не обеспечивают систематического обращения по всем строкам
матрицы);
• малое потребление энергии в режиме хранения информации
(энергия тратится только на «подзаряд» емкостей ЗЭ при регене-
рации);
• малая энергия, связанная с хранением 1 бит: £%Сзэ/2 = 10 лДж.
Недостатком этого является то, что значение хранимого в ЗЭ
бита может быть искажено под действием а-частицы. Происходит
ионизация диэлектрика вокруг емкости ЗЭ, и заряд стекает. В за-
висимости от того, находился ЗЭ в верхней или нижней половине
матрицы (см. рис. 6.2), либо «0» меняется на «1», либо «1» на «0».
Так как небольшая остаточная радиоактивность присутствует в
пластмассовом корпусе СБИС, это приводит к случайному пото-
ку сбоев. Интенсивность потока сбоев намного выше интенсивно-
сти отказов. Для повышения достоверности и надежности хране-
ния информации принимают специальные меры.
6.3. Организация регенерации
При операциях чтения и записи в ячейку СБИС за первые два
такта работы происходит регенерация строки запоминающих эле-
ментов ЗЭ выбранной строки. Однако обращения по определен-
ным адресам носят случайный характер, а время надежного хра-
нения информации в виде заряда на емкости ЗЭ ограничено (см.
рис. 6.5). Поэтому требуется организация самостоятельного про-
цесса регенерации СБИС DRAM, не зависимого от работы про-
цессора и обеспечивающего систематическое восстановление за-
рядов в ЗЭ последовательно во всех строках матриц.
Важным параметром регенерации является период TRF (Refresh
Time). Он составляет 8 — 64 мс. Цикл регенерации строки ЗЭ зани-
мает часть цикла чтения (см. рис. 6.6), включающую передачу на
адресные входы СБИС адреса строки AR (событие О'), формирова-
ние строба адреса строки RAS# (событие 1) и последующие за
этим два внутренние такта управления, вырабатываемые блоком
управления (см. рис. 6.2). Во 2-м такте срабатывают усилители вос-
произведения-записи, и происходит регенерация зарядов на ем-
костях всех ЗЭ выбранной строки (см. рис. 6.7). Далее сигнал RAS#
становится пассивным, и происходит «предзаряд» емкостей СА и
Св разрядных шин матрицы ЗЭ (?пр на рис. 6.6). Отличие цикла
регенерации от цикла чтения заключается в том, что при реге-
нерации адрес столбца Ас и строб CAS# не подаются, соответ-
ственно не инициируется формирование 3-го и 4-го тактов ра-
боты СБИС и обмена данными с шиной данных не происходит.
Длительность цикла регенерации tpr меньше, чем длительность цик-
ла чтения Ап- и составляет tpr = 15...30 нс. Время регенерации СБИС
^рг.сбис = гДе М — число строк матрицы ЗЭ (см. рис. 6.2).
СБИС DRAM с одинаковым информационным объемом (напри-
мер, 4 Мбайт) имеют модификации, отличающиеся различной
организацией матрицы ЗЭ (в рассматриваемом примере: iK* 4К,
2К^2К, 4А'х 1Х).Чем больше строк, тем больше время регенера-
ции СБИС, но тем меньше энергопотребление. Поэтому вариан-
ты организации матрицы с большим числом строк используются
в СБИС для портативных компьютеров. Оценка времени регенера-
ции СБИС для приведенного примера составит ?рг.свис = М^>г =
= 2000 • 30 = 60 000 нс = 60 мкс. Приведенная оценка показывает,
что регенерация занимает небольшую часть периода регенерации
Trp = 8... 64 мс. Имеется несколько способов организации регене-
рации в ВС.
Наиболее распространенным является способ распределенной
регенерации. При этом период регенерации TRF разбивается на
кванты: ZRF = TRF /Ар Обычно этот интервал составляет 15,6 мкс. За
каждый квант проводится регенерация одной строки, что связано
с затратой времени в несколько десятков наносекунд и слабо вли-
яет на основной процесс выполнения программы. Возможен ре-
жим пакетной регенерации (burst refresh), при котором в каждый
период TRF сначала проводится регенерация всех строк, что зани-
мает порядка 100 мкс, а остальное время отводится для выполне-
ния считываний и записей. Возможен также вариант регенерации
пакетами по четыре цикла.
Возможны различные варианты организации регенерации, от-
личающиеся способом формирования адреса строки и протоко-
лом взаимодействия контроллера памяти и СБИС DRAM. Про-
стейшим является вариант, когда счетчик адреса строк регенера-
ции расположен в контроллере памяти, а временная диаграмма
работы СБИС в режиме регенерации отличается от диаграммы в
режиме чтения (см. рис. 6.6) отсутствием адреса столбца Ас, стро-
ба CAS# и сигналов в шине данных. Этот вариант обозначают как
ROR (RAS Only Refresh).
В настоящее время чаще используется вариант CBR (CAS Before
RAS). При этом счетчик адреса строки размещен внутри СБИС и
поэтому отпадает необходимость передачи адреса. При обращении
к СБИС контроллер памяти формирует только сигналы CAS и
RAS. Причем сначала поступает сигнал CAS, а затем с некоторой
задержкой RAS. Изменение последовательности этих сигналов по
сравнению с режимами чтения и записи и служит сигналом ини-
циирования в СБИС цикла регенерации. По адресу, хранимому в
счетчике адресов строк, выполняется регенерация строки и затем
прибавляется единица в счетчик.
Разновидностью варианта CBR является скрытая регенерация
(hidden refresh). При этом в конце полезного цикла записи либо
чтения сигнал CAS# удерживается в активном состоянии, а сиг-
нал RAS# переводится в пассивное состояние на время предзаря-
да. Затем RAS# становится активным при уже активном сигнале
CAS#, что и инициирует выполнение регенерации по схеме CBR.
Регенерацию называют скрытой, потому что выполнение ее сразу
вслед за полезным циклом не может задержать следующего обра-
щения к памяти, так как процессор в это время выполняет внут-
ренние пересылки.
Следует также отметить, что в видеобуферах графических адап-
теров специальных циклов регенерации не требуется, так как там
периодически считывается вся память, и частота чтения доста-
точна для регенерации.
6.4. Достоверность и надежность хранения информации
При передачах данных между ОП и другими устройствами из-
за действия помех возникают сбои. Чаще всего они носят локаль-
ный характер: искажается один разряд передаваемого слова. Сбои
возникают и в режиме хранения информации в накопителе ОП.
В основном это связано с действием а-частиц. Актуальна задача
обнаружения и исправления ошибок, связанных со сбоями при
передачах и хранении данных. Для повышения достоверности и
надежности данных используют информационную избыточность
и применяют специальные методы кодирования данных. Теория
кодирования достаточно глубоко разработана и продолжает раз-
виваться [30]. Опираясь на результаты теории кодирования, раз-
работаны аппаратные средства для обнаружения и исправления
ошибок, которые используются в составе компьютеров и ВС. Рас-
смотрим основы построения и использования этих средств.
Важным понятием в теории кодирования является «кодовое
расстояние». Геометрическим образом упорядоченного множества
«-разрядных двоичных кодов является л-мерный гиперкуб. Каж-
дой вершине гиперкуба соответствует один вектор (одно значение
кода). При безызбыточном кодировании все вершины гиперкуба
соответствуют различным значениям кода, используемым для
представления данных. Для иллюстрации (рис. 6.8, а) приведен
одномерный куб для простейшего одноразрядного кода. Куб со-
держит 21 = 2 вершины, которым соответствуют двум возможных
значения: «О» и «1». Вершины связаны одним ребром. Кодовое рас-
стояние — это расстояние в графе, т.е. число ребер маршрута между
ближайшими вершинами, представляющими различные значения
кода. В данном примере кодовое расстояние d= 1. Любой сбой при
этом приведет к значимому вектору и не может быть обнаружен.
В нашем простейшем примере сбой приводит к замене «1» на «О»
либо «О» на «1».
Для получения информационной избыточности вводят поми-
мо информационных разрядов (И), используемых при двоичном
кодировании слова данных, дополнительные контрольные разря-
ды (К). Обозначим: п — число информационных разрядов, к —
число дополнительных, контрольных разрядов. Общее число раз-
рядов при избыточном кодировании п + к. Ему соответствует (л +
+ ^-мерный гиперкуб. Но для представления данных используют-
ся не все 2" + к векторов, а только 2". При этом кодовое расстояние
между вершинами используемых векторов d > 1.
Как минимум, можно ввести один дополнительный конт-
рольный разряд. Его называют бит паритета (Parity bit). Значение
этого разряда определяют так, чтобы общее число единиц в полу-
ченном коде было нечетным. Приведем пример использования бита
Рис. 6.8. Кодовые расстояния при различном числе контрольных разрядов
(К) на примере слова с одним информационным разрядом (И):
а — безызбыточный код d = 1, один разряд И; б — код, обнаруживающий оди-
ночную ошибку, d = 2, один разряд И, один разряд К; в — код, исправляющий
одиночную ошибку, d = 3, один разряд И, два разряда К
паритета (разряда К) для одноразрядного исходного кода (рис. 6.8,
б). Соответствующий граф содержит 2” + к = 21 +1 = 4 вершины. Но
только 2 из них (половина) используются для представления дан-
ных. Эти вершины графа отмечены точкой. Им соответствуют коды
«01» и «10». Здесь старший разряд — информационный (сравни с
рис. 6.8, а), а младший — контрольный. При этом кодовое рассто-
яние равно 2. При одиночном сбое мы получим код либо «00»,
либо «11». Оба этих значения не являются разрешенными для пред-
ставления данных и свидетельствуют о сбое. В общем случае бит
паритета р определяется так:
р = У %[/] +1 mod 2.
Код с битом паритета: Х[п: 1] о р, где о — знак конкатенации
(приписывания). Проверка отсутствия сбоя осуществляется так:
s = У %[/] + р mod 2.
Если s= 1, то сбоя не было, если 5 = 0, то был сбой.
В компьютерах бит паритета может вводиться в каждом байте.
Побайтный контроль паритета встроен в процессор, что упроща-
ет организацию «контроля на четность». Как следует из изложен-
ного, бит паритета повышает достоверность хранения и передачи
по шине данных, но не повышает надежность (не позволяет вос-
станавливать информацию). Выявленный с помощью битов пари-
тета сбой вызывает немаскируемое прерывание NMI. Это действие
является программируемым с использованием системных программ.
Специальными битами конфигурационных регистров NMI от схем
контроля можно запретить либо разрешить. Помимо дополнитель-
ных аппаратурных затрат (дополнительные разряды в ячейках па-
мяти и в шинах, схемы контроля) использование контроля на
четность снижает быстродействие, так как в тракт передачи дан-
ных включается схема контроля с глубиной распространения сиг-
налов п. Ясно, что использование бита паритета в каждом байте (а
не одного на все слово) обеспечивает большую достоверность и
снижает глубину распространения сигналов в схемах контроля, а
следовательно и задержку. В целях снижения влияния контроля
паритета на производительность компьютера используется кон-
вейеризация. При этом результат пересылки по шине записывает-
ся в буфер и передается далее независимо от контроля. Выходы
буфера связаны также и с входами схемы контроля. Результат конт-
роля появляется с задержкой на такт относительно пересылки
данных. Эта задержка не включается в процесс обработки данных
до прерывания, возникающего в случае выявления ошибки.
Кодирование, позволяющее исправлять одиночные ошибки,
требует кодового расстояния 3. Приведем пример кодирования
одноразрядного исходного кода с кодовым расстоянием 3 (рис.
6.8, в). На один информационный разряд (И) потребовались два
контрольных разряда (К). Полученному 3-разрядному коду соот-
ветствуют восемь возможных комбинаций и, соответственно, во-
семь вершин графа. Из них только две, соответствующие кодам
«ООО» и «111», являются разрешенными (вершины отмечены точ-
кой). Неразрешенные вершины разделяются на две непересека-
ющиеся группы: с одной единицей в коде («100», «010» и «001»)
и с двумя единицами («011», «101» и «ПО»). Очевидно, что при
одиночном сбое код из первой группы получен из кода «000», а
код из второй группы — из «111». Таким образом, по значению
неразрешенного кода возможно восстановление информации
после сбоя.
В общем случае зависимость между кодовым расстоянием d,
кратностью обнаруживаемых s0 и исправляемых зя ошибок задает-
ся следующими формулами [30]: d=s0 + 1; d=2s„ + 1.
Наиболее вероятны однократные ошибки. Поэтому на практи-
ке для повышения надежности хранения информации в ОП ис-
пользуют корректирующий код (код Хэмминга), исправляющий
однократные ошибки. Для пя информационных разрядов требует-
ся добавить пк контрольных разрядов в соответствии с неравен-
ством
2п* > пк + пк +1.
Из приведенного выражения следует, что чем больше инфор-
мационных разрядов пп в слове, тем меньшую долю в коде имеют
контрольные разряды пк. ОП с обнаружением и исправлением оши-
бок — Error Checking and Correcting (ECC Memory) используют в
компьютерах ответственного применения. При этом ии = 64, пк =
= 7... 8.
Рассмотрим в общих чертах способ получения контрольных
разрядов и их использования для исправления ошибок. При пере-
даче данных в ОП с помощью специального аппаратного блока —
шифратора кода Хэмминга формируются пк контрольных разря-
дов. В соответствии с теорией кодов Хэмминга каждый контрольный
разряд получается суммированием по модулю 2 определенных
номеров информационных разрядов [30]. Таким образом, шифра-
тор содержит ик схем суммирования по модулю 2. При чтении
данных из ОП также определяются лк сумм по модулю 2 опреде-
ленных номеров информационных разрядов и соответствующего
контрольного разряда. В результате этих суммирований формиру-
ется ик-разрядный вектор, называемый «синдром ошибки». Если
он равен нулю, то сбоя не было. Если не равен нулю, то получен-
Матрица СБИС DRAM
Рис. 6.9. Функциональная схема накопителя ОП с обнаружением и ис-
правлением ошибок:
Д — данные; УС — управляющие сигналы; ОШ — сигнал ошибки
ный код указывает номер ошибочного разряда. Для исправления
полученный код синдрома ошибки дешифрируется и ошибочный
разряд инвертируется. Это осуществляет дешифратор кода Хэм-
минга.
Функциональная схема накопителя ОП с обнаружением и ис-
правлением ошибок (рис. 6.9) содержит матрицу СБИС DRAM,
дешифратор, шифратор кода Хэмминга и логику управления, фор-
мирующую управляющие сигналы, которые настраивают схемы
на шифрацию или дешифрацию в зависимости от выполняемых
операций записи либо чтения. При обнаружении и исправлении
ошибок схема формирует сигналы ошибки, которые можно ис-
пользовать для ведения статистики сбоев. В компьютерах СБИС
DRAM размещаются в модулях памяти. Очевидно, что модули,
используемые в ОП с обнаружением и исправлением ошибок от-
личаются от модулей для памяти без исправления ошибок. Эти
отличия должны указываться в идентификационных признаках
модулей. Аппаратура для обнаружения и исправления ошибок
(шифратор и дешифратор с управлением) расположена в СБИС
системного контроллера (чипсета). С помощью настроек базовой
ОС ввода-вывода (BIOS Setup) можно задать различные варианты
поведения системы: автоматическое исправление ошибки без уве-
домления системы, исправление однократных ошибок, уведом-
ление системы об обнаруженных многократных ошибках, уведом-
ление системы об ошибке без исправления. Следует отметить, что
исправление ошибок удлиняет тракт передачи данных и увеличи-
вает задержку, что несколько снижает производительность ком-
пьютера.
6.5. Архитектурные способы повышения скорости обмена
между процессором и памятью
Как уже отмечалось в подразд. 3.4, быстродействие СБИС DRAM
увеличивается существенно медленнее, чем быстродействие про-
цессоров (рис. 6.10 [50]). Из рисунка видно, что особенно боль-
шим различие в быстродействии (производительности) процес-
сора и ОП стало в последние годы в связи с успехами в развитии
субмикронной технологии изготовления ИС. Это противоречие по-
требовало новых архитектурных решений. Важнейшим архитектур-
ным усовершенствованием для сглаживания этого противоречия
явилось введение в структуру ВМ кэш-памяти (быстродейству-
ющего буфера между ОП и регистрами процессора, см. подразд. 4.6).
В основу этого положено с одной стороны свойство локальности
программ (см. правило 90/10 в подразд. 6.1), а с другой стороны
увеличение ресурсов на кристалле и интеграция кэш-памяти в
состав процессорного кристалла (см. гл. 5).
При обмене данными процессора с ОП по СШ используется
принцип квитирования. Его реализация рассматривается в под-
разд. 8.3. Автомат, управляющий обменом по СШ (входит в состав
процессора), для завершения цикла обмена ожидает от пассивно-
го устройства (памяти) сигнала готовности (квитанции). Этот сиг-
нал формируется устройством памяти в соответствии с его быст-
родействием. Работа УА синхронизирована тактовыми импульса-
ми с частотой, принятой в ВМ для СШ. Ожидая сигнал готовно-
сти, автомат включает в цикл шины такты ожидания. В соответ-
ствии с такой организацией быстродействие памяти по отноше-
нию к быстродействию процессора характеризуют числом тактов
ожидания в цикле обращения к памяти. Внешний кэш, вынесен-
ный за пределы кристалла процессора, обычно реализуют на ос-
нове СБИС статической памяти и располагают в непосредствен-
ной близости от процессора. Чем выше быстродействие СБИС па-
мяти, тем выше стоимость. Таким образом, основные показатели:
быстродействие, стоимость и информационный объем взаимосвя-
заны (рис. 6.11). Ограничивая стоимость кэша, разработчик ВМ
может определить варианты его построения, отличающиеся по
стоимости и быстродействию. На производительность ВМ влияет
информационный объем кэш-памяти. Соответствующие зависи-
мости, основанные на результатах статистического анализа про-
изводительности ВМ, рассматриваются в подразд. 8.3.
Использование кэш-памяти существенно влияет на организа-
цию процессора, ОП и на управление информационным обме-
ном по СШ ВМ. Вопросы организации процессора были рассмот-
рены в гл. 4. В данной главе рассматриваются вопросы, связанные
с организацией ОП, при этом существенны отличия, которые
вносит использование кэш-памяти на организацию обмена по СШ.
Рассмотрим функциональную схему (рис. 6.12), поясняющую
организацию информационного взаимодействия центрального про-
цессора с ОП в простейшем случае, когда не используется кэш-
память. ОП включает накопитель (матрицу СБИС DRAM) и кон-
троллер. Контроллер согласует интерфейсы (наборы и временные
последовательности сигналов на выводах процессора и СБИС
Рис. 6.11. Сравнение стоимости кэш-памяти со стоимостью ОП при раз-
личном числе тактов ожидания в цикле обращения к ОП:
С — стоимость; V— объем памяти
Ready
Рис. 6.12. Схема взаимодействия ОП и ЦП (без кэширования):
ЦП — центральный процессор; УС — управляющие сигналы; ОП — основная
память; ТИ — тактовые импульсы; А — адреса; D — данные
DRAM). Схема содержит также буфера адреса и данных. Буфер
адреса запоминает и хранит код адреса в течение всего цикла об-
ращения к ОП. Буфер данных переключает направление передачи
данных и усиливает по мощности сигналы, передаваемые от
процессора в разветвленные цепи накопителя ОП. На схеме по-
казан сигнал готовности (Ready), передаваемый из контроллера
ОП в ЦП.
Рассмотрим функциональную схему, поясняющую организа-
цию информационного взаимодействия центрального процессора
с ОП в современном компьютере, когда используется 2-уровне-
вая кэш-память (рис. 6.13). Из рисунка видно, что кэш-память вклю-
чена параллельно ОП и служит промежуточным буфером. Потре-
бителями данных, извлекаемых из ОП, являются ОУ и блок уп-
равления в составе процессора. При этом информационный об-
мен этих блоков может осуществляться как с ОП (аналогично тому,
как показано на рис. 6.12), так и с кэш-памятью 1-го либо 2-го
уровня.
В гл. 4 рассмотрены принципы организации кэш-памяти и ин-
формационного обмена центрального процессора с ОП. При этом
существенно отметить, что информационный обмен с ОП осуще-
ствляется не отдельным словом, а пакетом данных. Минимальный
размер пакета соответствует строке кэша (32 байт). При 64-раз-
рядной шине данных для передачи минимального пакета требует-
ся четыре цикла шины. Пакетный обмен с одной стороны позво-
ляет интенсифицировать поток данных в СШ и за счет этого умень-
шить затраты времени на обмен, с другой стороны повышает раз-
Рис. 6.13. Схема взаимодействия ЦП и ОП (с кэшированием):
ЦП — центральный процессор; БУ — блок усиления; ОУ — операционное уст-
ройство; ША — шина адресов; ШД — шина данных; УС — управляющие сигналы
нообразие вариантов обмена и усложняет управление. Это опреде-
ляет усложнение взаимодействия центрального процессора и кон-
троллера по шине управления (сравни рис. 6.13 и рис. 6.12).
Рассмотрим принципы повышения скорости обмена при ис-
пользовании пакетов данных. При этом учитываются следующие
особенности передачи пакета по шине: пакет составляют данные,
размещенные в соседних ячейках ОП; большую часть цикла шины
составляет время доступа к данным из-за ограниченного быстро-
действия СБИС DRAM, время передачи данных по шине состав-
ляет меньшую часть. С учетом этих особенностей разработаны сле-
дующие способы обмена данными центрального процессора с ОП:
пакетный доступ, конвейерный доступ, их сочетание.
Структура ОП с пакетным доступом и чередованием банков
данных (рис. 6.14) содержит следующие блоки: накопитель, раз-
деленный на четыре банка (БО, Б1, Б2, БЗ); регистр данных, со-
держащий четыре субрегистра — фиксатора данных (ФО-ФЗ), со-
ответственно четырем банкам; мультиплексор (демультиплексор);
регистр адреса (РА), блок управления. Разрядность ячеек каждого
банка (БО—БЗ) соответствует разрядности данных в СШ (напри-
мер, 64). Адреса присваиваются ячейкам ОП с чередованием но-
мера банка (на рис. 6.14: 0,1, ..., 11).
Рассмотрим в общем случае принцип организации накопителя
ОП с пакетным доступом и чередованием банков. Накопитель (упо-
рядоченный массив л-разрядных ячеек) разделяется на т банков:
во, •••, вт- ь т = 2к, к — целое. В рассматриваемом примере к= 2.
При этом адрес z-й ячейки ОП представляется так:
i = dm + b = d -2к +b,
где d — адрес внутри банка, b — номер банка (Ь = 0, 1, ... т- 1).
Такое распределение адресов между т банками называют ш-
кратным чередованием банков (bank interleaving).
При пакетном обмене в РА запоминается адрес внутри банка.
Блок управления обеспечивает считывание целой строки ячеек из
накопителя, соответствующей адресу в РА во всех т банках. Со-
Запрос (адрес)
, Время доступа ,
ЧтА4 I . ----
5 ------ (<4:7>-»Ф0-3)
6 -----
______________________<8:11>
Рис. 6.14. Структура ОП с пакетным доступом с использованием
чередования банков:
БУ — блок управления; РА — регистр адреса; УС — управляющие сигналы; ШД —
шина данных
держимое считанных ячеек фиксируется (защелкивается) в реги-
стре. Далее данные из ФО, Ф1, ... по очереди с использованием
мультиплексора передаются по системной шине данных.
На временной диаграмме считывания пакета из ячеек с адре-
сами 4, 5, 6, 7, расположенными в одной строке (рис. 6.14), отме-
чено время доступа. За этот интервал времени происходит доступ
одновременно к четырем ячейкам, находящимся в четырех бан-
ках, и считанные данные фиксируются в регистре. Далее содер-
жимое ФО, Ф1, Ф2, ФЗ последовательно через мультиплексор и
шину передается в процессор. Обозначив время доступа и время
передачи соответственно: Тдост и Тпер, получим следующие оценки
для времени чтения пакета Т^:
без чередования банков: = 4(Тдост + Тпер);
с чередованием банков: = Тдост + 4Тпер.
Как отмечалось выше, быстродействие памяти по отношению
к быстродействию процессора характеризуют числом тактов ожи-
дания в цикле обращения к памяти. Допустим, что время доступа
соответствует трем тактам, а время передачи — двум. Тогда в слу-
чае без чередования банков время передачи пакета из 4 слов мож-
но охарактеризовать вектором (5,5,5,5), а при использовании че-
редования банков — (5,2,2,2). Приведенные оценки иллюстриру-
ют повышение интенсивности обмена в структурах накопителя
ОП с пакетным доступом.
При записи работа организована следующим образом: данные
пакета из процессора по очереди записываются в ФО, ... ФЗ, а
затем осуществляется запись одновременно в ячейки всех банков.
Структура ОП с конвейерным доступом и чередованием бан-
ков (рис. 6.15) содержит следующие блоки: накопитель, разде-
ленный на четыре банка (БО, Б1, Б2, БЗ); четыре регистра дан-
ных (Ф) соответственно четырем банкам с независимым управ-
лением (отличие от структуры на рис. 6.14); мультиплексор (де-
мультиплексор); регистры адреса РАО —РАЗ для каждого банка
(отличие от структуры на рис. 6.14), блок управления. Разрядность
ячеек каждого банка (БО —БЗ) соответствует разрядности данных
в СШ (например, 64). Адреса присваиваются ячейкам ОП с чере-
дованием номера банка (на рис. 6.15: 0,1, ..., 11).
Цикл обращения к памяти (например, чтения) содержит три
фазы: доступ к ячейке (от подачи адреса до срабатывания усили-
телей воспроизведения (записи)), воспроизведение данных (пе-
редача данных от усилителей воспроизведения (записи) внутри
СБИС до регистров Ф данных и защелкивание в них), передача
данных от регистров Ф через мультиплексор и СШ в процессор.
При конвейерной работе (см. рис 6.15) рассматривается чтение
пакета с последовательностью адресов: 8, 6, 1, 7. Ограничение на
расположение адресов ячеек пакета здесь менее жесткое, чем при
пакетном доступе. Требуется, чтобы адреса ячеек пакета находи-
чтения
I (записи) I 3 фазы:
qT д8 il Используется БО Ф1 - доступ к ячейке
Чт 6 ——--------- Б2 Ф2 - воспроизведение
Чт 1 Б1 данных D
Зп 7 БЗ ФЗ - передача данных D
t
Разрешен доступ к БО
Рис. 6.15. Структура ОП с конвейерным доступом с использованием
чередования банков:
БУ — блок управления; УС — управляющие сигналы; ШД — шина данных
лись в разных банках (пакет, допустимый для структуры с пакет-
ным доступом, допустим и в структуре с конвейерным доступом).
Из изложенного следует, что управление в структуре с конвейер-
ным доступом сложнее, чем в структуре с пакетным доступом.
Если длительность фаз считать одинаковой, равной Т, то спра-
ведливы следующие оценки для времени чтения пакета из четы-
рех слов:
без конвейеризации = (3 х 4) Т,
при конвейеризации 7^ = 4Т+ 2Т.
В общем случае возможно сочетание обоих изложенных спосо-
бов доступа. При этом накопитель ОП разбивается на m х к бан-
ков, образующих прямоугольную матрицу. Адреса ячеек ОП рас-
полагаются по порядку сначала в банках 1-й строки, затем 2-й и
т.д. Организуется пакетный доступ к строке ячеек и конвейерный
доступ к строкам. В каждом интервале, равном 1/тп цикла памяти,
осуществляется доступ к к ячейкам с идущими подряд адресами.
Изложенные способы повышения скорости обмена между про-
цессором и памятью использованы при развитии структурной
организации СБИС DRAM.
6.6. Архитектурные особенности СБИС динамической
памяти высокого быстродействия
Основой архитектурных усовершенствований СБИС динами-
ческой памяти DRAM, направленных на повышение быстродей-
ствия, является пакетный режим обмена данными как следствие
введения в компьютерах кэш-памяти. Архитектурные методы по-
вышения быстродействия динамической памяти стали развивать-
ся, начиная с использования режима обмена — Fast Page Mode
(FPM). В организации этого режима учитывается то, что при обра-
щении к СБИС DRAM одновременно считываются ЗЭ целой строки
в матрице накопителя (см. рис. 6.2 и 6.3). Это составляет два из
четырех тактов цикла работы СБИС. В 3-м и 4-м тактах в соответ-
ствии с адресом столбца матрицы осуществляется выбор столбца
и связь его с внешним выводом СБИС (DO либо DI). Если адреса
ячеек в пакете при пакетном обмене имеют общий адрес строки
(т. е. старшие разряды кода адреса совпадают), то временную ди-
аграмму работы СБИС DRAM (см. рис. 6.6) можно модифициро-
вать (рис. 6.16, а). Здесь показано последовательное обращение по
четырем адресам в режиме считывания информации. Цикл обра-
щения начинается с установления на адресных входах СБИС DRAM
адреса строки R1, далее становится активным строб RAS и про-
исходит считывание соответствующей строки ЗЭ. Далее одновре-
менно во всех столбцах матрицы срабатывают усилители воспроиз-
ведения-записи (см. подразд. 6.2). Затем на адресные выводы СБИС
подается адрес столбца 1-го слова в пакете С1 и подается строб
CAS, с некоторой задержкой данные D1 появляются на внешних
выводах. После этого строб CAS становится пассивным. На адрес-
ные выводы подается адрес столбца С2 2-го слова в пакете, и т.д.
Сопоставляя временные диаграммы (см. рис. 6.6 и рис. 6.16, а), можно
увидеть, что при считывании пакета из четырех слов только один
раз проводится считывание строки (в начале цикла) и только один
раз проводится предзаряд (в конце цикла после того, как строб
RAS становится пассивным). Оценим влияние режима FPM на ско-
рость обмена. При времени доступа в асинхронной СБИС DRAM
60 нс и тактовой частоте СШ 66 МГц цикл обмена составляет 5
тактов. Считывание пакета в обычном режиме характеризуется
вектором (5, 5, 5, 5). При использовании режима FPM получим
вектор (5, 3, 3, 3). В среднем это эквивалентно уменьшению вре-
мени доступа с 60 нс до 35 нс. Из изложенного следует, что ис-
пользование режима FPM не требует каких-либо изменений в
RAS#
RAS#
Рис. 6.16. Временные диаграммы страничного считывания данных
в СБИС DRAM:
а — страничный режим FPM считывания стандартной СБИС DRAM; б — стра-
ничный режим EDO считывания СБИС DRAM; в — страничный режим BEDO
считывания СБИС DRAM
самой СБИС DRAM, изменяется протокол обмена и, следова-
тельно, контроллер ОП.
Следующей модификацией обмена является страничный ре-
жим считывания — Extended Data Out (EDO) DRAM (рис. 6.16, б).
В тракт передачи данных в СБИС включен дополнительно регистр-
защелка (data latch). Данные на внешних выводах СБИС, связан-
ных с выходами регистра-защелки, остаются неизменными до
появления следующего строба CAS. Это позволяет передавать дан-
ные по СШ и во время пауз между стробирующими импульсами
CAS, что уплотняет передачу данных пакета по шине и уменьша-
ет период следования импульсов CAS. В результате для той же так-
товой частоты на шине и времени доступа в СБИС (как и для
режима FPM) при передаче пакета получим вектор (5, 2, 2, 2).
В среднем это эквивалентно уменьшению времени доступа с 60 нс
до 25 нс. Следует обратить внимание, что в отличие от режима
FPM режим EDO связан с изменением в структуре СБИС.
Дальнейшей модификацией обмена является режим — Burst
EDO (BEDO) (рис. 6.16, в). Для его реализации в структуру СБИС
введены следующие усовершенствования: регистр-защелка дан-
ных, синхронизируемый фронтом CAS и счетчик адреса столбца
для пакетного цикла. Наличие счетчика считывании пакета умень-
шает внешние обмены СБИС с ее системным окружением: адрес
столбца передается в счетчик только в начале пакетного цикла (на
рис. 6.16, в — Cl, С5). Поток данных по шине уплотнен. Импульсы
CAS поступают в ускоренном темпе, запрашивая очередные дан-
ные. Все процессы внутри цикла организованы с учетом только
внутренних задержек в СБИС. Ослабленная зависимость от сис-
темного окружения позволяет реализовать конвейерный режим
работы СБИС. Внешне это проявляется в более быстром темпе
следования данных и некотором отставании потока данных от
потока импульсов CAS. Все это ведет к повышению скорости об-
мена, которая при той же тактовой частоте и времени доступа
характеризуется вектором (5, 1, 1, 1). В среднем это эквивалентно
уменьшению времени доступа с 60 нс до 15 нс. Из изложенного
ясно, что использование СБИС BEDO DRAM влияет на органи-
зацию работы контроллера ОП.
Переход от базовой структуры СБИС DRAM и основного ре-
жима ее работы (подразд. 6.2) к FPM, EDO, BEDO повысил ско-
рость обмена. Но быстрый рост производительности процессоров
и увеличение тактовой частоты работы СШ стимулировали даль-
нейшие изменения в организации СБИС DRAM. Существенным
отличием новых СБИС от предшествующих асинхронных СБИС
DRAM является жесткая увязка внутренних процессов с тактовой
частотой на шине. Поэтому новые СБИС стали называть синхрон-
ными Synchronous DRAM (SDRAM). При их организации в целях
повышения производительности используется параллельное вы-
полнение микроопераций обращения к памяти, использование
нескольких банков в накопителе, чередование банков при рас-
пределении адресов ячеек, конвейеризация. Соответствующие
принципы организации ОП были рассмотрены в подразд. 6.4.
Итак, ОП, построенная на СБИС SDRAM — быстродейству-
ющая синхронная динамическая память, работающая на частоте
СШ без тактов ожидания внутри пакетного цикла. Ее быстродей-
ствие характеризуется вектором (5, 1, 1, 1) при тактовой частоте
шины 100 МГц и выше. В SDRAM синхросигналы СБИС увязаны
с тактовой частотой СШ, используется конвейеризация тракта
продвижения информации в цикле обращения к СБИС, приме-
няется организация накопителя из т банков с чередованием бан-
ков. Для организации процессов в таких СБИС используется прин-
цип программного управления со своим набором команд и внут-
ренним УА, интерпретирующим полученные команды.
Список команд включает команды записи и чтения с програм-
мируемыми параметрами пакетного цикла: размер пакета (burst
length) — 1, 2, 4, 8, 256 байт. Пакетный цикл обмена может быть
прерван специальной командой без потери информации. Задерж-
ка данных (количество тактов СШ) относительно команды чте-
ния программируется для оптимального согласования быстродей-
ствия СБИС SDRAM с частотой СШ. Конвейерная организация
позволяет инициировать очередной цикл обращения до оконча-
ния предыдущего. Помимо названных команд имеются и другие,
с которыми можно познакомиться по литературе [42, 48]. Ввод
команды осуществляется определенной комбинацией сигналов на
управляющих входах СБИС и определенных адресных входах: RAS,
CAS, WE, All, АЮ. Фиксация значений сигналов проводится по
фронту тактового импульса СШ. Внутренний блок управления в
соответствии с полученной командой генерирует последователь-
ность управляющих сигналов, определяющих протекающие в СБИС
процессы. Последовательность адресов пакета формируется внут-
ренним счетчиком. Четкая синхронизация входных и выходных
сигналов с тактами шины упрощает взаимодействие контроллера
ОП и СБИС SDRAM. Передача части функций управления обме-
ном внутреннему блоку управления способствует ускорению про-
цесса обмена.
Развитие технологии производства ИС и уровня интеграции по-
зволяют увеличивать информационный объем СБИС. С 2000 г. вы-
пускаются СБИС SDRAM с информационным объемом 16, 64,
128, 256 и 512 Мбайт. В целях расширения многообразия модулей
ОП по информационному объему и стоимости для каждой ин-
формационной емкости производится несколько типов СБИС,
отличающихся организацией накопителя Ух п, где N — число ад-
ресуемых ячеек, п — разрядность данных на внешних выводах СБИС.
Разрядность выбирается из следующей шкалы: 4, 8, 16, 32. Чем
больше разрядность, тем меньше адресуемых ячеек, но меньше и
число СБИС, необходимых для организации банка. Увеличение
разрядности требует большего числа внешних выводов. Поэтому
СБИС выпускаются в различных типах корпусов.
В качестве примера рассмотрим функциональную организацию
СБИС SDRAM с информационной объемом 128 Мбайт (рис. 6.17).
Для ускорения пакетных обменов используется конвейерная орга-
низация работы СБИС (сравни с рис. 6.15). Накопитель разделен
на 4 банка. Каждый банк имеет информационный объем
Рис. 6.17. Функциональная схема СБИС DRAM (IS42S32400A, информа-
ционный объем 128 Мбайт):
БУ — блок управления; РгА — регистры адресов; РгД — регистры данных; СчА —
счетчик адресов; УС — управляющие сигналы; ШВВ — шина ввода-вывода
4096 х 256 х 32 бит. Соответствующий массив ЗЭ организован в пря-
моугольную матрицу с числом строк 4096 и числом столбцов
256 х 32. Принципы работы ЗЭ в матрице рассмотрены в подразд.
6.2. Конвейерный доступ к ячейкам с использованием чередова-
ния банков в последовательности адресов рассмотрен в подразд.
6.5. Адресные шины матриц, соответствующие строкам, в каждом
банке подключены к соответствующим выходам дешифратора ад-
реса строки. Коммутацию сигналов между массивом разрядных шин
(шин 256 х 32 столбцов матрицы) и 32-разрядным регистром дан-
ных PrD выполняют ключи столбцов. Из 256 групп по 32 в каждой
выбирается одна в соответствии с 8-разрядным кодом адреса стол-
бца. Регистры данных всех четырех банков через 32-разрядную шину
ввода-вывода соединены с блоками ввода и вывода. Эти блоки
реализуют интерфейс между внутренней шиной ввода-вывода и
внешними выводами данных СБИС DIO. На внешние выводы ад-
реса (А) подается мультиплексированный адрес строки и столбца.
Адрес строки запоминается в регистре адреса строки, а адрес стол-
бца — в регистре адреса столбца. При пакетных циклах в форми-
ровании адреса участвует внутренний счетчик адреса, а также
используются выводы ВАО, ВА1. Внешние управляющие сигналы,
включая тактовые импульсы CLK, поступают во внутренний блок
управления СБИС, реализующий программное управление всеми
внутренними микрооперациями, включая организацию чередо-
вания и выбор банков. В соответствии с кодом команды блок вы-
рабатывает необходимые последовательности управляющих сиг-
налов. Блок содержит регистр команд РгК, дешифратор команд и
тактовое устройство. Команда вводится по шине адреса при опре-
деленной комбинации внешних управляющих сигналов и сигна-
лов на выводах АЮ и АП. Код адреса строки поступает в буфер
адреса, выходы которого подключены к входам дешифратора ад-
реса строки. Источниками адреса строки могут быть внешний код
адреса, запоминаемый в регистре адреса строки, либо код, фор-
мируемый встроенным блоком управления регенерацией. Все внут-
ренние и внешние управляющие сигналы синхронизируются фрон-
том тактовых импульсов. Регенерация инициируется либо внеш-
ней комбинацией сигналов CBR (см. подразд. 6.3), либо внутрен-
ними сигналами в режиме авторегенерации (self-refresh). После-
дний режим программируется.
Совершенствование технологии позволяет уменьшать напря-
жение питания СБИС. В настоящее время напряжение питания
соответствует шкале: 5; 3,3; 2,5 В. Уменьшение напряжения пита-
ния способствует уменьшению энергопотребления и повышению
быстродействия СБИС. Скорость обмена ОП по СШ может быть
увеличена за счет внесения определенных изменений в цепи ин-
терфейса СБИС SDRAM. Стала популярной передача данных с
синхронизацией как по фронту так и по спаду тактового импуль-
са. Соответственно типы СБИС SDRAM отличаются и по этому
признаку: SDR (Single Data Rate) и DDR (Double Data Rate).
Фирмой Rambus предложена организация СБИС с последова-
тельной передачей байтов. Соответствующие СБИС имеют обо-
значение RDRAM. Для них разработан новый интерфейс Rambus
Channel, содержащий 13 линий. Это существенно меньше, чем у
традиционных СБИС DRAM. Согласно этому интерфейсу (вместо
обычной адресации через адресные входы) посылаются пакеты,
включающие команды и адреса. Протокол обмена по интерфейсу
включает последовательно выполняемые три фазы: пакет запро-
сов в СБИС, пакет подтверждения из СБИС, пакет данных. Син-
хронизация сигналов осуществляется как по фронту так и по спа-
ду тактового импульса (DDR). При последовательной передаче байт
имеются особенности, ограничивающие применение таких СБИС:
• передача пакета запросов и ответа занимает время до 128 нс,
это задержка от начала обмена до появления данных;
• средняя скорость передачи данных зависит от длины пакета
(при длине 256 байт — 400 МГц, при 64 байт — 250 МГц).
Подход к организации СБИС RDRAM эффективен при выпол-
нении графических и мультимедийных приложений, для которых
характерен обмен большими пакетами данных. При обмене от-
дельными словами такие СБИС совершенно неэффективны.
Для преодоления отмеченного недостатка разработана СБИС,
названная Direct RDRAM (DRDRAM). Время первого доступа у
этих СБИС такое же, как у SDRAM, средняя же скорость обмена
у них продолжает увеличиваться. С этой целью разработаны СБИС
RDRAM с 16-разрядным интерфейсом (вместо 8-разрядного). При
частоте 400 МГц и синхронизации фронтом и спадом (DDR) до-
стигнута пропускная способность внутри пакета (Bandwidth) —
1,6 Гбайт/с.
В настоящее время среди быстродействующих СБИС DRAM
доминируют SDRAM и DRDRAM [42].
6.7. Модули основной памяти
Накопитель ОП построен по модульному принципу. Он наби-
рается из нескольких модулей ОП. Модуль памяти — это конст-
руктивно завершенное изделие, представляющее собой неболь-
шую печатную плату, на которой установлены СБИС DRAM, а
также могут быть установлены и другие ИС, реализующие допол-
нительные функции. Модуль имеет стандартный краевой разъем с
печатными выводами. С помощью разъема модуль вставляется в
соответствующее гнездо на материнской плате. Модульная орга-
низация позволяет наращивать информационный объем ОП по
мере необходимости. Принцип «открытой» архитектуры требует
унификации и стандартизации модулей. При этом приходится ре-
шать целый ряд проблем, связанных с многообразием типов мо-
дулей. Это многообразие порождается рядом факторов. Приведем
некоторые из них: многообразие типов СБИС DRAM, связанное
с их непрерывным развитием; разнообразие используемых спосо-
бов повышения достоверности и надежности хранения информа-
ции; наличие или отсутствие на плате модуля ОП средств исправ-
ления ошибок; использование дополнительных буферов для со-
гласования цепей, связывающих выводы СБИС с другими блока-
ми, либо их отсутствие. Разные типы системных (материнских)
плат имеют ограничения на тип используемых в них модулей. Раз-
личие модулей влияет также на временные диаграммы обмена ин-
формацией и должно быть учтено при организации управления.
При этом контроллеру памяти требуется информация о конкрет-
ном типе модуля, установленного на плате, и его характеристи-
ках. Для этого используются специальные средства и процедуры
идентификации модулей в системе.
Используемые в настоящее время типы модулей подразделяют
на три группы: SIMM (Single In-Line Memory Module) — модули
с однорядным расположением выводов, в которых установлены
асинхронные СБИС DRAM; DIMM (Dual In-Line Memory
Module) — модули с двухрядным расположением выводов, в ко-
торых могут быть установлены как асинхронные СБИС DRAM,
так и синхронные СБИС SDRAM; RIMM — модули, в которых
установлены СБИС RDRAM, СБИС DRDRAM и используется
интерфейс Rambus Channel.
Рассмотрим функциональную организацию модулей памяти
(рис. 6.18). Важным параметром модуля является число внешних
выводов, через которые осуществляется связь с системной пла-
той. Модули SIMM имеют 72 вывода с односторонним располо-
жением контактов на плате. Ранее применялись и «короткие»
модули SIMM с 30 контактами. В настоящее время такие модули
133,35
1
85
1°
84
168
Рис. 6.18. Модули ОП:
а — модуль SIMM; б — модуль DIMM
применяются только в устаревших моделях компьютеров. Моду-
ли DIMM имеют 168 выводов с двусторонним расположением
контактов.
На печатной плате модуля ОП устанавливается различное число
СБИС DRAM. Это число зависит от типа модуля и типа СБИС.
Имеются типы модулей с размещением СБИС только с одной сто-
роны платы, имеются типы модулей с двусторонней установкой.
Модули ОП могут иметь различную разрядность данных. На раз-
рядность влияет число информационных и контрольных разрядов
(см. подразд. 6.4). Число информационных разрядов п у современных
модулей SIMM равно 32, у модулей DIMM — 64. Соответственно
модули без контрольных разрядов имеют п = 32, 64. Модули с кон-
тролем на четность (Parity) имеют п = 36, 72, модули с контролем
и исправлением ошибок (ЕСС) имеют п = 40, 72 (80).
На базе СБИС DRAM построен накопитель модуля. При соеди-
нении СБИС в схему накопителя они образуют прямоугольную
матрицу. Число СБИС в строке матрицы определяется требуемой
разрядностью данных модуля. Число строк матрицы определяется
требуемым информационным объемом. Одноименные выводы дан-
ных СБИС в каждом столбце объединяют соответственно и под-
ключают к внешним выводам DBx — Data Bit (I/O). Эти контакты
используют как при записи так и при чтении данных. Адресные
входы всех СБИС объединяют соответственно и подключают к
внешним выводам CBHCMai — Multiplexed Address.Выводы раз-
решения записи WE# у всех СБИС объединяют в общую цепь и
подключают к соответствующему выводу модуля. Выводы строба
строки RAS# у всех СБИС каждой строки матрицы накопителя
объединяют и подключают к соответствующему выводу модуля
RASx# (х = 0, 1, ...). Сигналами на выводе RASx# выбирается со-
ответствующая строка СБИС (соответствующий банк накопителя).
Выводы строба столбца CAS# СБИС, соответствующих каждому
байту накопителя, объединяют вместе и подключают к соответ-
ствующему внешнему выводу CASx#. Сигналами на этих выводах
выбирают соответствующие байты при побайтных обращениях к
модулю. Побайтное обращение существенно при записи. Модули
с контролем и исправлением ошибок (схема ЕСС — Error Checking
and Correcting Memory) имеют разрядность 40, 72 или 80. Обычно
они допускают побайтное обращение, но контрольные разряды
привязаны к одному сигналу CAS#, поскольку схема ЕСС требует
обращения сразу к целому слову (см. подразд. 6.3). Имеется разно-
видность модулей ЕСС Optimized, в которых не предусмотрено
побайтное обращение. Имеются также модули EOS (ЕСС on SIMM)
с встроенной схемой исправления ошибок в каждом байте. Для
системы такие модули функционируют как модули с контролем на
четность. При чтении в случае обнаружения неисправимой ошибки
в выходном слове они генерируют ошибочный бит паритета.
Многообразие модулей порождает различия в скорости и про-
токолах обмена с ними. Эти различия должны учитываться конт-
роллером ОП. Чтобы адаптироваться к соответствующему типу
модулей, контроллер должен получить всю информацию об осо-
бенностях модулей, подключенных к системной плате. Для этого
предусматриваются специальные средства идентификации факта
присутствия в разъеме модуля и принадлежности его к опреде-
ленному типу.
Модули SIMM в зависимости от одностороннего либо двух-
стороннего расположения СБИС разделяют соответственно на два
подмножества. Односторонние модули содержат один банк, дву-
сторонние — два. Их информационная емкость может быть равной
1, 2, 4, 8, 16, 32, 64 Мбайт.
Модули DIMM имеют 168 выводов. Организация модуля рас-
считана на обмен данными с 64 информационными разрядами.
С учетом контрольных разрядов разрядность данных может быть:
64, 72, 80. Информационная емкость модулей может меняться в
диапазоне 8 — 256 Мбайт. По мере совершенствования СБИС ин-
формационная емкость модулей увеличивается. Различают модули
DIMM 1-го и 2-го поколений.
Модули 1-го поколения использовали асинхронные СБИС
DRAM с режимами FPM, EDO, BEDO. При относительно не-
большой информационной емкости СБИС число их в накопителе
ОП получалось достаточно большим. Это приводило к тому, что
цепи основных сигналов СБИС имели большую разветвленность,
что увеличивало паразитную емкость цепей. Требуется значитель-
ная мощность для переключения сигналов в таких цепях. Для уси-
ления по мощности сигналов от контроллера (чипсета) и умень-
шения нагрузки на шину в модулях 1-го поколения использова-
лись буферы. Но буферы в трактах передачи сигналов вносят до-
полнительную задержку (порядка 5 нс).
В модулях DIMM 2-го поколения используют как асинхрон-
ные, так и синхронные СБИС DRAM. Использование современ-
ных СБИС большой информационной емкости во многих случаях
позволяет не использовать буферы. Однако имеются типы моду-
лей (Registered DIMM), у которых адресные и управляющие сиг-
налы буферизованы регистрами. Они меньше нагружают шину
памяти. Это позволяет набирать из модулей накопитель ОП с боль-
шей информационной емкостью. Использование регистра в каче-
стве буфера удлиняет конвейер передачи данных на фазу.
Рассмотрим методы и средства идентификации наличия и типа
установленного модуля. Используются методы параллельной и
последовательной идентификации. При параллельной идентифи-
кации в различных типах модулей предусматривалось от 2 до 10
выводов. Тип модуля кодируется комбинацией битов на этих вы-
водах, которые обозначены PD — Presence Detect (см. рис. 6.18).
Использование параллельной идентификации имеет ряд недостат-
ков. При увеличении многообразия типов модулей требуется уве-
личение числа выводов PD и числа соединений на системной плате.
Изменение числа выводов приводит к неоднозначности таблиц
типов выводов. Поэтому на определенном этапе развития ОП на
смену параллельного метода идентификации пришел последова-
тельный метод. При этом для хранения информации о типе моду-
ля используется специальная (конфигурационная) микросхема
энергонезависимой памяти, устанавливаемая на плате модуля. Связь
с этой микросхемой осуществляется по стандартному двухпро-
водному интерфейсу 12С [48]. Интерфейс позволяет объединять
выводы данных (1-я линия) и синхронизации (2-я линия) кон-
фигурационных микросхем со всех модулей в двухпроводную связь
с контроллером. Это существенно упрощает соединения на плате
в сравнении с методом параллельной идентификации. На разъе-
мы модулей DIMM выведены три вывода, разводкой которых мож-
но адресовать до восьми модулей при выполнении последователь-
ной идентификации. Формат данных о типе модуля соответствует
стандарту JEDEC. Из 256 байт микросхемы для идентификации
стандартом определены 64: 32 — информация о микросхемах
DRAM и модуле, 32 — о производителе. Рассмотрим часть форма-
та кодирования данных о микросхемах DRAM и модуле. В 0-м бай-
те кодируется число записанных байт конфигурационных данных,
в 1-м байте — разрядность адреса данных в микросхеме, храня-
щей информацию о модуле. Во 2-м байте кодируется тип СБИС
DRAM (00 - резерв, 01 - FPM, 02 - EDO, 03 - BEDO, 04 -
SDRAM), в 3-м и 4-м байтах — количество строк и столбцов в
матрице ЗЭ, в 5-м — количество банков, в 6-м и 7-м — разряд-
ность с учетом контрольных бит, в 8-м — напряжение питания
интерфейсных схем и т.д. Подробную информацию можно полу-
чить в справочной литературе [48].
С учетом информации о СБИС DRAM и модуле, считываемой
из микросхемы энергонезависимой памяти в процессе автокон-
фигурирования системы при включении компьютера, проводится
настройка работы контроллера ОП. Соответствующие средства и
технология автоконфигурирования будут рассмотрены в гл. 8.
6.8. Организация основной памяти в компьютере
В данном разделе рассматриваются вопросы организации нако-
пителя ОП из модулей, согласования интерфейсов центрального
процессора, модулей ОП и других устройств компьютера, взаи-
модействующих с ОП.
Структурная схема ОП компьютера зависит от типов процес-
сора, материнской платы, системного контроллера (чипсета) и
модулей. Однако принципы функциональной организации устрой-
ства памяти — общие. Их удобно пояснять на примере процессора
Pentium, чипсета i430FX PCIset (Triton), модуля SIMM.
В большинстве современных компьютеров для организации на-
копителя ОП на материнской плате устанавливают только гнезда
под модули ОП. Однако, имеются типы материнских плат, у ко-
торых базовый (минимально необходимый) объем ОП набирает-
ся из СБИС DRAM, устанавливаемых непосредственно на мате-
ринской плате (рис. 6.19).
Структурная схема содержит блоки: накопитель, контроллер
ОП, входящий в состав системного контроллера (чипсета), бу-
ферные усилители данных, буферные усилители в разветвленных
цепях адреса и разрешения записи WE. Входы и выходы устрой-
СШ (ША, ШУ)
Рис. 6.19. Структурная схема ОП компьютера:
СШ — системная шина; ША — шина адресов; ШУ — шина управления; ШД —
шина данных; БУД — буферный усилитель данных
ства ОП связаны с СШ компьютера (шиной данных, шиной ад-
реса и шиной управления).
Накопитель организуется из СБИС DRAM, устанавливаемых
на плате, и модулей памяти. Разрядность данных накопителя со-
ответствует разрядности данных СШ. Накопитель содержит несколь-
ко банков. Выбор банка при обращении к памяти осуществляется
соответствующим стробом адреса строки RAS0 — RAS4. В приве-
денном примере число стробов и соответственно число банков —
5. Максимальное число банков (число линий RAS), зависит от
типа чипсета и материнской платы. В минимальной конфигурации
(только память на материнской плате) имеется всего один банк.
В соответствии с разрядностью шины данных (64) и модуля SIMM
(32) для организации банка требуются два модуля. Поэтому изме-
нение конфигурации ОП возможно только изменением числа ря-
дов (пар модулей) в матрице накопителя (см. рис. 6.19). В приве-
денном примере использованы двусторонние модули. СБИС
DRAM, расположенные с одной стороны модуля, используются
для организации одного банка, а с другой стороны — для другого
банка.
Выводы RAS СБИС DRAM, относящихся к одному банку, объе-
диняют и образуют одну из линий RAS0 — RAS4. Выводы CAS
всех СБИС матрицы, относящиеся к одному байту, объединяют и
образуют линии CASO — CAS7, связанные с соответствующими
выходами контроллера ОП. Эти линии используют для выбора байта
при обращении к накопителю. Выводы WE всех СБИС накопителя
объединены и через буферные усилители подключены к выходу
контроллера. Эти цепи используют для задания режима работы
СБИС (чтение или запись).
Выводы данных в каждом столбце матрицы накопителя объе-
динены соответственно и подключены к двум СБИС буферных
усилителей (английская аббревиатура соответствующих СБИС —
TDP).
СБИС буферных усилителей данных (БУД) предназначены для
усиления по мощности и коммутации данных между тремя шина-
ми: шиной данных накопителя (64 разряда), шиной данных про-
цессора (СШ компьютера, 64 разряда) и шиной PLINK (16 раз-
рядов), через которую осуществляется связь с шиной PCI и через
нее с контроллерами периферийных устройств. Организация со-
ответствующих информационных потоков рассмотрена в гл. 8. Уп-
равляющие сигналы для СБИС буферных усилителей данных вы-
рабатывает системный контроллер (чипсет). Распределение бай-
тов данных между двумя СБИС буферных усилителей данных вы-
полнено с чередованием номеров (четные и нечетные). Это по-
зволяет уменьшить перекрестные помехи.
Рассмотрим адресацию ячеек в накопителе ОП. Для адресации
ячеек накопителя контроллер вырабатывает следующие группы
сигналов на своих выводах: МАИ—2 — мультиплексируемый ад-
рес строки (столбца) (без 2-х младших разрядов). МАА1—О — 1-я
копия 2-х младших разрядов, которая изменяется в процессе па-
кетного обмена. МАВ1—0 — 2-я копия младших разрядов, для
получения которой СБИС с пакетным обменом и модули имеют
дополнительные выводы. CASO—7 — стробы столбцов, номера ко-
торых соответствуют номерам байтов. По числу линий в соответ-
ствующих группах сигналов определяется максимальный инфор-
мационный объем накопителя, к которому может организовать
обращение контроллер памяти (чипсет). Существенным является
и число печатных соединений на материнской плате, связываю-
щих модули ОП с чипсетом. Для иллюстрации оценим инфор-
мационный объем накопителя в приведенном примере. Число
разрядов мультиплексируемого адреса — 12. Этому соответству-
ет N= 224 ячеек. В каждой ячейке содержится 8 адресуемых байтов.
Отсюда оценим максимальный, адресуемый данным типом чип-
сета информационный объем: К= 224х8 = 128 Мбайт. Сигналы
RAS0—4 служат для выбора банка. Для увеличения АП они не ис-
пользуются.
По СШ информация об адресе поступает от процессора по ли-
ниям А[31—3] и ВЕ[7—0]. 1-я группа используется для адресации
64-разрядных ячеек, 2-я — для адресации байта в ячейке. АП ОП
для процессора составляет 232 = 4 Гбайт. Если адрес при обраще-
нии процессора к ОП выходит за пределы информационного объе-
ма V= 128 Мбайт, то обращение передается далее устройствам на
шине PCI или ISA. Более подробно эти случаи рассматриваются в
гл. 8.
Рассмотрим организацию управления обменом между цент-
ральным процессором и ОП. Для управления процессами обмена
взаимодействуют процессор и контроллер ОП (входит в состав
системного контроллера). Адрес для обмена формирует процес-
сор. Адрес воспринимается контроллером и преобразуется в со-
ответствии с интерфейсом DRAM. Данные передаются через бу-
ферные усилители данных. Направлением передач управляет конт-
роллер.
Контроллер генерирует запросы регенерации. Период регене-
рации определяется в соответствии со значениями параметров,
характеризующих особенности СБИС каждого банка. Параметры
записываются в процессе конфигурирования системы в регистре
управления DRAM. Значения параметров передаются по цепям
идентификации модулей, как это было рассмотрено выше. В реги-
стре записывается вся информация, необходимая для управления
обменом: информационный объем (верхняя и нижняя граница
каждого банка с дискретностью 4 Мбайт), тип DRAM (FPM,
EDO,...) и др. Более детально организация управления рассмотре-
на в гл. 8.
6.9. Организация СБИС статической памяти.
Области использования
В СБИС статической памяти (SRAM) в качестве ЗЭ использу-
ется статический триггер. Для реализации СБИС используется раз-
личная схемотехника и технология изготовления ИС: ТТЛ, ЭСЛ,
л-МОП, КМОП. Наилучшие показатели имеют СБИС, выпол-
ненные по КМОП-технологии. Именно они применяются в ВМ и
ВС. В сравнении с динамическими СБИС (DRAM) статические
(SRAM) имеют более высокое быстродействие и отличаются боль-
шой устойчивостью к изменениям напряжения питания и другим
воздействиям внешних факторов, но они имеют большую сто-
имость. В компьютерах они используются для построения внеш-
ней кэш-памяти 2-го уровня. В ВС специального назначения такие
СБИС используют в ОП.
Выводы А СБИС статической памяти (рис. 6.20, а) в функцио-
нальных схемах цифровых устройств и систем предназначены для
адресации ячеек. При числе разрядов адреса 15 число адресуемых
ячеек — 32К. Выводы D служат для ввода и вывода данных. Выход-
ные ключи имеют 3 состояния (логических «О» и «1», большого
выходного сопротивления). Это позволяет при организации нако-
пителя одноименные выводы D объединять и подключать к соот-
ветствующим линиям шины данных. Для управления работой СБИС
используются сигналы: OE# (разрешение выхода), CS# (выбор
кристалла), WE# (разрешение записи). Сигналы CS# используют
для выбора микросхемы в массиве СБИС накопителя памяти. Эти
сигналы формируются с помощью внешнего дешифратора адреса.
Сигналы OE# и WE# используют для задания режима работы (табл.
6.2).
Структура СБИС (на примере одной из распространенных мик-
росхем) содержит (рис. 6.20, б): матрицу ЗЭ, дешифраторы адре-
са строк (ДАс) и столбцов (ДАД блок мультиплексоров и де-
мультиплексоров (М и ДМ), блок ключей, связывающих внут-
ренние блоки с выводами данных, блок управления. В целях луч-
Таблица 6.2
Режимы работы СБИС SRAM
Режим Вывод Сигнал
А D CS# OE# WE#
Хранение — Z 1 — —
Запись А DI 0 1 0
Чтение А DO 0 0 1
б
Рис. 6.20. СБИС статической памяти:
а — обозначения в функциональных схемах; б — структурная схема; в — схема
запоминающего элемента; г — диаграммы циклов чтения и записи; РШ — разряд-
ная шина; ША — шина адресов; VT1... VT5 — вентили; £п — напряжение питания;
ЗЭ — запоминающий элемент; БУ — блок управления; /дост — время доступа
шего использования площади кристалла матрица ЗЭ — квадрат-
ная. Блок М и ДМ содержит 8 мультиплексоров и демультиплек-
соров, каждый из которых коммутирует 2б разрядных линий мат-
рицы ЗЭ с одной линией шины данных. Блок управления в соот-
ветствии с набором внешних сигналов управления переключает
М и ДМ в режим мультиплексоров при чтении и в режим демуль-
типлексоров при записи, а также управляет работой ключей.
В принципиальной схеме ЗЭ (рис. 6.20, в) функцию хранения
бита выполняет триггер, построенный на двух комплементарных
парах: VT1- VT3 и VT2- VT4. Транзисторы VT1 и VT2 - МОП-
транзисторы с каналом типа п, VT3 и VT4 — с каналом типа р.
Транзисторный ключ VT5 подключает одно плечо триггера (точку
А) к разрядной шине матрицы ЗЭ, затвор транзистора VT5 под-
ключен к адресной шине матрицы. В режиме хранения логическо-
го «О» напряжение в точке A: UA = 0. При этом транзистор VT2
закрыт, а транзистор VT4 открыт, поэтому UB = Е„. Вследствие
этого транзистор VT1 открыт, а транзистор VT3 — закрыт. Это и
определяет напряжение = 0. Как следует из приведенного ана-
лиза, данное состояние устойчиво. Существенно отметить, что
сопротивление закрытого транзистора больше сопротивления от-
крытого транзистора в 10’2— 1014 раз. При этом даже значительные
отклонения значения напряжения питания от номинального не
изменяют состояние триггера. Существенно также то, что в каж-
дой комплементарной паре один из транзисторов закрыт. Поэто-
му ток практически не протекает (значение тока — доли мкА).
В режиме логической «1»: t/A = Еп, =
В режиме чтения (рис. 6.20, г) в выбранной строке матрицы
открываются ключи VT5, и на разрядных шинах устанавливаются
напряжения, соответствующие напряжениям UA триггеров этой
строки. Задержка передачи считанной информации от триггеров
на выходы D в значительной мере определяется временем заряда
(разряда) паразитных емкостей шин. Существенно отметить, что
при рассматриваемой КМОП-технологии заряд и разряд емкости
шины происходит через малое выходное сопротивление ключа VT5
и триггера. Выходное сопротивление триггера соответствует со-
противлению открытого транзистора VT3 (при считывании «1»)
либо VT1 (при считывании «0»).
В режиме записи напряжение на разрядную шину подается от
демультиплексора. Оно определяется значением соответствующе-
го бита входного кода DI. Напряжение разрядной шины через ключ
VT5 передается на вход А триггера и устанавливает его в соответ-
ствующее состояние.
Рассмотренная схема относится к типу асинхронных статиче-
ских СБИС SRAM. По мере развития технологии производства ИС
и роста уровня интеграции в СБИС SRAM, как и в СБИС дина-
мической памяти, используются архитектурные методы повыше-
ния скорости обмена. Это организация накопителя из нескольких
банков с чередованием банков при распределении адресов и кон-
вейеризация цикла обращения к ячейкам СБИС. Эти архитектур-
ные методы дают положительный эффект при обменах пакетами
данных, то есть при наличии внутренней кэш-памяти в процессо-
ре. СБИС, использующие такие архитектурные изменения, отно-
сятся к типам синхронной статической памяти (SBSRAM —
Synchronous Burst SRAM), либо потоковой статической памяти
(PBSRAM — Pipelined Burst SRAM). ВСБИСSBSRAM использу-
ется 2-разрядный счетчик для формирования адреса внутри паке-
та, имеется вход для тактовых импульсов и дополнительные уп-
равляющие сигналы. В СБИС PBSRAM дополнительно имеется
регистр данных и организован конвейер тракта передачи данных.
Для записи в регистр требуется дополнительный такт в первой
пересылке, но при этом остальные данные пакета можно полу-
чать без тактов ожидания при высоких частотах СШ.
Эффект от использования архитектурных методов повышения
быстродействия характеризуют векторы пакетного обмена (напри-
мер, для тактовой частоты шины 133 МГц): для СБИС SBSRAM —
(3, 2, 2, 2), для СБИС PBSRAM — (3, 1, 1, 1). Приведенные
значения тактов ожидания в пакетных циклах показывают, что в
статической памяти (в сравнении с динамической) уменьшено
только время первого обращения в пакете. Поэтому эффект от
использования кэш-памяти 2-го уровня по мере совершенствова-
ния СБИС DRAM снижается.
6.10. Принципы построения СБИС энергонезависимой
памяти
6.10.1. Общие сведения
Особенность энергонезависимой памяти — ее способность со-
хранять информацию при отключении питания. Таким свойством
обладает память на дисках, на магнитных лентах. Однако имеется
несколько типов полупроводниковой памяти, которые также об-
ладают этим свойством. ИС энергонезависимой памяти относят к
ПЗУ. В ВМ и ВС соответствующие СБИС используются для орга-
низации памяти, занимающей часть АП ОП. Для СБИС ПЗУ ха-
рактерно, что в них время записи много больше, чем время чте-
ния. В СБИС оперативных запоминающих устройств (ОЗУ) време-
на чтения и записи примерно равны. Основной признак класси-
фикации СБИС ПЗУ связан с технологией их изготовления. По
этому признаку СБИС ПЗУ делятся на следующие классы:
• масочные ПЗУ с технологией ROM;
• программируемые ПЗУ с технологией PROM;
• репрограммируемые ПЗУ с технологией EPROM, в них сти-
рание информации производится ультрафиолетовым облучением
кристалла;
• ПЗУ с электрической перезаписью, технология EEPROM;
• флэш-память, технология ЕТОХ — EPROM Thin Oxide.
6.10.2. Построение СБИС ПЗУ с масочной технологией ROM
Приведем обозначение СБИС ПЗУ в функциональных схемах
(рис. 6.21, а) на примере обозначения одной из отечественных
микросхем: К 568 РЕ1. В этом обозначении «К» характеризует тип
корпуса, «568» — серия, «РЕ» — условное обозначение масочных
ПЗУ по отечественной классификации. СБИС имеет адресные вхо-
Матрица ЗЭ
xNl
Рис. 6.21. СБИС ПЗУ масочного типа с технологией ROM:
а — условное обозначение СБИС; б — структурная схема; в — схема матрицы ЗЭ
с диодом в качестве ЗЭ; г — схема матрицы ЗЭ с л-МОП-транзистором в каче-
стве ЗЭ
ды А, управляющий вход выбора кристалла CS и выходы данных
DO. Число разрядов адреса т соответствует числу адресуемых яче-
ек N= 2п. Выходные ключи данных имеют три состояния: логиче-
ских «О» и «1» и состояние большого выходного сопротивления.
Признаком наличия 3-го состояния служит ромб в поле выходных
сигналов. Структурная схема СБИС (рис. 6.21, б) содержит матри-
цу ЗЭ, дешифратор адреса, ключи столбцов и ключи вывода, име-
ющие три состояния. Дешифратор адреса имеет две части: одна
служит для выбора строки в матрице ЗЭ, а другая — для выбора
столбцов с помощью управляемых от дешифратора ключей. Для
изготовления СБИС применяется как биполярная, так и унипо-
лярная (МОП) технология.
В схеме матрицы ЗЭ с диодом (рис. 6.21, в) в качестве ЗЭ (би-
полярная технология) дешифратор имеет инверсные выводы. Зна-
чение бита в каждом пересечении шин матрицы отображается под-
ключением анода диода к разрядной шине (логический «О»), либо
отсутствием подключения (логическая «1»). Соединения анодов
диодов с шинами выполняется по маске в процессе изготовления
СБИС. Маска формируется на заказ по заданной для записи в
ПЗУ информации. Поэтому технология называется масочной. При
считывании подается код адреса. В соответствии с кодом адреса
только на одном выходе дешифратора устанавливается напряже-
ние, близкое к 0. На остальных строках матрицы напряжение близко
к напряжению питания Е„. Рассмотрим цепь разрядной шины: Е„,
резистор диод, выход ДА. В этой цепи может протекать ток при
условиях: анод диода подключен к разрядной шине, на выходе
ДА напряжение близко к нулю. При выполнении этих условий
получим yi = 0. Если диод не подключен к разрядной шине, yi = 1.
На рис. 6.21, г показана матрица ЗЭ, выполненная с использо-
ванием МОП-технологии. В качестве ЗЭ используется n-МОП тран-
зистор. Значения бита в этом случае отображаются подключением
либо отсутствием подключения стока транзистора к разрядной
шине. Дешифратор ДА имеет прямые выходы. К адресным шинам
подключены затворы транзисторов ЗЭ. Для протекания тока в раз-
рядной цепи должны выполняться два условия: на адресной шине
высокий уровень напряжения (строка выбрана), транзистор ЗЭ
выбранной строки подключен к разрядной шине. При этом у = 0.
Если транзистор не подключен к разрядной шине, у- 1.
Достоинством масочных СБИС ROM является простота и, как
следствие, относительная дешевизна СБИС. Недостаток — за-
пись информации в процессе изготовления СБИС. Это оправда-
но только при массовом производстве изделий, в которых ис-
пользуются такие СБИС, и при условии, что при жизненном
цикле изделия не требуется модификация хранимой в ПЗУ ин-
формации.
6.10.3. Построение СБИС ПЗУ с технологией PROM
В СБИС данного класса ЗЭ содержит диод и последовательно
соединенный с ним программируемый двухполюсник. Это может
быть либо плавкая перемычка (fuse), которая при программиро-
вании разрушается и становится непроводящей, либо непроводя-
щий двухполюсник — трехслойный диэлектрик (antifuse), кото-
рый при программировании становится проводящим.
При производстве таких СБИС информация в матрицу ЗЭ не
записывается. Все перемычки (fuse) проводят, а диэлектрики
antifuse — не проводят. Запись информации осуществляется пользо-
вателем при программировании СБИС. Программирование выпол-
няется с помощью программатора, управляемого от компьютера.
При программировании в соответствующих ЗЭ осуществляется раз-
рушение перемычек fuse и пробой диэлектриков antifuse. Для обес-
печения возможности программирования СБИС в ней требуются
дополнительные аппаратные средства, выполняющие функции
коммутации и управления программированием.
По отечественной системе классификации микросхемы, вы-
полненные по технологии PROM, имеют обозначение РТ: напри-
мер, КР 556 РТ16. СБИС такого типа имеют информационную
емкость до 64 Кбит, время доступа порядка 70 нс.
Поясним организацию СБИС с программируемым ПЗУ (ППЗУ).
ЗЭ содержит диод и плавкую перемычку (рис. 6.22). СБИС может
работать в режиме чтения и записи (программирования). В про-
стых СБИС перевод в режим программирования осуществляется
повышением напряжения питания Е„. В зависимости от значения
этого напряжения встроенные в СБИС пороговые элементы опре-
деляют значения логических переменных z и f в соответствии с
предикатами: z = (Е„ < 7 В); f = (Еп > 7,5 В). Для управления
работой СБИС используются также логические переменные и —
разрешение выборки и s — разрешение вывода. Рассмотрим рабо-
ту СБИС в режиме программирования (записи). Допустим, требу-
ется разрушить перемычку в ЗЭ] _ ] на пересечении первой строки
и первого столбца. Для этого на выход DOX, соответствующий выб-
Рис. 6.22. Схема СБИС ППЗУ (технология PROM)
ранному столбцу, подключается внешний источник напряжения
Е через резистор R2. Это подключение выполняет соответствую-
щая схема в программаторе. Значение напряжения Е зависит от
типа СБИС, обычно оно составляет порядка 20 В. Сигнал CS# = 1
(пассивен). На вход дешифратора подается код адреса, определя-
ющий выбор строки. Напряжение источника Еп повышается (сред-
ствами программатора) до значения, зависящего от типа СБИС
(12—15 В). При этом z = 0, 5 = 0, и = 0,/= 1. Электронный ключ К
замыкается. Далее на вход выбора кристалла подается импульс-
ный сигнал CS# = 0 длительностью несколько миллисекунд (за-
висит от типа СБИС). При этом сигнал u= 1, на выходе элемента
И1 устанавливается нулевое напряжение и в цепи от источника Е
через R2, замкнутый ключ К, ЗЭ^ и выход элемента И1 проте-
кает импульсный ток программирования /пр = Е/R. Этот импульс
тока разрушает перемычку в выбранном ЗЭ. Восстановить пере-
мычки, разрушенные при программировании, в СБИС с техно-
логией PROM невозможно.
В режиме чтения внешний источник Е отключен, напряжение
Е„ имеет номинальное значение. При этом z= 1, и=1,/=0, ключ
К разомкнут. В выбранном кристалле (CS# = 0) 5= 1. В соответствии
с выбранным адресом считанный код через ключи ИЗ передается
на выводы DO.
6.10.4. Построение СБИС ПЗУ с технологией EPROM
В репрограммируемых ПЗУ (РПЗУ) информацию можно мно-
гократно стирать и записывать новую. Это делает их более удобны-
ми для использования в вычислительной технике, чем ПЗУ PROM.
Наибольшее распространение получили РПЗУ с ЛИПЗМОП-
транзисторами. Это особые полупроводниковые структуры, в ко-
торых используется лавинная инжекция (ЛИ) заряда и «плава-
ющий» затвор (ПЗ). Отличие полупроводниковой структуры
ЛИПЗМОП-транзистора (рис. 6.23, а) от обычного л-МОП-тран-
зистора заключается в том, что в промежуток между кремнием Si
и затвором внутри оксида SiO2 помещен дополнительный «плава-
ющий» затвор из поликремния. «Плавающим» его называют пото-
му, что он не имеет электрических соединений с внешними це-
пями. На работу полупроводниковой структуры существенное вли-
яние оказывает расстояние h между «плавающим» затвором и крем-
нием. В СБИС EPROM это расстояние составляет порядка 200 ан-
гстрем (0,02 мкм) [17]. На рис. 6.23, б показано условное обозна-
чение ЛИПЗМОП-транзистора и схема его включения.
Рассмотрим принцип работы ЛИПЗМОП-транзистора. При
нулевом напряжении на затворе, как и для обычного л-МОП-
транзистора, двухполюсник исток-сток можно представить как два
Рис. 6.23. ЛИПЗМОП-транзистор:
а — полупроводниковая структура; б — схема включения: ПЗ — плавающий затвор
диода, включенных один навстречу другому (рис. 6.24, а). Ток в
этой цепи практически не протекает. При положительном напря-
жении на затворе, превышающем порог открывания транзисто-
ра, на границе с оксидом под действием электрического поля
появляется слой неосновных носителей (электронов), которые об-
разуют проводящий канал, и в цепи начинает протекать ток. Это
характеризует вольт-амперная характеристика при qn3 = 0. Рассмот-
рим процесс инжекции заряда электронов в «плавающий» затвор
в режиме записи. На затвор в этом режиме подается повышенное
напряжение (порядка 20 В), а на сток — напряжение порядка
5 —6 В (рис. 6.24, б). Электроны двигаются от истока к стоку. Под
действием электрического поля, создаваемого напряжением на
затворе, траектория их искривляется в сторону затвора. Некото-
Рис. 6.24. Принцип работы ЛИПЗМОП-транзистора:
а — эквивалентная схема участка «исток—сток» при U2 = 0; б — инжекция заряда
в ПЗ при записи; в — вольт-амперные характеристики
рые из электронов преодолевают потенциальный барьер между
полупроводником и диэлектриком (пробой), под действием поля
дрейфуют в диэлектрике и попадают в «плавающий» затвор. Для
преодоления потенциального барьера между «плавающим» затво-
ром (поликремнием) и диэлектриком энергии электронов не хва-
тает. Поэтому электроны накапливаются в «плавающем» затворе.
Поскольку «плавающий» затвор окружен диэлектриком, заряд в
нем может сохраняться длительное время (по результатам иссле-
дований — более 10 лет). Накопленный заряд отрицательно заря-
женных электронов смещает вольтамперную характеристику (рис.
6.24, в). При номинальном напряжении питания (5 В) транзистор
без заряда в «плавающем» затворе открывается при подаче поло-
жительного напряжения на затвор. При наличии отрицательного
заряда в «плавующем» затворе транзистор закрыт даже при но-
минальном напряжении на затворе. Эти 2 состояния транзистора
и используются для представления «0» и «1». Схема включения
ЛИПЗМОП-транзистора в качестве ЗЭ в матрицу может быть та-
кой же, как на рис. 6.21, г. Но для записи требуются вспомогатель-
ные элементы.
Для стирания информации в корпусах СБИС EPROM имеется
окно, через которое кристалл освещают ультрафиолетовым све-
том. Окисел и поликремний прозрачны для ультрафиолетовых
лучей. Энергия ультрафиолетовых лучей вызывает фототоки и теп-
ловые токи, и электроны заряда в плавающем затворе стекают в
подложку и нейтрализуются. Операция стирания занимает десят-
ки минут. С точки зрения организации информационных процес-
сов в СБИС существенно отметить, что стирание информации
происходит одновременно во всех ЗЭ кристалла. После стирания
можно с помощью программатора записать новую информацию.
Вследствие того, что запись путем инжекции электронов в «пла-
вающий» затвор проводится при повышенных напряжениях и со-
провождается повышенным тепловыделением, при каждой за-
писи происходят некоторые необратимые изменения в полупро-
водниковой структуре. Ультрафиолетовые лучи также меняют
свойства полупроводниковой структуры. Поэтому число допус-
тимых перезаписей информации в СБИС ограничено и, обычно,
не превышает 100.
6.10.5. Построение СБИС ПЗУ с технологией EEPROM
В режиме чтения элемент EEPROM аналогичен элементу
EPROM. При выборке он проводит либо не проводит в зависи-
мости от заряда в «плавающем» затворе. В отличие от технологии
EPROM стирание происходит электрическим способом и не во
всей СБИС сразу, а по заданному адресу. Для этого в элементе
Рис. 6.25. Запоминающий элемент EEPROM:
а — эквивалентная схема; б — вольт-амперная характеристика
EEPROM имеется отдельная транзисторная структура для вы-
борки элемента и отдельная — для записи, стирания и хранения
бита. Эквивалентная схема элемента EEPROM (рис. 6.25, а) [48]
содержит обычный л-МОП-транзистор, на затвор которого по-
дается напряжение (t74T) при выборе ЗЭ в матрице. Последова-
тельно с ним включен транзистор с «плавающим» затвором, вы-
полняющий функцию ЗЭ. Расстояние между «плавающим» зат-
вором и кремнием уменьшено до 80 ангстрем (0,008 мкм). Для
записи и стирания используется туннельный эффект Фаулера —
Нордхейма. «Плавающий» затвор не имеет гальванической связи
с цепями записи информации. При напряжении 12 — 13 В на
«плавающем» затворе относительно кремния (истока), которое
создается от U3„ через емкостную связь, возникает туннельный
ток. Если на затвор подается положительное напряжение, то про-
исходит накопление электронов в «плавающем» затворе (запись).
Если положительное напряжение подается на исток, то туннель-
ный ток удаляет электроны из «плавающего» затвора и заряд
может стать положительным. Из вольт-амперных характеристик
транзистора с «плавающим» затвором (рис. 6.25, б) видно, что
при отрицательном заряде ЗЭ не проводит, а при положитель-
ном — проводит. Поскольку напряжения при записи и стирании
относительно невелики и используется туннельный эффект, а
не пробой, число перезаписей в EEPROM велико (порядка 104—
10б). Из приведенного описания следует, что элемент EEPROM
сложнее, чем EPROM. Дополнительные транзисторные структу-
ры и цепи записи-стирания занимают дополнительную площадь
на кристалле. Это снижает информационную емкость СБИС.
Информационная емкость зарубежных СБИС подобного типа в
настоящее время составляет порядка 256 Кбит, время доступа —
90 нс. По мере совершенствования технологии производства ИС
и снижения проектной нормы СБИС EEPROM получают все более
широкое применение.
6.10.6. Построение флэш-памяти
Структура и организация работы микросхем флэш-памяти в
значительной мере определяются построением ЗЭ и способом со-
единения ЗЭ в матрицу. Подход к решению этих основополагаю-
щих задач у производителей флэш-памяти различен. Рассмотрим
принципы построения флэш-памяти фирмы Intel.
ЗЭ построен на одном л-МОП-транзисторе с «плавающим» зат-
вором, полупроводниковая структура которого сходна с приве-
денной на рис. 6.23, а. Однако транзистор выполнен по особой
технологии ETOX (EPROM Thin Oxide), запатентованной фир-
мой Intel. Существенной особенность этой технологии является
тонкий слой оксида между «плавающим» затвором и кристаллом
кремния (Л < 100 ангстрем). Следует отметить, что в СБИС EPROM
h > 200 ангстрем. Следствием использования технологии ЕТОХ
стали 2 особенности транзистора, которые и позволили создать
флэш-память: снижение напряжения, используемого при записи
для инжекции электронов в «плавающий» затвор до 12 В; возмож-
ность электрического стирания (удаления заряда электронов из
«плавающего» затвора) за счет туннельного эффекта при напря-
жении между стоком и управляющим затвором 12 В. Таким обра-
зом, транзистор флэш-памяти — результат совместного исполь-
зования особенностей ЗЭ с технологиями EPROM и EEPROM.
Рассмотрим режимы работы транзистора флэш-памяти (рис.
6.26). При чтении в цепь стока подается положительное напряже-
ние, близкое к номинальному (5 В). На затвор «выбранного» тран-
зистора также подается напряжение, близкое к номинальному. При
этом, если заряд электронов в «плавающем» затворе отсутствует,
транзистор открывается и через него протекает ток. Если в «плава-
ющем» затворе имеется инжектированный при записи заряд элек-
тронов, напряжения на управляющем затворе недостаточно для
Рис. 6.26. Режимы работы транзистора флэш-памяти:
а — чтение; б — стирание; в — запись
+12 в
Горячие электроны
в
открывания транзистора, и ток в цепи стока не протекает. В цепь
истока включен балансный усилитель, который в соответствии с
двумя рассмотренными случаями формирует логические сигналы
«1» либо «О». При стирании информации на исток транзистора
подается напряжение 12 В относительно управляющего затвора
(рис. 6.26, б). Возникает туннельный ток, изымающий электроны
из «плавающего» затвора. В режиме записи «О» в цепь стока пода-
ется положительное напряжение относительно истока, и на уп-
равляющий затвор подается повышенное положительное напря-
жение (12 В). Между р—«-переходами истока и стока появляется
проводящий канал из электронов. Эти электроны под действием
напряжения в цепи стока получают достаточно большую кинети-
ческую энергию. Эти «горячие» электроны под действием напря-
жения на управляющем затворе изменяют траекторию своего дви-
жения (рис. 6.26, в), преодолевают потенциальный барьер и через
тонкий слой оксида попадают в «плавающим» затвор, где и на-
капливаются. Этот процесс инжекции не отличается от рассмот-
ренного выше процесса инжекции для технологии EPROM. Но в
транзисторах флэш-памяти инжекция происходит при меньшем
напряжении на затворе и при меньших необратимых воздействиях
на полупроводниковую структуру транзистора.
Для организации накопителя информации в СБИС флэш-па-
мяти транзисторы (ЗЭ) располагаются в прямоугольную матрицу
(рис. 6.27). В каждой строке управляющие затворы объединяются и
образуют шины выбора строки. В каждом столбце стоки С объеди-
няются и образуют шины выбора столбца, а истоки И объединя-
Рис. 6.27. Матрица ЗЭ флэш-памяти
ются и образуют разрядные шины, подключаемые к усилителям
воспроизведения. Такая схема (NOR) накопителя проста в реали-
зации, но весьма критична к стиранию и записи. При стирании из
«плавающего» затвора может быть взято больше электронов, чем
было инжектировано при записи. При этом в «плавающем» затво-
ре появится положительный заряд, и транзистор окажется прово-
дящим независимо от напряжения на управляющем затворе. Он
зашунтирует весь столбец ЗЭ в матрице. Вернуть в работоспособ-
ное состояние такую СБИС уже не удастся. При этом следует от-
метить отличие флэш-памяти от технологии EEPROM. Во флэш-
памяти стирание проводится сразу для всей матрицы ЗЭ с исполь-
зованием тех же цепей, что и при чтении и при записи. В техноло-
гии EEPROM за счет более сложной организации ЗЭ и цепей в
матрице стирание проводится индивидуально для каждого байта.
Накопление положительного заряда в «плавающем» затворе пред-
полагается самим принципом работы ЗЭ по технологии EEPROM.
Отсутствие влияния транзистора с положительным зарядом в
«плавающем» затворе на другие ЗЭ накопителя обеспечивается
дополнительными ключами на базе обычных л-МОП-транзисто-
ров, включенных последовательно с ЛИПЗМОП-транзисторами
(см. рис. 6.25).
Вернемся к рассмотрению матрицы флэш-памяти. Чтобы ис-
ключить нежелательное явление накопления положительного за-
ряда в «плавающем» затворе при стирании, фирмой Intel предло-
жен ряд мер, повлиявших на структуру и организацию работы
таких микросхем:
• перед стиранием во все ЗЭ матрицы записывают «О» для при-
ведения их к одинаковому исходному состоянию;
• запись и стирание проводят «мелкими порциями», используя
специально разработанные итерационные алгоритмы с контро-
лем состояния и завершением процесса по результатам контроля;
• в состав микросхем включен адресуемый регистр, хранящий
идентификаторы фирмы-производителя и типа микросхемы, что
позволяет защитить ее от ошибок выбора алгоритма;
• в микросхемы встроены автоматы, реализующие алгоритмы
стирания и записи, что упрощает внешнее управление и защища-
ет от ошибок при изменении хранимой информации.
Рассмотрим организацию СБИС флэш-памяти Intel. Можно вы-
делить три группы микросхем:
1. Микросхемы первого поколения, накопитель у которых вы-
полнен в виде единого массива. Стирание проводится сразу всего
массива. В литературе эту группу микросхем называют «Bulk Erase» —
стираемые целиком. К этой группе относятся такие СБИС как
28F256, 28F512, 28F010, 28F020.
2. Микросхемы с разделением массива на блоки разного разме-
ра «Boot Block — ВВ». Блоки массива имеют разные размеры и
разную степень защиты от случайного стирания и записи. Стира-
ние выполняется независимо для каждого блока. К этой группе
относятся такие микросхемы, как 28F001, 28F100, 28F200, 28F400.
3. Микросхемы большой информационной емкости с разделе-
нием массива на блоки равного размера с независимым стирани-
ем. СБИС этой группы называют флэш-файлы (Flash-File—FF).
К этой группе относятся такие микросхемы, как 28F008, 28F016,
28F032.
Напряжение питания у ряда микросхем составляет 5 В, у неко-
торых — 3,3 В. При меньшем напряжении питания больше дли-
тельность цикла чтения. Число циклов стирания-записи составляет
105. Время чтения байта (слова) не превышает 100 нс. Энергопот-
ребление микросхем зависит от режима работы. Имеется «ждущий
режим» (Standby). Основная часть цепей в этом режиме отключена,
и потребление значительно ниже, чем в активном режиме.
Рассмотрим функциональную организацию СБИС на примере
микросхемы 28F020 (рис. 6.28). На вывод Крр подается напряжение
12 В при программировании и стирании. Вывод Vcc служит для
подачи напряжения питания 5 В. Вывод — «земля». Выводы D
служат для ввода и вывода данных, выводы А — для ввода адреса
при чтении и записи, выводы управляющих сигналов: WE# —
разрешение записи, CE# — выбор кристалла, OE# — разрешение
вывода. Схема содержит следующие блоки: матрицу ЗЭ с ключами
Рис. 6.28. Функциональная схема СБИС флэш-памяти 28F020
Таблица 6.3
Операции на шине СБИС флэш-памяти при Крр = О
Операция АО А9 CE# OE# WE#
Чтение АО А9 0 0 1
Запрет выхода X X 0 1 1
Ожидание X X 1 X X
Чтение идентификатора производителя 0 12 В 0 0 1
Чтение идентификатора СБИС 1 12 В 0 0 1
Таблица 6.4
Операции на шине СБИС флэш-памяти при Крр = 12 В
Операция АО А9 CE# OE# WE#
Чтение АО А9 0 0 1
Запрет выхода X X 0 1 1
Ожидание X X 1 X X
Запись АО А9 0 1 0
выбора столбцов; регистр адреса (РА), дешифраторы адреса стро-
ки DAX и столбца DAY; регистр данных (PD); буфер данных (D);
блок управления, содержащий регистр команд (РК), регистр со-
стояния (PC), стоп-таймер (СТ); блок управления стиранием/про-
граммированием, содержащий автоматы реализации алгоритмов
стирания и записи, переключатели цепей стирания и записи; ло-
гику разрешения вывода.
При отсутствии напряжения 12 В на контакте (Ирр = 0) воз-
можна только операция чтения. Сигналами на внешних контактах
управления можно инициировать чтение накопителя СБИС, чте-
ние идентификаторов, режим ожидания. Эти же операции воз-
можны при Крр = 12 В. При этом дополнительно можно обеспе-
чить стирание массива, программирование (запись) байта, все
действия выполняют в соответствии с командой, записанной в
регистр команд. Содержимое регистра команд определяет алго-
ритм, реализуемый автоматом управления операциями стирания
(программирования). В цикле записи в регистрах PD и РА фикси-
руются данные и адрес. Операции ввода и вывода данных в СБИС
выполняются в соответствии с сигналами на выводах СЕ#, ОЕ#,
WE#. В некоторых случаях используются дополнительно выводы
адреса АО и А9. Варианты операций на шине, к которой подклю-
чена СБИС флэш-памяти, показаны в табл. 6.3 и 6.4.
Стирание и программирование заканчиваются подачей извне
соответствующей команды верификации. Стоп-таймер прекраща-
ет стирание (программирование), если после определенного про-
межутка времени не поступила команда верификации. При этом
СБИС входит в неактивное состояние и остается в нем до приема
команды верификации или начальной установки.
При высоком уровне напряжения (1) на выводе выбора кри-
сталла CE# микросхема находится в состоянии ожидания. Для него
характерно пониженное энергопотребление.
Если Крр = 0, то регистр команды всегда настроен только на
организацию чтения данных из микросхемы и не воспринимает
команды из шины данных. Если Крр= 12 В, то в регистр команд
разрешена запись кодов команд. Код команды передается в ре-
гистр команды по шине данных в цикле записи. Регистр команды
не имеет определенного адреса в АП. Запись осуществляется пере-
водом сигнала WE# в низкий уровень при сигнале CE# = 0.
Для работы с микросхемой предусмотрены семь команд: чте-
ние памяти, чтение идентификаторов, установка стирания (сти-
рание), верификация стирания, установка программирования
(программирование), верификация программирования, сброс
(reset). Для записи команды и ее выполнения требуется от одного
до трех циклов шины. 1-й цикл — это запись команды, передава-
емой по шине данных. Наиболее часто выполняется команда чте-
ния. При включении питания микросхема автоматически устанав-
ливается в режим чтения. Она может быть переведена в этот ре-
жим и командой с соответствующим кодом (ООН). Последующее
обращение к микросхеме со стороны процессора приводит к чте-
нию соответствующей адресу ячейки накопителя. Устройство на-
ходится в режиме чтения, пока не будет записана в регистр ко-
манды другая команда. Команда «установка стирания (стирание)»
устанавливается двумя циклами записи. 1-я запись готовит уст-
ройство для стирания. 2-я запись запускает процесс стирания мас-
сива. Подобная организация снижает вероятность потери инфор-
мации из-за ошибочного инициирования операции стирания. После
каждой операции стирания все байты памяти должны быть прове-
рены. Для этого используется команда «верификация стирания».
Выполнение команды «установка программирования (программи-
рование)» также запускается двумя циклами записи от процессо-
ра. В 1-м записывается код команды, во $-м — адрес и данные для
записи (программирования). После записи команды верификации
программирования следующий цикл — чтение данных из про-
граммируемой ячейки. Адрес ячейки не задается. Команда сброса
(reset) введена для безопасного прекращения последовательности
команд стирания и программирования. Если после записи коман-
ды установки стирания или установки программирования дважды
записать код FFH (все единицы), то команда установки сбрасы-
вается. Далее следует записать нужную команду, например, чте-
ние. Стирание и программирование микросхем 28F020 осуществ-
ляется под управлением центрального процессора. При включе-
нии питания микросхема автоматически устанавливается в режим
чтения. Отметим основные функциональные особенности рассмот-
ренной группы микросхем:
• стирание всего массива ЗЭ одновременно;
• запись только байтами;
• низкая степень автоматизации стирания (программирования);
• наличие регистра команд и использование программного уп-
равления в ряде режимов работы;
• программирование (стирание) только при высоком напряже-
нии на контакте Крр.
В следующих группах микросхем алгоритмы стирания и про-
граммирования реализуются в основном встроенными автомата-
ми, что упрощает работу СБИС. При этом регистр состояния со-
держит информацию о каждом блоке накопителя. В частности в
нем содержится информация о процессе стирания-записи в бло-
ке, о запрете стирания и др.
В микросхемах 2-й группы (микросхемы типа «Boot Blok») на-
копитель разделен на блоки разного размера. Блоки допускают
раздельное стирание. Длительная операция стирания одного блока
может прерываться для выполнения чтения из других блоков. В соста-
ве СБИС этой группы имеется блок «Boot Block», содержание ко-
торого аппаратно защищено от случайного стирания. В этом блоке
имеются также блоки параметров и главные блоки. В «Boot Block»
хранится BIOS. Блоки параметров хранят коды идентификаторов,
диагностические программы. Главные блоки не имеют аппарат-
ной защиты от непредусмотренной записи. Они могут использо-
ваться для хранения любой информации в системе.
В микросхемах 3-й группы (так называемые флэш-файлы) на-
копитель разделен на блоки равного размера по аналогии с разде-
лением жестких магнитных дисков на сектора. Они в частности
используются для замены жестких магнитных дисков в портатив-
ных компьютерах. Типичные характеристики этих микросхем: раз-
рядность данных л = 8, 16; информационная емкость 4—32 Мбит;
время доступа 70—150 нс; напряжение питания 5; 3,3; 2,7 В.
Для модификации информации во флэш-памяти можно ис-
пользовать три способа: программирование на программаторе, про-
граммирование в составе системы с использованием технологи-
ческого разъема для подключения программатора, программиро-
вание в составе системы под управлением центрального процес-
сора с использованием соответствующих средств аппаратной и
программной поддержки.
Сравнивая флэш-память с другими средствами массовой па-
мяти (дисками, магнитными лентами), можно отметить, что она
имеет существенно большее быстродействие (при чтении на 5 —6
порядков), но более высокую относительную стоимость (стоимость
бита) и меньшую информационную емкость.
6.11. Внешняя память
Внешняя память (ВП) служит для накопления и хранения боль-
ших объемов информации, используемой в процессе работы ВМ.
Информационная емкость и время доступа к информации во ВП
в значительной мере определяют потребительские свойства ВМ,
возможности ее использования для решения разных классов задач.
Обязательным требованием к ВП является энергонезависимость —
сохранение информации при отключении источника питания, а
также сравнительно низкая стоимость ЗЭ. Разработано большое
число типов ВЗУ, отличающихся общетехническими показателя-
ми: информационной емкостью, временем доступа к информа-
ции, стоимостью, надежностью. Целью данного раздела является
не подробное описание всех типов устройств ВП, а знакомство с
основными принципами записи, хранения и чтения информации
в этих устройствах, логической организацией хранимой инфор-
мации, принципами организации информационного обмена с про-
цессором и другими устройствами ВМ, тенденциями развития ус-
тройств ВП. Основными устройствами ВП являются: накопители
на жестких дисках (винчестеры), накопители на гибких дисках —
дискетах (Floppy disk), накопители на оптических дисках CD
(Compact Disk), накопители на магнитных лентах (стримеры),
накопители на флэш-картах. Средства ВП различного исполнения
отличаются по основным техническим показателям: времени до-
ступа и информационной емкости (рис. 6.29).
В накопителях на гибких и жестких дисках, а также на магнит-
ных лентах для запоминания информации используется ферро-
магнитная пленка, нанесенная на поверхность диска либо ленты.
Кривая намагничивания этой пленки имеет значительный гисте-
резис, вследствие чего остаточная намагниченность зависит от
направления действия магнитного поля при намагничивании. Для
записи дискретной информации проводится намагничивание от-
дельных участков поверхности, соответствующих ЗЭ, до насыще-
ния в одном либо другом направлении. При чтении используется
остаточная намагниченность этих участков, воспринимаемая маг-
нитной головкой при прохождении под ней соответствующего
участка магнитной поверхности. Использование ферромагнетиков
обеспечивает энергонезависимость памяти. Используются разли-
чные способы записи информации на магнитную поверхность,
отличающиеся формированием сигналов данных и синхроимпуль-
сов. Синхроимпульсы необходимы для синхронизации работы элект-
Рис. 6.29. Сравнение средств внешней памяти:
ГД — гибкий диск; ЖД — жесткий диск; МЛ — магнитная лента; Тжт — время
доступа; И — информационная емкость
ронных схем воспроизведения и записи с движением магнитного
носителя информации под головкой считывания и записи.
Рассмотрим два способа записи (рис. 6.30), получившие рас-
пространение: с частотной модуляцией или кодированием (ЧМ
или FM) и модифицированной частотной модуляцией (МЧМ или
MFM). Узкая полоса поверхности, расположенная под головкой
записи-чтения, называется дорожкой. Последовательно располо-
женные участки дорожки соответствуют ЗЭ. Импульс синхрони-
зации С формируется при прохождении под головкой границы
между смежными ЗЭ и обусловлен изменением намагниченности
в этом месте.. Импульс данных D формируется при прохождении
под головкой середины ЗЭ, в котором записана «1». Этому соот-
ветствует изменение намагниченности в середине ЗЭ. Если запи-
сан «0», то изменения намагниченности в середине ЗЭ нет, и
импульс D отсутствует. Технологическими причинами ограничен
минимальный линейный размер участков дорожки с разным на-
правлением намагниченности. Это определяет достижимую плот-
ность размещения информации на магнитной поверхности.
Способ с МЧМ кодированием направлен на повышение плот-
ности размещения информации (рис. 6.30, б). При этом способе
Информация
|i|i|i|o|i|o|o|o|i|
Магнитный
поток Ф
Синхро-
импульс С
Данные D
Направление
движения
Магнитный
поток Ф
Синхро-
импульс С
Данные D
I мчм
J (MFM)
1
1
1
Рис. 6.30. Способы записи информации на магнитной поверхности:
а — частотная модуляция — ЧМ(РМ)-кодирование; б — модифицированная ча-
стотная модуляция — МЧМ(МРМ)-кодирование
для той же информации требуется изменять направление намаг-
ниченности в два раза реже. Это означает, что при одинаковых
технологических ограничениях может быть осуществлена запись
информации с двойной плотностью. При записи «1» направление
намагниченности в середине ЗЭ изменяется, при передаче «0» —
не изменяется. На границах ЗЭ направление намагниченности из-
меняется только тогда, когда подряд следует несколько «0». При
этом на границах ЗЭ, содержащих «0» во время чтения возникают
синхроимпульсы. В сравнении со способом ЧМ синхроимпульсы
возникают реже и нерегулярно. Для разделения считываемых би-
тов в этом случае используется генератор с фазовой подстройкой
частоты. Для подстройки используются синхроимпульсы. Генера-
тор и определяет моменты времени начала прохождения ЗЭ.
Вычислительный процесс в ВМ организует процессор. При
обработке данных процессор обменивается данными с памятью
или периферийными устройствами по адресу (соответственно ис-
пользуются два АП). При этом используется принцип линейно-
адресной организации этих пространств. Адрес является именем
информации, записываемым в программе.
Во ВЗУ, предназначенных для долговременного хранения ин-
формации, таких адресов у запоминающих ячеек нет. Здесь ис-
пользуется иной способ логической организации информации. Ин-
формация структурируется с учетом содержания и соответствую-
щих логических связей. Основной единицей долговременного хра-
нения информации является файл (см. подразд. 6.1). Информация
на внешних носителях имеет определенную физическую струкгу-
ру, определяемую организацией ВЗУ. Между физическими фай-
лами и логическими нет однозначного соответствия. Это соответ-
ствие организуется с использованием ОС. В целях упрощения про-
граммирования в ОС вводят два уровня программного управления
вводом-выводом данных: логический и физический. Логический
уровень содержит ряд логических модулей, каждый из которых
относится к определенному периферийному устройству. Програм-
мы пользователей имеют дело с логическими модулями. Логиче-
ский модуль формирует входные данные для периферийного уст-
ройства в стандартном для него виде. Передача информационных
и служебных сигналов осуществляется с использованием соответ-
ствующих интерфейсных устройств — контроллеров.
Для того чтобы информация, хранимая в ВЗУ, стала доступ-
ной процессору, ее необходимо переписывать в ОП. Управляют
процессами обмена ОС, чипсеты и контроллеры внешних уст-
ройств.
Для знакомства с физической структурой данных в ВЗУ рас-
смотрим ее на примере гибкого магнитного диска (ГМД или ГД).
Данные ГД (рис. 6.31) хранятся на концентрических дорожках в
последовательной форме. Дорожки нумеруются от периферии диска
Дорожка 76
Дорожки
Индексное
отверстие
Дорожка 00
Дорожка 40
Сектор 1 (188 байт)
Поле признаков (байт)
Поле данных (байт)
6
1
6
2
2
128
1
2
1
1
1
2
1
4
1
1
Поле начальных
участков А
73 байт
Поле
конечных
участков
24
1а
X
л
§
XI
§
Л
п
X
X
О
«
з
3
§
&
£
о
S
о
о.
е
9-
§
>х
3
X
S-
та
S
«I
о
Е*
Л
§
5
х
Л
X
О
о
а
ч
Л
э
S
Л
X
О
1
о
3
*
Л
а
к
£
3
§
s
а
е
о
I
S
X
S
§
я
§
§
к
X
X
X
§
е
§
о
s
а
е
о
§
я
§
с
Рис. 6.31. Физическая структура и формат записи данных на гибком
магнитном диске
к центру. Диск разделен на секторы. Таким образом, информация
на диске разделена на блоки. Блок идентифицируется номером
дорожки и номером сектора. Отверстие в центре диска использу-
ется для соединения с приводом. Индексное отверстие служит для
синхронизации вращения диска и работы электронных схем, уча-
ствующих в чтении и записи.
Внешняя дорожка с номером «00» содержит идентифицирую-
щую информацию для всего диска. Следующие две дорожки обычно
являются запасными, а остальные используются для записи рабо-
чей информации. Диск помещен в пластмассовый корпус. Когда
индексное отверстие совпадает с отверстием в корпусе (диск при
вставленной в компьютер дискете вращается, а корпус дискеты
неподвижен), луч света, освещающий диск с одной стороны,
воспринимается светочувствительным элементом с другой сторо-
ны дискеты и формируется синхроимпульс. В корпусе дискеты
имеется также щелевое отверстие, через которое магнитная го-
ловка, взаимодействуя с диском, осуществляет запись и чтение.
Головка, перемещаясь вдоль щели, устанавливается в определен-
ные позиции. Продвижение головки в заданную позицию называ-
ют доступом к дорожке. Электромеханическое устройство, с по-
мощью которого осуществляются запись и чтение информации,
называют дисководом.
Разделение поля записи на секторы осуществляется магнитны-
ми маркерами. Положение магнитных маркеров определяется про-
граммно в процессе разметки дискеты. Маркер представляет со-
бой байт с особым набором сигналов D и С. Маркеры выделяются
схемой контроллера ГД и используются для управления процес-
сом обмена.
Каждый сектор имеет поле признаков и поле данных. Для по-
вышения надежности хранения информации используют цикли-
ческие коды [16]. Соответственно в поле признаков и в поле дан-
ных предусмотрены контрольные коды (КК). При записи контрол-
лер формирует КК и помещает их на дорожку. При чтении кон-
троллер формирует КК по считанной информации и определяет
достоверность информации. При обнаружении ошибки она фик-
сируется и инициируется повторное считывание. Это обусловлено
тем, что часто искажение информации происходит не на диске, а
в тракте воспроизведения. Такие попытки повторного чтения ини-
циируются несколько раз (до 10), и только после многократных
неудач процесс чтения прекращается и формируется сигнал о
неправильной работе ГД. В секторе имеется всего 128 рабочих бай-
тов, доступных пользователю (см. рис. 6.31). Остальные байты сек-
тора являются вспомогательными (своеобразная «упаковка») и слу-
жат для синхронизации, идентификации и повышения достовер-
ности. Промежутки служат для образования служебных временных
интервалов, необходимых для выполнения операций контроля,
преобразования форматов (в ВП и ОП форматы различны) и об-
мена с ОП. Для рабочей информации используется около 65 %
поверхности ГД. Дискеты можно извлекать из компьютера и заме-
нять новыми. Они служат удобным средством для архивирования
и обмена информацией.
Основным типом ВЗУ в компьютере являются накопители на
жестких магнитных дисках (HDD — Hard Disk Drive) — ЖД. Их
называют также винчестеры. Жесткие магнитные диски имеют боль-
шую информационную емкость (10 Гбайт). Скорость обмена ин-
формацией с ОП у жестких дисков существенно выше, чем у гиб-
ких. На разгон двигателя, приводящего диски в движение, при
обменах время не тратится. В отличие от ГМД при включенном
компьютере жесткие диски постоянно вращаются. Информацион-
ный объем и скорость обмена ЖД существенно влияют на функ-
циональные возможности и производительность компьютера.
В ЖД магнитная пленка наносится с двух сторон на алюмини-
евые диски. Диски собираются в пакет, жестко связанный с дви-
гателем. Скорость вращения пакета составляет 3600 об/мин. Вин-
честеры стационарно устанавливаются в корпусе компьютера и
не рассчитаны на смену дисков. Винчестеры не подлежат разборке.
В металлическом корпусе объединены такие элементы винчесте-
ра, как управляющий двигатель, диски, головки записи (считы-
вания) и электроника. Головки расположены с двух сторон у каж-
дого диска. Все головки расположены «гребнем». Позиционирова-
ние головки (перемещение на определенную дорожку) обязательно
вызывает и перемещение всех остальных. Головки приводятся в
движение и позиционируются шаговым двигателем. Жесткая орга-
низация головок и их совместное перемещение обусловливают
понятие цилиндра в винчестере — множества дорожек на всех
поверхностях пакета дисков, соответствующих каждой позиции
головок. Как и в ГД на магнитной поверхности диска выделяются
дорожки и сектора. Информационный объем винчестера опреде-
ляется следующим образом:
(Информационный объем HDD) = (число головок)х
х(число цилиндров)х(число секторов)х
х (число рабочих байт в секторе).
Магнитные свойства поверхности диска, конструкция и высо-
та полета головок, скорость движения определяют предельную
плотность расположения ЗЭ. Используют различные схемы коди-
рования информации. В схеме с побитным кодированием, как и в
ГД, используют ЧМ и МЧМ. Более эффективны схемы группово-
го кодирования (например, RLL1.7, RLL2.7). Цепочка байт пред-
варительно разбивается на группы, которые кодируются по опре-
деленным правилам. Это позволяет повысить соотношение полез-
ной плотности записи: FM/MFM/RLL1.7/RLL2.7 = 1/2/2.54/3.
В современных винчестерах используют методы цифровой фильт-
рации, магнитно-резистивные головки (вместо индукционных го-
ловок).
Развитие технологии жестких дисков направлено на повыше-
ние средней скорости обмена данными с ОП. Рассмотрим струк-
туру затрат времени на обмен:
(Время считывания одного сектора) = (время поиска цилиндра)х
х (время ожидания сектора к головке)х(время обмена данными).
Одиночная передача сектора встречается редко, поскольку его
размер невелик (512 байт). Поэтому при организации обмена оп-
тимизируют переход передачи от одного сектора к другому, от
одной дорожки к другой в том же цилиндре, от одного цилиндра
к другому. Форматирование дисков на физическом уровне выпол-
няет изготовитель.
Темпы развития ВП характеризуются следующими показате-
лями, получаемыми на основе статистических данных: плотность
размещения информации и информационная емкость увеличива-
ются в среднем в 4 раза за 3 года; время доступа уменьшается не
более, чем в 3 раза за 10 лет [50].
Для организации обмена данными между накопителями ВП с
одной стороны и ОП с другой стороны требуются специальные
устройства сопряжения — контроллеры.
Контроллер памяти на жестких дисках расположен на плате
электроники, смонтированной вместе с пакетом жестких дисков,
а контроллер гибких дисков вынесен на плату, подключаемую через
разъем расширения к системной плате компьютера. Контроллер
памяти на жестких дисках содержит следующие функциональные
блоки: усилители воспроизведения и записи, связанные с голов-
ками; коммутатор головок; блок кодирования—декодирования дан-
ных; блок управления позиционированием; блок управления
шпинделем; буферную память. Контроллер разрабатывается в со-
ответствии с определенным стандартом. Для контроллеров жест-
ких дисков в ПК используются в основном два стандарта: IDE
((Integrated Device Electronic) и SCSI (Small Computer Device
Interface). Свыше 90 % ПК оснащены жесткими дисками с интер-
фейсом IDE. Интерфейс SCSI преимущественно используется в
рабочих станциях. Основные преимущества этого интерфейса про-
являются в мультизадачных средах. Понятие Integrated Device
Electronic — слишком широкое. В попытках конкретизировать на-
значение интерфейса его разработчики предложили еще одно на-
звание, используемое наряду с IDE. Это название АТА — АТ
Attachment (прикрепленное к АТ). Интерфейс был разработан для
компьютеров IBM PC AT, начиная с которых жесткие диски ста-
ли обязательным устройством в составе компьютера. В дальней-
шем по мере развития компьютерной индустрии совершенство-
вался и интерфейс (АТА2, АТАЗ, Ultra АТА). Совершенствование
позволило повышать скорость и надежность обмена.
Следует различать внутреннюю и внешнюю скорость обмена
информацией с ЖД. Внутренняя скорость характеризует интен-
сивность потока информации между диском и блоками контрол-
лера и определяется жестким диском:
(Внутренняя скорость) = (скорость вращения)х
х (число секторов на дорожке)х
х (информационный объем на сектор).
Внешняя скорость обмена характеризует интенсивность инфор-
мационного потока между контроллером ЖД и ОП по шине ком-
пьютера. Она зависит от типа интерфейса ЖД, типа чипсета, ре-
жима обмена. Изначально с интерфейсом IDE/АТА использовал-
ся протокол Programmed I/O (РЮ). Существуют пять режимов РЮ
с разной скоростью обмена. Обменом с использованием РЮ уп-
равляет центральный процессор. Другой возможный режим обме-
на с ОП — это режим прямого доступа к памяти DMA. Разработа-
но несколько модификаций режима, отличающихся скоростью
обмена. При этом обмен информацией ЖД с ОП выполняется без
участия процессора. Современные чипсеты поддерживают возмож-
ность использования различных режимов передачи данных.
Для согласования различия внутренней и внешней скорости
передачи информации в составе контроллера используется буфер.
Внутренняя скорость составляет 60 — 80 Мбайт/с. Внешняя ско-
рость: при интерфейсе IDE/ATA 3,3—16,6 Мбайт/с; при интер-
фейсе SCSI — 5, 10, 20, 40 Мбайт/с.
В современных компьютерах наряду с жесткими и гибкими дис-
ками используется ВП на оптических дисках CD-ROM или ком-
пакт-дисках. Компакт-диск CD — удобный компактный носитель
информации с информационной емкостью 500—700 Мбайт. В от-
личие от магнитного диска CD-ROM практически не изнашивает-
ся. При записи «1» на поверхности диска лазерным лучом выжига-
ется маленькое углубление (Pits), это вызывает отклонение отра-
женного луча при чтении. Управляется CD-ROM через интерфейсы
IDE либо SCASI. Рассмотрим кратко организацию хранения ин-
формации на CD-ROM. Инициирующая дорожка данных начина-
ется со служебной области, необходимой для синхронизации. Да-
лее идет системная область, содержащая данные об организации
информации на диске (VTOC — Volume Table of Contents). В си-
стемной области записаны адреса файлов, что позволяет осуществ-
лять прямое позиционирование на них. Новые технологии записи
информации на компакт-дисках стремительно сменяют друг друга:
CD-RV, DVD, DVD + R/V. Digital Video Disk (DVD) — диски c
высокой плотностью записи. Для повышения плотности записи ин-
формации уменьшена ширина трека и размер запоминающего эле-
мента. DVD диски бывают в различном исполнении: с односторон-
ней (SS — Single Side) и с двухсторонней записью (DS — Dual
Side); на каждой стороне информация может храниться в одном
слое (SL — Single Layer) и в двух (DL — Dual Layer). Технология,
использующая синий лазер, позволяет записывать на односторон-
нюю однослойную болванку от 17 до 27 Гбайт информации.
Накопители на магнитной ленте (стримеры) используются
реже, чем диски. Основными достоинствами этих накопителей
являются малые удельная стоимость, габариты и вес. Недостатком
является относительно большое время доступа к информации.
Стримеры в основном используются для архивации и резервного
копирования больших объемов данных. Информационная емкость
может составлять от 40 Мбайт до 1 Гбайт.
В различных устройствах системы памяти используются различ-
ные способы доступа к информации. В ОП доступ осуществляется
по адресу к любой ячейке независимо от остальных ячеек. Такие
устройства называют запоминающее устройства с произвольным до-
ступом. В накопителях на магнитной ленте доступ к информации
последовательный. Позиции ленты, соответствующие ЗЭ, стано-
вятся доступными только в определенном порядке. При этом каж-
дое хранящееся слово привязано не к ячейке с определенным ад-
ресом, как в ОП, а к своему положению относительно других
хранящихся слов. Такие ЗУ называют запоминающее устройства с
последовательным доступом.
В накопителях на магнитных и оптических дисках комбиниру-
ются черты устройств с произвольным и с последовательным до-
ступом. Можно представить диск как множество полос магнитной
ленты. Каждая дорожка может рассматриваться независимо от дру-
гих. Доступ к дорожке произвольный. Внутри дорожки доступ к
информации последовательный. Такие устройства называют запо-
минающее устройства с прямым доступом.
Наименьшее время доступа к информации обеспечивают уст-
ройства с произвольным доступом, наибольшее — с последова-
тельным доступом, а запоминающее устройства с прямым досту-
пом занимают промежуточное положение. В ряде компьютеров на
смену жестким дискам приходит флэш-память, реализуемая на
флэш-картах (небольших печатных платах с установленными на
них микросхемами флэш-памяти и микросхемами управления).
Флэш-память относится к запоминающим устройствам с произ-
вольным доступом и в сравнении с ЖД обеспечивает более высо-
кую производительность компьютера.
Контрольные вопросы
1. Что такое иерархическая организация системы памяти, предпосыл-
ки? Средства для построения устройств памяти на различных уровнях орга-
низации?
2 qT0 такое сравнительная характеристика устройств памяти ВМ по
информационному объему, быстродействию, способам доступа к ин-
формации?
3. Каковы структура СБИС DRAM, состав и назначение блоков, на-
значение выводов СБИС, режимы работы СБИС? Как инициируется
переход из одного режима в другой?
4. Что такое схемотехника накопителя СБИС DRAM? Каковы прин-
ципы хранения, записи и воспроизведения значения бита в ЗЭ? Поче-
му необходима регенерация?
5. Что такое работа СБИС DRAM в режимах хранения, чтения, запи-
си и регенерации, временные диаграммы? Каковы параметры, характеризу-
ющие быстродействие: время доступа, длительность циклов чтения и
записи, время предзаряда? Дайте определение параметров по времен-
ным диаграммам работы СБИС.
6. Что такое способы организации регенерации в системе, их срав-
нительная характеристика?
7. Каковы достоверность и надежность хранения информации в ОП,
причины искажения информации? Что такое кратность ошибки? Что
такое кодовое расстояние? Как от него зависит возможность контроля
возникновения и возможности исправления ошибок?
8. Каковы методы повышения достоверности и надежности; сред-
ства, используемые для повышения достоверности и надежности рабо-
ты ОП; их распределение в структуре компьютера?
9. В чем состоит проблема повышения скорости обмена центральный
процессор — ОП? От чего зависит скорость обмена? Почему кэширова-
ние позволяет уменьшить затраты времени на обмены данными про-
цессора с ОП? В чем заключаются свойства локальности команд и дан-
ных?
10. Как пакетный обмен данными процессора с ОП связан с кэши-
рованием? Какие архитектурные приемы используются для повыше-
ния средней скорости обмена данными между процессором и памятью
при пакетных режимах? Почему изменения времени обмена имеет дис-
кретный характер? От чего зависит длительность минимального цикла
обмена (дискрета)?
И. Как организуется пакетный доступ с чередованием банков? За
счет чего уменьшается среднее время обмена?
12. Как организуется конвейерный доступ с чередованием банков?
За счет чего уменьшается среднее время обмена? Как можно сочетать
пакетный и конвейерный способы доступа?
13. Расскажите о развитии организации доступа в СБИС динамиче-
ской памяти, методах адресации: FPM, EDO, BEDO. В чем отличия
этих методов? Какие из этих методов связаны с изменением структуры
СБИС? В чем заключаются эти изменения? Влияет ли метод адресации
на организацию контроллера ОП?
14. Чем отличается структура синхронной СБИС DRAM от асинх-
ронной? Для чего используется разделение накопителя на банки? Как
распределяются адреса между банками? Как изменились функции бло-
ка управления СБИС? Имеются ли отличия во внешнем интерфейсе
СБИС?
15. Каковы отличительные принципы организации СБИС повышен-
ного быстродействия: SDRAM, RDRAM, DRDRAM? На чем основано
повышение скорости обмена при использовании этих типов СБИС?
16. Расскажите о модулях ОП, принципах построения, типах. Как орга-
низуется доступ к байтам при байтовом обмене? Что такое банк? Как
влияет разделение накопителя на банки на организацию модулей? Для
чего в некоторых типах модулей используются буферные регистры?
17. Каковы методы и средства идентификации модулей ОП в систе-
ме? Для чего нужна идентификация? Какая информация отображается
при идентификации? В каких режимах работы компьютера проводится
идентификация? Как используется эта информация при управлении вы-
числительными процессами?
18. Организация накопителя DRAM в компьютере — схема объедине-
ния модулей, преобразование адресной и управляющей информации в
контроллере ОП: в каких форматах поступает от процессора, в каких
форматах передается в накопитель? В каких цепях и для чего используют-
ся буферы? Чем ограничивается минимальный и максимальный объем
ОП в конкретных типах моделей компьютеров? Чем ограничивается вы-
бор типов модулей и СБИС DRAM?
19. Что такое СБИС статической памяти, структура, схемотехника ЗЭ,
параметры, сравнение с динамической памятью? Почему в режиме хра-
нения обеспечивается малое потребление энергии?
20. Каковы назначение и принципы построения энергонезависимой
памяти? Дайте классификацию СБИС ПЗУ.
21. Какова структура СБИС ПЗУ масочного типа с технологией ROM?
Назначение выводов? Режимы работы СБИС? Принципы организации
матрицы ЗЭ? Как отображаются значения бита в ЗЭ матрицы? Как про-
изводится запись информации?
22. Расскажите о принципах построения и работы ЗЭ в СБИС ППЗУ
(технология PROM), режимах работы СБИС. Как производится запись и
чтение? Что такое программатор? Можно ли исправлять ошибки при
записи?
23. Каковы принципы построения полупроводниковой структуры ЛИП-
ЗМОП-транзистора? Как отображается значение бита в ЗЭ СБИС РПЗУ
(технология EPROM)? Как производится запись, стирание и чтение
информации? Есть ли ограничения на число перезаписей и с чем они
связаны? Можно ли использовать СБИС EPROM при построении ОП?
В каких системах используют эти СБИС?
24. Поясните принцип работы ЗЭ СБИС, выполненной по техноло-
гии EEPROM. В чем отличия работы ЗЭ от ЗЭ FLASH и EPROM?
25. Поясните процессы, происходящие в полупроводниковой струк-
туре ЗЭ флэш-памяти в режимах чтения, стирания и записи. Есть ли ог-
раничения на число перезаписей? Сравните по этому показателю с тех-
нологиями PROM, EPROM, EEPROM.
26. Поясните принципы организации матрицы ЗЭ в СБИС флэш-па-
мяти? Как организованы запись, стирание и чтение информации? Ка-
кие меры используются для обеспечения работоспособности ЗЭ в матри-
це при стирании и записи? Чем обусловлена необходимость этих мер?
27. Каковы состав и назначение блоков в структуре СБИС флэш-па-
мяти? Поясните организацию работы СБИС в различных режимах. Мож-
но ли использовать СБИС флэш-памяти в ОП? В каких режимах? Как
организуется стирание и запись в составе системы?
28. В чем отличия в организации взаимодействия процессора с ОП и
ВП?
29. Какие области в пространстве параметров (время доступа — ин-
формационный объем) занимают различные типы информационных
носителей ВП? Каковы перспективы их развития и использования в ВС?
30. Поясните способы кодирования и записи цифровой информации
на магнитной поверхности. Как разные способы кодирования влияют на
плотность записи и сложность воспроизведения информации при чте-
нии?
Глава 7
ПРИНЦИПЫ ОБМЕНА ДАННЫМИ
В ВЫЧИСЛИТЕЛЬНЫХ МАШИНАХ.
ИНТЕРФЕЙСЫ ВЫЧИСЛИТЕЛЬНЫХ МАШИН
7.1. Общие сведения. Назначение и классификация
шинных интерфейсов
Возможности использования ВМ в значительной степени за-
висят от состава и технических характеристик периферийных уст-
ройств. Функции, выполняемые периферийными устройствами,
весьма разнообразны. Внешнее запоминающее устройство пред-
назначены для энергонезависимого хранения больших объемов ин-
формации. Устройства ввода-вывода используются для ввода в ВМ
и вывода из нее различной информации: числовой, текстовой,
графической, аудио. Периферийные устройства различаются прин-
ципом действия, форматами и скоростью передачи информации
через их внешние выводы, набором управляющих сигналов. Су-
щественно, что периферийные устройства работают в своем тем-
пе, не синхронизированном с работой процессора. Запросы со
стороны периферийных устройств на установление связи и обмен
данными могут поступать в произвольные моменты времени. Для
организации обмена требуются специальные электронные сред-
ства согласования форматов и синхронизации процессов. С их по-
мощью решают проблемы индивидуального интерфейса каждого
периферийного устройства, подключаемого к системной шине ВМ.
В соответствии с определениями, представленными в гл. 2, в
организации ВМ используются принципы модульности и магист-
ральности. Модульность предполагает построение системы из мо-
дулей со стандартным интерфейсом. Напомним, что под модулем
понимают печатную плату (плату расширения), на которой реа-
лизован адаптер или контроллер, соединяющий периферийное
устройство с шиной. Возможность подключения модулей к си-
стемной шине обеспечивает гибкость в выборе и изменении соста-
ва системы. Принцип магистральное™ означает использование для
информационного обмена между устройствами ВМ магистралей
(шин), к которым подключаются модули. В современных компью-
терах используется иерархия шин, отличающихся пропускной спо-
собностью, набором сигналов и протоколом. Организация шин
рассматривается в гл. 8. Принципы организации информационно-
го взаимодействия модулей по шинам обсуждаются в данной гла-
ве. Они являются общими для всех шин. Важнейшими принципа-
ми являются принцип подчиненности, принцип квитирования и
принцип унификации характеристик модулей.
Принцип подчиненности предполагает, что одно из обмениваю-
щихся информацией по шине устройств является ведущим, уп-
равляющим процессом обмена, а другое (или несколько других) —
ведомым. В стандартах для разных типов шин для ведущего и ведо-
мого устройств используются также термины: активное и пассив-
ное устройство, задатчик и исполнитель, инициирующее и целе-
вое устройство.
Принцип квитирования базируется на использовании специаль-
ного сигнала quit (квитанции), формируемого ведомым устрой-
ством и используемого ведущим как разрешение завершения цикла
обмена. Это позволяет организовать обмен между модулями с раз-
личным быстродействием. Реализация принципа квитирования
детально рассмотрена в гл. 8.
Принцип унификации характеристик модулей состоит в обеспе-
чении информационной, электрической и конструктивной совме-
стимости интерфейсов модулей вычислительной системы.
Информационная совместимость предполагает оди-
наковый состав управляющих сигналов в линиях шины, форматов
адресов и данных, а также протоколов обмена, устанавливающих
причинно-следственные связи и временные интервалы между сиг-
налами. Требование информационной совместимости влияет на
функциональную организацию адаптеров и контроллеров.
Электрическая совместимость — это согласованность
параметров электрических сигналов, используемых для информа-
ционного обмена по шине, нагрузочной способности источников
сигнала и входных токов приемников, паразитных параметров
линии связи.
Конструктивная совместимость — это унификация
модулей, шины и корпуса ВМ по конструктивным параметрам:
размерам, типам соединителей, месту их установки и т. п.
Рассмотрим типичные для обмена по шине временные диаг-
раммы циклов чтения (записи) и основные временные парамет-
ры, характеризующие цикл (рис. 7.1). Ведущее устройство уста-
навливает адресные сигналы на шине адреса. Затем с достаточной
для распознавания «своего» адреса ведомыми устройствами за-
держкой ведущее устанавливает управляющие сигналы на шине
управления. Ведомое устройство за время распознает факт обра-
щения к себе, в случае надобности выдает ответные сигналы (quit)
через время tq. Если выполняется чтение, то с задержкой t2, опре-
деляемой внутренними свойствами, ведомое устройство устанав-
ливает сигналы на шине данных, которые фиксируются далее во
внутренних регистрах ведущего устройства. Если выполняется за-
пись, то ведущее устройство помещает сигналы на шину данных,
откуда они поступают в регистры ведомого устройства. Фиксация
Рис. 7.1. Временные диаграммы циклов чтения/записи:
а — синхронный цикл чтения; 6 — синхронный цикл записи; в — асинхронный
цикл чтения; г — асинхронный цикл записи; ^...1$ — временные параметры,
характеризующие циклы обмена информаций
информации на принимающей стороне проводится по спаду спе-
циального управляющего сигнала (строба чтения или записи). Для
цикла чтения устанавливается ограничение сверху на время /4 удер-
жания ведомым устройством данных на шине после снятия стро-
ба, поскольку шина данных должна быть освобождена для следу-
ющего цикла. Для цикла записи устанавливается ограничение снизу
для времени ts удержания ведущим устройством данных на шине
для надежности записи.
Обмен бывает синхронный и асинхронный. При синхронном
обмене длительности стробов (73) являются фиксированными. При
асинхронном обмене t3 зависит от момента прихода ответного
сигнала: строб снимается только после получения ведущим уст-
ройством ответа. Время tq определяется быстродействием ведомо-
го устройства. Отсутствие ответа в течение заданного максимума
интервала tq расценивается как сбой в работе шины.
К основным принципам организации шинных интерфейсов
следует также отнести применение контроллеров (адаптеров) вво-
да-вывода, с помощью которых периферийные устройства через
шину связываются с центральным процессором ВМ.
Для классификации интерфейсов (совокупности аппаратных,
программных и конструктивных средств взаимодействия устройств
ВМ) ГОСТ 26.016—81 устанавливает четыре основных классифи-
кационных признака:
• способ соединения компонентов (магистральный, радиаль-
ный, цепочечный, смешанный);
• способ передачи информации (параллельный, последователь-
ный, параллельно-последовательный);
• принцип обмена информацией (асинхронный, синхронный,
изохронный). Под асинхронным обменом понимается цикл обме-
на, повторяющийся через равные промежутки времени;
• режим передачи информации (двухсторонняя одновремен-
ная, двухсторонняя поочередная, односторонняя).
Для обозначения режимов передачи часто используют специ-
альные термины: режим двухсторонней одновременной передачи
называют дуплексным, режим двухсторонней поочередной пере-
дачи — полудуплексным, а режим односторонней передачи — сим-
плексным.
Далее рассматриваются проблемы организации обмена данны-
ми между устройствами ВМ, а также назначение и состав некото-
рых интерфейсов ВМ.
7.2. Организация и обмен данными между периферийными
устройствами и вычислительным ядром системы
Проблемы организации обмена данными между периферий-
ными устройствами и вычислительным ядром (процессором и ОП)
связаны с асинхронным характером процессов, обусловленных
случайным характером событий, инициирующих начало и конец
обмена. В ВС используют три способа организации обмена, каж-
дый из которых по-разному решает отмеченные проблемы: про-
граммно-управляемая передача, инициируемая процессором, пе-
редача информации с прерыванием программы, активизируемая
по запросу прерывания от периферийного устройства, и передача
информации в режиме прямого доступа к памяти (рис. 7.2). Деталь-
ное изучение процедур обмена информацией для конкретных опера-
ций ввода-вывода выполняется на основе временных диаграмм.
При программно-управляемой передаче и передачах данных с
прерыванием программы и обмен осуществляется под управлени-
ем процессора. Операции ввода-вывода при таких обменах иници-
ируются либо текущей командой программы, либо запросом пре-
рывания от периферийного устройства. В режиме прямого доступа
к памяти передача информации выполняется без участия процессо-
ра под управлением специализированного управляющего блока —
контроллера прямого доступа к памяти.
Рис. 7.2. Способы обмена информацией между периферийными
устройствами и вычислительным ядром
Программно-управляемый обмен бывает синхронным и асин-
хронным. Инициатором обмена всегда выступает процессор, реа-
лизующий требуемые операции ввода-вывода с помощью соот-
ветствующих команд. Синхронная передача применяется при вза-
имодействии с быстродействующими периферийными устройства-
ми, для обмена с которыми не требуется дополнительной синх-
ронизации (такие устройства ввода-вывода всегда готовы к обме-
ну информацией). Этот способ передачи реализуется при мини-
мальных затратах аппаратных и программных средств.
Асинхронный обмен является более универсальным и более
сложным способом программно-управляемого обмена. Он исполь-
зуется при работе с периферийными устройствами, быстродей-
ствие которых ниже быстродействия процессора. В некоторые мо-
менты времени такие периферийные устройства могут оказаться
не готовыми к обмену. Поэтому для выполнения программно-уп-
равляемого обмена в общем случае необходимо использовать спе-
циальные средства, синхронизирующие процесс приема-переда-
чи. Эти средства содержатся в адаптере (контроллере) перифе-
рийных устройств. Адаптер (контроллер) подключается к шине
ВМ и служит посредником между периферийными устройствами
и вычислительным ядром.
Любой адаптер содержит регистр данных (порт данных). В ре-
жиме ввода данные из периферийных устройств поступают в порт
и хранятся в нем до момента пересылки по шине в вычислитель-
ное ядро. В режиме вывода данные записываются в порт процессо-
ром и хранятся там до передачи с помощью адаптера в устройство
вывода. Большинство адаптеров периферийных устройств, кроме
регистра данных, через который собственно и осуществляется
обмен информацией с процессором, содержат в своем составе
специальные регистры управления и состояния. Названные реги-
стры, подключаемые к шине и доступные процессору для чтения
(записи), обеспечивают взаимодействие процессора и адаптера пе-
риферийного устройства, необходимое для управления процес-
сом обмена. Регистр состояния отражает факт подключения пери-
ферийного устройства и его работоспособность. Один из разрядов
этого регистра может использоваться в качестве флага готовности
(READY), который устанавливается периферийным устройством
при готовности к приему-передаче данных через шину. Процессор
может проверить состояние флага готовности и при наличии сиг-
нала готовности выполнить требуемый обмен. Проверка готовно-
сти к обмену может осуществляться программно или аппаратно.
В большинстве случаев современные МП для проверки готовнос-
ти используют аппаратные средства. Они имеют специальный вход
готовности READY, который по шине управления соединен с
выходом одноименного триггера готовности периферийного уст-
ройства. Перед выполнением любой операции обмена процессор
опрашивает вход готовности и по результатам проверки либо осу-
ществляет внешний обмен (READY =1), либо переходит в состо-
яние ожидания, пока периферийное устройство не будет готово к
обмену (READY = 0).
Программно-управляемая передача является идеальным (самым
быстрым) способом обмена данными между периферийным уст-
ройством и процессором. Недостатком такого способа обмена яв-
ляются вынужденные непроизводительные затраты времени про-
цессора на ожидание готовности периферийного устройства к
обмену. Ограничения по использованию программно-управляемого
ввода можно проиллюстрировать на примере работы процессора
при вводе данных с клавиатуры, например при наборе текста.
Скорость ввода отдельных символов на клавиатуре редко превы-
шает 5—10 символов в секунду. Процессор последовательно пере-
сылает каждый символ в ОП и отображает его на экране компь-
ютера, затрачивая на эти операции единицы микросекунд. Чтобы
иметь возможность реагировать на каждое нажатие клавиши, про-
цессор должен постоянно следить за состоянием клавиатуры, и
поскольку он не выполняет никаких других действий, то в основ-
ном простаивает. Это допустимо, если в процессе ввода не требу-
ется выполнять другую обработку, в противном случае приходит-
ся искать иные решения.
Снижение производительности из-за ожидания сигнала готов-
ности при обменах данными с медленными устройствами ввода-
вывода является не единственным недостатком программно-уп-
равляемой передачи, инициируемой процессором. Более серьез-
ные последствия при таком способе обмена возникают в ситуаци-
ях, когда по каким-либо причинам (например, из-за возникшей
неисправности) сигнал готовности вообще не может быть сфор-
мирован периферийным устройством. В такой ситуации процессор
не сможет выйти из режима ожидания, и его работа будет забло-
кирована. Для исключения подобных ситуаций в современных вы-
числительных системах используют специальный программный
прием, называемый тайм-аутом. (Тайм-аут — это средство восста-
новления работоспособности ВМ при не поступлении сигнала
готовности в течение заданного интервала времени.) Предотвра-
тить потери времени в циклах ожидания и существенно улучшить
программное взаимодействие процессора с периферией, особен-
но при одновременной работе со многими периферийными уст-
ройствами, позволяет использование прерывания.
Тип обмена данными, при котором для выполнения операций
ввода-вывода производят прерывание программы, называется пе-
редача данных с прерыванием программы. Важным отличием обмена
данными с прерыванием программы от синхронного и асинхрон-
ного обменов является то, что в нем инициатором обмена являет-
ся не процессор, а внешнее устройство, запросившее обмен. Воз-
можность прерывания программ — важное архитектурное свой-
ство ВМ, позволяющее повышать производительность процессо-
ра при наличии нескольких протекающих параллельно во време-
ни процессов, требующих в произвольные моменты времени уп-
равления и обслуживания со стороны процессора.
Реализация обменов с прерыванием программы по сравнению
с программно-управляемым вводом-выводом требует более слож-
ной аппаратной и программной поддержки. Периферийное уст-
ройство, поддерживающее такой обмен, должно содержать спе-
циальную схему, формирующую сигнал запроса прерывания INT,
который по соответствующей линии шины управления поступа-
ет на одноименный вход процессора. При использовании обме-
нов с прерыванием программы процессор не тратит время на
слежение за состоянием флагов готовности своих устройств вво-
да-вывода, а работает по своей основной программе. При готов-
ности к обмену активизирующееся устройство ввода-вывода фор-
мирует запрос прерывания и посылает его процессору. После-
дний, обнаружив сигнал запроса, завершает выполнение опера-
ций, которые нельзя прервать (например, чтобы избежать поте-
ри данных, заканчивает исполнение текущей команды) и вы-
полняет определенную последовательность действий. Прежде чем
прервать основную программу и перейти к обработчику преры-
вания, процессор запоминает в стеке свое текущее состояние,
по крайней мере, адрес следующей команды прерываемой про-
граммы (адрес возврата), идентифицирует источник прерыва-
ния и только после этого переходит к подпрограмме обработки
прерывания. По завершению подпрограммы обработки прерыва-
ния процессор восстанавливает состояние на момент прерыва-
ния и возвращает управление прерванной программы. Более под-
робно организация работы ВМ при обработке запроса прерыва-
ния рассматривается в подразд. 7.3. Алгоритмы организации ввода-
Основная программа Основная программа
Основная программа
Рис. 7.3. Организация ввода-вывода при обменах данными:
а — синхронный; б — асинхронный; в — с прерыванием программы
вывода при программно-управляемом обмене и обмене с преры-
ванием программы показаны на рис. 7.3.
Эффективность обменов с прерыванием программы определя-
ется типом ПУ, участвующих в обмене. При работе с относитель-
но медленными устройствами ввода-вывода потери времени на
переключение процессора при прерываниях относительно неве-
лики, поэтому организация ввода-вывода с использованием сис-
темы прерываний для таких устройств достаточно эффективна.
При передачах блоков данных в обменах с быстродействующи-
ми периферийными устройствами на транзитные пересылки слов
из порта в регистр процессора, а затем из этого регистра в память
тратится сравнительно много времени. При высокой скорости об-
мена (200 Кбайт/с и выше), характерной, например, для обме-
нов накопителей на жестких магнитных дисках с ОП, интервалы
между передачами слов невелики (5 мкс и менее). За это время
практически невозможно осуществить контекстное переключение
процессора и выполнить саму процедуру обмена, при этом на все
время программно-управляемой передачи процессор вынужден
отвлекаться от выполнения основной программы. В ряде случаев
это оказывается крайне нежелательным. В этих случаях используют
прямой доступ к памяти.
Прямым доступом к памяти (ПДП) называют способ обмена
данными, обеспечивающий установление связи и передачу дан-
ных между оперативной памятью и периферийным устройством
автономно от центрального процессора. При наличии кэш-памя-
ти (внутренней или внешней) режим ПДП позволяет осуществ-
лять обмен данными между ОП и периферийным устройством па-
раллельно с выполнением процессором основной программы.
Использование режима ПДП разгружает процессор от обслужи-
вания операций ввода-вывода и способствует повышению общей
производительности ВМ. Прямой доступ к памяти требует более
сложного интерфейса, по сравнению с программно-управляемой
передачей. Для управления обменом данными в режиме ПДП при-
меняют специальные управляющие контроллеры, которые в за-
висимости от вариантов аппаратной реализации подразделяются
на специализированные процессоры ввода-вывода и контролле-
ры ПДП. В отличие от других способов обмена данными в режиме
ПДП управляющий контроллер после получения запроса на орга-
низацию передачи от периферийного устройства принимает на
себя функции управления системной шиной, при этом сам про-
цессор путем перевода своих тристабильных выходных буферов
шины в состояние высокого сопротивления отключается от си-
стемной шины.
7.3. Организация прерываний
Обработка сигналов прерываний выполняется специальным
комплексом программно-аппаратных средств, который называет-
ся системой прерывания. Система прерываний позволяет повысить
эффективность использования процессора за счет освобождения
его от непроизводительных функций слежения за готовностью
периферийных устройств к обмену данных.
В ВС обычно существует достаточно большое число источников
прерываний. В зависимости от их типа прерывания разделяют на
внешние, внутренние и программные. Прерывания, которые фор-
мируются внутренними схемами процессора при выявлении оши-
бок выполнения некоторых команд, называются внутренними.
Прерывания, поступающие на вход процессора от периферийных
устройств, называются внешними или аппаратными. Програм-
мные прерывания формируются при выполнении специальных ко-
манд. Независимо от типа прерываний выполняемые действия по
их обслуживанию одинаковы и называются последовательностью
прерывания или обработкой прерывания. В общем случае в после-
довательности прерывания реализуются следующие действия:
• при поступлении сигнала прерывания проводится идентифи-
кация устройства, запросившего прерывание;
• запоминается информация о состоянии процессора;
• выполняется инициализация процессора для выполнения пре-
рывающей программы;
• осуществляется запуск и исполнение прерывающей програм-
мы обслуживания поступившего запроса прерывания;
• восстанавливается состояние процессора и возобновляется ра-
бота прерванной программы.
Процесс сохранения текущего состояния процессора на мо-
мент прерывания и его последующее восстановление называется
контекстным переключением. Под состоянием процессора пони-
мается содержимое счетчика (указателя) команд и всех его реги-
Запрос прерывания
Рис. 7.4. Временная диаграмма, иллюстрирующая стандартную
последовательность действий при поступлении запроса прерывания:
/р — время реакции на запрос прерывания; t3 — время запоминания состояния
текущей программы; t3 — время восстановления состояния текущей программы;
Тпо — время выполнения программы обработки запроса прерывания
стров на момент прерывания. Временная диаграмма, иллюстриру-
ет стандартную последовательность действий при поступлении зап-
роса прерывания (рис. 7.4). Наклонным участкам диаграммы соот-
ветствуют этапы перехода к прерывающей программе и возврата в
прерываемую программу. Главное место в процедуре перехода за-
нимает загрузка в стек текущего состояния процессора и его ини-
циализация для выполнения прерывающей программы. В большин-
стве процессоров при переходе к обработке прерывания содержи-
мое счетчика команд (адрес возврата) автоматически запомина-
ется в стеке. По окончании обработки адрес возврата извлекается
из стека и помещается в счетчик команд. Сохранение и восстанов-
ление содержимого регистров процессора автоматически не вы-
полняется и обычно реализуется командами записи в стек (push)
и извлечения из стека (pop).
Приведенная схема обработки прерывания является в опреде-
ленном смысле идеальной, так как она не учитывает возможность
одновременного возникновения нескольких прерываний или по-
явления очередного прерывания во время обработки предыдуще-
го. Необходимость выбора одного из нескольких поступивших зап-
росов прерываний может возникнуть в системах с большим чис-
лом внешних и внутренних источников прерываний. В подобных
ситуациях система прерывания должна устанавливать очередность
восприятия запросов. Поэтому дополнительной функцией проце-
дуры перехода является установление определенного порядка (при-
оритета) в обслуживании поступающих запросов. Здесь и далее
приоритет прерывания понимается в двух смыслах: во-первых,
как очередность восприятия одновременно поступающих запро-
сов и, во-вторых, как возможность прерывания обработки пре-
рывающей программы другим запросом прерывания.
Временная диаграмма (рис. 7.4) наглядно представляет основ-
ные показатели системы прерываний: время реакции на запрос
гр, время запоминания t3 и время восстановления tB состояния пре-
рываемой программы. Время реакции на запрос tp определяется
промежутком времени между появлением запроса прерывания и
началом выполнения процедуры прерывания. В большинстве со-
временных систем переход к прерывающей программе разрешает-
ся по окончанию выполнения текущей команды и, следователь-
но, зависит от времени исполнения команды. Задержка в обра-
ботке запроса прерывания необходима на время завершения теку-
щей команды. Время запоминания /3 и время восстановления tB
состояния прерываемой программы определяется затратами вре-
мени на выполнение стандартного контекстного переключения
при обработке прерываний. Из временной диаграммы видно, что
минимальный временной интервал задержки начала обработки
прерывания относительно момента поступления сигнала запроса
определяется суммой значений tp и t3 Важным показателем систе-
мы прерывания является глубина вложенности прерывания, оп-
ределяющая максимальное число программ, которые могут пре-
рывать друг друга. Вложенность прерываний обычно совпадает с
числом уровней приоритета в системе прерываний.
Существует сравнительно большое число способов классифи-
кации прерываний. Они бывают маскируемые и немаскируемые,
одноуровневые и многоуровневые, с фиксированным и динами-
чески перестраиваемым приоритетом. Большое число классифи-
каций прерываний в некоторых случаях затрудняет понимание
смысла, вкладываемого в то или иное названия прерывания. Ниже
приводится краткая характеристика распространенных классифи-
кационных определений прерываний.
С точки зрения возможности управления реакцией процессора
на запрос прерывания от периферийного устройства различают
маскируемые и немаскируемые прерывания. Маскируемые пре-
рывания процессор может обработать немедленно или проигно-
рировать их обслуживание в данный момент времени. Для управ-
ления маскируемыми прерываниями большинство процессоров
использует программно управляемый флаг разрешения преры-
ваний IF. При IF = 0 маскируемые прерывания запрещены, а при
IF = 1 — разрешены. В некоторых процессорах, наряду с возмож-
ностью общего маскирования всех маскируемых прерываний, обес-
печено программное маскирование отдельных типов прерывания.
Используя индивидуальное маскирование, процессор в некото-
рые моменты времени может разрешить обработку прерываний от
более важных устройств и запретить обслуживание менее важных
устройств.
Немаскируемые прерывания представляют собой тип преры-
ваний, которые нельзя запретить. Они сигнализируют о событиях
особой важности, таких как отключение питания, сбой памяти,
сигналы «сторожевого таймера». Процессор не может игнориро-
вать такие запросы на прерывание и должен их обрабатывать не-
медленно. Реагируя на немаскируемое прерывание, процессор
может передать важные результаты в безопасное место прежде,
чем они будут потеряны из-за возникновения критической ситу-
ации. Для маскируемых и немаскируемых прерываний в процессо-
ре обычно используют раздельные входные сигналы и соответ-
ствующие им входы. Приоритет немаскируемых прерываний все-
гда выше.
Другие классификационные определения прерываний непос-
редственно связаны с организацией и структурой самой системы
прерываний. Рассмотрим назначение основных блоков системы
прерывания (рис. 7.5).
Регистр запросов прерывания предназначен для запоминания
поступающих запросов. В его состав входит набор триггеров (флаж-
ков) по числу источников прерываний. Момент поступления зап-
роса от любого источника фиксируется блоком выявления сигна-
ла прерывания. С помощью этого блока и блока выбора запроса
прерывания на обработку осуществляется анализ приоритета по-
ступившего запроса и выбор одного из одновременно поступив-
ших, определяется адрес подпрограммы обработки выбранного
запроса и реализуется запуск процедуры перехода к прерываю-
щей программе. Запрос прерывания принимается к обработке, если
Рис. 7.5. Обобщенная схема системы прерывания
его приоритет в соответствии с установленной дисциплиной об-
служивания выше приоритета выполняемой программы. В против-
ном случае обслуживание запроса прерывания откладывается до
завершения выполнения текущей программы. Подсистема запо-
минания состояния программы обеспечивает сохранение кон-
текста прерываемой программы на время обработки прерывания.
В современных вычислительных устройствах названные блоки си-
стемы прерываний конструктивно реализуют либо в виде специ-
ализированной СБИС — контроллера прерываний, либо в составе
СБИС, называемой чипсетом (см. гл. 8).
Функционирование системы прерываний достаточно очевид-
но и не требует особых пояснений. Более подробно остановимся
на функциях и способах реализации блока, который при наличии
нескольких запросов прерывания обеспечивает приоритетный
выбор одного из них на обслуживание и определяет адрес обра-
ботчика выбранного запроса. Определение адреса обработчика
непосредственно связано с организацией системы прерываний.
Современные системы в большинстве случаев имеют либо ради-
альную, либо векторную организацию прерываний.
При радиальной организации прерываний адрес обработчика
для каждого источника фиксирован аппаратно. Способ применя-
ется в системах с небольшим числом источников. Например, в
МП К1801ВМ1 имеется три входа запросов прерываний с ради-
альной организацией прерываний.
При векторной организации прерываний каждому источнику
прерывания соответствует свой адресный код — вектор прерыва-
ний. При данном способе организации прерываний адрес обра-
ботчика поступает в процессор непосредственно или в закодиро-
ванном виде из специального контроллера в результате выполне-
ния процессором цикла чтения адреса вектора прерывания или
кода прерывания. Векторная организация применяется в системах
с большим числом источников прерываний. В IBM РС-совмести-
мых ПК с МП х86 адреса обработчиков хранятся в специальной
таблице IDT (Interrupt Descriptor Table), которая должна разме-
щаться в ОП. При поступлении запроса вектор прерывания ис-
пользуется в качестве индекса таблицы IDT для определения ад-
реса обработчика.
При одновременном поступлении нескольких запросов систе-
ма прерываний фиксирует их в регистре запросов прерываний и
выполняет приоритетный выбор одного на обслуживание. Этот
выбор обычно реализуют либо методом линейного (последова-
тельного) опроса флагов прерывания, либо методом направлен-
ного (векторного) опроса, при этом выбор источника запроса
для обработки зависит от встроенного в систему механизма при-
оритетов. Известны несколько способов организации приорите-
тов. Одни из них реализуются аппаратно, другие программно или
аппаратно-программно. Приоритеты могут быть фиксированными
и динамически перестраиваемыми.
Простейший способ задания фиксированных приоритетов зак-
лючается в выбираемом разработчиком порядке присоединения
линий сигналов запросов к входам системы прерывания. Сами зап-
росы фиксируются в регистре запросов прерываний в строго оп-
ределенных разрядах (флагах). В системах с фиксированным при-
оритетом при выборе запроса для обработки процессор проверяет
(программно или аппаратно) состояние регистра флагов преры-
ваний. Поиск источника запроса прерывания прекращается при
обнаружении самого старшего единичного разряда регистра пре-
рывания. При поступлении следующего запроса поиск источника
запроса вновь начинается со старшего разряда регистра прерыва-
ний. Приоритет обслуживаемого запроса определяется его местом
в последовательной цепочке. Более быстродействующим перифе-
рийным устройством обычно назначают более высокий приори-
тет. В подобных системах приоритет устройства является жестко
фиксированным и изменить его можно только новым соединени-
ем линий запросов на входах системы прерываний. Процедура вы-
бора запроса с наивысшим приоритетом и формирования адреса
прерывающей программы при последовательном просмотре флаж-
ков прерывания называется полинг (poling).
В системах с динамически перестраиваемыми приоритетами
последние могут программно переназначаться, при этом наибо-
лее широко используемым является способ кольцевого (кругово-
го) приоритета. В системах с кольцевым приоритетом выбор пре-
рывания для обработки также осуществляется по результатам пос-
ледовательного опроса флагов регистра прерываний. Однако та-
кой опрос начинается с опроса флага, следующего по приоритету
за только что обслуженным. После проверки последнего разряда
регистра запросов прерываний следующим опрашивается самый
старший разряд регистра. Кольцевой приоритет рациональнее фик-
сированного. При наличии частых запросов прерываний он пре-
дотвращает блокировку запросов от периферийных устройств с
низким уровнем приоритета и не позволяет быстрым периферий-
ным устройством монополизировать СШ для реализации собствен-
ных обменов.
Непроизводительные потери времени, затрачиваемые на пос-
ледовательный поиск источника запроса, являются существенным
недостатком метода линейного опроса. Указанного недостатка ли-
шены векторные системы прерывания, в которых последователь-
ный опрос источников прерываний не требуется. Векторные си-
стемы прерывания наряду с функцией формирования адреса об-
работчика поступившего запроса обеспечивают выбор наиболее
приоритетного прерывания. В большинстве случаев векторная си-
стема прерываний реализуется в виде специализированной СБИС —
Подтверждение
прерывания INTA
Запросы
прерываний
от внешних
устройств
(от МП)
—- Запрос
прерывания INT
(в МП)
Вектор прерывания
(на системную шину данных)
Рис. 7.6. Функциональная схема программируемого контроллера
прерываний
программируемого контроллера прерываний (ПКП), содержаще-
го логику для назначения приоритетов поступающим запросам.
В англоязычной литературе ПКП обозначается PIC (Programmable
Interrupt Controller).
В ответ на запрос прерывания от ПУ контроллер прерываний
формирует сигнал запрос прерывания INT (рис. 7.6), поступа-
ющий на одноименный вход МП. Реагируя на этот сигнал, МП
выдает сигнал подтверждения прерывания INTA (INTerrupt
Acknowledge), который поступает в ПКП и используется в нем
для считывания вектора прерывания поступившего запроса. При-
няв сигнал INTA, контроллер прерываний выставляет на систем-
ную шину данных вектор или код прерывания, который считыва-
ется процессором. С помощью вектора прерывания процессор оп-
ределяет адрес подпрограммы обслуживания прерывания. Фор-
мирование векторов прерывания и выявление запроса с наивыс-
шим приоритетом осуществляется внутренними схемами ПКП.
Важной функцией приоритетной обработки является органи-
зация управления при поступлении запроса прерывания в момент,
когда обслуживается предыдущий запрос прерывания. Ранее от-
мечалось, что приоритет прерывания не только устанавливает оче-
редность обработки одновременно поступающих запросов, но и
определяет, может ли программа обработки текущего прерыва-
ния прерываться другим запросом. В соответствии со второй фун-
кцией приоритета различают одноуровневые и многоуровневые
системы прерываний. В одноуровневых обслуживание нового пре-
рывания возможно только после завершения обработки текущего.
Приоритет запросов прерываний в одноуровневых системах иног-
да называют относительным приоритетом. Если в момент обслу-
живания такого запроса приходит запрос с более высоким при-
оритетом, то обслуживаемое прерывание не прерывается и после
его окончания выбирается запрос с наивысшим приоритетом из
числа поступивших. Для характеристики прерываний в многоуров-
невых системах используют понятие абсолютного приоритета.
В таких системах запросы с более высоким приоритетом могут
прерывать обслуживание текущего прерывания с меньшим при-
оритетом, т.е. допускается прерывание прерывания.
В качестве примера рассмотрим организацию прерываний в мик-
ропроцессорной системе на базе процессора х86. Прерывания в та-
кой системе обрабатываются с помощью ПКП, реализованного
фирмой Intel в виде СБИС 8259А. ПКП обеспечивает развязку меж-
ду внешними источниками прерываний и процессором. Рассмот-
рим упрощенную схему подключения периферийных устройств к
системе обработки прерываний (рис. 7.7). Наименования входов-
выходов блоков, изображенных на схеме, соответствует наимено-
ванию входов-выходов, принятых для соответствующих блоков IBM
PC-совместимых ПК (см. гл. 8). Подобная схема применяется в ВМ
различных архитектур. На схеме показаны периферийные устрой-
ства, подключенные к линиям запроса прерывания IRQ (interrupt
request) системной шины ISA. Сигналы прерываний от перифе-
рийных устройств, передаваемые по этим линиям, поступают на
входы IR контроллера PIC. В IBM PC- совместимых ПК каждое
периферийное устройство подключено к своей индивидуальной ли-
нии IRQ, и для входа в прерывание периферийное устройство только
выставляет запрос. Все существенные действия по обработке посту-
Рис. 7.7. Схема подключения периферийных устройств к системе
прерываний
пающих запросов, определению их приоритетов и формированию
векторов прерывания выполняет ПКП, расположенный в непос-
редственной близости от процессора компьютера. Недостатком по-
добной организации является трудность подключения большого
числа периферийных устройств, поскольку из-за ограниченного
числа линий IRQ для дополнительных периферийных устройств
свободных линий может не оказаться, а подключение нескольких
периферийных устройств к одной линии IRQ недопустимо.
В других архитектурах, например, использующих шины Q-bus
или VME-bus, к одной линии запроса на прерывание могут быть
подключены несколько источников (по схеме монтажного ИЛИ).
В этом случае контроллер каждого периферийного устройства дол-
жен выполнять некоторые функции контроллера прерываний, в
частности, периферийное устройство при получении сигнала под-
тверждения прерывания должно выдать на системную шину дан-
ных код, идентифицирующий источник запроса, чтобы процес-
сор мог правильно выбрать соответствующий обработчик преры-
вания.
В МП х86 запросы внешних прерываний поступают по входам
INTR и NMI. Немаскируемые внешние прерывания, требующие
немедленной реакции, поступают на вход NMI, а маскируемые
(внешние аппаратные) — на вход INTR. Источниками немаски-
руемых прерываний являются ошибка четности при обращении к
памяти или ошибка канала ввода-вывода (сигнал I/O CHRDY для
шины ISA или сигнал SERR# для шины PCI). В современных ПК
в качестве источника NMI используется только ошибка четности.
Все маскируемые прерывания, поступающие на вход INTR МП
с выхода ПКП, программно можно разрешить или запретить. Бо-
лее того, соответствующими настройками ПКП можно запретить
только конкретные запросы IRQ при разрешении прерываний на
других входах IRQ.
Источниками прерываний в IBM PC-совместимых ПК с про-
цессорами х86, наряду с внешними прерываниями, могут быть
внутренние и программные прерывания (рис. 7.8).
Самым простым типом прерываний являются программные пре-
рывания, представляющие собой особый способ вызова процедур.
Программные прерывания инициируются специальной командой
вызова процедур INT п и могут использоваться программистом в
любом месте программы. Обработчиками программных прерыва-
ний в большинстве случаев являются оптимизированные систем-
ные процедуры, вызываемые пользовательскими или системны-
ми программами для выполнения наиболее часто применяемых
операций. Каждому типу прерываний назначается определенный
номер из заданного диапазона чисел (для процессоров х86 из ди-
апазона 0 ... 255). Идентификационный номер прерывания исполь-
зуется для индексации таблицы прерываний, которая содержит
Рис. 7.8. Типы прерываний процессора х86
начальные адреса (векторы прерываний) программ обработчиков.
Операнд п, указываемый в команде INT п, определяет тип (но-
мер) программного прерывания, а сама команда INT п обеспечи-
вает обращение к соответствующей строке таблицы и вызов иско-
мого обработчика.
Команды INT п выполняют такие же действия, как и при зап-
росе прерывания от внешнего периферийного устройства, но с
одним исключением — тип прерывания содержится в команде, а
не выдается периферийным устройством. Программные прерыва-
ния часто используются для вызовов процедур BIOS (Basis Input/
Output System) и процедур ОС. BIOS содержит набор программ
обработки аппаратных прерываний от периферийных устройств и
является связывающим звеном между ОС и внешней периферией.
Прерывания ОС реализуют обмены с периферийными устройства-
ми на более высоком уровне и опираются на прерывания BIOS.
Внешние аппаратные прерывания тесно связаны с вводом-вы-
водом при обменах с прерыванием программы. С помощью аппа-
ратных прерываний осуществляется взаимодействие процессора с
ПУ. В отличие от программных прерываний, аппаратные прерыва-
ния могут возникать в произвольные моменты времени, т. е. асин-
хронно по отношению к действиям процессора.
Внутренние прерывания, генерируемые процессором при воз-
никновении ошибок или нештатных ситуаций выполнения ко-
манд, называют особыми случаями или исключениями (exception).
Особый случай — это внутреннее событие, возникающее при не-
возможности выполнять следующую команду. Особые случаи пред-
видеть невозможно. Их генерируют, например, при нарушении
защиты по привилегиям, превышении предела сегмента, деле-
нии на нуль и т. п. Коды внутренних прерываний устанавливаются
разработчиком МП и не могут быть использованы при назначе-
нии внешних прерываний. Для выявления причин возникновения
особых случаев, а в некоторых случаях и их устранения использу-
ются обработчики особых случаев. Передача управления обработ-
чику особого случая осуществляется обычным способом через таб-
лицу векторов прерываний. Особые случаи являются немаскируе-
мыми, и процессор реагирует на них независимо от состояния
флага IF. При наличии особой ситуации процессор прекращает
работу текущей программы, обращается к таблице прерываний и
по индексу (номеру) особой ситуации находит соответствующий
обработчик. Реакция процессора на исключение зависит от усло-
вий его возникновения. В соответствии с этими условиями исклю-
чения подразделяются на ошибки (fault), ловушки (trap) и ава-
рийные завершения (abort).
Ошибка, или нарушение (отказ), — это особый случай, кото-
рый обнаруживается и обслуживается до выполнения команды,
вызывающей ошибку. После обработки подобного исключения уп-
равление возвращается команде, которая вызвала ошибку. Типич-
ный пример нарушения имеет место при работе системы вирту-
альной памяти, когда процессор обнаруживает отсутствие в ОП
затребованной страницы или сегмента. В процессе обработки та-
кого нарушения ОС обращается к странице или сегменту на дис-
ке, загружает их в память, после чего процессор перезапускает
команду, вызвавшую исключение.
Ловушка — это особый случай, который обнаруживается и об-
служивается после выполнения команды, его вызвавшей. По за-
вершению обслуживания особого случая типа ловушка процессор
возвращает управление команде, следующей за командой, выз-
вавшей ловушку. Примером ловушки является команда прерыва-
ния при переполнении INTO и программные прерывания, вызы-
ваемые командой INT п.
Аварийное завершение — особый случай, который не позво-
ляет точно установить команду, его вызвавшую. Аварийное завер-
шение является серьезной ошибкой. При ее возникновении про-
должение программы невозможно и ее необходимо прекратить.
К авариям относятся аппаратные ошибки, нарушения системных
таблиц и некоторые другие особые случаи.
В системах с процессором х86 каждый источник прерывания и
каждый тип особой ситуации имеет свой идентификационный
номер (вектор), с помощью которого определяется адрес обра-
ботчика. Немаскируемому прерыванию (по входу NMI) и исклю-
чениям выделены векторы от 0 до 31. Часть векторов из этого чис-
ла зарезервированы разработчиками процессора для возможного
использования в будущем. Векторы маскируемых прерываний оп-
ределяются аппаратно, например, с помощью ПКП 8259А. Для
аппаратных маскируемых прерываний по входу INTR выделены
векторы с номерами от 32 до 255. Программным прерываниям,
реализуемым командой INT п, соответствуют векторы с номера-
ми от 0 до 255.
Контроллеры прерываний в ВМ разных архитектурных линий
имеют много общего. Особенности реализации контроллеров пре-
рываний проиллюстрируем на примере ПКП 8259А.
ПКП 8259А позволяет обрабатывать аппаратные прерывания
от периферийных устройств или проводить программный опрос
зафиксированных запросов прерывания. Функции ПКП в системе
прерываний в целом описаны выше. Однако практическое про-
граммирование процедур обработки прерываний требует более
детального знакомства с его организацией. Структурно ПКП (рис.
7.9) включает следующие блоки:
• двунаправленный 8-разрядный буферный регистр данных
(DB), предназначенный для сопряжения ПКП с системной ши-
ной данных;
• блок управления записью (чтением) (RWCU), принимаю-
щий сигналы управления от МП;
• блок управления каскадным соединением ПКП (СМР);
• блок управления (CU), вырабатывающий сигнал INT и при-
нимающий сигнал подтверждения прерывания INTA от МП;
INTA INT
Рис. 7.9. Упрощенная структурная схема ПКП
• формирователь идентификационного номера запроса преры-
вания;
• регистр запросов прерываний IRR, запоминающий внешние
запросы IRO—IR7;
• регистр маски (IMR) и схема анализа приоритетов, иденти-
фицирующая поступающие запросы;
• шифратор приоритетов, выбирающий запрос с наивысшим
приоритетом;
• регистр текущего прерывания ISR;
• регистры команд инициализации ICW1 —ICW4;
• регистры команд управления 0CW1 —0CW3.
ПКП 8259А имеет сложную внутреннюю структуру, может про-
граммно настраиваться на различные режимы работы и с целью
увеличения количества линий запросов IRQ допускает каскадное
включение нескольких ПКП. Эти свойства обеспечивают гибкость
и эффективность системы прерываний, построенной на его основе.
Инициализация ПКП и настройка его на определенный ре-
жим обслуживания прерываний осуществляется с помощью ко-
манд Out port. Контроллер программируется двумя типами команд:
командами инициализации ICW1 —ICW4 и командами рабочих
приказов 0CW1 — 0CW3. Команды инициализации выполняются
в процедуре инициализации и в процессе работы не изменяются.
Рабочие приказы используют для динамического управления об-
работкой прерываний.
При обслуживании прерываний по запросу в ПКП выполняет-
ся следующая последовательность операций:
• запросы прерываний, поступающие на входы IRO—IR7, за-
поминаются в регистре IRR;
• поступивший запрос передается в шифратор приоритетов,
если он не замаскирован соответствующим битом маски регистра
IRM равен 1), в противном случае запрос блокируется;
• в шифраторе приоритетов проверяется приоритет поступив-
шего запроса и, если он выше приоритета обслуживаемого пре-
рывания, на выходе формируется сигнал INT.
Процессор анализирует состояние входа INT в конце выпол-
нения текущей команды и при наличии запроса распознает его.
Если прерывания разрешены (флаг IF = 1), процессор приоста-
навливает выполнение текущей программы и формирует два пос-
ледовательных цикла подтверждения прерывания INTA, иденти-
фицируемые одноименными сигналами INTA, которые поступа-
ют в ПКП. Первый цикл INTA указывает контроллеру, что зап-
рос прерывания обнаружен и процессор готовится к приему байта
с типом (номером) прерывания в следующем цикле INTA. В этом
цикле в регистре ISR фиксируется приоритет поступившего за-
проса (он становится текущим приоритетом) и блокируются вхо-
ды IRO —IR7 регистра запросов прерывания IRR. Блокировка со-
храняется до окончания 2-го цикла INTA, в котором ПКП фор-
мирует идентификационный номер прерывания и по системной
шине передает его в МП. Последний использует эту информацию
для вызова соответствующего обработчика прерывания.
Командами рабочих приказов OCW1 —OCW3 ПКП можно пе-
ревести в различные режимы обслуживания запросов:
• режим вложенных прерываний;
• режим циклической обработки запросов, в котором после
обработки прерывания соответствующему запросу присваивается
низший приоритет, остальные приоритеты циклически сдвига-
ются;
• режим адресуемых приоритетов, в котором команда может
присвоить высший приоритет выбранному запросу, приоритеты
остальных запросов циклически сдвигаются;
• режим опроса, в котором ПКП не формирует сигнала INT.
Процессор «узнает» о наличии запросов путем чтения IRR;
• режим специальной маски, в котором приоритетное упоря-
дочение обработки запросов отменено и запросы обслуживаются
по мере поступления.
Рассмотрим каскадное включение контроллеров прерываний.
Контроллер 8259А обеспечивает обработку до восьми запросов пре-
рываний от различных источников. При необходимости обслужи-
вания большего числа источников запросов несколько ПКП мо-
гут быть объединены в систему, состоящую из ведущего ПКП и
одного или нескольких ведомых (в системе может быть реализова-
но до 64 входов запросов прерывания). Выходы INT ведомых ПКП
подключаются ко входам запросов прерывания ведущего контрол-
лера, а его выход INT соединяется с со входом INTR процессора
(рис. 7.10). Чтобы контроллеры прерываний действовали согласо-
вано, каждый из них должен знать, какую функцию он выполня-
ет. Сигнал на входе SP/EN сообщает контроллеру, является он
ведущим или ведомым. Кроме того, в регистре ICW3 ведущего
контроллера фиксируется, к каким входам запросов прерывания
этого ПКП подсоединены ведомые, а в регистре ICW3 ведомого
контроллера хранится номер входа IR ведущего ПКП, к которому
он подсоединен.
При поступлении запроса прерывания на вход ведомого ПКП
последний формирует запрос прерывания на вход процессора че-
рез ведущий ПКП. Процессор, реагируя на запрос прерывания,
формирует два цикла шины подтверждения прерывания INTA. В
течение 1-го цикла шины INTA ведущий ПКП подтверждает зап-
рос прерывания ведомого ПКП, выдавая его номер входа IR на
линии каскадирования CASO — CAS2. Эти линии соединяют веду-
щий ПКП со всеми ведомыми. Такое подтверждение необходимо,
поскольку запросить прерывание могут одновременно несколько
ведомых ПКП. Во 2-м цикле шины INTA выбранный ведомый
Ведомый ПКП Запросы от УВВ
Рис. 7.10. Каскадное включение контроллеров прерываний
ПКП помещает номер устройства, запросившего прерывание, на
системную шину данных, чтобы его мог считать МП. После этого
МП вызывает соответствующий обработчик, как и в случае одно-
го контроллера прерываний. В современных ПК используются две
каскадно включенных контроллера 8259А.
В системах с процессорами Pentium и шиной PCI в дополнение
к традиционному механизму обработки запросов прерываний ис-
пользуется другой механизм реакции на запросы прерываний от
внешних источников запросов, при этом в каждый момент вре-
мени может работать только один из механизмов обработки пре-
рываний. В ПК с процессором Pentium может использоваться усо-
вершенствованный контроллер прерываний APIC (Advanced PIC),
который встроен в процессор. APIC поддерживает работу систем
прерываний для ВМ, которые могут содержать несколько про-
цессоров. APIC имеет несколько режимов работы. В одном из них
он реализует логику работы системы прерываний стандартного
ПК. В режиме, основанном на «передаче сообщений», APIC об-
служивает устройства, подключенные к шине PCI. При необходи-
мости устройство PCI запрашивает управление шиной и после
его получения записывает в соответствующий регистр APIC код
запроса. После этого всю работу по переходу к обработке запроса
выполняет APIC. Режимы работы APIC назначаются программно.
7.4. Организация прямого доступа к памяти
Прямой доступ к памяти (ПДП) (англ. DMA — Direct Memory
Access) представляет собой высокоскоростной способ обмена
информацией между периферийным устройством и ОП, напри-
мер при загрузке данных в ОП с внешнего носителя. В режиме
ПДП обмен данными между периферийным устройством и ОП
или между ОП и внешней памятью осуществляется автономно от
центрального процессора. В этом режиме скорость передачи дан-
ных определяется только внешними устройствами и благодаря
этому компьютер может выполнять ввод-вывод с максимальной
скоростью самих внешних устройств. Переход в режим ПДП вы-
полняется по запросу внешнего устройства подобно тому, как
обрабатываются запросы прерываний. Однако в отличие от зап-
росов прерываний, при обработке которых процессор продол-
жает управлять шиной, в режиме ПДП управление передается
другому (внешнему) устройству.
Для эффективного управления вводом-выводом и осуществ-
ления высокоскоростных ПДП-пересылок в современных компь-
ютерах используют либо специализированные сопроцессоры вво-
да-вывода, либо специальные контроллеры DMA.
Сопроцессор ввода-вывода — это вспомогательный процессор,
работающий в паре с центральным процессором и имеющий соб-
ственную систему команд, которая ориентирована на операции
ввода-вывода. При наличии сопроцессора ввода-вывода все дей-
ствия по организации передач ввода-вывода, включая настройку
внешнего устройства, программный ввод-вывод и операции ПДП,
реализуются без участия центрального процессора. Сопроцессор,
кроме передач данных, при выполнении команд ввода-вывода
может реализовывать арифметические и логические операции, пе-
реходы, поиск и преобразования данных. Он программируется с
помощью центрального процессора, выполняет его задания и воз-
вращает в центральный процессор результаты выполнения. Когда
команда ввода-вывода встречается в программе, центральный
процессор передает управлении сопроцессору ввода-вывода и да-
лее сопроцессор работает независимо от центрального процессо-
ра. Сопроцессор ввода-вывода является достаточно сложным уст-
ройством. При его использовании для организации ПДП часто
применяют раздельные шины доступа к ОЗУ со стороны цент-
рального процессора и периферийных устройств.
Контроллер DMA по сравнению с сопроцессором ввода-вывода
является более простым устройством. Предварительно запрограм-
мированный контроллер DMA в режиме ПДП непосредственно,
без участия центрального процессора, управляет обменом данных
между ОП и внешним устройством. При программировании кон-
троллера DMA обеспечивают его настройку на определенный тип
передачи, задают адреса памяти и размер передаваемого массива
данных. Запрограммированная передача в режиме ПДП иницииру-
ется по запросу контроллера DMA и реализуется параллельно с
выполнением центральным процессором своих программ. При ис-
пользовании контроллера DMA раздельные шины доступа к ОЗУ
обычно не применяют. В случае отсутствия запроса прямого доступа
от контроллера DMA, системной шиной управляет процессор, осу-
ществляющий обмен данными обычным образом. При поступле-
нии запроса прямого доступа управление СШ передается контрол-
леру DMA, который формирует все необходимые для передачи дан-
ных сигналы управления и обеспечивает требуемый обмен, при
этом процессор отключается от системной шины, переключая свои
тристабильные буферы шины в состояние высокого сопротивле-
ния.
В большинстве архитектур предусмотрен очень похожий на
ПДП режим, который называют захватом шины или прямым
управлением шиной (в англоязычной литературе для подобных
режимов часто используется название Bus Mastering). Переход в
такой режим начинается по запросу от периферийного устрой-
ства, но в отличие от ПДП управление шиной получает не кон-
троллер DMA, а контроллер периферийного устройства, кото-
рый берет на себя полную ответственность за обмен. При этом
обмен может осуществляться не только между периферийным
устройством и памятью, но и между двумя периферийными уст-
ройствами.
Контроллер DMA, как правило, реализуется в виде СБИС,
управляющей работой нескольких независимых каналов ПДП.
В современных ПК он входит в состав СБИС чипсета (см. гл. 8).
В качестве примера рассмотрим реализацию режима ПДП под уп-
равлением контроллера i8237A (рис. 7.11). Контроллер поддержи-
вает работу четырех независимых каналов обмена, каждый из ко-
торых обслуживает одно периферийное устройство. При одновре-
менном поступлении запросов ПДП каналы конкурируют на СШ
согласно заданным приоритетам.
Основная задача канала заключается в генерации адресов ОП
и необходимых управляющих сигналов, обслуживающих передачу
данных между памятью и периферийным устройством. Адреса, ус-
DREQO
DACKO
DREQ1
DACK1
DREQ2
DACK2
DREQ3
DACK3
Рис. 7.11. Структурная схема контроллера 18237А
танавливаемые контроллером на шине адреса, относятся к памя-
ти, а не к периферийному устройству. Адрес периферийного уст-
ройства задавать не требуется, так как обмен осуществляется с
устройством, запросившим ПДП. Контроллер DMA подключен к
СШ через двунаправленные буферы адреса и данных. При про-
граммировании контроллера DMA данные и адреса передаются с
СШ в контроллер. В режиме ПДП, когда контроллер DMA уп-
равляет вводом-выводом периферийного устройства, адреса и
данные с выхода контролера DMA поступают на СШ. Каждый
канал содержит регистр адреса, счетчик числа передаваемых бай-
тов и регистр режима канала. Каналы ПДП программируются ин-
дивидуально. Каждый из каналов может работать в одном из трех
режимов:
• режим одиночной передачи;
• режим блочной передачи (циклы чтения (записи) повторя-
ются заранее установленное число раз);
• режим передачи по требованию (циклы повторяются, пока
присутствует сигнал запроса от периферийного устройства).
До выполнения операций ввода-вывода в любом канале необ-
ходимо программным путем записать в регистр адреса начальный
адрес ОП, в счетчик — количество передаваемых байтов, в ре-
гистр режима — требуемый режим работы канала. Такую запись
процессор осуществляет командами вывода типа OUT.
В СШ для каждого канала DMA выделяется пара сигналов: DRQ
(запрос на передачу) и DACK (разрешение (подтверждение) ра-
боты канала DMA). Запросы ПУ на обслуживание принимаются
по линиям DRQ. Контроллер DMA формирует сигнал подтверж-
дения запроса по линии DACK соответствующего канала. Переда-
ча массива данных по каналу состоит из последовательных циклов
DMA, каждый из которых представляет собой комбинацию одно-
временно выполняемых команды обращения к памяти (MEMR
или MEMW) и команды обращения к порту (IOW или IOR). Во
время цикла DMA на шине адреса активен адрес памяти. Актив-
ный порт в цикле DMA определяется косвенно по комбинации
активных сигналов DRQ и DACK: реагировать на сигналы IOW и
IOR в цикле DMA может только тот порт, который вызвал акти-
визацию сигнала DRQ и получил подтверждение в виде соответ-
ствующего сигнала DACK.
Устройство управления контроллера содержит схему реализа-
ции приоритетов, регистры режима и состояния контроллера, а
также схему выработки управляющих сигналов процедуры ввода-
вывода. Регистр режима позволяет маскировать запросы в кана-
лах, назначать разные способы обработки запросов (фиксирован-
ный или круговой) и модифицировать функции контроллера DMA
В качестве примера рассмотрим характер взаимодействия контрол-
лера DMA, центрального процессора и устройств ввода-вывода
(УВВ), подключенных к шине расширения ISA (рис. 7.12). Обозна-
чения сигналов на рис. 7.12 соответствуют спецификациям ISA.
Инициатором обмена в режиме ПДП является периферийное уст-
ройство УВВ.
Цикл обмена начинается, когда периферийное устройство по-
сылает запрос DRQ на вход контроллера DMA. При поступлении
запроса на обслуживание в режиме ПДП от одного или несколь-
ких периферийных устройств контроллер формирует сигнал HRQ
запроса шин для ПДП, который поступает на вход HOLD МП, и
Рис. 7.12. Взаимодействие контроллера DMA с центральным
процессором и устройствами ввода-вывода
ожидает от него разрешения захвата. При обнаружении входного
сигнала HOLD процессор завершает текущий внешний обмен и
отключается от системной шины, при этом на его внешнем выво-
де HLDA МП формируется одноименный сигнал разрешения пря-
мого доступа, с помощью которого управление обменом переда-
ется контроллеру DMA. Последний подтверждает переход в ре-
жим ПДП сигналом DACK. С помощью сигнала DACK контрол-
лер сообщает выбранному периферийному устройству о начале
обмена данными. Одновременно контроллер устанавливает сиг-
нал AEN (Address Enable), оповещая все остальные устройства, о
том, что на шине выполняется цикл ПДП. С этого момента кон-
троллер DMA становится на шине ведущим устройством (задат-
чиком). Он формирует циклы обмена, аналогичные циклу, пред-
ставленному на рис. 7.1. Отличие от простого адресного обмена
состоит в том, что контролер DMA формирует одновременно два
строба: строб чтения источника информации и строб записи в
приемник информации. Кроме того, он модифицирует адреса па-
мяти для повторения цикла обмена при передаче массива байтов
или слов. Для шины ISA при передаче из устройства ввода в ОП
вырабатывается последовательность сигналов IOR и MEMW, а
при передаче из ОП в устройство вывода — MEMR и IOW. В про-
цессе обмена после каждого обращения к ОЗУ содержимое счет-
чика канала — Terminal Count (ТС) уменьшается на единицу.
Циклы обмена повторяются до появления признака завершения
передачи массива (фиксируется при нулевом значении счетчика
ТС) или до тех пор, пока периферийное устройство сохраняет
запрос ПДП. По завершению передачи блока данных контролер
DMA снимает запрос на ПДП и сигнал AEN, после чего управле-
ние шиной передается процессору и он продолжает работу по про-
грамме.
7.5. Внешние интерфейсы вычислительных машин
7.5.1. Способы подключения периферийного устройства
к системной шине
Система шин компьютера позволяет любому компоненту си-
стемы и, что особенно важно, новому компоненту взаимодей-
ствовать с любым другим компонентом. Контроллеры (адапте-
ры) основных периферийных устройств компьютера размеща-
ются на системной плате, и проблемы их подключения к шинам
практически не существует. Сложнее с дополнительными вне-
шними устройствами, большинство из которых размещаются вне
системного блока. Их подключение к шине, даже если они снаб-
жены стандартными адаптерами (контроллерами), связано с
определенными трудностями и не всегда обходится без ошибок.
Для подключения каждого нового стандартного устройства не-
обходимо открыть системный блок компьютера, вставить плату
контроллера в свободный слот ISA или PCI (в зависимости от
типа контроллера), закрыть системный блок и включить ком-
пьютер.
Процесс подключения дополнительных периферийных уст-
ройств к СШ существенно упрощается при использовании ком-
муникационных портов. Такими портами в ПК являются парал-
лельные LPT-порты и последовательные COM-порты, снабжен-
ные выходными разъемами, установленными непосредственно
на корпусе системного блока. Коммуникационные порты обес-
печивают сопряжение компьютерами с различными дополни-
тельными периферийными устройствами без вскрытия систем-
ного блока и установки плат расширения. Сами коммуникацион-
ные порты либо являются элементами системной платы, либо
размещаются на платах расширения.
В общем случае подключение периферийных устройств к СШ
осуществляется с помощью внешних интерфейсов общего пользо-
вания, таких как параллельный интерфейс Centronics, последо-
вательные интерфейсы типа RS-232 и др. При расширении функ-
циональных возможностей ПК для различных пользовательских
применений число периферийных устройств, как правило, уве-
личивается. При этом не только усложняется их подключение к
системному блоку, но и возрастает стоимость таких подключе-
ний из-за дороговизны расширения стандартных средств под-
ключения. Решением проблемы расширения пространства пери-
ферийных устройств явилось использование универсальной по-
следовательной шины — Universal Serial Bus (USB). В данной главе
кратко рассматриваются внешние интерфейсы общего назначе-
ния и шина USB.
7.5.2. Параллельный порт и интерфейс Centronics
Параллельный LPT-порт был включен в состав первых ПК IBM
PC для подключения принтеров. Отсюда название LPT-порта (от
Line Printer). Подключение к параллельному порту осуществляет-
ся через 25-контактный разъем на корпусе ПК. Благодаря удоб-
ству программирования и простоте подключения к нему (не тре-
буется вскрывать системный блок), LPT-порт широко применя-
ется для сопряжения с компьютером разнообразных периферий-
ных устройств. Первоначально LPT-порт обеспечивал только од-
ностороннюю передачу байтов данных из ПК в устройство, одна-
ко более поздние модификации порта реализуют двунаправлен-
ный байтовый обмен данными. В качестве недостатков интерфейса
считается невысокое быстродействие и ограничения на протяжен-
ность линий связи (до 2 м). Скорость передачи данных через па-
раллельный порт выше, чем через последовательный.
В 1994 г. принят стандарт IEEE 1284, в котором определены
режимы работы параллельных портов и сопряженной с ними ап-
паратуры, характеристики интерфейса на физическом уровне и
процедура согласования режимов порта и периферийного устрой-
ства. Интерфейс параллельной передачи Centronics, удовлетворя-
ющий всем требованиям стандарта IEEE 1284, устанавливает число
и назначение сигналов параллельного LPT-порта, их электриче-
ские параметры, тип соединителя и распределение сигналов по
его контактам, а также протокол взаимодействия источника и
приемника при параллельной передаче. Стандартом IEEE 1284 пре-
дусмотрены пять режимов работы порта: режим совместимости
(Compatibility Mode) с традиционным портом, полубайтовый
обмен (Nibble Mode) — ввод байта за два цикла (по 4 бит), дву-
направленный байтовый обмен (Byte Mode), двунаправленный об-
мен данными — Enhanced Parallel Port Mode (EPP), при котором
управляющие сигналы интерфейса генерируются самим контрол-
лером порта во время цикла обращения к порту, и двунаправлен-
ный обмен с дополнительными возможностями — Extended
Capability Port Mode (ECP). В этом режиме при обмене осуществ-
ляется аппаратное сжатие данных и буферизация данных для пря-
мого и обратного каналов, а также обеспечивается использование
режимов ПДП и программного ввода-вывода.
7.5.3. Последовательная передача данных
Последовательная передача данных представляет собой реали-
зацию трех последовательных процессов: преобразования парал-
лельных данных источника информации в последовательный фор-
мат, передачи последовательной посылки по каналу связи и пос-
ледующего преобразования приемником принятой посылки в па-
раллельный формат. Под каналом передачи данных здесь и далее
понимается физическая аппаратура связи (физический интерфейс)
и протокол обмена данными. Последовательная передача характе-
ризуется более низкой скоростью передачи, чем параллельная.
Однако она обеспечивает связь на большие расстояния, и для ее
реализации требуется меньшее число линий в физическом канале
связи, что снижает стоимость. Вместо 3 —5 м при параллельных
обменах при последовательной передаче обеспечивается надеж-
ная связь на расстояния более 15 м.
При передаче цифровой информации по последовательному
каналу связи она кодируется. Значения двоичных разрядов пере-
даваемых данных в большинстве случаев представляются двумя
уровнями напряжений. Двоичные разряды передаются в линию
последовательно один за другим.
При организации последовательной связи на расстояния до 50 м
приемник и передатчик можно соединить друг с другом с помо-
щью двух пар линий связи: по одной осуществляется передача
информации от источника к приемнику, а по другой — обратная
передача. При значительном удалении передатчика и приемника
подобный способ организации последовательного обмена оказы-
вается экономически дорогим. Более того, из-за искажающего
влияния помех непосредственная передача логических сигналов
(абсолютных уровней напряжений) по длинным линиям связи
вообще невозможна. Поэтому для передачи на большие расстоя-
ния используют промежуточное частотное преобразование инфор-
мационных сигналов. Такое преобразование осуществляется с по-
мощью модемов. (Модуляция — это способ наложения перемен-
ного сигнала на другой сигнал постоянной несущей частоты).
Модем на передающей стороне преобразует цифровой код после-
довательной посылки в колебания соответствующей звуковой ча-
стоты и передает этот сигнал по двухпроводной линии связи. На-
пример, логическая «1» преобразуется в сигнал 1270 Гц, а логи-
ческий «0» — в 1070 Гц. На приемной стороне с помощью прини-
мающего модема выполняется обратное преобразование частот-
ного сигнала в последовательный информационный сигнал, ко-
торый непосредственно обрабатывается получателем. Передачу
информации в обратном направлении можно осуществлять, ис-
пользуя ту же линию связи, но в другом частотном диапазоне,
например, преобразуя логическую «1» в сигнал 2225 Гц, а логи-
ческий «0» — в 2025 Гц. Таким образом, при использовании моде-
мов достаточно всего одного канала связи, в частности обычной
телефонной линии, для обмена информацией в обоих направле-
ниях. Отмеченная особенность является важным достоинством
способа последовательной передачи, так как позволяет использо-
вать существующие системы связи для обмена информацией меж-
ду удаленными устройствами. Скорость обмена информацией, при
которой модем обеспечивает надежные передачу и прием, огра-
ничивается возможностями телефонной линии связи, полоса про-
пускания которой составляет от 300 Гц до 3 КГц.
Для преобразования параллельных данных в последователь-
ные при передаче и обратного преобразования при приеме раз-
работаны специальные устройства, называемые последователь-
ными портами — Serial Port (SP). Фактически последовательный
порт выполняет функции адаптера, с помощью которого канал
последовательной связи подключается к «-разрядной системной
шине компьютера или другого устройства обработки данных.
В общем случае для организации последовательного обмена
требуются два последовательных порта, которые должны быть ус-
тановлены на входе и выходе последовательного канала. При пе-
редаче данных последовательный порт на передающей стороне
преобразует параллельный код данных в последовательность дво-
ичных символов. Принимающий последовательный порт выпол-
няет обратное преобразование последовательного кода в парал-
лельный. Различают два основных способа передачи последова-
тельных данных: асинхронный и синхронный.
В режиме асинхронной передачи источник и получатель дан-
ных не имеют общей синхронизации: синхронизация приемника
и передатчика осуществляется от разных физических генераторов,
которые должны быть настроены на близкие, в идеале одинако-
вые, частоты. Проблему синхронизации при асинхронном обмене
решают ограничением длительности передаваемых посылок дан-
ных и использованием стандартных частот работы приемо-пере-
дающих схем. В этом режиме процессор посылает и принимает от-
дельные байты информации, при этом канал работает асинхрон-
но как в отношении передаваемых слов, так и в отношении от-
дельных битов. При асинхронной передаче последовательность
двоичных символов данных дополняется служебной информаци-
ей, которая используется для синхронизации асинхронно работа-
ющих приемника и передатчика, а также контроля обмена. Каждая
информационная посылка обрамляется стартовым и стоповыми
битами, которые передаются вместе с битами данных (рис. 7.13).
Пока по каналу нет передачи, он находится в состоянии логиче-
ской «1» (стоповому биту, завершающему передачу слова, также
соответствует значение логической «1»), Передача данных всегда
начинается со стартового бита (сигнала логического «О»). Переход
из «1» в «О», соответствующий началу стартового бита, может быть
распознан приемником как признак начала слова. Передний фронт
стартового бита используется для внутренней (принудительной)
синхронизации приемника, благодаря чему обеспечивается пра-
вильное определение моментов поступления отдельных битов при-
нимаемого слова. При правильной синхронизации значение при-
нимаемого бита должно опрашиваться приемником в средине вре-
менного интервала, где искажения импульсов наименее влияют
на величину считываемого уровня. После стартового бита следуют
Старт- Бит Стоп- Старт- Следующая
бит четности бит бит информационная
посылками
Рис. 7.13. Вид информационной посылки при асинхронной передаче
информационные биты в виде последовательности «О» и «1» (сиг-
налов высокого и низкого уровня). В большинстве случаев число
информационных бит в посылке равно 8. Далее в последователь-
ной посылке может следовать контрольный бит, используемый
для обнаружения ошибок. Его значение определяется содержи-
мым передаваемого байта и тем, какой из двух режимов контроля
установлен — контроль четности или контроль нечетности. Завер-
шает передачу столовый бит. Длительность стопового бита, опре-
деляющая временной интервал между отдельными передаваемы-
ми словами, ограничений сверху не имеет. Минимальная длитель-
ность стопового бита в современных протоколах связи обычно
программируется и не может быть меньше длительности 1, 1,5
или 2 периода трансляции одного бита. Передатчик может повто-
рять стоп-бит до тех пор, пока приемник не будет готов получить
следующий байт данных.
Заметим, что вычислительное устройство (как источник, так и
приемник цифровых данных) оперируют только данными и не
имеют никакого отношения к служебным сигналам, передава-
емым в информационной посылке. Последовательный порт на пе-
редающей стороне при передаче дополняет информационную по-
сылку необходимыми служебными сигналами, а последователь-
ный порт на приемной стороне после обработки удаляет их и пе-
редает цифровому приемнику только данные. Асинхронная пере-
дача данных отличается гибкостью, она не требует задания жест-
ких моментов времени посылки очередных блоков данных.
При синхронных обменах прием и передача информационных
бит сопровождается передачей специальных синхронизирующих
импульсов по дополнительной линии связи. И источник, и при-
емник интерпретируют один и тот же синхроимпульс как указа-
ние на наличие в канале очередного бита. Передатчик, договорив-
шись с приемником о параметрах связи, пересылает данные сплош-
ным потоком без всякого разделения на блоки (байты). Синхрон-
ная передача отличается высокой скоростью, но хуже защищена
от помех. Она широко применяется при обменах данными между
блоками обработки данных и внешними периферийными устрой-
ствами на расстояния от нескольких сантиметров до нескольких
метров, требуя минимального физического интерфейса.
Наиболее распространенным стандартом последовательной свя-
зи является стандарт RS-232C.
7.5.4. Интерфейс RS-232C
Рекомендуемый стандарт последовательной связи RS-232C
(Recommended Standard 232С) предложен ассоциацией электрон-
ной промышленности США в 1969 г. Он описывает интерфейс
между оконечным оборудованием обработки данных — DTE-уст-
ройствами (DataTerminal Equipment) и оконечным оборудовани-
ем каналов связи — DCE-устройствами (Data Circuit-terminating
Equipment) при последовательном обмене данными в двоичной
форме. Регламентируя связи между DTE- и DCE-устройствами,
стандарт RS-232C определяет состав и функциональное назначе-
ние сигналов интерфейса, типы соединителей (разъемов), рас-
пределение сигналов по контактам этих соединителей, характе-
ристики механического интерфейса, а также ряд других характе-
ристик, которые попадает под понятие физического интерфейса.
Последовательный интерфейс RS-232C является наиболее широ-
ко распространенным интерфейсом между ВМ и периферийными
устройствами различного назначения. Он гарантирует надежную
передачу информации на небольшие расстояния (до 15 м) с не-
большими скоростями (от 50 бит/с до 19,2 Кбит/с) в полудуплек-
сном и дуплексном режимах. Данные могут передаваться в синх-
ронном или асинхронном режимах. Средой передачи информации
является витая пара.
В качестве DTE-устройств различных устройств обработки дан-
ных, от простейших терминалов и до ПК. и больших ВМ, исполь-
зуют последовательные порты SP. С их помощью не только обес-
печивается преобразование данных из параллельного кода в пос-
ледовательный и обратное преобразование, но и реализуется кон-
троль возможности обмена с соответствующим DCE-устройством.
DCE-устройства обеспечивают преобразование выходных сигна-
лов DTE-устройств (последовательного порта) к виду, позволяю-
щему передавать эти сигналы по каналам связи. В качестве
DCE-устройств часто используются модемы, поэтому в обозначе-
нии сигналов интерфейса RS-232C применена соответствующая
терминология. В общем случае DTE- и DCE-устройства способны
принимать и передавать информацию. Для обеспечения этой воз-
можности оба устройства имеют отдельные выводы приема RxD
(Receive Data) и передачи TxD (Transmitted Data) последователь-
ных данных, а также специальные выводы для приема и передачи
управляющих сигналов. При соединении друг с другом провода,
используемые одним устройством для передачи, должны исполь-
зоваться другим устройством для приема и наоборот. В стандарт-
ном последовательном интерфейсе RS-232C DCE-устройства все-
гда должны подключаться к DTE—устройствам, в противном слу-
чае обмен информацией организовать будет невозможно. Соеди-
нение DTE- и DCE-устройств реализуется с помощью специаль-
ных соединительных кабелей и разъемов, назначение сигналов и
выводов которых стандартизировано. Когда кабель соединения
подключается к DTE—устройству, предполагается, что второй
конец кабеля соединяется со связным (коммуникационным)
DCE-устройством. Стандарт RS-232C указывает, что для
DTE-устройств следует использовать розеточную часть разъема
DB25M, а для DCE-устройств — вилочную часть разъема DB25F.
В табл. 7.1 представлены описание линий интерфейса и обозначе-
ния сигналов стандарта RS-232C. Из таблицы видно, что кроме
обязательных для любых интерфейсов линий передачи TxD и при-
ема RxD данных, а также линий заземления SG в стандарте оп-
ределена группа сигналов, обеспечивающих управление темпом
приема-передачи данных. Кратко поясним назначение сигналов
интерфейса.
Попытка выполнить последовательный обмен будет бесполез-
ной, если одно из устройств (DTE или DCE) не включено. В спе-
цификациях стандарт RS-232C выделяются два проводника для
передачи сигналов готовности к работе DTE- и DCE-устройств.
Включенное DTE-устройство через одноразрядный DTR-порт фор-
мирует на своем выходе сигнал готовности DTR (Data Terminal
Ready), информирующий DCE-устройство о своей готовности к
работе и разрешающий ему (модему) посылку данных. DCE-уст-
ройство при включении и готовности к работе выдает сигнал DSR
(Data Set Ready), поступающий на DTE-устройство и сообщаю-
щий о его готовности к работе. Для обеспечения нормальной ра-
боты оба сигнала готовности должны появиться прежде, чем нач-
нется обмен информацией. Наличие сигналов готовности к работе
DTE- и DCE-устройств является необходимым, но не достаточ-
ным условием обеспечения правильности выполнения процедур
обмена между двумя указанными устройствами. Если одно из уст-
ройств (DTE или DCE) посылает посылку другому устройству,
которое в этот момент занято выполнением какой-либо иной за-
дачи и не может принять данные, то переданная посылка будет
потеряна.
Для повышения надежности обменов DTE- и DCE-устройства
формируют управляющие сигналы, обеспечивающие управление
обменом. Эти сигналы называются сигналами квитирования, а сама
процедура обмена управляющими сигналами для установления
связи между передатчиком и приемником называется процедурой
квитирования. Процедура квитирования обычно предшествует не-
посредственной процедуре обмена данными и может использо-
ваться как при последовательной, так и при параллельной пере-
даче, при этом число линий, необходимых для передачи сигналов
квитирования не зависит от типа передачи.
Квитирование особенно важно при передаче последователь-
ных данных по телефонным линиям с использованием модемов.
Действительно, так как состояние телефонной линии связи мо-
жет непредсказуемо меняться, то для правильной и эффективной
передачи требуется иметь возможность соответствующим образом
менять скорость передачи модема, приостанавливая и вновь раз-
решая его работу. Существуют два метода управления потоком:
Таблица 7.1
Сигналы и линии интерфейса стандарта RS-232C
Номер контакта Сигнал DTE-устройства в разъеме DB25M Сигнал DCE-устройства в разъеме DB25F
Обозна- чение Функция Обозна- чение Функция
1 PG Защитное заземление PG Защитное заземление
2 TxD Передаваемые данные RxD Принимаемые данные
3 RxD Принимаемые данные TxD Передаваемые данные
4 RTS Запрос передачи при готовности к приему (выход) CTS Сброс передатчика (разрешение переда- чи со стороны DTE- устройства; вход)
5 CTS Сброс передатчика (разрешение переда- чи со стороны DCE- устройства; вход) RTS Запрос передачи при готовности к приему (выход)
6 DSR Готовность DCE- устройства (вход) DTR Готовность к работе модема (выход)
7 SG Сигнальное заземле- ние (второй провод передаваемых и при- нимаемых сигналов) SG Сигнальное заземле- ние (второй провод передаваемых и при- нимаемых сигналов)
8 DCD Обнаружение несу- щей частоты (вход) DCD Несущая частота (выход)
9-19 N/A* Не используются N/A Не используются
20 DTR Готовность DTE-уст- ройства к работе (вы- ход) DSR Готовность DTE-уст- ройства к работе (вход)
21 N/A Не используется N/A Не используется
22 RI Индикатор звонка (вход) RI Индикатор звонка (выход)
* N/A — Not Available.
«мягкий» (software) — программный и «жесткий» (hardware) —
аппаратный. Первый метод, называемый также XON/XOFF,
предусматривает посылку в нужный момент в приемник из моде-
ма одного из двух символов: XOFF, указывающего на необходи-
мость приостановить передачу данных, или XON, возобновляю-
щего передачу. Приемник готов к чтению, если после приема бай-
та данных он отвечает байтом XON. В противном случае посылает-
ся байт XOFF. Для кодирования XON/XOFF используются специ-
альные коды, редко используемые при символьном обмене: 13h
для XOFF и llh для XON. При передаче бинарных файлов коды
могут быть любые, в том числе и коды XON и XOFF, поэтому
прибегают к особым мерам, чтобы приемник не принял эти коды
за сигналы от своего модема. В большинстве случаев для кодирова-
ния бинарных файлов используется НЕХ-кодирование, при кото-
ром байт разделяется на две тетрады, каждая из которых переда-
ется отдельным НЕХ-кодом. При таком кодировании занятыми
оказываются только 16 кодов для передачи байта, а остальные
коды по соглашению можно использовать для кодирования XON/
XOFF.
Жесткий (аппаратный) метод управления потоком данных,
обозначаемый CTS/RTS, вместо двух специальных символов ис-
пользует два провода, выделяемых для пересылки сигналов кви-
тирования, управляющих передачей. DTE-устройство при готов-
ности принять данные формирует сигнал RTS (Request То Send —
запрос передатчика). Другое название этого сигнала — готовность
DTE-устройства к приему. Активизация сигнала RTS разрешает
DCE-устройству передавать данные. Деактивизация сигнала RTS
приостанавливает передачу DCE-устройства. Чтобы иметь возмож-
ность принять всю информацию от DCE-устройства, сигнал RTS
должен оставаться активным на все время передачи. Сигнал кви-
тирования RTS задается программно в командном слове, управ-
ляющем последовательным обменом. Программируемый бит RTS
связан с одноименным выходом порта SP. До поступления сигна-
ла RTS от DTE-устройства DCE-устройство не должно передавать
данные. DCE-устройство, в свою очередь, при готовности при-
нять данные от DTE-устройства формирует сигнал CTS (Clear То
Send — сброс передатчика), поступающий на одноименный вход
DTE-устройства. Обычно сигнал CTS является ответом на сигнал
RTS, т.е. формируется DCE-устройством после завершения пере-
дачи данных DTE-устройству (отсюда и название — сброс пере-
датчика). DCE-устройство может деактивизировать сигнал CTS в
любой момент времени, например, при необходимости приоста-
новить передачу данных со стороны DTE-устройства, сообщая
последнему, что оно не имеет возможности принять данные. При
активизации сигнала CTS DCE-устройство вновь способно при-
нимать данные. Такая процедура управления приемом-передачей
получила название аппаратное управление потоком данных. Для
нормальной работы DTE- и DCE-устройств в системе с аппарат-
ным управлением потоком данных сигналы RTS и CTS должны
быть активны, в противном случае информация не будет переда-
ваться ни в одном направлении. В системах с двусторонним обме-
ном данных требуются все сигналы квитирования (от DTE-уст-
ройства к DCE-устройству и от DCE-устройства к DTE-устрой-
ству). В системах с односторонней передачей, например в системе
сбора информации от датчиков, где компьютер или микроконт-
роллер только принимают информацию, а датчики только пере-
дают, достаточно использовать в каждом последовательном пор-
те лишь два сигнала квитирования: один входной и один выход-
ной.
По сравнению с программным методом аппаратное управле-
ние потоком данных имеет важное преимущество: при его ис-
пользовании не тратится время на пересылку специальных сим-
волов и благодаря этому заметно ускоряется весь процесс пере-
дачи.
Кратко резюмируем особенности обмена информацией по по-
следовательному каналу связи стандарта RS-232C. Для возможно-
сти осуществления связи по последовательному каналу необходи-
мо, чтобы аппаратура на концах канала была включена и готова к
работе. DTE- и DCE-устройства подтверждают готовность к рабо-
те соответствующими сигналами DTR и DSR. При обнаружении
несущей частоты (активного сигнала DCD) DTE-устройство мо-
жет принимать или передавать информацию. При готовности к
приему данных DTE-устройство активизирует свой сигнал RTS
(запрос передатчика), который разрешает DCE-устройству пере-
давать данные. После завершения передачи DCE-устройство акти-
визирует сигнал CTS (сброс передатчика), сообщая
DTE-устройству, что оно готово к приему данных. DTE-устройство
воспринимает этот сигнал как приглашение к передаче информа-
ции. Если сигнал CTS не становится активным, DTE-устройство
вынуждено ожидать поступление активного сигнала CTS, кото-
рый разрешит передачу. Если во время передачи информации у
DTE-устройства (ВМ или терминала) возникнет необходимость
выполнить какую-нибудь важную функцию, например прочитать
информацию с диска, сигнал RTS будет убран, и модем прекра-
тит передачу. Когда DTE-устройство освободится, сигнал RTS
снова активизируется, и будет продолжена передача информации
через модем. При поступлении телефонного вызова RI DCE-уст-
ройство, обнаружившее этот сигнал, может передать его
DTE-устройству. Последнее может выдать на экран сообщение о
необходимости приема или передачи информации.
Стандарт связи RS-232C описывает не только протокол пере-
сылки данных и функциональное назначение линий управления
и передачи, но и определяет характеристики сигналов электри-
ческого интерфейса, а также рекомендует тип разъемов соедине-
ния DTE- и DCE-устройств.
Физический интерфейс RS-232C не требует гальванической
развязки связываемых устройств. Каждый из сигналов интерфейса
имеет два уровня, которые измеряются относительно линии SG.
Логической «1» соответствует напряжение на входе приемника в
диапазоне -12...-3 В. Логическому «О» соответствует диапазон
+3...+12 В. Диапазон -3...+3 В определен как зона нечувствитель-
ности. Наличие этой зоны обуславливает гистерезис приемника.
Использование как положительных, так и отрицательных напря-
жений улучшает помехоустойчивость системы связи и обеспечи-
вает хорошее соотношение сигнала к помехе. Уровни сигналов на
выходах передатчиков должны быть в диапазонах -12...-5 В и
+5...+12 В для представления «1» и «О» соответственно. Разность
потенциалов между схемной землей SG соединяемых устройств
должна быть менее 2 В. Состояние линий управляющих сигна-
лов, соответствующее логической «1», называется ON, а состоя-
ние линий управляющих сигналов, соответствующее логическому
«О», — OFF. Для линии последовательных данных состояние логи-
ческой «1» называется MARK, а состояние логического «О» —
SPACE. Каждая линия интерфейса задается своим функциональ-
ным описанием.
Из-за различия уровней сигналов последовательного порта
(DTE-устройства) и связного оборудования (DCE-устройства) их
соединение осуществляется с помощью специальных драйверов и
приемников, преобразующих TTL-сигналы последовательного
порта в требуемые уровни напряжений интерфейса RS-232C (фор-
мирователи МС1488 и приемники МС1489 фирмы Motorola, эк-
вивалентные им микросхемы SN75188 и SN75189 фирмы TI, а
также микросхемы тах232 фирмы MAXIM и др.). При соедине-
нии стандартных последовательных устройств в соответствии со
стандартом RS-232C требуется максимум девять проводов (рис. 7.14).
Теоретически подключение стандартного DTE-устройства к стан-
дартному DCE-устройству сводится к соединению соответству-
ющих выводов обоих устройств.
Для многих приложений стандартный кабель соединений RS-
232С содержит избыточное количество соединительных проводов,
многие из которых можно исключить без нарушения функций,
выполняемых стандартным кабелем. В частности, в некоторых слу-
чаях можно подключить последовательный порт к модему, ис-
пользуя всего три провода. В схемах с упрощенными кабельными
соединениями каждая сторона кабеля с разъемом DB-25 задает
свои собственные входные условия, которым должны удовлетво-
рять сигналы, генерируемые устройствами (рис. 7.15).
Стандарт RS-232C также включает примеры реализации вне-
шних межсоединений для типичных конфигураций. В частности,
он позволяет исключить канал удаленной связи вместе с парой
DCE-устройств, соединив DTE-устройства непосредственно с
SP
DTE-
устрой-
ство
DTR
RTS
TxD
RxD
DSR
CTS
DCD
RI
Драйверы и приемники RS-232 -12В +12В +5В й —- Модем DCE- устрой- ство DSR CTS RxD TxD DTR RTS DCD RI ЛС Модем DCE- устрой- ство DSR CTS RxD TxD DTR RTS DCD RI ~— Драйверы и приемники RS-232 -12В +12B < +5B * - SP DTE- устрой- ство DTR RTS TxD RxD DSR CTS DCD RI
Рис. 7.14. Соединение DTE- и DCE-устройств по стандарту RS-232
помощью нуль-модемного кабеля (рис. 7.16). Простейшим реше-
нием соединения двух DTE-устройств является соединение, при
котором выход TxD одного порта подключается к входу RxD дру-
гого порта и наоборот. Кроме того, необходимо осуществить соот-
ветствующее переключение сигналов DTR и DSR, а также сигна-
лов RTS и CTS. Учитывая, что DTE-устройства не формируют
ничего похожего на сигнал обнаружения несущей частоты DCD,
DTE-устройство DCE-устройство
DB-25 DB-25
TxD 2
RxD 3
RTS 4
CTS 5
DSR 6
GND7
DCD 8
DTR 20
RI 22
2 TxD
3 RxD
4 RTS
5 CTS
6 DSR
7 GND
8 DCD
20 DTR
22 RI
DTE-устройство DTE-устройство
DB-25 DB-25
TxD 2 2 TxD
RxD 3 3 RxD
RTS 4 — — — —' 4 RTS
CTS 5 5 CTS
DSR 6 6 DSR
GND 7 1 I 7 GND
DCD 8 8 DCD
DTR 20 20 DTR
RI 22 22 RI
Рис. 7.15. Соединение DTE- и
DCE-устройств трехжильным
кабелем
Рис. 7.16. Соединение DTE-уст-
ройств нуль-модемным кабелем
без которого DTE-устройство не может осуществлять передачу ин-
формации, вывод DCD следует соединить с выходом готовности
DTR другого порта. Дополнительные соединения, позволяющие
осуществить аппаратное квитирование установления связи, пока-
заны штриховыми линиями.
Практическая реализация последовательной связи требует зна-
чительных аппаратных и программных затрат. Последовательные
порты, используемые для приема-передачи последовательной ин-
формации, реализуются в виде универсальных СБИС или встраи-
ваются в различные функциональные элементы (микроконтрол-
леры, аналого-цифровые ADC и цифроаналоговые DAC преобра-
зователи, часы реального времени RTC и др.). При необходимо-
сти осуществления как синхронных, так и асинхронных последо-
вательных обменов, используют универсальные синхронно-асин-
хронные приемопередатчики — Universal Synchronous Asynchronous
Receiver Transmitter (USART). Последовательные порты, осуще-
ствляющие просто асинхронный последовательный обмен, назы-
вают устройствами асинхронного приема-передачи UART. В Рос-
сии и за рубежом разработаны подобные микросхемы, например
КР580ВВ51 (аналог микросхемы 8251 фирмы Intel), UART 8250
фирмы Intel, UART INS8250 и 16550 фирмы National Semiconductor
и другие. Подробное описание и программирование названных
микросхем можно найти в справочной литературе. СОМ-порты
ПК поддерживают только асинхронный режим обмена, при этом
для связи с COM-портами используют сокращенный интерфейс
RS-232C, содержащий две пары линий приемника и передат-
чика. В современных ПК СОМ-порты входят в состав многофунк-
циональных СБИС чипсета.
В состав функциональной схемы типового последовательного
порта SP входят следующие основные блоки (рис. 7.17):
• буферный регистр данных, предназначенный для обмена дан-
ными и управляющими словами между системной шиной ВМ и
внутренней шиной SP;
• блок приемника, выполняющий прием последовательных
данных с входа RxD, преобразование их с помощью сдвигающего
регистра в параллельный формат и передачу параллельных дан-
ных в буферный регистр приемника;
• блок передатчика, обеспечивающий преобразование дан-
ных в параллельном формате на выходе буферного регистра пе-
редатчика в последовательную посылку и передачу ее на выход
TxD;
• блок управления, содержащий в своем составе регистры ре-
жима, состояния и схему управления прерываниями. Блок управ-
ления принимает управляющие сигналы от ВМ и формирует все
необходимые сигналы управления последовательным обменом,
обеспечивая функционирование SP в различных режимах работы.
Блок приемника
Рис. 7.17. Функциональная схема последовательного порта
При завершении приема последовательных данных устанавлива-
ется флаг запроса прерывания RI (буфер данных приемника за-
полнен), а при завершении передачи последовательных данных —
флаг TI (буфер данных передатчика пуст и готов принять новые
данные);
• блок управления модемом, обеспечивающий формирование
управляющих сигналов модему и контроль сигналов, поступа-
ющих от модема. Названия и назначение сигналов управления мо-
демом соответствует названиям и назначению сигналов интерфейса
RS-232C;
• генератор синхроимпульсов, с помощью которого задается
требуемая скорость приема-передачи по последовательному кана-
лу. Изменение скорости приема-передачи осуществляется про-
граммно.
Упрощенно работу последовательного порта можно предста-
вить следующим образом. В режиме «прием» последовательные вход-
ные данные поступают через внешний контакт RxD и после пре-
образования в блоке приемника передаются в параллельном коде
в буферный регистр данных. Оттуда они через СШ данных могут
быть считаны процессором. Благодаря такой схеме преобразовате-
ля, порт SP может принимать и преобразовывать следующий байт
информации в последовательном коде сразу после загрузки пре-
образованного байта в выходной буферный регистр приемника,
т. е. еще до того, как ранее принятый байт будет считан процессо-
ром или другим DTE-устройством. Однако если содержимое бу-
ферного регистра приемника не будет прочитано до окончания
преобразования очередного байта, невостребованные данные в бу-
ферном регистре приемника будут потеряны. В режиме «передача»
принимаемый из СШ байт данных фиксируется в буферном реги-
стре данных и из него передается в блок передатчика. При выводе
данных содержимое сдвигающего регистра передатчика путем се-
рии сдвигов выдвигается в последовательной форме на выход TxD.
Буферные регистры приемника и передатчика являются незави-
симыми, что позволяет организовывать одновременный прием и
передачу данных в дуплексном режиме передачи. Прием и выдача
последовательного кода байта данных начинается с младшего раз-
ряда и заканчивается старшим разрядом.
Последовательные порты стандарта RS-232C являются универ-
сальными устройствами. Они могут программироваться как на
прием, так и на передачу последовательной информации. Управ-
ление работой последовательного порта осуществляется програм-
мно записью в его регистры режима и управления управляющих
слов, поступающих от процессора или другого DTE-устройства.
При программной инициализации порта SP устанавливается ско-
рость приема-передачи, формат посылки (число информацион-
ных бит, число стоповых бит, вид контроля), а также, если необ-
ходимо, производятся настройки, связанные с обеспечением ра-
боты по прерыванию. В ПК инициализацию порта SP выполняют
при загрузке ОС после включения напряжения питания или по
программе.
7.5.5. Специализированные последовательные
интерфейсы промышленного назначения
В компьютерных и микропроцессорных системах управления
для связи между элементами широко применяется ряд специа-
лизированных последовательных интерфейсов, обладающих бо-
лее высокими характеристиками, чем рассмотренный интерфейс
RS-232C. Наиболее распространенными являются интерфейсы
RS-485 и RS-422A, а также «токовая петля» (отечественный ана-
лог ИРПС). Имеется также ряд служебных интерфейсов последо-
вательного типа, например, JTAG, служащий для тестирования
компонентов вычислительных устройств, и др. При построении
локальных вычислительных сетей применяют интерфейс после-
довательных мультиплексных каналов MIL1553.
Интерфейсы RS-485 и RS-422A. Реализуют в соответствии с
одноименными стандартами, которые определяют параметры сиг-
налов и требования к электрическим характеристикам выходных
каскадов передатчиков и входных цепей приемников аппаратуры
передачи данных.
Интерфейс RS-485 используется в системах сбора данных и
управления. В соответствии с данным стандартом допускается по-
строение многоточечных систем обмена двоичными сигналами,
объединяющих до 32 передатчиков и 32 приемников (рис. 7.18).
В соответствии со стандартом система обмена информацией вклю-
чает в себя передатчики G (источники сигнала) и приемники R,
входы-выходы которых подключены к электрическому кабелю сим-
метричным образом. К концам кабеля подключены согласующие
резисторы R,.. Кроме однофункциональных устройств G и R в си-
стеме могут присутствовать приемопередатчики G/R.
Важным отличием интерфейса RS-485 от стандарта RS-232C
является использование симметричной согласованной линии свя-
зи и дифференциальных входов-выходов устройств, подключен-
ных к линии связи. В интерфейсе RS-485 информационным пара-
метром является разность потенциалов между проводниками ли-
нии связи, представленной сигнальной землей и парой проводов
(экранированной витой парой). Уровень сигнальной земли для
определения логического состояния линии не используется, но
подключение сигнальной земли (на рис. 7.18 не показано) явля-
ется обязательным. При соблюдении всех требований к компонен-
там при передаче данных на расстояние до 12 м стандарт RS-485
гарантирует скорость обмена до 10 Мбит/с, при этом работоспо-
собность устройств сохраняется при наличии помех общего вида
амплитудой до 7 В.
Рис. 7.18. Многоточечная система обмена информацией с использовани-
ем интерфейса RS-485
Для передатчика G, находящегося в активном состоянии, все
остальные устройства на линии (приемники, передатчики в пас-
сивном состоянии и устройства G/R) являются единицами на-
грузки. Передатчик может работать на линию, к которой подклю-
чено до 32 стандартных единиц нагрузки при эквивалентном со-
противлении согласующих резисторов не менее 60 Ом. Выходной
сигнал формирователя (источника сигнала) изменяется в зависи-
мости от нагрузки: от ±6 В в режиме холостого хода до ± 1,5 В при
полной нагрузке. Стандарт допускает передачу данных на расстоя-
ние до 1,2 км, но с меньшей скоростью (до 100 Кбит/с). Преобра-
зование уровней сигнала интерфейса RS-485 осуществляется мик-
росхемами max485, max 1480 и др. Современные микросхемы до-
пускают увеличение нагрузки до 255 стандартных единиц.
Симметричный дифференциальный интерфейс RS-422A для
передачи последовательных данных также использует симметрич-
ные дифференциальные сигналы. В отличие от интерфейса RS-485,
выходы передатчиков интерфейса RS-422A не имеют третьего со-
стояния, поэтому обмен информацией должен осуществляться
по 4-жильной экранированной витой паре. Интерфейс исполь-
зуется для связи двух устройств «один в один», хотя возможно
построение и многоточечной системы (до 5 передатчиков и 10
приемников на передатчик). Интерфейс RS-422A изначально был
предложен для замены интерфейса RS-232C в тех случаях, когда
интерфейс RS-232C не удовлетворяет по скорости и дальности
передачи. Преобразование уровней сигнала интерфейса RS-422A
осуществляется с помощью микросхем формирователей МС3486
и приемников МС3487 фирмы Motorola или эквивалентным им
микросхемам 9636 и 9637 фирмы TI. ПК общего назначения не
комплектуются приемопередатчиками для интерфейсов RS-485 и
RS-422A, но на рынке имеется большое количество разнообраз-
ных устройств для сопряжения интерфейсов RS-422C/RS-485 с
интерфейсом RS-232C.
Многоточечное соединение источников и приемников данных
требует организации доступа к каналу передачи подключенных
устройств. Эта задача является типичной для вычислительных се-
тей. Один из вариантов реализации обменов в многоконтроллер-
ной системе по последовательному каналу связи рассматривается
ниже.
Токовая петля. Это один из популярных последовательных ин-
терфейсов, используемых в системах автоматизации широкого
назначения. Как следует из названия «токовая петля», информа-
ционным параметром сигнала в линии связи является не напря-
жение относительно сигнальной земли или второго провода, а
ток в линии связи. Логической «1» (MARK) соответствует проте-
кание тока, логическому «0» — отсутствие тока. Последовательная
посылка содержит стартовый бит, данные (5, 6, 7 или 8 бит),
Рис. 7.19. Временная диаграмма передачи байта «11001010» потоковой
петле
необязательный контрольный бит и стоповые биты (1, 1,5 или 2).
Временная диаграмма (рис. 7.19) иллюстрирует посылку байта
«11001010».
Частоты передачи бит выбираются из того же ряда, что и для
стандарта RS-232C, но в «классической» токовой петле макси-
мальной является частота 19,2 Кбит/с. Имеется несколько стан-
дартов для амплитуды тока в линии. Чаще всего используется «Пет-
ля 20 мА», но имеются стандарты, использующие и другие значе-
ния. Во время паузы течет ток, что позволяет контролировать це-
лостность линии связи.
Когда применяется токовая петля, абоненты подключаются к
линии связи через гальваническую развязку, которая ослабляет
влияние помех. Для этого в электрические цепи линий связи вклю-
чают гальванически развязанные двухполюсники, в качестве ко-
Рис. 7.20. Схема токовой петли для передачи одного сигнала:
А — точка подключения источника сигнала; В — точка подключения приемника
сигнала
торых используют оптронные пары (рис. 7.20). Они устраняют галь-
ваническую связь между цепями питания SP на приемном и пре-
дающем концах линии. Точка А является точкой подключения
источника сигнала, а точка В — точкой подключения приемника
сигнала. Предполагается, что интерфейсом связаны два однотип-
ных UART, имеющие в своем составе одинаковые цепи подклю-
чения к линии, включающие гальваническую развязку. Поэтому
изображены две оптронные пары на одной линии, в то время как
для обеспечения безопасности и защиты от помех достаточно од-
ной. Важно, чтобы линия связи получала питание на одной сторо-
не интерфейса (приемной или передающей). Источник питания
U„n не имеет общих точек с источником +5 В, от которого получа-
ют питание логические схемы выходного формирователя UART1.
Точка заземления, показанная на стороне выходного формирова-
теля — это отрицательный полюс источника U„n, а заземление на
стороне входного каскада UART2 — это отрицательная шина ис-
точника +5 В. Ток в канале связи «заземляется» на стороне пере-
датчика. Как видно из рис. 7.20, для каждого сигнала интерфейса
требуется пара проводов (прямой и обратный). Обязательными яв-
ляются только линии, соединяющие выход данных передатчика с
входом данных приемника. Поэтому для двухсторонней передачи
требуется четырехпроводный кабель для передачи и приема дан-
ных. Темп передачи может при этом управляться по программно-
му протоколу XON/XOFF. Для реализации аппаратного протоко-
ла интерфейс должен быть дополнен еще одной или двумя петля-
ми, по которым транслируются сигналы готовности (занятости).
В случае использования UART для этого используются сигналы
CTS/RTS.
ПК стандартной конфигурации не оборудуются интерфейсом
токовая петля. Для подключения к такому интерфейсу стандарт-
ного ПК можно использовать выходы последовательных портов.
Для этого имеются преобразователи сигналов RS-232C в сигналы
токовой петли. Отечественный аналог рассмотренного интерфей-
са ИРПС (интерфейс для передачи информации между устрой-
ствами с радиальной последовательной связью) был использован
в ряде серийных ВМ.
Интерфейс последовательных мультиплексных каналов MIL-1553.
Предназначен для многоточечного соединения распределенных
подсистем специального назначения. Система, построенная на базе
этого интерфейса, включает в себя контроллер (рис. 7.21) и око-
нечные устройства, подключенные параллельно к мультиплекс-
ному каналу. Количество оконечных устройств может достигать
31. Такая система по существу представляет собой локальную вы-
числительную сеть. Подобная конфигурация возможна и на ос-
нове интерфейса RS-485, но реализация интерфейса MIL-1553
отличается от рассмотренного. Для этого интерфейса определен
Рис. 7.21. Схема подключения устройств к мультиплексному каналу
MIL-1553:
Re — согласующий резистр; Л, — защитный резистр; Т — трансформатор гальва-
нической развязки; ОУ( — <-е оконечное устройство; ОУ) — у-е оконечное уст-
ройство
метод доступа абонентов к каналу связи и протокол их взаимо-
действия.
Физическая среда передачи информации — витая пара, согла-
сованная на концах резисторами Лс = 75 Ом. Система имеет шин-
ную топологию. Сигнал в линии представлен биполярным кодом
Манчестер II (см. подразд. 11.4) и не имеет постоянной составля-
ющей. Благодаря использованию данного способа кодирования
цифровой информации, подключение оконечных устройства к
шине можно осуществлять с помощью трансформаторов, обеспе-
чивая при этом гальваническую развязку цепей абонентов от шины.
Трансформаторы подключаются к линии через ответвления (шлей-
фы), длина которых установлена стандартом. При длине шлейфов
6 м количество подключенных к шине устройств не должно пре-
вышать 32.
Контроллер интерфейса MIL-1553 часто входит в состав ВМ. Он
управляет обменом информации, контролирует правильность ее
передачи и состояния оконечных устройств, а также осуществляет
самоконтроль. Оконечные устройства принимают и выполняют ко-
манды контроллера и также контролируют правильность передачи
информации, передавая результаты контроля в контроллер.
Обмен информацией осуществляется по принципу команда-
ответ с временным разделением сообщений. Единицей передава-
емой в канал информации является «слово». Используются три типа
слов: командные, информационные и ответные. Допустимые фор-
маты сообщений состоят из комбинаций слов и временных пауз.
Межконтроллерный обмен или работа микроконтроллера в ло-
кальной управляющей сети. В мультипроцессорных системах (рис. 7.22)
один из МК выполняет функции ведущего, а остальные, подсо-
Рис. 7.22. Мультипроцессорная система с ведущим и несколькими
ведомыми микроконтроллерами
единенные к нему по последовательному каналу, являются ведо-
мыми. При необходимости обмена с одним или несколькими ве-
домыми ведущий МК последовательно выбирает ведомые МК и
выполняет требуемый обмен информацией. Организация подоб-
ных обменов возможна в режимах последовательного порта, обес-
печивающих передачу дополнительного 9 бит в информационной
посылке. Механизм межконтроллерного обмена информацией че-
рез последовательный порт МК построен на том, что можно так
запрограммировать передаваемую посылку, чтобы принимающий
МК мог отличить поступающие на его вход адреса от информаци-
онных посылок данных.
При реализации обменов в мультипроцессорной системе вы-
деляют два типа информационных сообщений: собственно дан-
ные или команды, подлежащие выполнению, и адреса ведомых
МК. Для разделения этих информационных сообщений исполь-
зуют единичного бит RB8 посылки: передаваемые адреса имеют
установленный бит RB8, а передаваемые данные — сброшенный
бит ТВ8. Для организации межконтроллерных обменов ряд мик-
роконтроллеров используют специальный бит разрешения муль-
типроцессорной работы SM2 в регистре управления последова-
тельного порта SP. Фактически бит SM2 управляет разрешением
прерывания от SP: при SM2 = 1 прерывания от SP активизируются
только при поступлении единичного бита RB8 входной информа-
ционной посылки, а при SM2 = 0 прерывания от SP активизиру-
ются независимо от состояния бита RB8. Управляя битом SM2, не-
трудно разделить адреса от данных и организовать межконтроллер-
ный обмен.
Рассмотрим работу многопроцессорной системы с одним ве-
дущим и несколькими ведомыми МК при обменах информацией
по разделяемому моноканалу связи (например, коаксиальный ка-
бель или витая пара). В исходном состоянии все ведомые МК зап-
рограммированы в режим приема адресной информации и имеют
установленный бит SM2. При необходимости передачи данных от
ведущего МК к одному из ведомых ведущий сначала выдает в
моноканал посылку с адресом выбираемого ведомого МК, в ко-
торой бит ТВ8 = 1. Так как в адресной посылке бит ТВ8 установ-
лен, то все ведомые МК ее получат и во всех ведомых МК воз-
никнут прерывания по приему, при обработке которых осуществ-
ляется сравнение принятого адреса с собственным сетевым адре-
сом. В результате только адресуемый МК идентифицирует себя как
получатель. Программа обработки прерывания этого МК сбрасы-
вает свой бит SM2 в регистре управления SP (SM2 = 0), подготав-
ливая МК к приему данных. Остальные ведомые МК оставляют
неизменным состояние бита SM2 (SM2 = 1) и возвращают управ-
ление собственной основной программе. После передачи адрес-
ной информации ведущий МК может начинать выдачу в монока-
нал блока данных, каждый байт которого имеет сброшенный бит
ТВ8. Получателем данных будет только выбранный МК, у которо-
го сброшен бит SM2. Остальные МК будут пассивными, посколь-
ку при SM2 = 1 прием посылки с нулевым битом RB8 не вызовет
в них генерацию запросов прерывания. После завершения сеанса
обмена ведущий МК передает ведомому соответствующую коман-
ду, и последний вновь устанавливает бит SM2, при этом МК пе-
реводится в режим приема адресной информации.
Рассмотренный протокол больше всего подходит для сети рас-
пределенных МК, подключенных по разделяемому моноканалу к
одному управляющему компьютеру. Используя рассмотренные идеи
можно реализовать и более сложные протоколы обмена, в соот-
ветствии с которыми функции ведущего МК могут временно зах-
ватываться любым из МК.
7.5.6. Универсальная последовательная шина USB
Коммуникационные COM-порты при всех достоинствах не обес-
печивают возможность одновременного подключения большого
числа внешних устройств (число COM-портов ограничено, в стан-
дартных ПК используются два последовательных порта СОМ1 и
COM2, реже четыре). Использование дополнительных последова-
тельных портов для подключения новых устройств связано с оп-
ределенными технологическими трудностями. Для этого прихо-
дится вскрывать корпус системного блока, вставлять в слот ISA
дополнительную плату последовательного порта и только после
этого можно приступать к работе, к тому же число слотов ограни-
чено.
Отмеченных недостатков лишена шина USB (Universal Serial
Bus), предназначенная для подсоединения низкоскоростных уст-
ройств ввода-вывода к шинам расширения современных ВМ. Шина
USB разработана по предложению представителей семи ведущих
компаний-производителей аппаратного и ПО современных ком-
пьютеров, среди которых IBM, DEC, Intel, Microsoft и другие, и
удовлетворяет следующим требованиям:
• допускает подключения к шине до 127 устройств, при этом
обеспечена возможность подключения новых устройств во время
работы компьютера;
• устройства ввода-вывода, подключаемые к шине, получают
питание через кабель, при этом существует только один тип кабе-
ля для подключения любого устройства;
• поддерживается работа систем реального времени, например
звуковых карт, телефона и пр.
Шина имеет три режима работы: низкоскоростной, полно-
скоростной и высокоскоростной. Пропускная способность шины
в режиме низкоскоростной передачи составляет 1,5 Мбит/с, в
полноскоростном режиме — 12 Мбит/с. Версия шины USB 2.0,
обеспечивает высокую скорость передачи до 480 Мбит/с, что по-
зволяет существенно расширить класс устройств, подключаемых
к шине.
Последовательные шины USB по своей организации существен-
но отличаются от параллельных. В них нет отдельных линий для
данных, адреса и управления, все протокольные функции в таких
шинах выполняются с помощью одной пары сигнальных прово-
дов при пересылке определенным образом организованных цепо-
чек бит, называемых пакетами.
Кодирование цифровой информации при передаче по шине
USB осуществляется методом NRZI (Non Return to Zero Invert to
ones — без возврата к нулю с инвертированием для единиц). Этот
метод представляет собой модификацию простого потенциально-
го метода кодирования NRZ, в котором для представления «1» и
«0» используются потенциалы двух уровней. В методе NRZI потен-
циал, используемый для кодирования текущего бита, зависит от
потенциала, который использовался для кодирования предыду-
щего бита, т.е. применяется так называемое дифференциальное
кодирование. Если текущий бит имеет значение «1», то текущий
потенциал представляет собой «инверсию» потенциала предыду-
щего бита независимо от его значения. Если же текущий бит име-
ет значение «0», то текущий потенциал повторяет предыдущий.
Так как в последовательных шинах синхронизация возможна только
по принимаемому потоку бит, для поддержания самосинхрониза-
ции приемника передаваемые посылки не должны содержать слиш-
ком длинных последовательностей нулей.
В системе USB имеется только один главный управляющий
блок — контроллер USB, который подключается к одной из шин
расширения компьютера (обычно к PCI). Контроллер USB явля-
ется программно-аппаратной подсистемой компьютера. Через него
осуществляются все обмены данными между процессором и вне-
шними устройствами USB. В англоязычной литературе он называ-
ется host controller или просто хост. Основными функциями кон-
троллера являются:
• последовательные преобразования параллельных данных ком-
пьютера в поток бит шины и обратные преобразования;
• отработка запросов на передачу данных между центральным
процессором и внешними устройствами;
• обработка ошибок передачи по шине и ряд других
Топология шины USB — дерево, вершиной которого является
хост-контроллер. Устройства USB, подключаемые к шине, явля-
ются исключительно ведомыми: они только отвечают на запросы
хост-контроллера и не могут обмениваться информацией друг с
другом. Непосредственно к хосту можно подключить любое уст-
ройство USB, но для подключения большого числа (до 127) уст-
ройств предусмотрены специальные разветвители — хабы (hub),
которые обеспечивает дополнительные точки подключения уст-
ройств к шине. Хаб, встроенный в хост-контроллер, называется
корневым. Как правило, он является 2-портовым: к каждому пор-
ту может подключаться периферийное устройство или промежу-
точный хаб. В отличие от корневого, промежуточные хабы имеют
несколько нисходящих портов для подключения периферийных
устройств (или нижележащих хабов) и один восходящий порт для
подключения к корневому хабу или нисходящему порту вышесто-
ящего хаба. Допускается до пяти уровней подключения внешних
устройств к хост-контроллеру через промежуточные хабы (рис. 7.23).
Рис. 7.23. Топологичные шины USB
Согласно спецификации USB, устройства, подключаемые к
шине через порт, бывают простые и комбинированные. В отли-
чие от простых устройств, например акустических колонок с циф-
ровым интерфейсом, комбинированные устройства представля-
ются как хаб с подключенными к нему несколькими устройства-
ми (см. рис. 7.23). Примером комбинированного устройства явля-
ется контроллер мыши и клавиатуры, конструктивно выполнен-
ный в одном корпусе. Внутри такого контроллера размещается ло-
кальный хаб, к которому постоянно подключены два различных
источника данных.
Подсоединение устройств к шине (хабу или хосту-контролле-
ру) осуществляется с помощью четырехжильных кабелей и разъе-
мов. Кабель USB содержит экранированную витую пару для сиг-
нальных цепей и неэкранированную для подачи питания +5 В. Уст-
ройство разъемов допускает подключение и отключение устройств
без выключения питания компьютера: для этого разъемы обеспе-
чивают более раннее соединение и позднее отсоединение пита-
ющих цепей по отношению к сигнальным.
В отличие от распространенных параллельных шин расшире-
ния (ISA, PCI и др.), при использовании которых программа вза-
имодействует с периферийным устройством путем обращений по
физическим адресам пространств памяти устройств ввода-выво-
да, взаимодействие с устройствами USB выполняется исключи-
тельно через программный интерфейс. С шиной процессора со-
единен только хост-контроллер USB, управляющий корневым
хабом. При необходимости обмена информацией с периферий-
ным устройством USB процессор направляет соответствующий
пакет информации корневому хабу, а тот переправляет его соот-
ветствующему устройству.
Каждому устройству, подключенному к шине USB, хост-кон-
троллер назначает 7-битовый адрес, обеспечивая адресацию до
127 внешних устройств, при этом адрес устройства USB никак не
связан с пространством адресов процессора. В состав устройства,
кроме регистра данных, также могут входить регистры управления
и состояния. Спецификация USB допускает до 16 регистров уст-
ройства, каждый из которых называется конечной точкой. Номер
конечной точки ENDP (4-битовый) является расширением поля
адресной информации, которую хост-контроллер отправляет уст-
ройству ввода-вывода перед обменом данными с этим устройством.
В последовательной шине USB все протокольные функции вза-
имодействия хоста-контроллера и контроллера периферийного ус-
тройства реализуют пересылкой пакетов бит по двум проводам.
Структура пакета определяется его типом, называемым иденти-
фикатором пакета PID (Packet ID). Множество типов информаци-
онных пакетов в самом общем виде можно представить либо как
пакеты данных, которыми хост-контроллер обменивается с уст-
Таблица 7.2
Информационные пакеты USB
Тип Подтип (имя)
Token (маркер или признак) SOF, IN, OUT, SETUP
Data (данные) DataO, Datal
Handshake (квитирование) ACK, NAK, STALL
Special (специальный) PRE
ройствами ввода-вывода, либо как управляющие пакеты. Каждый
пакет состоит из одного или нескольких полей, при этом первым
полем любого пакета является 8-битовое поле PID, идентифици-
рующее его тип. В спецификациях USB выделяют четыре основные
типа пакетов, каждый из которых может включать ряд подтипов с
собственными именами PID (табл. 7.2).
Пакеты Token передаются от хост-контроллера к контролле-
рам устройств, подключенным к шине. С их помощью хост-кон-
троллер управляет синхронизацией шины (SOF), указывает на-
правление обмена и адрес периферийного устройства, участвую-
щего в обмене (IN, OUT), и осуществляет конфигурирование
(SETUP) системы при подключении нового устройства к шине.
Пакеты, управляющие обменом данных IN (запрос на выдачу дан-
ных из периферийного устройства в хост-контроллер) и OUT (ин-
формирование периферийного устройства о том, что далее пос-
ледует передача данных из хост-контроллера), имеют особый фор-
мат (рис. 7.24). Пакет начинается с идентификатора PID (IN или
OUT), определяющего направление обмена. За полем PID следу-
ют 7-битовый адрес периферийного устройства (поле ADDR) и
4-битовое поле (поле ENDR), содержащее номер конечной точки
внутри адресуемого устройства. Последние пять разрядов в пакете
[поле CRC (Cyclic Redundancy Check)] используются для контро-
ля передаваемых адресных бит на наличие ошибок. Хост-контрол-
лер формирует значение поля CRC, используя циклический кон-
троль избыточности при передаче содержимого полей ADDR и
ENDP. Получатель с помощью обратного вычисления может про-
верить наличие ошибок в пакете. Пакеты IN и OUT получают все
устройства ввода-вывода, но только одно из них распознает свой
адрес в пакете маркера и подготавливается к обмену данными в
8 бит 7 бит 4 бита 5 бит
PID IN или OUT ADRR ENDP CRC
Рис. 7.24. Формат управляющих пакетов IN и OUT
PID PAYLOAD CRC
Рис. 7.25. Формат пакета DATA
следующем пакете. Получив маркер, устройство после проверки
правильности принятых данных, отправляет хост-контроллеру па-
кет Handshake, сообщая ему о качестве обмена.
Пакеты Handshake обеспечивают согласованный прием/пере-
дачу данных в канале связи. Они формируются приемником дан-
ных и служат для сообщения источнику о качестве обмена. Пакет
АСК (Acknowledge) подтверждает правильность приема данных без
ошибок. Пакет NAK формируется приемником в тех случаях, когда
он не может распознать запрос (в результате потери связи или по
какой-либо другой причине), а также, когда обнаруживается ошибка
CRC. Пакет STALL сообщает источнику, что приемник занят, и
просит повторить обмен (это не ошибка, так как под ошибкой
понимается отсутствие ответа). Пакеты Handshake не содержат
адресной информации и состоят только из одного байта PID.
Пакеты данных, идентифицируемые PID Data, в низкоскоро-
стном и полноскоростном режимах используются для двусторон-
ней передачи 8, 16, 32 или 64 байт информации между хост-кон-
троллером и периферийным устройством. В высокоскоростном ре-
жиме объем передаваемых данных в пакете может достигать 1 Кбайт.
Формат пакета данных содержит три поля: 8-битный PID (DataO
или Datal), полезную нагрузку (собственно данные) PAYLOAD и
16-битный CRC (рис. 7.25). Наличие идентификаторов PID DataO и
PID Datal упрощает восстановление данных после обнаружения
ошибок, связанных с пересылкой. Поясним их назначение. Каждый
участник обмена между передачами пакетов данных переключает
собственный внутренний флаг. При передаче источник данных (хост-
контроллер или устройство) посылают перемежающиеся PID DataO
и Datal, которые при приеме сравниваются с состоянием внутрен-
него переключаемого флага. При несовпадении значений флага и
принимаемого PID фиксируется ошибка.
Любой обмен данными по шине инициируется хост-контролле-
ром и выполняется в несколько этапов. Хост-контроллер формиру-
ет пакет-маркер, содержащий информацию об адресе ПУ и на-
правлении обмена. Этот пакет направляется в корневой хаб, к ко-
торому подключены нижележащие хабы и периферийные устрой-
ства. Проверив контрольные биты CRC, хаб убеждается, что пере-
сылка выполнена без ошибок, подтверждает правильность приема,
отсылая хосту-конроллеру пакет АСК, и направляет полученный
пакет-маркер вниз по дереву всем устройствам, подключенным к
шине. Пакет-маркер получают все устройства, но только одно из
них распознает свой адрес и подготавливается к обмену. При полу-
чении маркера OUT периферийное устройство готовится к приему
данных, а при получении маркера IN — к отправке имеющихся у
него данных. Следующим этапом обмена является собственно об-
мен данными. Устройство-приемник получает пакет данных, пере-
сылаемый от хост-контроллера, и после проверки ошибок под-
тверждает получение данных отправкой хост-конроллеру пакета
Handshake. Устройство-источник при наличии у него данных от-
правляет их хост-конроллеру. Последний, получив эти данные, под-
тверждает их прием отправкой устройству ввода пакета АСК. Если
источником является периферийное устройство, которое не имеет
данных для передачи, оно отсылает пакет-отказ NAK.
Обмен информацией по шине USB между хост-контроллером
и устройством осуществляется последовательными посылками,
называемыми кадрами. Размер кадра зависит от того, содержит он
полезную нагрузку (данные) или нет. Кадр может состоять из од-
ного или нескольких пакетов данных, пересылаемых в обоих на-
правлениях. Кадры следуют с частотой 1 кГц независимо от того,
происходят обмены на шине или нет. Первым пакетом любого
кадра является пакет SOF (Start Of Frame) — начало кадра. С по-
мощью пакета SOF хост-контроллер осуществляет синхрониза-
цию на шине. Если обмен в системе не выполняется, пакет SOF
является единственным в кадре.
В зависимости от типа передаваемых данных обмен информа-
цией между хост-контроллером и периферийным устройством
может выполняться в одном из четырех режимов передачи:
• Bulk (передача больших массивов данных);
• Isochronous (передача массивов данных, критичных ко вре-
мени передачи);
• Interrupt (передачи данных по запросу периферийного уст-
ройства);
• Control (передача команд управления обменом).
Режим передачи больших массивов данных Bulk используется
для организации обменов данными с устройствами, для которых
Кадр 0 Кадр 1 Кадр 2
Рис. 7.26. Последовательность информационных кадров при передачах
в режиме Bulk
не критично время доставки данных, например, с принтерами,
сканерами, модемами. В этом режиме осуществляется двусторон-
няя передача данных пакетами по 8, 16, 32 и 64 байт на полной
скорости или пакетами объемом до 1 Кбайт на высокой скорости.
Доставка данных гарантирована. Правильность передач данных в
режиме Bulk контролируется с помощью пакетов согласования
(квитирования), формируемых принимающей стороной. При на-
личии поврежденных данных передача автоматически повторяет-
ся. Приоритет передач в этом режиме самый низкий. Они могут
приостанавливаться при большой загрузке шины. Кадр 0 (рис. 7.26),
содержащий только один пакет SOF, отображает пустой цикл, в
течение которого никаких действий на шине не происходит. Кад-
ры 1 и 2 содержат пакеты данных, с помощью которых обеспечи-
вается ввод данных из устройства в хост-конроллер (кадр 1) и
вывод данных из хост-конроллера в устройство (кадр 2).
При вводе данных из устройства в хост-конроллер информа-
ционный кадр начинается пакетами SOF и IN, формируемыми
хост-конроллером. Устройство, принимающее пакет IN, отвечает
на запрос и пересылает в хост пакет DATA, структура которого
рассмотрена ранее. При получении данных этого пакета хост-кон-
роллер подтверждает правильность приема данных, посылая ад-
ресуемому устройству пакет АСК. Инициатором обмена при вво-
де, как и при любых обменах, является хост-конроллер. Если хост-
конроллер не пошлет запрос (пакет IN), данные из устройства в
хост-конроллеру никогда не поступят.
Вывод данных из хост-конроллеру в устройство иллюстрирует
информационный кадр 2. Кадр начинается пакетами SOF и OUT,
которые передаются хост-контроллером на шину и воспринима-
ются адресуемым в пакете OUT устройством, подготавливая его к
приему данных. Далее следует пакет передаваемых данных DATA в
устройство. При правильном приеме данных устройство формиру-
ет пакет АСК, завершающий кадр, и пересылает его в хост-кон-
роллер. Если устройство занято и не может принять данные, оно
пересылает в хост-конроллер пакет NAK.
Процесс, последовательные события которого происходят че-
рез равные промежутки времени, называется изохронным. Режим
изохронной передачи (Isochronous) предназначен для обменов
информацией, критичной ко времени передачи. Такой информа-
цией являются оцифрованные аудио и видеоданные. Устройствам,
генерирующим и получающим изохронные данные, для управле-
ния процессом дискретизации и восстановления сигнала необхо-
дима строгая синхронизация. Для организации изохронных пере-
дач с соответствующим устройством в каждом кадре USB отво-
дится жестко фиксированная и предварительно согласованная часть
времени. Размер поля данных Payload может составлять 1, 2, 4,...,
256, 512 или 1024 байта. После выделения времени всем подклю-
ченным к шине изохронным устройствам оставшееся время кадра
используется для обслуживания асинхронных устройств и обмена
управляющей информацией. Благодаря такой организации, режим
Isochronous обеспечивает непрерывные передачи данных в реаль-
ном времени. Отличительной особенностью изохронной передачи
является то, что она допускает случайные ошибки при передаче и
даже потерю отдельных пакетов. Определение ошибок происходит
только на уровне согласования контрольной суммы CRC16. При
обнаружении ошибок недействительные пакеты игнорируются, и
изохронные передачи не повторяются. Из-за особенностей реали-
зации изохронные передачи не используют пакеты квитирования
АСК/ NAK/STALL.
Режим передачи по запросу периферийного устройства
(Interrupt) предназначен для организации коротких передач дан-
ных (до 64 байт) от устройств, подключенных к шине. Поскольку
шина USB не поддерживает сигналы запросов прерываний, кото-
рые являются асинхронными событиями с неопределенным вре-
менем наступления, ОС может организовать опрос периферийно-
го устройства с заданной периодичностью, например через 100 мс,
и собрать все задержанные сигналы прерываний. Предел времени
обслуживания в этом режиме устанавливается программно в диа-
пазоне 1 — 255 мс. Режим Interrupt используют при передачах дан-
ных от клавиатуры, мыши и других низкоскоростных устройств,
требующих асинхронного обслуживания.
Режим передачи «Control» используется для конфигурирова-
ния канала USB при подключении устройства к шине и для уп-
равления устройствами во время работы. Под управляющие по-
сылки резервируется до 10 % времени каждого кадра, при этом
протокол обеспечивает их гарантированную доставку. Передачи
«Control» реализуются в два или три этапа. На этапе Setup, кроме
одноименного признака, передаются 8 байт управляющих данных.
Далее может следовать необязательный этап пересылки дополни-
тельных данных управления Data (до 64 байт). Завершающий этап
Status позволяет устройству индицировать завершение процесса
конфигурирования.
Полоса пропускания шины делится между всеми установлен-
ными каналами (устройствами, подключенными к шине). Архи-
тектура USB предусматривает внутреннюю буферизацию всех уст-
ройств, причем чем большой полосы пропускания требует уст-
ройство, тем больше должен быть его буфер. За распределением
полосы между разными устройствами следит планировщик пере-
дач хост-контроллера.
Благодаря своей универсальности, шина USB применяется для
подключения к компьютеру самых разнообразных устройств: кла-
виатуры, мыши, принтера, сканера, аудиосистемы, модема и пр.
Она призвана заменить традиционные порты СОМ и LPT. Чипсе-
ты многих системных плат ПК содержат в своем составе хост-
контроллер, имеющий, как правило, два порта USB. Для компь-
ютеров без встроенного хост-контроллера выпускаются карты рас-
ширения с контроллером USB (обычно для шины PCI). Преобра-
зователи интерфейсов позволяют через порт USB подключать ус-
тройства с самыми разнообразными интерфейсами: Centronics
(LPT-порт), RS-232C (COM-порт), RS-422C, RS-485 и др. С дета-
лями спецификации интерфейса USB можно познакомиться в спе-
циальной литературе.
Контрольные вопросы
1. Что понимается под информационной, электрической и конструк-
тивной совместимостью интерфейсов модулей микропроцессорных и ВС?
2. Какие способы обмена информацией между устройствами исполь-
зуются в микропроцессорных ВС?
3. Поясните функцию флага готовности внешнего устройства при асин-
хронных обменах.
4. Укажите на основное отличие программно управляемой передачи
от передачи данных с прерыванием программы.
5. Рассмотрите стандартную последовательность действий при обра-
ботке запросов прерываний.
6. В чем различие между подпрограммой и программой обработки пре-
рывания?
7. Назовите основные классификационные признаки систем преры-
ваний. Чем отличаются немаскируемые прерывания от маскируемых?
8. Чем отличаются внутренние прерывания от внешних? Назовите
основные типы исключений.
9. Укажите основное отличие обмена информацией при ПДП от дру-
гих способов обмена.
, 10. Перечислите основные блоки, функции и режимы работы отдель-
ных каналов ПДП.
11. С какими трудностями сталкивается пользователь при подключе-
нии дополнительных периферийных устройств к СШ ВМ? Назовите на-
значение коммуникационных портов.
12. Назовите способы передачи последовательных данных. Как осуще-
ствляется синхронизация работы приемника и передатчика при синх-
ронном и асинхронном обменах?
13. Чем отличаются стандартные интерфейсы последовательной связи
RS-232C, RS-422A и RS-485?
14. Как организуются обмены последовательными данными в мульти-
процессорных системах?
15. Назовите основные преимущества шины USB по сравнению с ком-
муникационными портами.
16. Рассмотрите топологию шины USB. Какую функцию выполняют
хабы шины? Каким образом реализуются протокольные функции в пос-
ледовательной шине USB?
17. Охарактеризуйте основные режимы передачи по шине USB.
Глава 8
СТРУКТУРА И ОРГАНИЗАЦИЯ РАБОТЫ
ПЕРСОНАЛЬНОГО КОМПЬЮТЕРА
8.1. Структура персонального компьютера
Структура компьютера и организация в нем вычислительных
процессов существенно зависят от типов процессора, материн-
ской платы и системных контроллеров — микросхем, выполня-
ющих функции управления информационным обменом между уст-
ройствами компьютера. Все эти три важные составляющие компь-
ютера динамично развиваются. Существенные изменения в орга-
низации компьютера произошли с появлением процессоров класса
Pentium, разработанных фирмой Intel. Системные контроллеры в
ПК с процессорами Pentium реализуются на двух СБИС, в кото-
рых собраны контроллеры, выполняющие различные функции и
ранее реализованные в виде отдельных больших ИС. С развитием
микроэлектроники и ростом уровня интеграции эти контроллеры
объединили в две микросхемы СБИС, добавив в их состав допол-
нительные схемы, связанные с расширением реализуемых аппа-
ратурой компьютера функций. Поэтому СБИС системных контрол-
леров называют «чипсетами» (chipset — множество кристаллов).
Вопросы функциональной и структурной организации компью-
тера рассматриваются на примере конкретных типов процессора,
системных контроллеров (chipset) и материнской платы. Далее
относительно этого базового варианта рассматриваются тенден-
ции и направления развития в связи с прогрессом в компьютер-
ной индустрии.
Рассмотрим структуру компьютера, построенного с использо-
ванием процессора Pentium фирмы Intel (или аналогичных по ар-
хитектуре процессоров других фирм) и чипсета i430FX PCIset фир-
мы Intel, известного под коммерческим названием Triton (рис. 8.1).
В компьютере используется магистрально-модульная организа-
ция. Поскольку участвующие в работе компьютера устройства
имеют различную производительность, интенсивность информа-
ционных потоков на внешних выводах устройств различна. Поэто-
му с целью повысить эффективность использования аппаратных
средств информационное взаимодействие между устройствами
осуществляется не через одну шину (магистраль), а через систему
шин с различной пропускной способностью: СШ (шину процес-
Рис. 8.1. Структурная схема компьютера
сора), локальную (мезонинную) шину PCI (Peripherial Component
Interconnect bus), шину медленных периферийных устройств ISA
(Industrial Standard Architecture). Для СШ в литературе используют
различные английские обозначения: Host Bus, FSB (Front Side
Bus) и CPU (Central Processor Unit) Bus. В дальнейшем будем
пользоваться термином «системная шина». Структурная схема ПК
содержит следующие блоки: процессор, ОП, буферные усилите-
ли данных ОП (приемопередатчики), внешнюю кэш-память, си-
стемный контроллер (иногда его называют «северный мост»),
CD-ROM — устройство считывания информации с оптического
диска, жесткий диск (винчестер), блок периферийных устройств
на шине PCI, контроллер шин PCI, IDE, ISA (иногда его назы-
вают «южный мост»), блок периферийных устройств на шине ISA.
Управление информационным обменом между блоками осуще-
ствляют две микросхемы чипсетов: системный контроллер и кон-
троллер шин. Между собой эти микросхемы взаимодействуют по
шине PCI. Далее рассматривается функциональная организация
отдельных блоков структуры и их взаимодействие при различных
режимах работы компьютера.
8.2. Системная шина. Организация кэша 2-го уровня
Из всех шин компьютера СШ имеет наибольшую пропускную
способность при организации информационного обмена между
устройствами. Через нее осуществляется информационное взаи-
модействие наиболее быстродействующих устройств: процессо-
ра, кэша 2-го уровня, ОП и системного контроллера. Прежде,
чем рассматривать организацию информационного обмена по
СШ, необходимо рассмотреть организацию устройств, подклю-
ченных к ней. Организация процессора и ОП были рассмотрены
в гл. 4 —6. В данном разделе рассматривается организация кэша
2-го уровня (рис. 8.2). Для рассмотрения воспользуемся приме-
ром организации кэш-памяти в соответствии с выбранным ти-
пом процессора и чипсета. Далее рассмотрим на какие парамет-
ры кэш-памяти накладывают ограничения тип чипсета и мате-
ринской платы.
Рассмотрим логическую организацию накопителя данных кэша.
В строке накопителя размещается 32 байт. Максимально адресуе-
мое число строк в накопителе ограничено соглашением о разде-
лении кода адреса на блоки. Это соглашение принимается при
разработке материнской платы и системного контроллера. Разде-
ление кода адреса на блоки связано с адресацией к кэш-памяти
(рис. 8.2, б). Блок младших адресов А[4—0] используется для ко-
дирования номера байта в строке, следующий блок А^ — 5] ис-
пользуется для кодирования номера строки. В рассматриваемом при-
мере используется прямой способ отображения адресов ОП в адре-
са накопителя кэша (о различных способах отображения см. под-
разд. 4.5.2). При этом блок следующих разрядов А[т2 - (т} + 1)]
определяет положение строки кэша в адресном подпространстве
ОП, соответствующем младшим адресам всего АП. Параметры т{
и т2 накладывают ограничения на организацию и использование
кэша. Значения этих параметров определяются техническими ре-
шениями при разработке материнской платы и системного кон-
троллера.
Структурная схема кэш-памяти, построенная на СБИС стати-
ческой памяти, рассмотренных в подразд. 6.8, содержит (рис. 8.2,
в): память данных (8 СБИС статической памяти SRAM), память
б
DE63-56]
DE55-48]
D[47-40]
D[39-32]
DC31-24]
D[23-16]
D[15-8]
D[7-0]
Рис. 8.2. Организация кэш-памяти 2-го уровня:
а — логическая организация кэш-памяти 2-го уровня; б — разделение кода адре-
са на блоки при обращении к кэш-памяти; в — структурная схема кэш-памяти
2-го уровня
тегов (1 СБИС SRAM), системный контроллер. Входы-выходы дан-
ных памяти данных связаны с линиями данных D[63—0] СШ ком-
пьютера (см. рис. 8.1). Входы-выходы данных памяти тегов связаны
с соответствующими выводами системного контроллера (TSC). Ад-
ресные входы всех СБИС SRAM памяти данных связаны с адрес-
ными линиями А[17 —3] СШ, а адресные входы СБИС SRAM па-
мяти тегов — с линиями А[17 —5]. Управляющие входы СБИС
SRAM подключены к выходам системного контроллера. Указан-
ные на структуре связи реализованы на материнской плате. При-
мер иллюстрирует организацию кэш-памяти 2-го уровня и то,
как чипсет и материнская плата влияют на организацию кэширо-
вания. Влияние ПО и результатов конфигурирования системы бу-
дут пояснены ниже. Возможность влиять программно на организа-
цию кэширования увеличивает гибкость системы. Но возможно-
сти программных изменений ограничены сверху жестко заданны-
ми аппаратными средствами. В приведенном примере параметры
т2 и /и, имеют следующие значения: т2 = 25, тх = 17. При этом
возможно кэширование 2m2+1 = 226 = 64 Мбайт ОП, а максималь-
ный объем данных кэш-памяти составляет 2ml+I = 2В * * * * * * * * * 18 = 256 Кбайт.
При обращении центрального процессора к СШ (см. рис. 8.1)
код адреса, выдаваемый процессором, далее преобразуется си-
стемным контроллером. При этом старшие разряды А[31 — (т2 + 1)]
определяют, может ли кэшироваться запрашиваемая часть памяти.
При записи данных в кэш код А[25—18] в качестве данных D[7—0]
через выводы контроллера ТЮ записывается в соответствующую
ячейку памяти тэгов, адрес определяется кодом А[17 —5].
Для управления кэшем системный контроллер формирует уп-
равляющие сигналы (см. рис. 8.2, в):
TWE (Tag Write Enable) — разрешение записи в память тегов;
САА/В[4—3] — 2-разрядный код, используемый в пакетных
обменах для указания 64-разрядных слов в строке кэша;
СОЕ (Cache Output Enable) выдача данных из памяти кэша в
СШ;
CWE[7 —0] (Cache Write Enable) — разрешение записи, каж-
дый сигнал соответствует одному байту на шине данных.
Приведенный пример организации кэш-памяти 2-го уровня
несколько упрощен и соответствует использованию асинхронных
СБИС SRAM. Системный контроллер TSC позволяет использовать
в кэше как асинхронные так и потоковые СБИС SRAM. Такое
расширение функций требует расширения набора управляющих
сигналов. В целях упрощения изложения это не отражено в рисун-
ках. Для более детального изучения следует обратиться к справоч-
ной литературе [17, 38].
8.3. Организация обмена данными по системной шине.
Влияние кэш-памяти на производительность компьютера
В организации обмена данными по СШ участвуют центральный
процессор, системный контроллер и устройства, подключенные к
шине (ОП и кэш-память 2-го уровня). Для пояснения организации
обмена воспользуемся моделями дискретного преобразователя, ОА
и УА (см. подразд. 3.1). ОП и кэш-память при обменах участвуют как
ОА. Их работой управляют УА, входящие в состав центрального
процессора и системного контроллера. Инициирует обмен УА, вхо-
дящий в состав ЦП (интерфейсный блок). Этот автомат взаимодей-
ствует с УА системного контроллера. Такое разделение управля-
ющих функций по организации обмена позволяет уменьшить чи-
сло выводов центрального процессора (управляющая информация
выдается в закодированном виде) и упростить интерфейсный блок
процессора. Кроме того, имеется возможность подстраивать работу
УА системного контроллера под характеристики используемых в
компьютере СБИС DRAM и СБИС SRAM, отличающиеся боль-
шим разнообразием (см. подразд. 6.5 и 6.8).
Интерфейсный блок в центральном процессоре выполняет сле-
дующие функции:
• формирование выходных сигналов на шинах адреса, данных
и управления в режиме вывода;
• формирование сигналов адреса и управления и восприятие
сигналов с шины данных в режиме ввода;
• синхронизацию процессов внутри процессора и на СШ;
• реализацию стандартного для СШ протокола обмена (вре-
менной диаграммы сигналов в шине).
Взаимодействие по шине (регистровая пересылка между од-
ним из регистров ОБ процессора и ячейкой ОП либо портом (ре-
гистром) периферийного устройства) осуществляется за цикл
шины. Длительность цикла шины может изменяться в зависимос-
ти от быстродействия внешних устройств (памяти и устройств вво-
да-вывода). Для согласования по быстродействию взаимодейству-
ющих при обмене по шине устройств используется принцип кви-
тирования. Суть его в том, что процессор, управляющий обме-
ном, в каждом цикле ждет уведомления (квитанции) о том, что
устройство на шине выполнило операции, связанные с обменом
(т. е. выставило на шину данные при вводе либо восприняло дан-
ные с шины при выводе). Для уведомления используется сигнал
«Готовность», передаваемый от внешнего устройства в процессор
по одной из линий шины управления. Управление обменом осу-
ществляет автомат, входящий в состав интерфейсного блока про-
цессора.
Для пояснения принципов организации циклов шины (рис. 8.3)
рассмотрим граф переходов автомата, управляющего обменом по
ГхТ
Рис. 8.3. Граф переходов автома-
та управления обменом по СШ:
?св — свободное состояние; ?упр —
состояние управления; ?дск — состоя-
ние декодирования типа обмена; Г —
сигнал готовности; Т — сигнал тре-
бования цикла шины
СШ. Для представления алгорит-
ма обмена используется модель ав-
томата Мура. Приведенный граф
представлен в упрощенном виде
и характеризует только функцию
переходов автомата. Автомат име-
ет три внутренних состояния д:
свободное, декодирования типа
обмена, управления. Автомат на-
ходится в свободном состоянии,
когда процессор не требует обме-
на по шине. В состоянии декоди-
рования расшифровывается тип
обмена (тип цикла шины). При-
мер различных типов: ввод из па-
мяти, вывод в память, ввод от ус-
тройства ввода, вывод на устрой-
ство вывода, подтверждение прерывания, останов и т.д. В соот-
ветствии с определенным типом далее в состоянии управления
формируются управляющие сигналы в шину управления. Условия
переходов содержат два сигнала: Г — готовность, Т — требование
цикла шины. Сигнал Г поступает в процессор (и в автомат управ-
ления обменом по шине) через шину управления от устройства
на шине. Сигнал Т поступает от блока управления процессора,
когда для выполнения команды требуется обмен по шине. Пояс-
ним работу автомата.
Исходно он находится в свободном состоянии. При появлении
сигнала Т в следующем такте автомат переходит в состояние де-
кодирования. Из состояния декодирования автомат безусловно
(независимо от значений сигналов Т и Г) переходит в состояние
управления. В состоянии управления автомат может находиться один
или несколько тактов, ожидая сигнал готовности. В этом состоя-
нии управляющие сигналы через шину управления поступают на
управляющие входы устройств на шине и инициируют выполне-
ние соответствующих микроопераций чтения либо записи. При
поступлении сигнала готовности переход автомата зависит еще и
от сигнала Т требования обмена. Если блок управления требует
выполнения еще одного обмена по шине (Т = 1), то автомат пере-
ходит в состояние декодирования типа требуемого цикла шины,
если обмена больше не требуется (Т = 0), то автомат переходит в
состояние «свободен». Так с использованием сигнала квитирова-
ния («Готовность») организуется выделение дополнительных так-
тов при обменах с медленными (по сравнению с процессором)
устройствами на шине.
Рассмотрим временную диаграмму, иллюстрирующую работу
автомата (рис. 8.4). Переходы автомата синхронизируются фрон-
том тактовых импульсов (ТИ). На диаграммах сигналов Т и Г от-
мечены кружками моменты времени, когда значения этих сигна-
лов определяют характер переходов автомата. Приведена и диаг-
рамма смены состояний автомата. Цифрами на оси абсцисс отме-
чены номера последовательности тактов, характеризующие диск-
ретное время работы автомата. Обмен по шине в интервале (2—4)
занимает два такта. Появление дополнительного второго такта выз-
вано отсутствием готовности Г в момент времени 3. Обмен в ин-
тервале (5 — 6) произошел за такт.
Рассмотрим временную диаграмму, иллюстрирующую обмен
сигналами по СШ при операциях чтения данных из ОП по трем
адресам Al, А2, АЗ (рис. 8.5). Сигналы в ША, ШУ и ШД при
отсутствии обмена по шине имеют неопределенное значение, что
отражено на рисунке уровнем сигнала. При начале цикла обмена
и формировании кода, передаваемого по шине, в части разрядов
сигналы принимают значение «0», а в части — «1». Это отражено
двунаправленным изменением уровня сигналов. При переходе ав-
Рис. 8.4. Временная диаграмма работы автомата:
ТИ — тактовые импульсы; Т — сигнал требования цикла шины; Г — сигнал
готовности; q — состояния автомата управления; СВ — свободное состояние; Дек —
состояние декодирования типа обмена; Упр — состояние управления
4
Св]( Дек")( УпР )(~ Дек )(~УпР )( Дек X упР
t
ША,
ШУ
Al, код операции
код операции
код операции
ШД
t
Рис. 8.5. Временная диаграмма обмена по шине в режиме чтения ОП:
ША — шина адреса; ШУ — шина управления; ШД — шина данных; УС — управ-
ляющие сигналы; Чт. ОП — режим чтения основной памяти; СВ — свободное
состояние; Дек — состояние декодирования типа обмена; Упр — состояние уп-
равления
томата в интерфейсном блоке центрального процессора, управ-
ляющего обменом по шине, из состояния «свободен» в состояние
«декодирование» от процессора в шину поступает код адреса и
код типа операции на шине. Код операции на шине воспринима-
ется УА контроллера ОП как требование цикла шины и как код,
определяющий тип цикла шины. При переходе автомата в следую-
щее состояние «управление» контроллер ОП формирует необхо-
димую последовательность сигналов управления блоками ОП и
мультиплексируемые коды адреса строки и столбца. На диаграмме
все эти сигналы условно показаны одним импульсом «Чт. ОП».
Как следствие, в шине данных появляются считанные из ОП дан-
ные. Более детально организация обмена рассматривается ниже.
Рассмотрим синхронизацию работы устройств, участвующих в
обмене по СШ. В процессоре и системном контроллере, реализо-
ванных на отдельных СБИС, имеются автоматы, работающие син-
хронно и реализующие граф переходов (см. рис. 8.1). Автомат в
центральном процессоре отражает состояние цикла работы на
шине, что необходимо для работы процессора. Автомат в систем-
ном контроллере организует управление обменом по шине, выра-
батывая необходимые наборы управляющих сигналов, поступаю-
щих на управляющие входы модулей ОП (см. рис. 6.18) и кэш-
памяти 2-го уровня (см. рис. 8.2, в).
Рассмотрим основные сигналы, которые формирует процес-
сор на линиях управления СШ:
ADS# (Address Status) — активный (низкий) уровень сигнала
показывает, что на выходах процессора установлены код адреса и
код типа цикла шины;
М/Ю#, D/C#, W/R# — сигналы, комбинации которых коди-
руют основные типы циклов шины.
От внешних устройств процессор получает сигнал BRDY# (Burst
Ready — «Готовность»). Низкий уровень этого сигнала означает,
что внешнее устройство выдало на линии шины достоверные дан-
ные, либо произвело запись данных от процессора.
Кодирование типов цикла шины приведено в табл. 8.1.
Специальные циклы шины дополнительно определяются сиг-
налами на контактах процессора ВЕ[О—7] (см. [16]).
С учетом используемых в СШ сигналов и их низкого активного
уровня для сигналов Т и Г на графе переходов (см. рис. 8.3) получим:
Т = ADS MI0W / R-TT/C-,
Г = BRDY.
Рассмотрим работу компьютера при основных типах обмена по
СШ центрального процессора с ОП. Центральный процессор и
системный контроллер могут организовать много вариантов цик-
Таблица 8.1
Кодирование циклов шины
Тип цикла Код
М/Ю D/C W/R
Подтверждение прерывания 0 0 0
Специальные циклы шины 0 0 1
Чтение из порта ввода 0 1 0
Запись в порт вывода 0 1 1
Чтение команды из ОП 1 0 0
Резерв 1 0 1
Чтение данных из ОП 1 1 0
Запись данных в ОП 1 1 1
лов чтения и записи. Базовым является некэшируемый (непакет-
ный) одиночный цикл чтения или записи. Центральный процес-
сор начинает именно такой цикл, а затем в зависимости от реак-
ции блока управления ОП, расположенного в системном кон-
троллере, начинает действовать в указанном им режиме. Цент-
ральный процессор задает максимальный темп общения с памя-
тью в соответствии с его тактовой частотой. Блок управления па-
мятью, используя сигнал готовности (BRDY#) и формируя его в
подходящее время, регулирует время обращения к памяти с уче-
том быстродействия СБИС DRAM.
Передача данных по шине осуществляется двумя основными
способами: непакетными и пакетными циклами. С помощью не-
пакетных циклов проводят некэшируемые операции чтения или
записи памяти и устройств ввода-вывода, а также кэшируемые
операции чтения и образования внутренних копий. Пакетными
циклами реализуют кэшируемые операции чтения памяти, а так-
же операции обратной записи из кэш-памяти 1-го уровня в ОП.
Пакетные и непакетные циклы могут быть объединены в поток.
Это самый быстрый способ передачи более одного элемента дан-
ных.
Рассмотрим базовый цикл одиночной передачи (рис. 8.6). Для
организации цикла центральный процессор передает в систем-
ный контроллер сигналы:
ADS#, М/Ю#, D/C#, W/R# (были описаны ранее);
А[31 —3] — код адреса;
ВЕ[7 —0] (Byte Enable) — сигналы, которые определяют ак-
тивные байты, ВЕ[О] относится к D[7 —0], а ВЕ[7] — D[63 —57];
CACHE# — сигнал возможности кэширования (для циклов чте-
ния активное значение указывает, что центральный процессор
разрешает кэширование, а при записи это означает, что выпол-
няется цикл пакетной обратной записи);
PCHK# — низкий уровень сигнала указывает на ошибку пари-
тета в байтах, переданных в центральный процессор в последнем
цикле чтения, при этом центральный процессор продолжает ра-
боту, требуемое действие должен проводить системный контрол-
лер (контроль на четность в центральном процессоре проводится
для всех байтов, для которых сигналы BE активны).
Для организации цикла обмена системный контроллер переда-
ет в центральном процессоре сигналы:
NA# (Next Address) — сигнал указывает, что ОП готова к вы-
полнению следующего цикла, хотя еще не завершена передача
данных текущего цикла (используется для конвейеризации вы-
полнения шинных циклов);
BRDY# — сигнал готовности (его назначение пояснялось ранее).
Сигналы D[63—0] отражают данные в СШ, DP[7—0] — биты
паритета для соответствующих байтов.
В режиме чтения сигнал W/R# имеет низкий уровень, в режи-
ме записи — высокий.
Работа устройств в цикле обмена синхронизируется тактовыми
импульсами CLK. Эти импульсы подаются на входы как централь-
ного процессора, так и системного контроллера, и определяют
внутреннюю частоту работы этих устройств. В центральном про-
цессоре имеется внутренний умножитель частоты. Внутренние про-
цессы в центральном процессоре выполняются с большей такто-
вой частотой, чем процессы в СШ.
Рассмотрим временные диаграммы одиночного цикла (рис. 8.6).
Инициирует цикл центральный процессор, формируя в 1-м такте
Т1 сигналы адреса А[31 —3], ВЕ[7 —0], а также управляющие сиг-
налы ADS#, М/Ю#, D/C#, W/R#, CACHE#. Начало цикла син-
хронизировано спадом ADS#. Низкий уровень W/R# отмечает цикл
чтения, высокий уровень CACHE# — запрещение кэширования.
В соответствии с кодом операции на шине (M/IO)(D/C)(W/R) =
= 110 системный контроллер в такте Т2 выполняет цикл чтения
данных из ОП. При высоком быстродействии памяти в такте Т2
появляются достоверные данные D[63 —0], DP[7 —0], и систем-
ный контроллер делает активным сигнал готовности BRDY#.
В результате во 2-м такте цикл заканчивается. Цикл занимает два
такта. В 1-м такте системный контроллер фиксирует у себя адрес и
тип обмена. Далее системный контроллер формирует соответству-
ющие управляющие сигналы в накопитель ОП (см. рис. 6.18). Во
2-м такте сигнал ADS# снимается, но сигналы адреса и кода типа
цикла остаются неизменными. Цикл записи (см. рис. 8.6) отличает-
ся только значением сигнала W/R#: (M/IO#)(D/C#)(W/R#) = 111.
Цикл, приведенный на рис. 8.6, называют циклом «2 — 2», по-
скольку и чтение и запись выполняется за два такта. Если систем-
Чтение
Запись
Рис. 8.6. Одиночные циклы чтения и записи:
ЦП — центральный процессор
Рис. 8.7. Одиночные циклы чтения и записи с состоянием ожидания:
ЦП — центральный процессор
ный контроллер выставляет сигнал BRDY# не во 2-м, а в 3-м
такте (из-за недостаточного быстродействия СБИС DRAM), орга-
низуется цикл «3 — 3», если в 4-м такте — цикл «4—4» и т.д. До-
пускается вводить любое число тактов ожидания, в том числе раз-
личное для чтения и записи. Во время тактов ожидания сигналы
адреса, кода типа цикла, а при записи и коды данных остаются
неизменным. Рассмотрим работу одиночных циклов с состояния-
ми ожидания (рис. 8.7). В конце 2-го такта сигнал BRDY# установ-
лен в состояние «пассивен», что свидетельствует о неготовности
системы к завершению обмена. Поэтому в цикл добавляется еще
один такт Т2. В конце этого такта сигнал BRDY# установлен в ак-
тивное состояние, поэтому цикл завершается. Как пояснялось ра-
нее (см. рис. 8.3), такты ожидания позволяют сохранять состояние
fynp, в котором формируются необходимые управляющие сигна-
лы, столько тактов, сколько требуется для выполнения в памяти
(либо в устройстве ввода-вывода) операции чтения либо записи.
Приведенные диаграммы (см. рис. 8.7) соответствуют циклу «3—4».
Рассмотрим организацию пакетных циклов. Пакетные циклы
возможны при использовании в компьютере кэш-памяти. Элемент
данных, передаваемых в пакетном цикле, содержит 32 байт. Сле-
дует обратить внимание, что адреса элементов данных в пакетных
циклах выровнены по 32 байт соответственно строке во внутрен-
ней кэш-памяти процессора. Для организации пакетного цикла
Рис. 8.8. Пакетный цикл чтения:
ЦП — центральный процессор;__— сигнал может быть любого уровня
CLK
ADS#
A[31-3],
M/IO#,
D/C,
BE7-0#___
CACHE#____\___
W/R#~^_____
KEN# в ЦП;
------r.
BRDY#
D[63-0]
DP[7-0]
PCHK#
Рис. 8.9. Пакетный цикл чтения с состоянием ожидания:
ЦП — центральный процессор;_— сигнал может быть любого уровня
процессор в такте Т1 формирует сигнал CACHE# (рис. 8.8). Сис-
темный контроллер во 2-м такте Т2 формирует ответный сигнал
KEN# разрешения работы с кэш-памятью. Процессор выставляет
только 1-й адрес пакета (А[31 —3] и ВЕ[7—0]), который остается
неизменным в течение всего цикла. После получения 1-го адреса
системный контроллер сам определяет адреса 2-, 3- и 4-й передач.
Последовательность передач ориентирована на организацию на-
копителя из 2-х банков (см. гл. 6). Самый быстрый пакетный цикл
требует два такта на 1-ю передачу 8 байт данных и по такту на
последующие передачи. Если быстродействие ОП не соответству-
ет такому темпу передач, используются такты ожидания (рис. 8.9).
На рис. 8.10 показана организация пакетных циклов записи.
В ряде программ требуется, чтобы после чтения данных из не-
которой ячейки ОП и последующей записи измененных данных
до завершения этих операций к ячейке не могло обратиться дру-
гое активное устройство на шине. Для этого используется в ко-
мандах префикс Lock, а процессор организует блокированный
цикл передач данных. ЦП формирует сигнал LOCK#, который
указывает системному контроллеру, что выполняется цикл чте-
ния—модификации—записи и в это время не должно быть дру-
гих обращений к ОП. Блокированный цикл (рис. 8.11) начинается
с цикла чтения и заканчивается записью. При этом число считан-
ных байтов не обязательно должно соответствовать числу запи-
санных байтов. Блокированные операции на шине представляют
собой комбинации одного либо нескольких циклов чтения, за ко-
торыми следуют один или несколько циклов записи.
Рис. 8.10. Пакетный цикл записи:
ЦП — центральный процессор
Рис. 8.11. Блокированный цикл:
ЦП — центральный процессор;_____— сигнал может быть любого уровня
Использование кэш-памяти позволяет повысить производитель-
ность компьютера и увеличить интенсивность обмена данными по
СШ за счет использования пакетных циклов обмена. Рассмотрим
оценки эффекта повышения производительности за счет исполь-
зования кэш-памяти [50]. На производительность компьютера вли-
яет большое число факторов (см. подразд. 3.3.2). Последовательность
процессов в компьютере имеет стохастический характер. Поэтому
оценки эффективности кэш-памяти носят приближенный харак-
тер и основаны на использовании статистических данных и оценок
других параметров процессов, получение которых является более
простой задачей. Рассмотрим два подхода к получению оценок,
которые наиболее часто применяются на практике [50].
Первый подход основан на оценке числа циклов ожидания при
обращениях к памяти в процессе выполнения программы. При этом
используется ряд показателей, характеризующих процесс выпол-
нения программы. Оценки этих показателей связаны с меньшей
неопределенностью, чем оценка числа циклов ожидания. Пред-
ставим время выполнения программы Гпрогр в виде
^прогр = (Мш + МОЖ)ТС,
где Nnn — число тактов работы ЦП; Nox — число тактов ожида-
ния, Тс — длительность такта шины.
При этом предполагается, что 7УЦП включает как работу ЦП по
выполнению преобразований, так и обращения к памяти, свя-
занные с успешным обращением к кэш-памяти (попаданием). Во
время тактов ожидания, связанных с неуспешными обращения-
ми к кэш-памяти (промахами), ЦП простаивает.
Оценку числа тактов ожидания Nox представим в виде функ-
циональной зависимости от следующих показателей: числа испол-
няемых команд NK при выполнении программы; среднего числа
обращений к памяти на одну команду NonK, вероятности неус-
пешных обращений к кэш-памяти числа тактов, затрачива-
емых на замену строки кэш-памяти (цены неуспеха) Сщ:
^ож ~ ^к^опкРну^ну
Оценки значений показателей рну и могут быть получены
на основе статистической обработки экспериментальных данных
и анализа процессов обмена между кэш-памятью и ОП.
Для иллюстрации подхода приведем пример расчета, исполь-
зуя типичные значения рассматриваемых параметров [50].
Проведем оценку того, во сколько раз снижается производи-
тельность компьютера из-за простоев процессора, связанных с
неуспешными обращениями к кэш-памяти. Допустим, что при
успешных обращениях к кэш-памяти процессор в среднем выпол-
няет команду за два такта.
Время выполнения программы в идеальном случае при отсут-
ствии простоев (тактов ожидания) имеет вид
Т’прогр.ид = МцпТс = 2ЛГК • Тс-
Теперь оценим число тактов при работе с реальным кэшем,
когда имеют место промахи и требуются такты ожидания. Будем
исходить из того, что обращения к памяти с целью прочитать
команду требуются для каждой команды, а обращения за данны-
ми — только при загрузке регистров процессора и при записи
результата в память. Из статистики известно, что обращения за
данными в память требуют 40 % команд [50]. Воспользуемся также
из [50] оценками цены промаха (неуспешного обращения к кэш-
памяти) Сну = 25 тактов, для примера примем вероятность прома-
ха />ну = 0,02. Для числа тактов ожидания получим
= ^^опкРнуСну = (1 + о, 4)0,02 • 25 = 0,7NK.
Тогда для времени выполнения программы получим оценку:
^прогр = (Min + Мж)Гс = (2М + 0,7NK)Tc = 2,7NKTC.
Таким образом, за счет тактов ожидания время выполнения
программы увеличивается в 1,35 раза. При оценках использовалось
предположение о числе тактов выполнения команды при успеш-
ных обращениях к кэш-памяти (два такта). Эта оценка зависит от
архитектуры процессора, от степени распараллеливания процес-
сов обработки данных на микропрограммном уровне организа-
ции.
Второй подход имеет целью оценить среднее время доступа
Т’ср.дост к ОП (при иерархической организации) и не зависит от
архитектуры процессора. Кроме того, используя второй подход,
можно количественно оценить влияние на быстродействие систе-
мы памяти информационного объема кэш-памяти и особенно-
стей ее организации: объединенный кэш и раздельный кэш для
команд и данных.
Представим среднее время доступа к системе памяти в виде
двух слагаемых, характеризующих успешное и неуспешное обра-
щение к кэш-памяти:
^срлост = 2усп + ТцуРну = (1 + СщРНу)Тс,
где рну — вероятность неуспешного обращения; Сну — цена неус-
пешного обращения в числе тактов; Тс — длительность такта.
Будем различать обращения к памяти для выборки команд и
данных. Статистика дает следующие оценки: рк = 0,75; pD = 0,25
соответственно.
Представим среднее время доступа в виде
^Ср-ДОСТ / Тс — рк (1 + РнукСцу ) + Рв {к + РнувСну ),
где ру. и р0 — вероятности обращений при выборке команд и дан-
ных; рнуК и Рнуп — вероятности неуспешных обращений при вы-
борке команд и данных; к — количество тактов для успешного
обращения за данными.
В представленном выражении принято, что при успешном об-
ращении к кэш-памяти за командой требуется такт, при успеш-
ном обращении за данными — к тактов. Показатель к зависит от
организации кэш-памяти. При объединенном кэше возникает кон-
фликт, связанный с обращением за командой и данными (с уче-
том конвейеризации эти обращения могут совпадать). Поэтому по-
требуются два такта (к = 2). При раздельных кэшах к= 1.
В табл. 8.2 приведены вероятности неуспешных обращений к
кэшу при разных способах организации и различном информаци-
онном объеме [49].
Используя приведенные данные, можно оценивать влияние
параметров кэш-памяти на производительность. Приведем при-
мер расчетов для случаев:
• раздельные кэши для команд и данных, каждый по 16 Кбайт;
• общий кэш 32 Кбайт.
Для раздельных кэшей получим
Т’ср.достл / Тс = 0,75(1 + 0,00382 25) +
+0,25(1 + 0,0409 • 25) = 1,327 (такта).
Таблица 8.2
Вероятности неуспешных обращений к кэш-памяти
Информационный объем, Кбайт Вероятность
Рнук PxyD Лк
8 0,00816 0,0440 0,0630
16 0,00382 0,0409 0,0510
32 0,00136 0,0384 0,0433
64 0,00061 0,0369 0,0394
128 0,00030 0,0353 0,0362
256 0,00002 0,0326 0,0329
Для общего кэша получим
Гср.дост.1 / Тс = 0,75(1 + 0,00433 • 25) +
+0,25(2 + 0,0433 • 25) = 2,33 (такта).
Пример показывает, что при выбранных информационных объ-
емах раздельные кэши обеспечивают большую производительность
системы вследствие отсутствия «структурного риска сбоя конвей-
ера», связанного с конфликтами при обращении к общей памяти.
В современных компьютерах кэш 1-го уровня имеет раздельную
организацию для команд и данных, а кэш 2-го уровня — общий,
так как используется общая магистраль данных — системная шина.
8.4. Шины расширения. Назначение. Протоколы обмена.
Пропускная способность
В связи с существенным различием интенсивности информа-
ционных потоков на выводах адаптеров (контроллеров) различ-
ных периферийных устройств, подключенных к компьютеру, с
целью повысить показатель (отношение производительности к
стоимости) в компьютерах используется несколько шин (см. рис.
8.1). Шины ISA и PCI называют шинами расширения. Они пред-
назначены для подключения адаптеров (контроллеров) перифе-
рийных устройств, расширяющих возможности компьютера.
Развитие средств информационного обмена происходит скач-
ками. В определенной мере это связано со стандартами на шины.
Стандартизация необходима для обеспечения информационной
совместимости с компьютером периферийных устройств, произ-
водимых различными фирмами. Пересмотр стандартов и введение
новых происходит периодически и существенно реже, чем появ-
ляются новые, более качественные и быстродействующие пери-
ферийные устройства.
Начало развития шин расширения положила шина ISA. Шина
ISA была использована в первом компьютере IBM PC в 1982 г.
В расширенном варианте она использовалась в PC/AT (с процессо-
ром I80286), используется она и в современных компьютерах. Тре-
бование совместимости с прежним стандартом на шину определя-
ет медленный эволюционный характер развития технологии шин в
PC. Для обмена с периферийными устройствами по шине могут
быть использованы аппаратные прерывания и ПДП. Приведем ос-
новные характеристики шины ISA: тактовая частота — 8/16 МГц;
разрядность данных — 16; разрядность адреса — 24; число каналов
ПДП — 8; число линий запросов прерываний — 11. В процессе эво-
люционного развития эти параметры увеличивались. В первых ком-
пьютерах PC разрядность данных была 8, а разрядность адреса —
10. Для интегральной характеристики скорости обмена по шине
используется показатель пропускной способности. Его значение
зависит не только от приведенных параметров, но и от протокола
обмена, который стандартизован. Способ оценки пропускной спо-
собности рассмотрим после описания протокола обмена.
Обмен данными по шине осуществляется за цикл шины, для-
щийся несколько (от двух до восьми) тактов. Для ISA определены
четыре типа циклов шины: адресная запись (чтение) памяти или
ввода-вывода; ПДП; регенерация; захват шины. Основным явля-
ется первый режим. Возможны варианты этого типа цикла: цикл
без тактов ожидания; цикл с одним или несколькими тактами
ожидания. При обмене по шине осуществляется связь двух уст-
ройств: ведущего, инициирующего обмен, и ведомого, адресуе-
мого ведущим.
Диаграмма (рис. 8.12) цикла чтения с одним тактом ожидания
иллюстрирует протокол обмена — последовательность событий,
вызываемых передаваемыми сигналами. На ней представлены сле-
дующие сигналы шины ISA:
SD[15 —0] — данные;
SA[19—0] — адрес, передаваемый из регистра ведущего уст-
ройства, в котором он сохраняется неизменным в течение всего
цикла; для циклов ввода-вывода используются только SA[15 — 0];
LA[23—17] — разряды адреса, которые не защелкиваются в
регистре адреса ведущего, они истинны только в 1-м такте цикла
шины; для всех циклов памяти SA[19—17] совпадают с LA[19 —
17], адресация памяти осуществляется с гранулярностью 1 байт;
SBHE# (System Bus High Enable) — сигнал разрешения стар-
шего байта на шине, сообщает ведомому устройству, что осуще-
ствляется 16-битный обмен с использованием разрядов 8 —15 шины
данных;
BCLK — тактовые импульсы;
BALE (Bus Address Latch Enable) — строб для записи адреса
LA[23— 17] в регистре адреса ведомого устройства;
CMD — сигналы управления.
Сигналы управления СМД включают в себя следующий набор
сигналов:
MEM CS16# — сигнал разделения 16- и 8-битных обменов,
выставляется 16-разрядной памятью для указания ведущему, что
ему следует выполнить 16-разрядный цикл доступа;
MEMRD# — чтение данных из памяти;
SMEMRD# (Standard Memory Read, это задержанный вариант
сигнала MEMRD#) — чтение данных младшего мегабайта памяти;
MEMWR# — запись в память;
SMEMWR# — запись в младший мегабайт памяти;
IORD# — чтение устройства ввода-вывода;
IOWR# — запись в устройство ввода-вывода;
IOCHRDY (IO Channel Ready) — сигнал готовности, если ве-
домый выставляет низкий уровень, то цикл удлиняется на один
или несколько тактов ожидания (пока сигнал готовности не при-
мет высокий уровень).
Рассмотрим организацию обмена, используя приведенную ди-
аграмму. Ведущее устройство выставляет адрес. Сигналом BALE
оно сообщает о начале адресного цикла обмена и об истинности
адреса. Ведомое устройство выставляет сигнал MEM CS16# (10
CS16#), иначе осуществляется передача только одного младшего
байта. Затем ведущее устройство вырабатывает один из сигналов
набора CMD, определяющий тип обмена. При записи ведущее
устройство одновременно с сигналом CMD выставляет данные.
Если ведомое устройство требует увеличения длительности цикла
обмена, до появления фронта тактового импульса оно формирует
низкий уровень сигнала I/O CHRDY, в результате чего состояние
обмена продлевается на следующий такт (см. рис. 8.12).
Пропускная способность шины /iSA (Мбайт/с) оценивается так:
т _/ськ(л/8)
/lSA" Nr..... ’
где /clk — тактовая частота, МГц; Nr — число тактов на цикл
обмена.
Как это видно из рис. 8.2, при самом быстром обмене, если
не выставляется сигнал I/O CHRDY (на рисунке он выставлен
во 2-м такте), цикл обмена занимает два такта. Таким образом,
максимальная оценка пропускной способности:
т 16(16/8) .
^isa = 2' = 16(Мбаит/с).
Реальная пропускная способность шины примерно в два раза
ниже за счет прерываний, регенерации и протокольных процедур.
В циклах ПДП обменом управляет контроллер ПДП (см. гл. 7).
Часть каналов ПДП (0 — 3) определена для 8-разрядных пересы-
лок, а часть (4 — 7) — для 16-разрядных.
Рассмотрим циклы регенерации. Контроллер регенерации пы-
тается захватить шину каждые 15 мкс. При конфликте (занятости
шины) он ожидает завершения цикла, инициированного про-
цессором либо контроллером ПДП. В цикле используется специ-
альный сигнал REFRESH#, а также MEMR# (SMEMR#). При
активном сигнале REFRESH# может быть передано несколько сиг-
налов MEMR# с предварительным изменением передаваемого по
линиям SA[7 —0] адреса строки. Так осуществляется регенерация
одной или нескольких строк во всех СБИС DRAM блоков памяти,
подключенных к шине ISA.
Цикл захвата шины выполняется с использованием контрол-
лера ПДП, который запрограммирован в каскадный режим. Кон-
троллер ПДП осуществляет захват шины, а далее управляет обме-
ном по шине внешняя плата, подключенная к шине ISA.
Конструктивно шина ISA выполнена в виде двух щелевых разъ-
емов на материнской плате, к которым подключаются адаптеры
периферийных устройств. Размеры разъемов стандартизованы. Бо-
лее детальную информацию о шине можно найти в справочной
литературе [16, 17].
Шина PCI разрабатывалась в расчете на ВС с процессорами
Pentium. Шина предназначена для соединения периферийных ком-
понентов и служит мостом (mezzanine bus) между СШ процессо-
ра и шиной ввода-вывода ISA. Шина PCI является четко стандар-
тизованной высокоскоростной шиной расширения ввода-вывода.
К шине PCI могут подключаться: графический адаптер, модуль
обработки изображений, звуковой адаптер, сетевой контроллер,
контроллер SCSI (системного интерфейса малых компьютеров).
Арбитражем PCI занимается специальный блок, входящий в со-
став системного контроллера (чипсета).
Рассмотрим основные принципы организации обмена по шине
PCI. Шина является синхронной: фиксация всех сигналов осуще-
ствляется по фронту тактового импульса. (Рассмотренная выше
шина ISA является асинхронной. Это означает, что передаваемые
управляющие сигналы непосредственно воздействуют на соответ-
ствующие блоки без синхронизации их тактовыми импульсами
шины.) Тактовая частота по мере развития шины возрастала в
соответствии со шкалой: 25; 30; 33; 66 МГц. Все устройства, под-
ключаемые к PCI, при обмене участвуют либо как инициирую-
щее устройство, либо как целевое устройство. На диаграмме сиг-
налов (рис. 8.13) обозначены:
CLK. — тактовые импульсы, такт начинается со спада импульса;
FRAME# — кадр; начало сигнала соответствует началу цикла
обмена, снятие сигнала отмечает, что последующий цикл пере-
дачи данных — последний в цикле обмена;
AD — сигналы в мультиплексированной 32-разрядной шине
адреса (данных) (адрес передается в начальной фазе цикла обме-
на, в последующих фазах передаются данные);
C/BE# — 4-разрядный код «команда (разрешение) обращения
к байтам» [команда определяет тип цикла обмена (чтение или за-
пись памяти, ввод или вывод, подтверждение прерывания и др.)
и передается в фазе адреса; в фазе данных передается код разре-
шения байтов (для каждого байта имеется отдельный, независи-
мый от других сигнал)];
IRDY# (Initiator Ready) — готовность инициирующего устрой-
ства к обмену;
TRDY# (Target Ready) — готовность целевого устройства к об-
мену;
Фаза
AD
C/BE#
IRDY#
TRDY#
DEVSEL#
Рис. 8.13. Диаграмма цикла обмена по шине PCI
DEVSEL# (Device Select) — ответ адресованного целевого ус-
тройства о его выборе при организации обмена.
Рассмотрим последовательность событий в цикле обмена (на
рис. 8.13 события помечены цифрами в кружках).
Событие 1. Начало цикла: активизируется сигнал FRAME#. На
шине AD инициирующее устройство формирует адрес целевого
устройства, на шинах С/ВЕ — код типа цикла обмена (СОМ).
Событие 2. Целевое устройство отвечает сигналом DEVSEL#.
Событие 3. Инициирующее устройство, получив сигнал от це-
левого устройства, формирует сигнал готовности к началу обме-
на IRDY#.
Событие 4. Целевое устройство формирует сигнал готовности
TRDY#, когда готово к обмену, и выдает в шину данные D1 (при
чтении). Используя сигналы IRDY, TRDY, инициирующее уст-
ройство и целевое устройство согласуют свои скорости обмена
данными, используя при необходимости такты ожидания. Коли-
чество циклов передачи данных между устройствами в протоколе
заранее не определено.
Событие 5. Перед последним циклом передачи данных иници-
ирующее устройство при активном сигнале IRDY# делает пассив-
ным сигнал FRAME#.
Событие 6. После последнего цикла передачи данных (на ри-
сунке — D3) инициирующее устройство снимает сигнал IRDY#.
На этом цикл обмена между инициирующим устройством и целе-
вым устройством заканчивается.
Из приведенного описания следует, что данные передаются
пакетом. Каждый цикл обмена начинается фазой адреса. За ней
может следовать одна или несколько передач данных. Данные по
шине AD могут передаваться только в те интервалы времени, когда
одновременно активны сигналы IRDY# и TRDY#. Максимальное
число передач данных в пакете может регулироваться таймером,
ограничивающим максимальное время занятия шины иницииру-
ющим устройством. Максимальная скорость передачи по шине обес-
печивается в случае, когда инициирующее устройство и целевое
устройство устанавливают сигналы готовности в конце фазы ад-
реса и не снимают их до конца обмена. При этом в каждом такте
после фазы адреса передаются 32 (64) бит данных.
Прекращение передачи данных в цикле обмена может произойти
как по инициативе инициирующего устройства, так и по иници-
ативе целевого устройства.
Инициирующее устройство завершает обмен одним из следу-
ющих способов [17]:
• нормальное завершение по окончании обмена данными (этот
наиболее часто встречающийся способ представлен на рис. 8.13);
• завершение по тайм-ауту, когда истекает время, задаваемое в
таймере инициирующему устройству, или когда системный кон-
троллер отбирает у инициирующего устройства право использова-
ния шины по запросу устройства с более высоким приоритетом;
• обмен отменяется, если в течение заданного времени иници-
ирующее устройство не получило ответа от целевого устройства
(DEVSEL#).
Для прекращения обмена по инициативе целевого устройства
оно формирует сигнал STOP#. Реакция инициирующего устрой-
ства на этот сигнал зависит от других сигналов в шине. Возможны
три случая:
• отключение (сигнал STOP# вводится при активных сигналах
TRDY# и DEVSEL#) — цикл обмена завершается после переда-
чи данных;
• отключение с повтором (сигнал STOP# вводится при актив-
ном сигнале DEVSEL# и пассивном сигнале TRDY#) — в этом
случае фаза передачи данных отсутствует, запрашивается повтор
цикла обмена;
• отказ (сигнал STOP# вводится одновременно со снятием сиг-
нала DEVSEL#) — в этом случае последняя фаза данных отсут-
ствует, повтор не запрашивается.
Протокол квитирования (рис. 8.13) обеспечивает надежный об-
мен, так как инициирующее устройство всегда получает обратную
связь о действиях целевого устройства. Для повышения достоверно-
сти применяется контроль паритета. Линии AD[31 — 0] и C/BE#
имеют дополнительные линии для битов паритета (PAR). Сигна-
лы PAR формируются и в фазе адреса и в фазе данных. Действи-
тельные значения PAR появляются с задержкой на такт.
Каждое инициирующее устройство имеет программируемый
таймер (Master Latency Timer), определяющий максимальное число
тактов, допустимое для одного цикла обмена. Записью в таймер
при конфигурировании системы осуществляется распределение
полосы пропускания шины между устройствами.
Каждое целевое устройство имеет счетчик, позволяющий сле-
дить за затратами времени на подготовку передаваемых данных.
Интервал между соседними фазами передачи данных (см. рис. 8.13)
не должен превышать восемь тактов шины. Если целевое устрой-
ство не успевает, оно должно остановить обмен.
На одной шине PCI может быть до четырех устройств. Для под-
ключения устройств используются карты расширения, вставляе-
мые в разъемы (слоты) на материнской плате.
Более детальную информацию о шине PCI можно получить по
справочной литературе [17].
Оценим максимальную пропускную способность шины (при
тактовой частоте 33 МГц):
= g ЗЮ2/8) = 132 (Мбит/с),
Ат 1
гдеУськ — тактовая частота на шине; п — разрядность данных; NT —
число тактов, требуемых для передачи 32 бит данных.
В приведенной оценке принято, что на передачу одной порции
данных требуется такт. Это соответствует предельной скорости
передачи данных.
8.5. Системный контроллер.
Организация управления обменом между устройствами
Основные функции управления вычислительными процессами
в компьютере выполняет центральный процессор. Однако в зна-
чительной мере реализация возможностей современных процес-
соров зависит от их электронного окружения на материнской плате.
Микросхемы электронного окружения задают рабочие режимы
передачи данных между устройствами компьютера, осуществляют
логическую связь процессора с другими устройствами, формиру-
ют необходимые последовательности управляющих сигналов. Со-
временный подход к реализации управления вычислительными
процессами, обусловленный возможностями технологии произ-
водства ИС, заключается в том, что электронное окружение в
основном реализуется в виде двух микросхем системной логики:
системного контроллера (часто называемого «северным мостом»)
и контроллера шин (часто называемого «южным мостом»). Эти
микросхемы называют чипсетами. Между собой они связаны по
шине PCI. Чипсеты показаны на структуре компьютера (см. рис.
8.1). Они существенно влияют на производительность компьютера.
Их организация должна быть тесно увязана с архитектурой про-
цессора. Поэтому для каждого нового клона процессоров одно-
временно с их разработкой проектируются и соответствующие чип-
сеты. Чипсет содержит в своем составе набор контроллеров, с ис-
пользованием которых организуется работа и связь основных уст-
ройств: процессора, ОП, видеоадаптера, шин компьютера, пор-
тов и др. Разброс производительности компьютера при одинако-
вых основных устройствах (процессоре, памяти, видеоадаптере,
жестком диске), но разных материнских платах и чипсетах может
составлять до 30 % [38].
Организацию системного контроллера рассмотрим на примере
чипсета i430FX PCIset фирмы Intel, известного под коммерче-
ским названием Triton.
Системный контроллер, взаимодействуя с центральным про-
цессором, управляет работой внешней кэш-памяти, ОП и обме-
нами по шине PCI.
Рассмотрим назначение блоков системного контроллера (рис.
8.14). Через блок «Интерфейс процессора» системный контроллер
воспринимает адресную и управляющую информацию от процес-
AD
REQ
GNT
PHLD#
PHLDA
УС
RAS#
CAS#
MA[ 11:2]
MAA[1:O]
MAB[1:O]
PLINK
УС
Рис. 8.14. Структурная схема системного контроллера (TSC)
сора. С использованием дополнительной информации о распреде-
лении АП, об особенностях микросхем памяти и других устройств
системный контроллер организует информационные потоки для
выполнения указаний процессора. Дополнительную информацию
для организации управления системный контроллер получает из
своих регистров, куда она заносится в процессе конфигурирова-
ния системы. При пакетных циклах обмена по СШ системный
контроллер не только воспринимает управляющие сигналы от
центрального процессора, но и формирует необходимые ответ-
ные сигналы (см. рис. 8.8, 8.9).
Блок «Интерфейс кэш-памяти» осуществляет управление кэ-
шем 2-го уровня (см. рис. 8.2). Он поддерживает технологию обрат-
ной записи (см. гл. 4), работу кэша с различными типами стати-
ческой памяти, возможность работы компьютера без кэша 2-го
уровня.
Группа сигналов ТЮ[7 —0] связывает системный контроллер с
памятью тэгов по линиям данных. При обращении ЦП к СШ эти
выводы системного контроллера работают как входы. На них из
памяти тэгов поступает код части адреса соответствующей строки
кэш-памяти, отображающей часть ОП (см. рис. 8.2, б). Если код,
считанный из памяти тэгов, совпадет с соответствующей частью
кода адреса А[ти2 - (тх + 1)], выставленного центральным процес-
сором на СШ, это соответствует успешному обращению к кэшу,
если не совпадет — не успешному. Эти же выводы системного
контроллера становятся выходами, через которые записывается
информация в память тэгов при записи строки кэш-памяти.
Группа сигналов CWE[7 —0] используется для инициирования
операции записи в соответствующие байты кэш-памяти (см. рис.
8.2, в).
Группа управляющих сигналов обеспечивает режимы чтения и
записи накопителя кэш-памяти и памяти тэгов, позволяет раз-
личными комбинациями сигналов управлять как асинхронными,
так и потоковыми СБИС SRAM, позволяет отмечать 64-разряд-
ные слова при пакетных циклах.
Блок «Интерфейс РС1» управляет обменами по шине PCI. Для
взаимодействия с шиной предусмотрены соответствующие выво-
ды микросхемы системного контроллера (см. рис. 8.14).
Выводы AD[31 — 0] связаны с соответствующими линиями AD
шины PCI. Выдача адреса системным контроллером сопровожда-
ется установкой в активное состояние сигнала FRAME# (см. рис.
8.13). На рис. 8.14 этот сигнал входит в группу управляющих сиг-
налов. Данные передаются или принимаются в последующих так-
тах. Выводы REQ[3 —0] служат для запросов на захват шины PCI
устройствами на шине. Пятым устройством, запрашивающим шину
PCI, является контролер шин («южный мост»). От него запрос
поступает на вход PHLD#. При конкуренции устройств за владе-
ние шиной системный контроллер осуществляет арбитраж. Сиг-
нал о предоставлении шины запрашивающему устройству си-
стемный контроллер передает через выводы GNT[3 —0], а кон-
троллеру шин через вывод PHLDA. После предоставления шины
управление обменом в соответствии с протоколом осуществляют
инициирующее и целевое устройства.
Блок «Интерфейс DRAM» выполняет функции контроллера
ОП. Он осуществляет мультиплексирование адреса, подавая сна-
чала адрес строки, а затем адрес столбца, и управляет работой
накопителя ОП. Назначение сигналов, действующих на выводах
данного блока, было рассмотрено в подразд. 6.7 (рис. 6.18).
Блок «Интерфейс TDP» предназначен для управления работой
двух микросхем буферных усилителей данных (см. также рис. 6.18
и 8.1). Буферные усилители данных обеспечивают усиление по
мощности и коммутацию сигналов при передаче данных между
СШ и накопителем ОП, между накопителем ОП и системным
контроллером по линиям PLINK[15 —0], между СШ и систем-
ным контроллером. Далее системный контроллер передает дан-
ные по шине PCI, выполняя необходимую буферизацию и преоб-
разование формата.
Блок тактовых импульсов формирует синхронизирующие им-
пульсы для всех автоматов системного контроллера. Синхронизи-
рующие импульсы формируются с использованием сигналов, по-
ступающих на внешние выводы HCLKIN (Host Clock In) и PCLKIN
(PCI Clock In). На вывод HCLKIN поступают такты процессора.
Такты используются для синхронизации всех схем, работа кото-
рых связана с процессором и системной шиной (интерфейс про-
цессора, интерфейс кэш-памяти, интерфейс DRAM, интерфейс
TDP). На вывод PCLKIN поступают тактовые импульсы, получа-
емые делением последовательности тактовых импульсов процес-
сора на 2. Они используются для синхронизации всех схем, отно-
сящихся к системе шины PCI.
Блок управления содержит регистры управления, регистры
конфигурации и логику управления. Необходимый обмен сигна-
лами между блоками системного контроллера осуществляется по
внутренним связям (рис. 8.14).
Рассмотрим состав и назначение внутренних регистров систем-
ного контроллера, отнесенных на структурной схеме к блоку уп-
равления.
Внутренние регистры доступны только для процессора и недо-
ступны для ведущих устройств на шине PCI. Содержимое регист-
ров конфигурации существенно влияет на организацию управле-
ния процессами обмена по шинам компьютера. В процессе на-
чальной установки регистры устанавливаются в предопределен-
ное состояние по умолчанию. Состояние по умолчанию не обес-
печивает оптимальную настройку системы. Системное ПО (обы-
чно BIOS) должно осуществить нужные записи в регистры. Дос-
туп к конфигурационным регистрам осуществляет процессор с
использованием регистров управления.
Имеются два регистра управления: регистр адреса и регистр
данных. Доступ к этим регистрам организован через АП ввода-
вывода (выделены два адреса). Регистр адреса значением бита в
одном из разрядов (31-м) разрешает (либо запрещает) зону кон-
фигурирования и определяет часть зоны конфигурирования, ко-
торая будет доступна с использованием регистра данных. Шина
PCI позволяет каждому подключенному к ней устройству иметь
до 256 конфигурационных регистров (8-битных). Определены два
цикла шины для доступа к конфигурационному пространству PCI —
чтение конфигурации и запись конфигурации.
Используется следующий порядок обращения в конфигураци-
онном пространстве. Для указания регистра конфигурации двой-
ное слово (32 разряда) в цикле записи помещается в регистр ад-
реса. В соответствии со спецификацией чипсета определенные груп-
пы разрядов регистра адреса указывают шину PCI, устройство на
этой шине, функции в устройстве и конкретный регистр, к кото-
рому выполняется обращение. Для разрешения цикла конфигура-
ции определенный разряд (31-й) устанавливается в «1». После этого
регистр данных становится окном для обмена 32-разрядными дан-
ными с регистрами конфигурационного пространства. Это озна-
чает, что при записи конфигурации этот регистр является источ-
ником, а при чтении — приемником данных. В свою очередь реги-
стры адреса и данных доступны процессору через пространство
ввода-вывода.
Рассмотрим регистры конфигурации. Регистр состояния пред-
назначен для записи информации о случаях отключения ведущего
(инициирующего) устройства шины PCI, об отключении целево-
го устройства и о времени действия сигнала DEVSEL#, когда кон-
троллер отвечает при обмене по PCI как целевое устройство (см.
подразд. 8.4).
Регистр управления PCI предназначен для записи и хранения
ряда параметров, влияющих на использование шины PCI под-
ключенными к ней устройствами.
Регистр управления кэш-памятью разрешает либо запрещает
работу кэш-памяти 2-го уровня, устанавливает размер кэш-памя-
ти, определяет тип СБИС статической памяти.
Регистр управления динамической памятью содержит коды,
определяющие окно в АП ОП для обращения центрального про-
цессора к устройствам на шине PCI, указывают частоту, в соответ-
ствии с которой определяется период регенерации СБИС DRAM.
Регистр временных характеристик СБИС DRAM содержит па-
раметры, влияющие на временную диаграмму обращений к СБИС
DRAM.
Регистры границы ряда и типа ряда определяют верхние и ниж-
ние адреса для каждого из пяти банков ОП (см. рис. 6.18), а также
тип СБИС DRAM для каждого банка.
Таким образом, регистры содержат оперативную информацию,
необходимую для реализации управления ОП, кэш-памятью 2-го
уровня и обменами по шине PCI с учетом характеристик исполь-
зуемых в компьютере микросхем, а также с учетом настроек, вы-
полняемых под управлением ОС.
Интерфейсные блоки системного контроллера — это УА, реа-
лизующие заданные протоколы обмена. В множество входных сиг-
налов этих автоматов, от которых зависят функции переходов (см.
подразд. 3.1), входят помимо внешних входных сигналов контрол-
лера (см. рис. 8.14), поступающих от процессора и других активных
устройств на PCI, сигналы с выходов регистров конфигурации,
определяющих настройки УА.
8.6. Контроллер шин PCI, ISA, IDE.
Организация информационных потоков
Контроллер шин (см. рис. 8.1) — это вторая СБИС управления
процессами обмена информацией между устройствами компьютера
(второй тип чипсета). Она выполняет следующие системные фун-
кции управления:
1. Организация моста между шинами PCI и ISA с согласовани-
ем частот синхронизации этих шин.
2. Реализация высокопроизводительного (обычно 2-канально-
го) интерфейса IDE/ATA.
3. Реализация стандартных (для компьютеров, совместимых с
IBM PC,) средств для ввода-вывода: двух контроллеров прерыва-
ний, двух контроллеров ПДП, 3-канального счетчика-таймера,
логики немаскируемого прерывания, канала управления динами-
ком. Ранее для перечисленных средств были разработаны соответ-
ствующие БИС. С переходом к технологии СБИС эти средства ин-
тегрированы в одну микросхему, что и породило для нее назва-
ние «чипсет» (множество кристаллов).
4. Коммутация запросов прерывания от устройств на шинах PCI
и ISA, а также устройств на материнской плате на входы запросов
контроллеров прерываний.
5. Коммутация каналов ПДП.
6. Реализация моста с внутренней шиной X-Bus, используемой
традиционно в компьютерах PC для подключения контроллера
клавиатуры, БИС энергонезависимой памяти с BIOS, часов ре-
ального времени.
7. Реализация контроллера интерфейса USB.
8. Поддержка режимов энергосбережения, обработка SMM
(System Management Mode), управление частотой процессора,
переключение режимов.
Существенную роль в реализации возможностей рассматрива-
емой СБИС играют BIOS и применяемые версии драйверов.
Рассмотрим назначение блоков структуры контроллера (рис. 8.15).
Блок «Интерфейс РС1» управляет циклом шины в качестве
ведущего устройства на шине PCI в бтвет на действия контрол-
лера ПДП, ведущего устройства на шине ISA или на шине IDE.
Контроллер шин поддерживает работу шины PCI в соответствии
с протоколом (см. рис. 8.13) на частотах 25; 30; 33 МГц. Коман-
ды шины, определяющие тип цикла шины, кодируются битами
С/ВЕ[3 —0], на рис. 8.15 они входят в группу УС. Команды пере-
даются в фазе адреса и указывают ведомому устройству тип цик-
ла (чтение памяти, запись памяти, чтение ввода-вывода, запись
ввода-вывода, предоставление прерывания и др.).
Интерфейс материнской платы содержит внешние выводы,
подключаемые к устройствам, находящимся на материнской пла-
ISA
AD
PHOLD#-—
PHOLDA# —►
IRDY# •
TRDY# y*
УС-?*-
PCICLK —►
Интерфейс
PCI
Интерфейс
ISA
16
CLK
RDY
D
MDRQ1 0 -|yi- Интерфейс
MDAK1-0 =-/- материнской
MIRQ-^r
IRQ -4
PIRQ Л
INTR —
NMI —
Интерфейс
IDE
Мульти-
плексор
24.
SYSCLK----
IOCHRDY---
SD--------
/ > 1
16.
Kcx
УС
IDE
* D
IORDY
УС
платы
Контроллер прерываний
DREQ -!>* Прямой
ПЛСГ -8 s nnCTVn
REFRESH ——]кгтамяти
PWROK
CPURST
PCIRST#
RSTDRU
EXTSMI#
SMI#
STPCLK#
ТИ
Вых
Узел
начальной
установки
Блок
управления
д 1 питанием
*1 Таймер-
счетчик
Блок
управления
шиной
X-BUS
Мульти-
плексор
8
X
Рис. 8.15. Структурная схема контроллера шин PCI, ISA, IDE
те, а не на платах расширения. Блок интерфейса обеспечивает связь
этих устройств с выводами соответствующих контроллеров. Сиг-
налы требования ПДП — MDRQ (Motherboard Device DMA
Request) передаются в цепи DREQ блока ПДП, цепи сигналов
подтверждения запросов MDACK (Motherboard Device MDA
Acknowledge) подключаются к цепям DACK, сигналы требова-
ния прерывания MIRQ (Motherboard Device Interrupt Request)
передаются в цепи IRQ контроллера прерываний.
Блок контроллера прерываний содержит два стандартных кон-
троллера прерываний типа i8259 (см. гл. 7), разработанных фирмой
Intel для ранних моделей компьютеров IBM PC. Блок содержит:
входы запросов прерывания IRQ (Interrupt Request), входы про-
граммируемых запросов прерывания PIRQ, выход сигнала пре-
рывания INTR в центральный процессор, выход немаскируемого
прерывания NMI в процессор. Запросы прерывания могут посту-
пать от различных устройств. Распределение их по входам кон-
троллера программируется с использованием регистров, входя-
щих в состав блока.
Блок ПДП функционально соответствует двум стандартным
микросхемам 18237 контроллеров DMA (см. разд. 7). Блок содержит
выводы: DREQ (DMA Request) требования ПДП, DACK (DMA
Acknowledge) подтверждения запроса, Refresh — регенерация (об
использовании этого сигнала для регенерации СБИС DRAM в
устройствах на шине ISA см. подразд. 8.4). Запросы прямого досту-
па могут поступать от различных устройств компьютера. Распреде-
ление их по входам контроллера программируется с использова-
нием внутренних регистров. Функции контроллера по организа-
ции обмена в режиме ПДП рассмотрены в гл. 7. Блок содержит
регистры. Доступ к части регистров возможен через шину PCI, а к
части — через шину ISA. Вывод Refresh используется как вход и
как выход. При использовании вывода в качестве выхода выход-
ной сигнал контроллера указывает, что выполняется регенерация.
Он используется для выполнения регенерации строки всех банков
динамической памяти на шине ISA. При использовании вывода в
качестве входа сигнал в контроллер подается ведущим устрой-
ством шины ISA для инициализации цикла регенерации.
Блок «Интерфейс ISA» используется при обменах по шине ISA.
На выходе SYSCLK формируются тактовые импульсы, которые
передаются в шину ISA. Они генерируются от тактов на входе
PCICLK (см. блок «Интерфейс РС1») делением на 3 или 4. Вари-
ант деления задается аппаратно, установкой высокого либо низ-
кого уровня на специальном входе узла начальной установки. Вы-
вод IOCHRDY используется как вход и как выход. Сигнал на вы-
воде воспринимается контроллером как входной, когда контрол-
лер шин владеет шиной ISA, или когда выполняется обмен в ре-
жиме ПДП. Вывод IOCHRDY используется как выход в том слу-
чае, если внешнее ведущее устройство шины ISA владеет шиной
и обращается к ОП либо к регистрам контроллера шин. С исполь-
зованием этого входного сигнала при необходимости формиру-
ются такты ожидания (см. рис. 8.12). Сигналы адреса SA, данных
SD и управления передаются в шину и принимаются из нее в
соответствии с протоколом обмена, рассмотренным в подразд. 8.4.
Контроллер шин обеспечивает высокоскоростной интерфейс
между шинами PCI и IDE. К шине IDE подключен контроллер
ВП на жестких магнитных дисках и на оптических дисках (см. под-
разд. 6.11). Стробы команд передачи данных по шине IDE, запро-
сы ПДП и сигналы предоставления, сигнал готовности IORDY
поступают в (или от) контроллера шин. Линии адреса и выбора
кристалла IDE мультиплексированы с линиями ISA. В организа-
ции обмена между шинами IDE и PCI участвуют несколько бло-
ков контроллера шин: «Интерфейс IDE», «Интерфейс РС1», «Конт-
роллер прямого доступа к памяти». Контроллер шин, выполняя
передачу по шине IDE в качестве ведущего устройства шины PCI,
разгружает процессор и повышает производительность системы.
Блок управления шиной X-BUS обеспечивает декодирование
адреса, формирование сигналов выбора кристалла и других уп-
равляющих сигналов для устройств, подключенных к Х-шине: часов
реального времени, контроллера клавиатуры, BIOS в циклах ин-
формационного обмена, инициированных ведущими устройства-
ми на шинах PCI и ISA.
Контроллер шин имеет три счетчика-таймера. Каждый счетчик
выполняет определенную системную функцию. Счетчик № 0 свя-
зан с линией IRQ0 запроса на прерывание и формирует прерыва-
ние системного таймера. Счетчик № 1 генерирует запросы регене-
рации динамической памяти, а счетчик № 2 — сигналы для дина-
мика. Задающие тактовые импульсы для счетчиков поступают из-
вне через вывод «ТИ».
Блок управления питанием обеспечивает переходы в одно из
трех состояний: включено, выключено, состояние с уменьшен-
ным энергопотреблением. Блок обеспечивает управление тактами.
Процессор специальным сигналом STPCLK# (Stop Clock) с вы-
хода контроллера шин может быть переведен в режим понижен-
ного потребления. При этом он переходит в состояние предостав-
ления останова. В этом состоянии внутренние такты МП запреще-
ны и выполнение команд остановлено. Такое состояние прекра-
щается при снятии сигнала STPCLK#. Реализована также функ-
ция понижения тактов. Она позволяет периодически переводить
МП в режим пониженного энергопотребления. Когда понижение
тактов разрешено, МП работает на основной частоте предопреде-
ленный интервал времени, а затем останавливается на заданный
период времени. Используются два регистра управления таймера-
ми понижения тактов.
Узел начальной установки в контроллере шин при включении
питания по сигналу PWROK (Power ОК) формирует сигналы
начальной установки процессора и других устройств. Сигнал
PWROK указывает, что питание в норме и такты стабильны не
менее 1мс. В ответ контроллер шин выставляет сигналы CPURST
(CPU Reset) для начальной установки процессора, PCIRST# (PCI
Reset) для начальной установки устройств на шине PCI, RSTDRV
(Reset Drive) для начальной установки устройств на шине ISA.
Контроллер шин содержит пять групп регистров: регистры кон-
фигурации PCI (функция 0), регистры конфигурации PCI (функ-
ция 1), ISA-совместимые регистры, регистры шины IDE, регис-
тры управления питанием. Содержимое этих регистров существенно
влияет на работу рассмотренных выше управляющих блоков. Под-
робную информацию о назначении регистров и их отдельных раз-
рядов можно получить в фирменных описаниях производителей
чипсетов.
8.7. Системные ресурсы компьютера.
Принципы автоконфигурирования. Средства реализации
В ВМ используется программное управление вычислительны-
ми процессами. Простейшие функции хранения, преобразования
и передачи информации, связанные с организацией вычислитель-
ных процессов, выполняют аппаратные средства. Управление ап-
паратными средствами осуществляется с помощью системных и
прикладных программ. Программы могут взаимодействовать с ус-
тройствами разными способами: используя вызовы функций ОС,
используя вызовы функций базовой системы ввода-вывода BIOS,
непосредственно обращаясь по адресам к регистрам контроллеров.
Наиболее простые и универсальные функции по управлению пе-
риферийными устройствами выполняет BIOS, освобождая ОС от
учета деталей и особенностей управления тем или иным устрой-
ством. Наличие BIOS, допускающей настройки под конкретную
модель ПК, позволяет «скрыть» архитектурные особенности этой
модели и обеспечивает определенную независимость ПО. Много-
образие способов взаимодействия ПО с аппаратными средствами
в значительной мере связано с развитием архитектуры и возмож-
ностей ПК, в процессе которого появлялись новые устройства и
узлы, но требовалось сохранять совместимость с ранее разрабо-
танным ПО. Вычислительные процессы в компьютере конкуриру-
ют за использование аппаратных средств и средств доступа к ним.
Эти разделяемые средства называют системными ресурсами. К ним
относятся: процессор, АП ОП, АП ввода-вывода, шины, система
аппаратных прерываний (каналы запроса прерываний), каналы
ПДП.
Рассмотрим, как осуществляется распределение АП ОП. Логи-
ческая структура основной памяти включает особенности систе-
мы адресации первых ПК IBM PC. Первые МП PC I 8086/88 име-
ли 20-разрядную адресную шину и АП 1 Мбайт. Исполнительный
адрес вычислялся суммированием содержимого (S) 16-разрядно-
го сегментного регистра и 16-разрядного смещения (О):
А[19 — 0] = S[15 —0] 16 + О[15 —0].
При МП I80286 адресная шина стала 24-разрядной, а начиная
с I80386 — 32-разрядной.
В компьютерах PC широко использовалась (и используется до
настоящего времени) ОС MS DOS. В реальном режиме работы про-
цессора, используемом в DOS, применяется приведенная выше
модель формирования исполнительного адреса. Желание сохране-
ния программной совместимости в последовательности поколе-
ний компьютеров PC с разными типами МП обусловило следу-
ющее распределение адресов памяти:
• «стандартная память» (0 — 640 Кбайт), доступная ОС MSDOS
и программам реального режима процессора;
• «верхняя память» (640 Кбайт — 1 Мбайт), зарезервированная
для некоторых системных программ: области буферной памяти
адаптеров, память BIOS с расширениями;
• дополнительная (расширенная) память (1 Мбайт), доступ-
ная для программ только при работе в защищенном режиме (см.
гл. 4, 5).
Физически установленная в компьютере ОП занимает часть АП.
При начальном включении или перезагрузке компьютера програм-
ма тестирования POST определяет информационный объем уста-
новленной памяти. Обращение процессора по адресу, превыша-
ющему объем установленной памяти, передается на шину PCI.
Распределение этой части АП между устройствами на шинах оп-
ределяется программными настройками системного контроллера
и контроллера шин (см. подразд. 8.5 и 8.6).
Рассмотрим пространство ввода-вывода. Процессоры фирмы
Intel х86 имеют раздельные АП памяти и ввода-вывода. При обра-
щении к другим устройствам процессор вырабатывает управля-
ющие сигналы, с помощью которых кодирует тип цикла шины
(см. подразд. 8.3).
Для ввода-вывода используются циклы шины, отличные от
обмена с памятью. Распределением адресов ввода-вывода управ-
ляет BIOS с использованием регистров конфигурации чипсетов.
Стандартная карта распределения адресов приводится в справоч-
ной литературе [16].
Рассмотрим аппаратные прерывания. Они обеспечивают реак-
цию процессора на события, асинхронные по отношению к про-
цессу выполнения программы. Различают четыре источника пре-
рываний: внутренние прерывания процессора, немаскируемые вне-
шние прерывания, маскируемые внешние прерывания, программ-
но вызываемые прерывания. Обработка прерываний рассмотрена
в подразд. 7.2. Для обработки запросов прерываний используется
контроллер прерываний, входящий в состав контроллера шин (см.
подразд. 8.6). Контроллер шин в соответствии с программными
настройками гибко управляет распределением запросов на пре-
рывания от различных устройств между входами контроллера пре-
рываний.
Рассмотрим ресурс ПДП. DMA (Direct Memory Access) — ме-
тод обмена периферийных устройств с ОП без участия процессо-
ра (см. подразд. 7.3). В режиме ПДП обменом управляет контрол-
лер прямого доступа, входящий в состав контроллера шин (см.
подразд. 8.6). От процессора требуется только инициализация кон-
троллера. Распределением требований на ПДП от различных уст-
ройств между входами контроллера ПДП гибко управляет кон-
троллер шин с использованием программных настроек.
Рассмотрим задачу распределения системных ресурсов. Платы
расширения подключают к шинам ISA и PCI. Спецификация тра-
диционной шины ISA требует, чтобы всем платам расширения
назначались свои системные ресурсы: области адресов в простран-
ствах памяти и ввода-вывода, линии запросов прерывания, кана-
лы ПДП. По использованию ресурсов подключаемые платы не дол-
жны конфликтовать.
Шина ISA не имеет механизмов автоматического конфигури-
рования и распределения ресурсов. Конфигурирование осуществ-
ляется либо с использованием джамперов (микропереключателей)
либо с использованием энергонезависимой памяти, в которую
заносятся устанавливаемые параметры и другие конфигурацион-
ные настройки.
По мере развития компьютерной индустрии увеличивалась
номенклатура устройств и плат расширения для ПК. Конфигури-
рование системы с использованием традиционных средств стано-
вилось все более сложной задачей. Часто многие платы не могли
совместно работать в составе компьютера. Возникали вопросы про-
граммной совместимости на уровне программ драйверов, связы-
вающих аппаратуру с прикладными программами. Выяснилось,
что часто все упирается в вопрос неверного разделения систем-
ных ресурсов. Назрела проблема автоматизации распределения
системных ресурсов. В 1993 г. фирмы Intel (инициатор и организа-
тор), Compaq Computer, MS и Phoenix Technologies разработали
спецификации технологии автоконфигурирования систем Plug and
Play (РпР). Решение проблемы по этой технологии относится к
системным решениям, т.е. касается многих частей ВС. Поэтому
эта технология реализуема лишь в тех ВС, где ей соответствуют:
базовая система ввода-вывода BIOS, ОС, платы расширения (адап-
теры, контроллеры).
Для обеспечения автоконфигурирования на начальном этапе
требуется изоляция каждой платы от остальных. Тогда можно орга-
низовать диалог специальной программы конфигурирования с
платой расширения, и другие платы при этом не будут мешать.
Кроме подключаемых устройств конфигурированию подлежат и
«мосты», обеспечивающие информационное взаимодействие между
шинами. Это чипсеты: системный контроллер и контроллер шин
(см. рис. 8.1). При конфигурировании чипсетов («мостов») указы-
вают распределение системных ресурсов по шинам, которые они
связывают. При этом задают пути транслирования управляющих
сигналов для управления буферами данных и другими средствами
коммутации. В результате для каждого адреса памяти или ввода-
вывода организуется маршрут передачи сигналов с единственным
пунктом назначения. Подобная «маршрутизация» требуется и для
сигналов запроса прерывания. Каналы ПДП к шине PCI отноше-
ния не имеют.
Среди устройств с автоматизированным выделением ресурсов
(РпР) выделяется класс динамически конфигурируемых устройств
DCD (Dynamically Configurable Device). Используемые ими ресур-
сы могут динамически переназначаться во время работы, не тре-
буя перезагрузки ОС. К ним относятся устройства PCI.
Конфигурирование в системе РпР проводится в следующей
последовател ьности:
• изоляция одной платы от всех других;
• назначение плате специального номера CSN (Card Select
Number) для ее выбора при конфигурировании системы;
• считывание данных (с платы) о сконфигурированных и под-
держиваемых ресурсах;
• после выполнения перечисленных выше действий для всех
плат проводят распределение системных ресурсов;
• конфигурирование каждой платы в соответствии с распреде-
лением системных ресурсов и перевод ее в рабочий режим.
Конфигурированием управляют BIOS и ОС. В общих чертах кон-
фигурирование организовано следующим образом.
При включении компьютера BIOS РпР определяет устройства,
необходимые для загрузки ОС; запрашивает у каждого устройства
идентификатор, имеющийся в каждом устройстве РпР и исполь-
зуемый как почтовый ящик для информации о конфигурации;
разрешает конфликты по использованию системных ресурсов вы-
деленными устройствами. Устройства, не требуемые при загрузке
ОС, пока не активны. После загрузки ОС специальный драйвер
«менеджер конфигурации» запрашивает подчиненные ему драй-
веры «инумераторы шин» о всех устройствах в системе, которые
требуют системных ресурсов. При конфигурировании эти програм-
мные средства взаимодействуют со специальными аппаратными
средствами, установленными на платах расширения и в чипсетах
материнской платы.
«Менеджер конфигурации» управляет и связывает, а «инуме-
раторы» осуществляют интерфейс ОС с аппаратными средствами.
Всю информацию от «инумераторов» «менеджер конфигурации»
сохраняет в специальной записи — дереве аппаратной конфигу-
рации, которое хранится в ОП. Далее «менеджер конфигурации»
загружает драйверы устройств в соответствии с деревом конфигу-
рации.
Во время работы компьютера BIOS и «менеджер конфигура-
ции» постоянно следят за появлением в системе новых устройств,
поддерживая «горячее» включение и замену устройств. Таким об-
разом, распределяются системные ресурсы в системе. Для хране-
ния BIOS РпР используется флэш-память. Все платы РпР для под-
держки базовых функций используют специализированные аппа-
ратные средства, обычно реализованные на СБИС программируе-
мой логики (PLD) [1].
8.8. Развитие видеосистемы. Направления развития
организации информационных потоков в компьютерах
Видеосистема в компьютере обеспечивает вывод визуальной
информации на экран монитора. Она относится к активным сред-
ствам вывода в том смысле, что обеспечивает смену изображения
без изменения носителя. Основной поток выводимой информа-
ции в компьютерах — визуальный. Используются два режима вы-
вода информации: текстовый и графический. В современных ком-
пьютерах видеосистема обеспечивает вывод не только текстов и
рисунков, но и движущихся изображений. Поэтому она включает
не только графическую подсистему, обеспечивающую вывод изоб-
ражения, но и подсистему обработки изображений. Видеосистема
включает набор следующих средств: монитор, плату видеоадапте-
ра, набор программ-драйверов, поставляемых в комплекте с адап-
тером либо в составе прикладных пакетов программ. Прежде чем
рассматривать организацию видеосистемы и соответствующие
информационные потоки в компьютере, поясним кратко основ-
ные принципы вывода изображений и устройства мониторов.
При создании средств вывода визуальных изображений исполь-
зованы следующие два свойства зрения человека.
1. Инерционность восприятия световых раздражений, т.е. инер-
ционность возникновения и прекращения фотохимических реак-
ций в сетчатке глаза.
2. Ограниченная разрешающая способность глаза к перемеще-
нию изображения (малые перемещения не воспринимаются).
С учетом этих свойств используется поэлементное формирова-
ние и развертка изображения. Экран монитора представляется
дискретным полем — матрицей элементов, часто в литературе
называемых пикселами (pixel — picture element). Для получения
одного изображения формируется растр: последовательное дви-
жение модулированного луча, вызывающего свечение экрана мо-
нитора, по строке, от строки к строке, от кадра к кадру. Глаз
воспринимает небольшие изменения изображения на соседних
кадрах как непрерывное движение. Для достижения эффекта не-
прерывности присутствия изображения на экране частота кадров
должна быть выше 25 Гц. Однако на этой нижней границе частоты
кадров возникает эффект мерцания, вызывающий быструю утом-
ляемость глаз. Поэтому используют более высокую частоту кадров:
50-80 Гц.
В большинстве компьютеров используются мониторы с элект-
ронно-лучевой трубкой. Для получения цветного изображения каж-
дый элемент (пиксел) имеет 3 пятна люминофора, на каждое из
которых воздействует свой луч: R (красный), G (зеленый) и В
(синий). Различные сочетания яркости свечения этих пятен опре-
деляет свой цвет и оттенок пиксела. Яркость свечения определяет-
ся интенсивностью луча. Модулирование лучей позволяет управ-
лять цветом и яркостью. Дискретное поле экрана монитора ха-
рактеризуется произведением: (число строк) х (число элементов
в строке).
В зависимости от размера экрана наиболее часто используют
мониторы с показателями: 800x600 и 1600 х 1200. Число элемен-
тов экрана и частота кадров определяют требования к ширине
полосы частот видеоусилителей и модуляторов лучей, кабеля, со-
единяющего трубку с видеоадаптером, и к быстродействию всей
видеосистемы. Полоса частот составляет порядка 120 МГц, что
близко к предельным возможностям аналоговых электронных ус-
тройств. В целях уменьшения требований к полосе пропускания
аппаратуры часто применяют чересстрочную развертку. При этом
сначала лучи пробегают по нечетным строкам (выводится первый
полукадр), а затем — по четным (выводится второй полукадр).
Помимо электронно-лучевых трубок получают все более ши-
рокое применение так называемые «плоские дисплеи». Они пред-
ставляют собой матрицы ячеек с электрооптическим эффектом.
Например, жидкокристаллические дисплеи, светодиодные мат-
рицы и др. [16].
В компьютерах используют два режима вывода изображений:
графический и текстовый. Наиболее часто используется графичес-
кий режим. При этом индивидуально управляют свечением каж-
дой точки экрана модуляцией лучей. Для организации управления
модуляцией лучей используется отображение дискретного поля
экрана в специально организованной видеопамяти. Видеопамять
реализуется на основе СБИС DRAM. Видеопамять последователь-
но циклически считывается синхронно с движением луча по эк-
рану. Каждому элементу экрана соответствует ячейка видеопамяти.
В ней кодируются возможные состояния элемента (пиксела), ко-
торым соответствуют различные цвет, яркость и иные свойства
(например, мерцание). В настоящее время ячейка может содержать
15; 16; 24 бит. Биты в ячейке распределены между лучами R, G, В:
(5:5:5), (5:6:5), (8:8:8). Состоянию экрана при выводе изобра-
жения соответствует «битовая карта» в видеопамяти. Сканирова-
ние «битовой карты» с выводом изображения называют регенера-
цией изображения. С учетом инерционности зрения человека воз-
никает ощущение непрерывного свечения всего экрана и одно-
временного присутствия на нем всей выводимой информации. Фор-
мирование «битовой карты» в видеопамяти графического адапте-
ра проводится процессором. Поэтому видеопамять должна иметь
информационную связь как с аппаратурой, проводящей модули-
рование лучей, так и с шиной компьютера, через которую посту-
пает информация от процессора.
Средства обработки изображений относятся к мультимедийно-
му оборудованию. В отличие от программно управляемых графи-
ческих средств они оперируют с «живым видео» — информацией,
вводимой от видеокамеры, TV-тюнера, или с компакт-диска.
Рассмотрим принципы вывода информации на экран в тексто-
вом режиме (рис. 8.16). В этом режиме ячейка видеопамяти хранит
информацию не об отдельном элементе изображения, а о симво-
ле, занимающем на экране определенное «знакоместо». Знакоме-
сто — это матрица точек (элементов экрана), в которой может
быть отображен один из символов заданного набора. Размер мат-
рицы влияет на четкость отображения символа. Используют мат-
рицы 8 х 8; 9 х 14; 9 х 16 элементов. В ячейке видеопамяти хранится
код, определяющий номер символа в списке символов и атрибу-
ты (цвет, фон, мигание и пр.). В текстовом режиме экран рассмат-
ривается как матрица знакомест. Видеоадаптер при выводе изоб-
ражения в текстовом режиме использует дополнительный блок —
знакогенератор. Знакогенератор представляет собой ПЗУ. По каж-
дому адресу, соответствующему коду символа, в этом ПЗУ имеет-
ся своя «битовая карта» вывода символа на знакоместо. Это позво-
ляет многократно использовать такие карты символов и не пере-
давать соответствующую информацию от процессора. В результате
существенно уменьшается объем передаваемой от процессора к
адаптеру информации. В соответствии с матрицей элементов зна-
коместа выводу одной строки символов соответствует 8 или 9 строк
на экране. При прохождении строк экрана, относящихся к одно-
му ряду знакомест, из видеопамяти соответствующее число раз
считывается одинаковый код символов. В компьютерах использу-
ется стандартное 8-битное кодирование символов. Код каждого
символа образует старшие разряды адреса ПЗУ знакогенератора,
а младшие разряды адреса соответствуют номеру текущей строки
знакоместа. Выходные данные ПЗУ содержат побитную развертку
текущей строки разложения символа (в графическом режиме эти
данные поступали из видеопамяти). Каждому знакоместу в видео-
памяти кроме кода символа соответствует еще и поле атрибутов
Рис. 8.16. Формирование изображения на мониторе в текстовом режиме
(размер поля 1 байт). В поле атрибутов кодируется цвет и яркость
символа и его фона.
Видеоадаптер имеет аппаратные средства управления курсо-
ром, используемые при работе в текстовом режиме. Знакоместо,
на которое указывают регистры координат курсора, оформляется
особым образом (обычно выделяется мигающей полоской).
Функцию формирования изображения на экране выполняет
графический адаптер (рис. 8.17). Связь адаптера с монитором осу-
ществляет блок «Интерфейс монитора». Он формирует выходные
сигналы управления модуляцией лучей и синхронизации развер-
ток с операциями чтения видеопамяти. Кроме того, он обеспечи-
вает диалог с монитором, обеспечивающий идентификацию мо-
нитора и функции настроек монитора.
Блок «Интерфейс шины» обеспечивает связь с шиной компь-
ютера (например, шиной PCI), через которую осуществляется вза-
имодействие процессора и адаптера.
Видеопамять входит в АП ОП и имеет доступ как со стороны
центрального процессора через шину (PCI) так и со стороны кон-
троллера электронно-лучевой трубки. Контроллер электронно-лу-
чевой трубки организует циклическое чтение видеопамяти для
регенерации изображения. Кроме аппаратно выделенной видео-
памяти графического адаптера во многих компьютерах предусмот-
рена возможность выделения видеобуфера в составе ОП (систем-
ного ОЗУ). С целью повышения производительности видеосисте-
Связьс монитором
Связь с шиной ПК
Рис. 8.17. Функциональная схема графического адаптера:
ЭЛТ — электронно-лучевая трубка; ПК — персональный компьютер; BIOS —
базовая система ввода-вывода
мы этот выделяемый видеобуфер реализуют на микросхемах со
специальной архитектурой.
Контроллер атрибутов преобразует закодированную информа-
цию о цвете в сигналы, поступающие на монитор. В текстовом
режиме он обрабатывает информацию, получаемую из байт атри-
бутов знакомест, в графическом режиме — из кода для текущего
выводимого пиксела.
Графический процессор предназначен для повышения произ-
водительности системы при программном формировании бито-
вых образов изображений в видеопамяти. В графическом процес-
соре имеются регистры, в которые записывают данные, которые
постоянны при выводе изображения. В последующих операциях по
формированию битового образа используют как динамически из-
меняющиеся данные от процессора, так и данные из регистров.
Над данными от процессора и над данными из регистров в графи-
ческом процессоре выполняются простые операции: сдвиг, И,
ИЛИ, ИСКЛЮЧАЮЩЕЕ ИЛИ. Такой способ обработки снижа-
ет интенсивность информационного потока от центрального про-
цессора к видеоадаптеру.
Блок «Расширение BIOS» (Video BIOS) хранит код драйверов
видеосистемы и таблицы знакогенераторов. Он получает инфор-
мацию в процессе инициализации графического адаптера при
выполнении программы POST. Для повышения производительно-
сти видеосистемы раздел «Расширение BIOS» из ПЗУ переписы-
вается в «теневую память» — специально выделенную область ОП.
Графические адаптеры прошли путь развития в соответствии с
развитием мониторов от монохроматических MDA (Monochrome
Display Adapter) до группы адаптеров SVGA (Super Video Graphic
Array) с расширенными возможностями по разрешению и коли-
честву цветов. Информацию об особенностях различных типов адап-
теров можно найти в справочной литературе [16].
Средства обработки изображений относятся к мультимедийно-
му оборудованию. Под «мультимедиа» понимают комплекс аппа-
ратных и программных средств, обеспечивающих возможности в
создании виртуальной реальности: визуальных динамических и
акустических эффектов, интерактивное взаимодействие человека
и компьютера с использованием этих эффектов. Обработку изоб-
ражений может выполнять как центральный процессор, так и
специализированные аппаратные средства: графический сопро-
цессор или графический акселератор. По мере развития требова-
ний к обработке изображений и совершенствования архитектуры
МП распределение функций между средствами обработки дина-
мично изменяется.
Графический сопроцессор — это специализированный процес-
сор, который подключается к шине процессора (СШ) и имеет
доступ к ОП. В процессе работы сопроцессор конкурирует с цент-
ральным процессором по использованию СШ и ОП. По мере со-
вершенствования технологии производства ИС, роста уровня ин-
теграции и роста тактовой частоты работы процессора, функции,
выделенные для сопроцессора, берет на себя центральный про-
цессор.
Графический акселератор имеет свою память, работает авто-
номно и в процессе работы может не выходить на СШ. Акселера-
торы сначала в виде отдельного блока подключались к шине PCI,
а по мере развития вошли в состав графического адаптера. При
построении сложных трехмерных изображений графическому ак-
селератору не хватает своей видеопамяти, и требуются обраще-
ния к ОП. Возрастает информационный поток на шине. При под-
ключении графического адаптера к шине PCI обмен с этим адап-
тером создает основной информационный поток, что затрудняет
работу других устройств, подключенных к шине.
Быстрое развитие требований к видеосистеме привело к внесе-
нию изменений в организацию информационного обмена между
центральным процессором, ОП и графическим адаптером. Фир-
мой Intel была предложена архитектура, включающая использо-
вание в составе чипсета («северного моста») специального гра-
фического порта AGP (Accelerated Graphic Port) и дополнитель-
ной шины, связывающей его с видеоадаптером (рис. 8.18).
Стандарт шины AGP разработан на базе шины PCI. Это 32-
разрядная шина, по составу сигналов напоминающая шину PCI.
Чипсет связывает видеоадаптер с СШ процессора и ОП, минуя
шину PCI. Ускорение обмена по сравнению с использованием
шины PCI обеспечивается следующими факторами: использова-
нием для синхронизации обмена через шину AGP тактов СШ (а
не шины PCI); конвейеризацией обращений к ОП, удвоением
частоты передачи данных, разделением шин адреса и данных.
При обычных обращениях по шине PCI (без конвейеризации)
во время реакции памяти на запрос (время доступа и воспроизве-
дения считанных данных) шина простаивает (см. подразд. 8.4). Кон-
вейерный доступ AGP к памяти позволяет во время ожидания
передавать следующие запросы, а затем получать плотный поток
ответов (данных). Стандарт предусматривает формирование оче-
реди до 256 запросов. При конфигурировании системы (см. под-
разд. 8.7) чипсетом с учетом идентификационной информации
уточняются реальные возможности памяти, и длина очереди ог-
раничивается.
Удвоение частоты передачи данных обеспечивается за счет того,
что синхронизация передачи осуществляется как фронтом так и
спадом тактового импульса.
Разделение шин адреса и данных ведет к увеличению числа
линий на материнской плате, что нежелательно. Поэтому приня-
то компромиссное решение. Для передачи адреса выделено восемь
Рис. 8.18. Организация информационного обмена с видеоадаптером:
а — через шину PCI; б — через интерфейс AGP; ЦП — центральный процессор;
СШ — системная шина; СК — системный контроллер; ОП — основная память;
ВА — видеоадаптер; КШ — контроллер шины; СА — сетевой адаптер
линий, по которым за три такта при синхронизации передач фрон-
том и спадом импульса передается 6 байт: 4 байт адреса, 1 байт
сообщения длины запроса и 1 байт команды.
Таким образом, шина AGP имеет пропускную способность,
близкую к пропускной способности СШ. По протоколу обмена
шина AGP может работать в двух режимах: своем режиме с отме-
ченными выше особенностями и в режиме шины PCI. Стандарт
шины AGP строился, исходя из нужд графического акселератора.
Предусмотрены два способа организации обмена информацией
между ОП и акселератором: режим ПДП (DMA) и «режим ис-
полнения».
В режиме ПДП акселератор рассматривает свою резидентную
память как первичную. С ней он в основном и работает, а по мере
необходимости подкачивает в нее данные из ОП, используя быс-
трый канал AGP. При этом характерны блочные передачи с боль-
шим размером блока.
В режиме исполнения резидентная память и ОП для акселера-
тора равнозначны. При таком режиме трафик передач по шине
AGP отличается короткими блоками.
Из изложенного выше следует, что реализация стандарта шины
AGP потребовала существенного усложнения чипсета и материн-
ской платы в сравнении с рассмотренным в данной главе базо-
вым вариантом, но в результате существенно увеличились воз-
можности информационного обмена видеоадаптера с процессо-
ром и ОП, а шина PCI освободилась для других устройств.
В завершение раздела отметим основные тенденции развития
организации информационных потоков в компьютерах. В значи-
тельной мере они обусловлены быстрыми темпами развития ви-
деосистемы (особенно в связи с ростом мультимедийных прило-
жений), а также со значительным ростом пиковой скорости рабо-
ты ОП при пакетных обменах (до 2 — 6 Гбайт/с). При этом акту-
ально создание высокоскоростных шин. Это требует совершенство-
вания материнских плат и чипсетов. В большинстве компьютеров
для управления информационными потоками и устройствами ис-
пользуются две микросхемы чипсетов, соединенных через шину
PCI. По мере развития шина PCI перестает справляться с потребно-
стью в скоростной связи чипсетов. Наметилась тенденция исполь-
зования для информационной связи чипсетов закрытой (специа-
лизированной) высокоскоростной шины. При этом для шины PCI
Рис. 8.19. Структурная схема компьютера PC со специализированной
высокоскоростной шиной:
ЦП — центральный процессор; ОП — основная память
уготовлена роль шины контроллеров периферийных устройств,
которую ранее выполняла вытесняемая шина ISA. Для подключе-
ния периферийных устройств имеется тенденция перехода на вы-
сокоскоростную, последовательную шину USB (Universal Serial
Bus), соединенную с чипсетом «южного моста» (см. гл. 7). Шина
обеспечивает бесконфликтное подключение к компьютеру до 127
периферийных устройств и имеет полосу пропускания (USB2) до
480 Мбайт/с. Имеется также альтернатива — шина IEEE 1394 (Fire
Wire) со скоростью 400 Мбайт/с.
Рассмотрим структуру компьютера со специализированной вы-
сокоскоростной шиной (рис. 8.19), связывающей чипсеты между
собой. «Северный мост» обслуживает высокоскоростные каналы свя-
зи с ОП, видеосистемой (AGP4X) и «южным мостом». «Южный
мост» обеспечивает связь с двумя каналами IDE, к которым под-
ключены устройства ВП на жестких магнитных и оптических дис-
ках; с сетевым интерфейсом, через который компьютер связан с
телекоммуникационной системой; обеспечивает шесть каналов с
аудиосистемой, обмен по шине PCI с подключенными к ней уст-
ройствами, обмен с шестью портами универсальной последова-
тельной шины USB и с флэш-памятью, на которой записана базо-
вая ОС ввода-вывода BIOS. Шина ISA в этой структуре отсутствует.
Устройства, ранее подключаемые к шине ISA, теперь подключа-
ются через порты шины USB.
8.9. Тенденции развития персональных компьютеров
и вычислительных систем
В настоящее время компьютеры стали предметом массового
спроса. Уже более половины компьютеров используются дома. По
данным фирмы Intel, годовой объем продаж компьютеров превы-
сил объем продаж автомобилей и приблизился к объему продаж
телевизоров. Новый массовый пользователь компьютера обусло-
вил развитие новых возможностей и новых применений, разви-
тие естественного интерфейса с пользователем. Ввод визуальной
информации может производиться с рукописного текста, с фото-
графии, картины, с видеокамеры, TV-тюнера; ввод звуковой ин-
формации может осуществляться как в цифровом, так и в анало-
говом виде. ПК становится «информационной супермагистралью».
Основными движущими силами, определяющими развитие архи-
тектуры компьютеров, являются мультимедийные и телекомму-
никационные приложения. Что получает пользователь от компью-
тера сейчас? Это живое видео, качественная графика, качествен-
ный звук, удобная связь, простота обслуживания. Новые области
использования компьютеров: библиотечное дело, дистанционное
обучение, бизнес, финансы, новости, услуги.
В связи с быстрым ростом областей использования компьюте-
ров в производственной деятельности, обучении и досуге про-
изошла перестройка компьютерной индустрии. В производстве и
доставке компьютеров до потребителя выделяют ряд этапов: со-
здание МП, микропроцессорных платформ, системного ПО, при-
ложений, организация сбыта. До массового применения компь-
ютеров был ряд фирм, каждая из которых обеспечивала выполне-
ние всех работ (всех этапов). Наиболее известными фирмами, про-
изводителями ВМ, были: IBM, DEC, HP, SUN. У каждой фирмы
были отделы, которые занимались отдельными этапами создания
систем. По мере расширения рынка, требований и предоставляе-
мых компьютером возможностей появилось большое число кон-
курирующих фирм, специализирующихся на выполнении отдель-
ных частей ВС. Среди производителей МП наиболее известны фир-
мы Intel, AMD, Motorola; среди производителей платформ — IBM,
Compaq, NEC. Таким образом, от «вертикальной организации»
происходила перестройка к «горизонтальной» организации про-
изводства ВС. Специализация фирм позволила повышать качество
создаваемых подсистем при относительно меньших затратах, что
в целом вело к снижению стоимости. Для пользователя при этом
появлялась большая свобода и многообразие при комплексирова-
нии систем, позволяющие оптимизировать соотношение функ-
циональных возможностей к стоимости.
При организации производства ВС с широким применением раз-
деления труда и кооперации существенно возрастает роль стандар-
тов. Особенно это относится к интерфейсам. Для обоснованного
формирования стандартов необходимы широкомасштабные науч-
ные исследования, анализ тенденций. Так по данным Intel го-
довой объем исследований в фирме со 180 млн долл, в 1984 г. за
10 лет (к 1995 г.) увеличился до 1,5 млрд долл. К результатам таких
исследований, закрепленных в стандартах, можно отнести архи-
тектуру МП Pentium, шину PCI, технологию РпР, которые были
рассмотрены.
Определяющим для развития ВС является рост производитель-
ности процессора. Этот рост соответствует экспоненциальному
закону. Существенны три составляющие вектора производитель-
ности: целочисленные операции, операции с плавающей точкой,
векторные операции с видеоинформацией (технология ММХ) (см.
гл. 5). Рост производительности процессоров для ПК привел к тому,
что эти процессоры и соответствующую организацию систем ста-
ли использовать и в серверах. В первую очередь это относится к
файловым серверам и серверам приложений. Они образуют класс
«серверов большого объема» (SHV). Граница между компьютера-
ми и серверами стала размываться. МП ПК стали использовать
для построения мультипроцессорных систем. По соотношению
производительности к стоимости системы на базе процессоров
Pentium стали превосходить серверы и рабочие станции фирм IBM,
HP, SUN, AT&T и вытеснять их с рынка серверов. Эти тенденции
проявляются и в области систем для высокопроизводительных
вычислений. Более подробно архитектура многопроцессорных ВС
рассмотрена в гл. 10.
Существенное влияние на массовость применения и на архи-
тектуру компьютера оказывает то, что он в большинстве случаев
используется не изолированно, а в составе телекоммуникацион-
ной вычислительной сети. Во-первых, это существенно расширя-
ет возможности использования информационных технологий,
включая такие новые возможности как видеоконференции, до-
ступ к огромному количеству носителей информации через гло-
бальные сети, возможность повсеместного размещения полнофунк-
циональных ПК на предприятии с организацией удобного вза-
имодействия между ними, возможность удаленного использова-
ния средств высокопроизводительных вычислений и др. Во-вто-
рых, это снижает такой интегральный показатель как совокупная
стоимость владения компьютером. При использовании ПК в сети
показатель совокупной стоимости владения включает в себя сле-
дующие составляющие: капитальные вложения в ПК — 21 %, тех-
ническую поддержку — 27 %, администрирование — 9 %, эксплу-
атацию конечным пользователем — 43 % (поданным фирмы Intel).
Совокупную стоимость владения удается уменьшить путем сете-
вой управляемости гибких ПК. Тенденция архитектурных усовер-
шенствований — дать ПК и серверам универсальные средства се-
тевого управления и сделать их универсально управляемыми в сети.
При этом предоставляются инструментарий и средства сетевого
управления: средства сбора информации о системе, средства дис-
танционной диагностики и устранения неисправностей.
В целях расширения рынка сбыта компьютеров фирма Intel объе-
диняет средства вычислительной техники и бытовой электроники.
Концепция цифровых домов позволяет пользователям работать с
развлекательными мультимедийными материалами в «любом месте
и на любом устройстве». Она предоставляет новые возможности
объединения нескольких устройств в домашнюю сеть. Технология
Intel Wireless Connect представляет собой интегрированную в мик-
росхему точку беспроводного доступа и позволяет создавать дома и
в офисе беспроводные сети. ПК создается на таких процессорах как
Pentium IV с технологией Hyper-Threading (см. гл. 10) и набора мик-
росхем Intel 915. Дополнительную информацию можно получить на
русскоязычном Web-сервере фирмы Intel [51].
В эру информации возникли экономические предпосылки для
опережающего развития средств вычислительной техники и ин-
формационных технологий. Доходность на инвестируемый капи-
тал в сфере информационных технологий и средств вычислитель-
ной техники составляет 81 %, в то время как средний показатель
по другим областям деятельности составляет всего 6,3 % (по дан-
ным фирмы Intel). Это объясняет столь быстрое развитие техноло-
гии производства ИС, МП, ПК и информационных технологий
на их основе. Развитие архитектуры ВС различного назначения су-
щественно зависит от тех достижений науки и техники, которые
были вызваны распространением ПК. В производстве средств вы-
числительной техники доминирующую роль играют транснацио-
нальные корпорации, использующие международное разделение
труда и кооперацию различных фирм. Территориальное распреде-
ление производства средств вычислительной техники и информа-
ционных технологий характеризуют следующие цифры (по дан-
ным фирмы Intel): США — 0,4; Западная Европа — 0,27; Азиат-
ско-тихоокеанский регион — 0,23; другие — 0,1.
Контрольные вопросы
1. Каковы структурная схема современного ПК на базе процессора
Pentium, назначение блоков, распределение функций, организация трасс
информационных потоков?
2. Каково количество шин в компьютере PC с процессором Pentium?
Их назначение? От чего зависит пропускная способность шин?
3. Как организована кэш-память 2-го уровня в компьютере с процес-
сором Pentium? Какие средства используются для ее организации? Чем
ограничивается максимальный объем кэша? Чем ограничивается макси-
мальный объем кэшируемой памяти? Как используется код адреса в ра-
боте кэша? Какой блок управляет работой кэша и какие функции он при
этом выполняет?
4. Как организована синхронизация устройств компьютера, подклю-
ченных к СШ, при информационных обменах по шине с учетом их раз-
личного быстродействия?
5. Поясните работу автомата управления обменом по СШ. Как реализу-
ется принцип квитирования? В каком состоянии формируется набор уп-
равляющих сигналов, поступающих на входы блока ОП? От чего зависит
набор управляющих сигналов? Какой блок определяет тип цикла шины?
6. Поясните организацию обмена данными между процессором и ОП
при одиночных циклах записи и чтения. Поясните назначение сигналов,
передаваемых по шине. Какой блок является источником сигналов, и
какой блок — приемником?
7. Поясните организацию обмена данными между процессором и ОП
при пакетных циклах записи и чтения. Поясните назначение сигналов,
передаваемых по шине. Какой блок является источником сигналов, а
какой блок — приемником? В каких случаях работы компьютера исполь-
зуются пакетные циклы? Как они влияют на производительность?
8. Для чего используются блокированные циклы? Какие сигналы шины
при этом используются? Какой блок является источником сигналов, а
какой блок — приемником?
9. Поясните организацию обмена данными по шине PCI, назначение
сигналов в шине. Какой блок является источником сигналов, а какой
блок — приемником? Как определить пропускную способность шины
PCI? Какие устройства компьютера подключены к шине PCI?
10. Поясните организацию обмена данными по шине ISA, назначе-
ние сигналов в шине. Какой блок является источником сигналов и какой
блок — приемником? Как определить пропускную способность шины
ISA? Какие устройства компьютера подключены к шине ISA?
11. Что такое системный контроллер («северный мост») в ПК? Како-
вы его функциональная схема, назначение блоков? Расскажите о синх-
ронизации работы блоков.
12. Как реализуется арбитраж PCI? Поясните принципы организации
управления взаимодействием блоков компьютера с участием системно-
го контроллера.
13. Каковы назначение и адресация внутренних регистров системного
контроллера? Как учитывается в организации управления процессами
на шинах изменение состава и характеристик блоков компьютера при
его модернизациях?
14. Каковы назначение и функциональная схема контроллера шин
PCI, ISA, IDE («южного моста»); назначение блоков; разделение АП;
организация информационных потоков при обменах между устройства-
ми на шине ISA и процессором и ОП? В каких режимах обмена участвует
контроллер? Какие функции выполняет? В чем заключается разгрузка
центрального процессора?
15. Системные ресурсы ПК — что это такое? Что представляет собой
задача распределения системных ресурсов между системными устрой-
ствами? Когда возникают такие задачи и почему? Каковы принципы и
средства для организации автоконфигурирования?
16. Поясните принципы формирования изображений на мониторе. От
чего зависит качество изображения? Какие свойства человеческого зре-
ния используются для организации вывода изображений на монитор?
Какие ограничения снизу накладываются на частоту смены кадров? Как
эта частота влияет на восприятие изображений?
17. Из каких узлов состоит электронно-лучевая трубка? Как формиру-
ется изображение? Как формируется цвет? Чем обусловлено вредное вли-
яние на человека? Назовите пути совершенствования электронно-луче-
вой трубки.
18. Что такое пиксель, растр? Каковы их параметры, влияние на ка-
чество изображения?
19. Что такое текстовый режим вывода изображений? Как кодируется
изображение? Для чего используется знакогенератор?
20. Что такое графический режим вывода изображений? Каковы спо-
собы логической организации видеопамяти?
21. Что такое графический адаптер? Каково его назначение, функ-
ции, способ подключения к системе?
22. Каковы направления развития видеосистемы в ПК? Назовите при-
чины создания и принципы организации магистрального интерфейса
AGP.
23. В чем заключаются тенденции в развитии чипсетов и материнских
плат? В чем преимущества интерфейса USB? Каковы направления раз-
вития видео и аудио подсистем?
РАЗДЕЛ Ш. ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ
И СЕТИ
Глава 9
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ В СИСТЕМАХ
УПРАВЛЕНИЯ. МИКРОКОНТРОЛЛЕРЫ
9.1. Понятия о централизованных и распределенных
системах обработки данных и системах реального времени
Понятие «вычислительная система» относится к специализи-
рованным системам обработки данных. Простейшими ВС являют-
ся микроконтроллерные системы для встраиваимых применений,
рассматриваемые в данной главе.
Основой для реализации алгоритмов управления в техниче-
ских системах является универсальность средств вычислительной
техники, поскольку они обеспечивают возможность решения лю-
бой алгоритмически разрешимой задачи.
В состав типовой системы управления (контроллера) (рис. 9.1)
входят:
• объект управления, содержащий собственно объект или про-
цесс, исполнительные устройства и систему датчиков контроли-
руемых параметров объекта;
Рис. 9.1. Обобщенная структура типовой системы управления
(контроллера)
• устройство сопряжения с объектом, обеспечивающее согла-
сование сигналов (как управляющих, так и информационных)
микроконтроллерной системы и объекта управления;
• пульт управления, предоставляющий оператору возможность
контролировать параметры процесса управления и вносить при
необходимости в него коррективы;
• цифровой регулятор.
Конкретная реализация цифрового регулятора определяется
типом используемой системы обработки и зависит от сложности
объекта управления. Более сложные системы требуют использова-
ния сложных регуляторов, которые могут быть построены как на
основе ВМ общего назначения, например класса ПК в промыш-
ленном исполнении, так и на основе ВК или ВС. Следует отме-
тить, что во многих случаях функциональные возможности ВМ
(ВК, ВС) для решения задач управления оказываются избыто-
чными и большинство цифровых регуляторов чаще всего реализу-
ют в виде микроконтроллерных систем.
Цифровой регулятор получает необходимую информацию о
текущем состоянии объекта от измерительных преобразователей —
датчиков. Управляющие воздействия поступают на объект через
исполнительные устройства. Для связи цифрового регулятора с
датчиками и исполнительными устройствами используются спе-
циальные электронные схемы — устройства сопряжения с объек-
том (УСО). В связи с тем что обмен информацией между цифро-
вым регулятором и УСО осуществляется с помощью цифровых и
аналоговых сигналов, в составе УСО имеются цифроаналоговые и
аналого-цифровые преобразователи, буферные усилители сигна-
лов, элементы гальванической развязки электрических цепей. При
реализации цифрового регулятора на основе ВМ его связь с УСО
осуществляется через порты ввода-вывода. Для организации ин-
формационного взаимодействия управляющих программ ВМ с
портами УСО используются специальные системные программы —
драйверы.
Сложные системы управления включают в контур управления
не только ВМ, но и человека и являются не автоматическими, а
автоматизированными. При этом функции, возлагаемые на ВМ,
усложняются. Требуется обеспечить интерфейс между человеком
и ВМ: индикацию состояния управляемого процесса в графиче-
ской, символьной или числовой форме представления информа-
ции, ввод управляющих воздействий от человека, корректирующих
ход управляемого процесса. Во всех случаях в системах существуют
несколько параллельно протекающих процессов. Требования ко
времени выполнения у различных процессов различны. Большин-
ство процессов периодически повторяются (но с обновленными
данными). Поскольку требования к времени выполнения различ-
ных процессов различны, а для их выполнения используются об-
щие ресурсы системы, необходимо четкое упорядочение выпол-
нения процессов. Для этого установлены абсолютные приоритеты.
Существенной особенностью работы цифровых регуляторов в си-
стемах управления, как на базе ВМ, так и при микропроцессор-
ной реализации, является то, что все операции, связанные с уп-
равляемым процессом, должны выполняться в реальном масшта-
бе времени при постоянном информационном взаимодействии
регулятора с объектом управления.
В основу организации управления заложена модель реально
протекающего дискретного процесса. Процесс в модели представ-
ляется в дискретном времени. Реальное непрерывное время де-
лится на кванты т, длительность кванта задается в зависимости от
инерционности объекта. В цифровых регуляторах деление непре-
рывного времени на кванты осуществляет таймер (на рис. 9.1 не
показан). Последовательность квантов, отражающая течение вре-
мени, нумеруется: т = 0, 1, 2, ... Для программного управления
объектом при работе с моделью минимально необходимыми яв-
ляются 3 компонента: идентификация текущего состояния моде-
ли q (Г) на основе показаний датчиков; расчеты, связанные с
определением следующего состояния q(i + 1); формирование уп-
равляющих воздействий на исполнительные устройства, обеспе-
чивающих переход в состояние q(i + 1). По сигналу от таймера,
отмечающему начало очередного кванта, происходит прерывание
программы, выполняемой в фоновом режиме, и осуществляется
переход к программам идентификации состояния объекта, расче-
та следующего состояния, формирования управляющих воздей-
ствий и вывода их на объект. Выполнение этих программ должно
завершиться раньше, чем закончится квант. В оставшуюся часть кван-
та времени выполняются программы, имеющие более низкий при-
оритет. Процессы периодически повторяются. Привязка инициали-
зации указанных процессов к сигналам от таймера и обеспечивает
работу системы управления объектом в реальном времени.
Для управления сложными распределенными в пространстве
объектами организуют аппаратно-программные управляющие ком-
плексы с иерархической (двух- или трехуровневой) структурой.
На верхнем уровне находятся ВМ в промышленном исполнении,
выполняющие функции пультов управления. На нижних уровнях
находятся ВМ, непосредственно осуществляющие сбор информа-
ции от датчиков, ее обработку и формирование управляющих воз-
действий. ВМ нижнего уровня содержат УСО, связанные через
систему кабельных соединений с датчиками и исполнительными
устройствами. Обмен информацией в этой части системы осуще-
ствляется с помощью цифровых и аналоговых сигналов. Для пере-
дачи отдельных сигналов требуются отдельные жилы кабеля. При
такой организации информационного взаимодействия с объек-
том, особенно с объектами большой протяженности возникает
ряд проблем. Эти проблемы связаны с обеспечением помехоус-
тойчивости кабельных каналов связи, относительно высокой сто-
имостью кабельных соединений и их громоздкостью. Для преодо-
ления этих трудностей часто используют встраиваемые системы
на базе микроконтроллеров (МК). С их помощью осуществляется
первичная обработка сигналов в непосредственной близости от
объекта, и реализуются алгоритмы локального управления без
выхода на ВМ. При этом углубляется иерархия организации сис-
темы управления и перераспределяются функции между уровня-
ми. Обмен информацией между МК и ВМ более высокого уровня
осуществляется с использованием передачи сообщений, а не от-
дельных сигналов и, как правило, выполняется с использовани-
ем стандартных каналов связи, благодаря чему существенно упро-
щается система кабельных соединений.
9.2. Организация микроконтроллерных систем
Микропроцессорные средства появились как результат разви-
тия технологии производства СБИС. Использование этих средств
позволило существенно расширить сферы применения вычисли-
тельной техники. В частности они оказали влияние на развитие
таких важных отраслей промышленности, как приборостроитель-
ная, радиотехническая, электронная, машиностроительная и др.
Уже первые внедрения МП определили два основных направле-
ния их применения: использование МП в качестве центральных
процессоров малых (микро и мини) ВМ и реализацию на базе
МП встраиваемых систем управления различными объектами.
Особенности архитектуры и тенденции развития современных
МП для ВМ рассмотрены в гл. 4 и 5. В данном разделе рассматрива-
ются принципы построения, организация и основные характери-
стики средств вычислительной техники для встраиваемых систем
управления объектами самой различной природы. Здесь и далее
под встраиваемой системой управления (контроллером) будем по-
нимать систему управления, пространственно приближенную к
датчикам и исполнительным устройствам и конструктивно интег-
рированную в оборудование — механизм, технологическую уста-
новку, робот и пр. Такая система управления может быть реализо-
вана на основе одноплатной ВМ с необходимым набором интер-
фейсов, обеспечивающих функции связи с объектом и взаимо-
действие с оператором. Важным компонентом такой системы яв-
ляется интерфейс с системой управления более высокого уровня.
Благодаря его наличию возможно решение задач комплексной ав-
томатизации с использованием заданного числа единиц техноло-
гического оборудования, объединенного в единую распределен-
ную систему.
Микропроцессорные реализации цифровых регуляторов име-
ют ряд специфических характеристик. В первую очередь, это не-
обходимость разработки для каждой решаемой задачи собствен-
ного ПО. Действительно, из-за многообразия задач управления и
ограниченности ресурсов микропроцессорных систем при реше-
нии конкретных задач использование стандартного ПО, в отли-
чие от ВМ общего пользования, практически исключается. Кро-
ме того, «уникальность» ПО любой задачи, не изменяемого пос-
ле его отладки в течение всего времени эксплуатации системы,
позволяет использовать для хранения ПО энергонезависимую
память (см. гл. 6). К отличительным характеристикам микропро-
цессорных реализаций цифровых регуляторов можно отнести:
• относительно невысокие требования к вычислительным ре-
сурсам (в большинстве случаев требуется реализация сравнитель-
но простых алгоритмов управления);
• многообразие источников и приемников обрабатываемой
информации (входные и выходные сигналы для цифровых регу-
ляторов могут быть как дискретными, так и аналоговыми и для их
обработки в составе микропроцессорной системы часто предус-
матривают устройства, преобразующие аналоговые сигналы в циф-
ровую форму и обратно);
• работа микропроцессорных систем управления в «реаль-
ном времени» (необходимо обеспечивать совершенно конкрет-
ную, рассчитываемую на этапе разработки скорость реакции
системы управления на внешние события, потому что задерж-
ки, превышающие расчетные, в таких системах недопустимы,
так как могут приводить к потере управляемости и, как след-
ствие, к повреждению или разрушению объекта управления,
что потребовало включения в состав микропроцессорных сис-
тем управления таких устройств, как таймеры, контроллеры пре-
рываний и др.);
• повышенные требования к надежности и стойкости к воздей-
ствиям окружающей среды (встраиваемые системы управления
должны работать без сбоя и ошибок в необслуживаемом режиме
и, как правило, в сложных условиях эксплуатации).
По мере совершенствования цифровых технологий у разработ-
чиков СБИС появилась возможность разместить основные подси-
стемы цифровых регуляторов (процессор, память, периферийные
устройства) на одном кристалле. Первая реализация подобной
системы, получившей название однокристальной ВМ или МК, была
представлена фирмой Intel в 1978 г. в виде устройства 8048.
Микроконтроллером называется программируемое однокрис-
тальное вычислительное устройство с встроенным набором
средств для ввода и вывода, применяемое для решения задач
управления и первичной обработки данных в технических систе-
мах.
Рис. 9.2. Типы микроконтроллерных систем:
а — автономная; б — локальная; в — сетевой конфигурации; МК — микроконт-
роллер; ОУ — объект управления; ВМ — вычислительная машина
Встраиваемые средства на базе МК относительно просты, имеют
низкую стоимость, малые размеры. На них обычно возлагают сле-
дующие функции:
• сбор, первичную обработку и преобразование сигналов датчи-
ков объекта в сообщения стандартного формата, передачу их в ВМ;
• прием, накопление и трансляцию команд управления, пере-
даваемых от ВМ;
• самодиагностику и первичную диагностику объекта.
В зависимости от сложности задач встраиваемые системы уп-
равления бывают одноуровневыми и многоуровневыми. В после-
днем случае на нижнем уровне управления решаются задачи ло-
кального управления отдельными подсистемами, а на более вы-
соких — общие задачи управления системой в целом. Одноуровне-
вые системы управления, как правило, реализуют на базе МК, а
при построении двух- и более уровневых систем на верхних уров-
нях управления предполагается использование ВМ в промышлен-
ном исполнении, обеспечивающих интерфейс с человеком-опе-
ратором. Существуют микроконтроллерные системы следующих
типов — автономные (без ВМ), локальные (автономные с ВМ) и
сетевой конфигурации (рис. 9.2). Автономные системы управления
являются самыми простыми и дешевыми, но их возможности ог-
раничены. Более сложные локальные системы обладают широки-
ми возможностями при управлении объектами различной приро-
ды и сложности. Наиболее сложными системами управления яв-
ляются системы сетевой конфигурации с распределенным много-
уровневым управлением и распределенным (рассредоточенным)
объектом управления.
9.3. Типовая структура микроконтроллера
9.3.1. Общие сведения
Существует большое разнообразие МК. По общим архитектур-
ным принципам их объединяют в семейства. Все МК семейства
имеют одинаковое ядро, характеризующееся совокупностью та-
ких понятий, как система команд, организация памяти программ
и памяти данных, базовый набор внутренних периферийных уст-
ройств и система прерываний. Например, существуют сотни мо-
дификаций ядра семейства MCS-51, разработанного фирмой Intel.
Наиболее важной особенностью семейства является программная
совместимость на уровне двоичных кодов всех входящих в него
МК. Это позволяет разработчикам систем заменять одни МК дру-
гими без потери наработок своего ПО. Отличия между отдельны-
ми представителями одного семейства в основном заключаются в
составе периферийных устройств и объеме памяти программ и
данных. Сегодня в мире выпускаются тысячи типов МК. В группе
лидеров такие компании, как Atmel, Intel, Motorola, Texas
Instruments, Toshiba, Microchip Technology Inc., Zilog, Mitsubishi
Electronics, Hitachi Semiconductor, Philips Semiconductors, Siemens
и др.
МК (рис. 9.3) содержит в своем составе процессорное ядро с
развитой системой команд, память программ IROM, регистро-
вый файл данных RRAM, а также набор программируемых ин-
терфейсных схем, выполняющих ряд важных функций внутри МК
и обеспечивающих связь с внешней средой. Большинство из пере-
численных блоков являются обязательными компонентами любо-
го МК, некоторые, например IROM, в структуре конкретного
МК могут отсутствовать. Состав и назначение интегрированных
на кристалл периферийных устройств определяется областью пре-
имущественного применения МК и может широко варьироваться
в зависимости от типа МК. С целью повышения гибкости исполь-
зования аппаратных средств, интегрированных на кристалле, и
внешних выводов кристалла эти средства делаются многофункци-
ональными с программной настройкой на тот или иной режим
работы. При инициализации МК информация о типе настройки
заносится в специальные регистры и в процессе дальнейшей ра-
боты МК обычно остается неизменной. Это позволяет упростить
оперативное управление встроенными средствами МК и расши-
рить возможности их использования. В большинстве случаев в чис-
ло устройств встроенной периферии входят таймеры (счетчики),
последовательные и параллельные порты ввода-вывода, контрол-
лер прерывания, многоканальный аналого-цифровой преобразо-
ватель (АЦП), сторожевой таймер и пр. Рассмотрим назначение и
функционирование отдельных блоков МК подробнее.
Адрес/данные
Управление
Входы-выходы
параллельных портов
ввода- вывода
Вход Выход
последовательного
порта
Аналоговые
входные
сигналы
Входные (выходные)
события
Внешние
прерывания
Рис. 9.3. Функциональная схема МК
9.3.2. Центральное процессорное устройство
Центральное процессорное устройство (ЦПУ) современных МК
представляет собой «-разрядный МП с фиксированными разряд-
ностью и списком команд. Сегодня наибольшая доля мирового
рынка МК принадлежит 8-разрядным устройствам (около 50 % в
стоимостном выражении). За ними следуют 16-разрядные и циф-
ровые сигнальные процессоры DSP (Digital Signal Processor). Каж-
дая из названных групп занимает примерно 20 % рынка. DSP ори-
ентированы на использование в системах цифровой обработки
сигналов. Оставшаяся часть рынка распределена между мощными
32-разрядными МК и маломощными МК с ограниченным чис-
лом выводов.
Основой ЦПУ является ОБ, включающий АЛУ и файл реги-
стров (ОЗУ МК). Взаимодействие отдельных блоков МК, как внутри
ЦПУ, так и с блоками внутренней периферии, осуществляется
по внутренней шине. Связь МК с внешними устройствами реали-
зуется через внешние выводы параллельных и последовательных
портов.
При реализации современных МК используется весь спектр
архитектурных решений, реализованных в МП и рассмотренных в
гл. 4. Ранние модели МК, широко применяемые и в настоящее
время, содержат одноадресный процессор с главным регистром-
аккумулятором. В подобном процессоре один из исходных операн-
дов арифметических и логических операций по умолчанию разме-
щается в аккумуляторе и в него же помещается результат. Второй
операнд, адрес которого указывается в команде, является содер-
жимым одного из регистров регистрового файла. На основе одно-
адресной аккумуляторной архитектуры реализуются широко рас-
пространенные 8-разрядные МК семейства MCS-51 и МК других
семейств. Аккумуляторная архитектура ЦПУ, обладая простотой
структуры, позволяет сократить формат команд и благодаря это-
му уменьшить время их выборки из программной памяти. Однако
в ряде случаев из-за дополнительных операций загрузки первого
операнда в аккумулятор и пересылки результата из аккумулятора
в регистр назначения простота одноадресного ЦПУ становится
тормозом в повышении его производительности.
Более производительными являются многоадресные (двух- и
трех-адресные) ЦПУ, в которых оба операнда и результат могут
размещаться в любой ячейке интегрированного на кристалл реги-
стрового файла RRAM. Архитектуру ЦПУ МК подобного типа,
например семейства MCS-96, иногда называют регистр-регист-
ровой архитектурой или многоаккумуляторной архитектурой. Ес-
тественно, регистр-регистровая архитектура требует более слож-
ного формата команд. Основными преимуществами регистр-реги-
стровой архитектуры являются [13]:
• отсутствие необходимости в предварительной загрузке одно-
го из операндов в аккумулятор перед выполнением операции, при
этом резко уменьшается число операций по пересылке данных и
возрастает скорость вычислений;
• содержимое источника данных в результате выполнения опе-
рации может оставаться неизменным либо модернизироваться (в
последнем случае один из регистров-источников данных одно-
временно является и приемником результата);
• появление возможности расширения системы команд трех-
операндными высокопроизводительными командами.
В середине 90-х гг. XX в. разработаны высокопроизводительные
МК, ЦПУ которых представляет собой RISC-процессор. Напом-
ним, что в RISC-процессоре, благодаря использованию простых
команд одной длины, исполняемых, как правило, за такт, дости-
гается существенное упрощение блока управления ЦПУ и повы-
шается его производительность. RISC-микроконтроллерами явля-
ются МК семейства AVR фирмы Atmel, которые получили свое
название по инициалам разработчиков — Alf Bogen, Vergar Wollen
и RISC-архитектуре. Время выполнения большинства команд AVR-
контроллеров при тактовой частоте 20 МГц составляет 50 нс. RISC-
архитектуру также имеют МК семейства PlCmicro фирмы Microchip.
Формат команд МК этого семейства тоже фиксирован, но они
выполняются в течение одного машинного цикла за четыре пери-
ода тактовой частоты. В целом ЦПУ различных типов МК характе-
ризуются широким диапазоном производительности и зависящей
от нее стоимостью.
Внутренняя память данных МК обычно представлена в виде
регистрового файла RRAM. Объем этой памяти зависит от типа
МК и может существенно отличаться не только в МК различных
семейств, но и в отдельных моделях МК одного семейства (96 байт
в AVR-контроллере, 256 байт в МК семейства MCS-51, 232 —
1000 байт в МК семейства MCS-96).
Система команд типового МК ориентирована на решение за-
дач управления, алгоритмы которых большей частью обеспечива-
ют контроль состояния объекта и реализацию функций логичес-
кого управления. Доля вычислительных алгоритмов в таких зада-
чах относительно невелика. Наряду с традиционными группами
команд пересылок, арифметических и логических операций, ус-
ловной и безусловной передачи управления, система команд МК
обычно включает команды операций с отдельными битами (буле-
выми переменными). Необходимость использования команд по-
битовой обработки связана с тем, что МК по своему назначению
и алгоритмам функционирования предполагает наличие входных
и выходных сигналов, являющихся булевыми переменными. От-
дельные программно доступные биты могут быть установлены,
сброшены или заменены инверсным значением и, кроме того,
могут пересылаться, анализироваться и использоваться в логи-
ческих вычислениях. Реализация побитовой обработки наделяет
ЦПУ МК свойствами булевого процессора, весьма эффективного
для задач логического управления. Специализированные коман-
ды, облегчающие программирование специфических функций,
например, вычисление цифровой свертки, в системы команд ти-
повых МК, обычно не включаются. С особенностями организации
ЦПУ, системой команд и способами адресации операндов конк-
ретных МК можно познакомиться по материалам фирменных опи-
саний МК и справочной литературы.
9.3.3. Особенности организации памяти
Отличительной архитектурной особенностью МК является то,
что в них для хранения команд и данных используются разделен-
ные физически, а часто и логически блоки памяти. Это обуслов-
лено тем, что поскольку программы МК после отладки обычно
не меняются, их размещают в ПЗУ. В отличие от команд перемен-
ные в ходе выполнения программы могут модифицироваться,
поэтому для их размещения используют оперативную память.
Архитектура ВМ, в которой программа и данные хранятся в
логически и физически разделенных областях памяти, получила
название Гарвардской архитектуры. В ВМ с Гарвардской структу-
рой (рис. 9.4) доступ процессора к командам и данным осуществ-
ляется через две независимые раздельные шины — шину доступа
к командам и шину доступа к данным. Физическое и логическое
разделение памяти программ и памяти данных позволяет органи-
зовывать независимое и параллельное во времени обращение к
ним, обеспечивая совмещение выполнения текущей команды с
выборкой и дешифрацией следующей команды. Благодаря этому
достигается повышение скорости работы процессора и облегчает-
ся реализация конвейерных методов работы аппаратуры управле-
ния памятью и вычислителя. В соответствии с Гарвардской струк-
турой реализуются МК семейства MCS-51 и х51-совместимые МК,
Шина доступа к данным
Входы-выходы
периферийных
устройств
Шина доступа к командам
Рис. 9.4. Гарвардская структура ВМ
производимые различными фирмами (Siemens, Atmel), МК AVR
фирмы Atmel и др.
В отличие от Гарвардской архитектуры некоторые семейства
МК, например семейство MCS-96, реализуются по Принстон-
ской (фон неймановской) архитектуре, предполагающей разме-
щение команд и данных в едином адресном пространстве памяти.
В МК данной архитектуры память команд и память данных, как
правило, разделены только физически (используются различные
БИС памяти: ПЗУ — для хранения команд и ОЗУ — для хранения
данных).
Объем внутренней памяти программ IROM в МК разных ти-
пов может варьироваться в достаточно широких пределах — от
1 Кбайт до 32 Кбайт, при этом в некоторых моделях память IROM
вообще может отсутствовать. МК без внутренней памяти программ
используются в микроконтроллерных системах с внешней про-
граммной памятью, которые в большинстве случаев применяют-
ся на ранних этапах разработки и отладки новых систем. Боль-
шинство МК допускают расширение памяти программ IROM за
счет подключение дополнительных БИС внешней памяти через
внешнюю магистраль МК, для организации которой обычно ис-
пользуют линии многофункциональных параллельных портов вво-
да-вывода. В современных МК в качестве памяти IROM могут ис-
пользоваться различные типы ПЗУ, принципы построения и ха-
рактеристики которых рассмотрены в подразд. 6.10. МК с масоч-
ным (непрограммируемом пользователем) ПЗУ применяются при
массовом использовании МК с вполне определенной програм-
мой. Более распространены МК с программируемым ПЗУ. Произ-
водятся МК как с однократно программируемым ПЗУ, так и с
перепрограммируемым ПЗУ. В последних используется либо па-
мять с ультрафиолетовым стиранием EPROM, либо разработан-
ная позже флэш-память. МК с флэш-памятью имеют существен-
но более низкую стоимость.
Регистровый файл данных RRAM в большинстве случаев объе-
диняет две области памяти — оперативную память общего назна-
чения, используемую пользователем по своему усмотрению, и об-
ласть регистров специальных функций SFR (Special Function
Registers). Набор регистров блока SFR определен для каждого типа
МК и может существенно отличаться в МК разных семейств. Ре-
гистры специальных функций SFR управляют внутренними пери-
ферийными устройствами МК, фиксируют их состояние и вы-
полняют некоторые другие функции. Формат и назначение управ-
ляющих бит этих регистров обычно рассматривается при изуче-
нии особенностей функционирования и задании режимов работы
внутренних устройств МК. Использование набора программируе-
мых регистров SFR позволило наделить МК свойством программ-
ной настройки внутренней периферии на требуемый режим рабо-
ты, Это обеспечило многофункциональное использование узлов
МК и решило проблемы выполнения широкого спектра требова-
ний, предъявляемых к МК как устройству общего назначения.
МК некоторых семейств, например семейства MCS-96, кроме
регистрового файла данных RRAM, дополнительно содержат не-
большую внутреннюю память IRAM (128 — 512 байт), в которой
могут хранить как данные, так и команды. При размещении ко-
манд программы в памяти IRAM появляется возможность моди-
фикации программы в процессе ее выполнения. При необходимо-
сти большинство МК допускают расширение памяти данных за
счет подключение внешних БИС памяти с произвольным досту-
пом.
Многие МК в своем составе содержат специальные схемы вы-
борки кристаллов, представляющие собой программируемые се-
лекторы адресов. Благодаря наличию таких схем, внешним уст-
ройствам памяти выделяются конкретные области адресного про-
странства и упрощается их подключение к МК.
Особенности организации памяти МК рассмотрим на примере
микроконтроллерной системы Гарвардской архитектуры с МК SAB
80С515 (рис. 9.5) фирмы Infineon — представителя распростра-
ненного семейства MCS-51.
Память программ и память данных физически и логически раз-
делены. Память программ объемом до 64 Кбайт доступна только
по чтению. Она может быть представлена либо внешней памятью
XROM, либо в виде XROM и IROM, если МК имеет внутреннюю
память программ IROM. Как правило, элементы программной
памяти адресуются с помощью 16-разрядного счетчика команд
PC, но в некоторых командах чтения констант они могут кос-
венно адресоваться с использованием специального 16-разряд-
ного указателя DPTR. Пользователь может разрешить или запре-
тить обращение к памяти IROM, управляя сигналом ЕА на одно-
именном входе МК. Объем памяти IROM варьируется в зависимо-
FFFFh
2000h
Внешняя память
программ
(XROM)
FFh
80h
Старшие 128 байт FFh Регистры специальных
внутреннего ОЗУ (RRAM) 80h функций (SFR)
Младшие
128 байт
внутреннего
IFFFhrS----------------
111 11 Внутренняя память
7Fh
Внешняя
память
данных
(XRAM)
OOOOh
IROM при £4=0
Внешняя память
XROM при £4=1
nnh ОЗУ (RRAM)
64 Кбайт
Память программ
Память данных
Рис. 9.5. Полное пространство памяти МК SAB 80С515
ста от тапа МК. В МК SAB 80С515
память IROM занимает младшие
8 Кбайт пространства памяти
программ.
Память данных МК также
может объединять две области —
внутреннюю память RRAM и
внешнюю XRAM. В отличие от
памяти программ, пространства
памяти RRAM и XRAM являют-
Рис. 9.6. Функциональная схема
подключения МК SAB 80С515 внеш-
ней памяти программ
ся независимыми: внешняя па-
мять XRAM объемом до 64 Кбайт
используется как дополнитель-
ная к внутренней памяти RRAM
емкостью 256 байт.
Внутренняя память данных IRAM, размещенная на кристалле
МК, представлена двумя физически разделенными блоками — ре-
гистровым файлом RRAM и блоком регистров специальных функ-
ций SFR. Для сокращения адресных полей указанных блоков па-
мяти старшие 128 байт RRAM и область SFR имеют одинаковые
адреса. Для их различия используют разные способы адресации.
В отличие от МП в МК отсутствуют специальные выводы сиг-
налов адреса и данных, предназначенные для подключения внеш-
ней памяти. При необходимости использования внешней памяти
программ или данных для организации внешних шин адреса и
данных применяют линии многофункциональных параллельных
портов ввода-вывода. В МК семейства MCS-51 для организации
внешних шин адреса и данных используют линии портов РО и Р2,
при этом с помощью линий порта РО реализуется мультиплекси-
рованная внешняя шина адрес (данные) (рис. 9.6). Адрес внешней
памяти (16-разрядный) формируется на линиях порта РО (млад-
ший байт) и порта Р2 (старший байт). Для демультиплексирова-
ния адреса на выходах порта РО предназначен выходной сигнал
ALE. С его помощью младший байт адреса фиксируется во внеш-
нем регистре адреса. Чтение содержимого памяти осуществляется
при формировании сигнала PSEN (Program Store ENable).
9.3.4. Средства связи с объектом управления, другими
микроконтроллерами и вычислительной машиной
Порты ввода-вывода параллельной информации. Для связи МК
с объектом управления (датчиками и исполнительными устрой-
ствами) в структуре МК обычно содержится широкий спектр спе-
циальных средств, обеспечивающих ввод-вывод как дискретных,
так и аналоговых сигналов. В число таких средств входят устрой-
ства параллельного и последовательного ввода-вывода дискретных
сигналов, а также устройства ввода-вывода аналоговых сигналов.
В МК отдельные линии ввода-вывода дискретных сигналов объе-
диняются в параллельные «-разрядные (обычно 8-разрядные)
порты. Параллельные порты позволяют непосредственно вводить
в МК и выводить из него данные в виде параллельного цифрового
кода. Обычно их используют для связи с датчиками и исполни-
тельными устройствами объекта управления (см. рис. 9.1), име-
ющего входные или выходные сигналы, представленные много-
разрядными двоичными кодами. Число портов ввода-вывода в со-
временных контроллерах непосредственно связано с числом вы-
водов корпуса и, как правило, не превышает 4—6. Параллельные
порты являются двунаправленными. Они обеспечивают как ввод
(передачу информации от внешних устройств в МК), так и вывод
(передачу информации от МК во внешние устройства).
Каждый из разрядов порта ввода-вывода (рис. 9.7) состоит из
триггера-защелки, вентиля В1, формирователя выходных сигна-
лов порта и входного буфера В2. Запись данных в триггер-защелку
осуществляется под управлением внутреннего сигнала «запись в
защелку» при выполнении команд, в которых порт является при-
емником.
При выводе данные с внутренней шины записываются в триг-
гер-защелку порта и из него поступают на внешние выводы пор-
та. Выход триггера Q через вентиль В1 может быть подключен к
внутренней шине с помощью внутреннего сигнала «чтение за-
щелки». Благодаря такой организации разряда порта обеспечива-
ется программное чтение защелки и возможность побитовой об-
работки выходных сигналов порта с последующей записью ре-
зультата обратно в защелку. Отмеченная особенность порта актив-
но используется при работе ЦПУ в режиме «чтение —модифика-
ция—запись».
При вводе данных работу порта поддерживает вентиль В2, уп-
равляемый внутренним сигналом «чтение вывода». Данные с внеш-
В1 Г&
Чтение
защелки
Вн утренняя
Защелка
QJ
Запись в
защелку
В2 —
Формиро-
ватель
выходных
порта
Вывод
порта
D
&
Чтение
вывода
Рис. 9.7. Базовая структура разряда двунаправленного порта
него контакта порта при поступлении сигнала «чтение вывода»
через вентиль В2 поступают на внутреннюю шину МК и далее
обрабатываются ЦПУ. В режиме ввода также могут выполняться
операции побитовой обработки.
Все порты МК являются двунаправленными Они обеспечива-
ют передачу информации в двух направлениях. Некоторые порты,
например порт, используемый для организации мультиплексиру-
емой шины адрес (данные), должны обеспечивать возможность
динамического переключения из режима вывода в режим ввода и
обратное переключение. Другие порты, а таких большинство, обыч-
но используют для передачи сигналов в одном, задаваемом про-
граммой, направлении. Действительно, трудно представить конк-
ретную микроконтроллерную систему, в которой физические ус-
тройства, подключенные к портам МК, во время работы изменя-
ли бы свои функции и одновременно выполняли роль датчика и
исполнительного устройства объекта управления. По этой причи-
не такие порты МК реализуются как квазидвунаправленные, т. е.
с программно задаваемой и неизменяемой во время работы фун-
кцией ввода-вывода. Особенности использования параллельных
портов учитывают при построении формирователей выходных
сигналов двунаправленного и квазидвунаправленного портов. Вы-
ходные каскады квазидвунаправленных портов выполнены на по-
левых транзисторах с внутренним нагрузочным резистором. Ана-
логичные каскады двунаправленного порта реализованы на тран-
зисторах с открытым стоком.
Важной особенностью параллельных портов является возмож-
ность программирования отдельных разрядов (линий порта) для
выполнения альтернативных функций. Каждый вывод этих портов
может использоваться либо для выполнения стандартного ввода-
вывода, либо для выдачи-приема специальных функциональных
сигналов, поддерживающих работу внутренних периферийных уст-
ройств или управляющих внешними устройствами. Для перевода ли-
ний порта в режим выполнения альтернативных функций соответ-
ствующие разряды порта должны быть запрограммированы на ввод.
В современных МК в дополнение к стандартному вводу-выво-
ду, реализуемому с помощью параллельных портов, обработка
входных и формирование выходных дискретных сигналов часто
осуществляется с помощью специальных периферийных устройств,
называемых блоками быстрого ввода-вывода. Отличительной осо-
бенностью использования таких устройств является то, что быст-
рый ввод и быстрый вывод дискретных сигналов с их помощью
выполняется без непосредственного участия процессора. Прин-
цип организации и работа блока быстрого ввода-вывода рассмат-
риваются далее.
Последовательные порты. Обмен данными между МК и уда-
ленными датчиками и исполнительными устройствами, как пра-
вило, осуществляется по последовательному каналу с помощью
встроенных в структуру МК последовательных портов — Serial Port
(SP). Обычно в МК обязательно встраивается универсальный асин-
хронный последовательный приемопередатчик UART, поддержи-
вающий протокол стандарта RS-232C. Кроме протокола RS-232C,
популярными протоколами информационного обмена в мире
встраиваемых систем являются протоколы RS-485, RS-422A, CAN
(межконтроллерный сетевой интерфейс) и некоторые другие. Осо-
бенности реализации последовательных протоколов рассмотрены
в подразд. 7.4.
Важным назначением последовательного порта является не
только обеспечение связи с пространственно удаленными датчика-
ми и исполнительными механизмами собственного контроллера,
но и организация связи с другими локальными регуляторами и ВМ
верхнего уровня управления. «Мощные» МК, как правило, содер-
жат несколько последовательных портов, в том числе специаль-
ный порт, поддерживающий такую связь. Поясним необходимость
специальных средств связи с другими МК и ВМ подробнее.
Вычислительная мощность и состав внутренней периферии
современных МК позволяет строить централизованные системы
управления даже для таких сложных объектов, как бортовые си-
стемы воздушных и морских кораблей, транспортные системы и
многие другие. В подобных системах регулируемые величины не-
редко являются сильно связанными между собой, в связи с чем
требуется их совместное регулирование. Централизованные систе-
мы, выполненные на базе одного МК, упрощают реализацию
сложных алгоритмов управления для таких объектов, но имеют
недостаток: в них приходится передавать информацию о состоя-
нии объекта и управляющие воздействия на относительно боль-
шие расстояния, при этом часто такая передача должна осуще-
ствляться в условиях сильных помех. В ряде случаев стоимость по-
мехоустойчивых средств сопряжения с объектом для подобных
систем оказывается соизмеримой со стоимостью самого регулято-
ра. Для устранения отмеченного недостатка при реализации си-
стем управления сложными объектами широко используют рас-
средоточение средств регулирования — каждая подсистема вы-
полняется на отдельном МК и располагается вблизи регулиру-
емого объекта. Обеспечение взаимодействия распределенных под-
систем регулирования достигается с помощью ВМ верхнего уров-
ня управления и специальных коммуникационных каналов связи.
В англоязычной литературе архитектура многоуровневого управ-
ления, обеспечивающая интеграцию отдельных подсистем, обо-
значают термином CAN (Controller Area Network — локальная уп-
равляющая сеть). В настоящее время CAN-идеология широко при-
меняется при построении систем связанного регулирования, объе-
диняющих несколько МК в локальную управляющую сеть.
Обмен данными с другими МК в управляющей системе, со-
держащей несколько совместно работающих МК, в большинстве
случаев осуществляется по последовательному каналу. Для ин-
формационных посылок, содержащих адреса абонентов и дан-
ные, используют специальные приемы, например, такие посылки
дополняются специальным битом ТВ8. Обработка принимаемой
информации зависит от значения этого бита (подробнее см. под-
разд. 7.4).
Заметим, что обмен данными в системе с многими МК может
также осуществляться путем совместного использования внеш-
ней памяти. Некоторые МК, например семейства MCS-96, имеют
специальные аппаратные средства, обеспечивающие такое совме-
стное использование внешней памяти несколькими МК.
Встроенные средства ввода и вывода аналоговых сигналов. Раз-
мещенные на кристалле МК, обеспечивают связь МК с аналого-
выми датчиками и исполнительными устройствами объекта уп-
равления. С их помощью входные аналоговые сигналы от датчиков
преобразуются в цифровой код для последующей обработки про-
цессором, а также проводится формирование аналоговых управ-
ляющих воздействий.
Для преобразования аналоговых сигналов в цифровой код ис-
пользуются АЦП. Современные МК обычно содержат в своем со-
ставе 8-канальный АЦП, обеспечивающий преобразование ана-
логовых сигналов напряжения в диапазоне от 0 до 5,12 В в цифро-
вой 8- или 10-разрядный код. Запуск преобразования в канале может
проводиться программно или аппаратно. Некоторые преобразова-
тели могут работать в режиме сканирования входов. Функциональ-
ная схема АЦП последовательного приближения, встроенного в
МК SAB 80С515 (рис. 9.8) состоит из 8-канального аналогового
мультиплексора, устройства выборки и хранения входного анало-
гового сигнала, собственно аналогового преобразователя после-
довательного приближения, блока формирования внутренних
опорных напряжений и устройства управления. Аналоговый муль-
типлексор позволяет использовать АЦП для преобразования ана-
логовых сигналов от нескольких датчиков. Устройство выборки и
хранения формирует из непрерывно меняющегося аналогового
сигнала U(t) последовательность отдельных выборок U(n) (п =
= 0, 1,2 ...), которые с помощью АЦП преобразуются в цифро-
вой код. Блок формирования эталонных напряжений использует-
ся для задания опорных напряжений сравнения.
Для преобразования аналогового сигнала в цифровой код чаще
всего используются АЦП, реализующие метод поразрядного урав-
новешивания, называемый также методом последовательного при-
ближения. В соответствии с этим методом осуществляется после-
довательное сравнение входного аналогового сигнала с рядом
формируемых эталонных напряжений и выбирается такое напря-
КОД ^INTREF КОД ^INTAGND
Рис. 9.8. Функциональная схема аналого-цифрового преобразователя
МК SAB 80С515
жение, которое наиболее близко к значению входного сигнала.
Результат аналогово-цифрового преобразования фиксируется в
регистре результата АЦП. Формирование эталонных напряжений
реализуется с помощью внутреннего цифроаналогового преобра-
зователя, который преобразует цифровой «-разрядный код на
выходе регистра результата в эталонный аналоговый сигнал. Урав-
новешивание начинается со старшего разряда регистра ре-
зультата. В этом разряде вначале устанавливается «1», и ЦАП
вырабатывает напряжение £4/2. Это напряжение сравнивается с
входным и оценивается знак разности. Если выясняется, что урав-
новешивающий сигнал меньше преобразуемого, то установлен-
ная в старшем разряде «1» сохраняется, если больше — «1» сбра-
сывается, и в старшем разряде будет храниться «О». Далее таким
же образом проверяется, нужна ли «1» в следующем, более млад-
шем разряде. Уравновешивание продолжается до тех пор, пока не
будут опрошены все разряды регистра, включая самый младший.
Для управления АЦП используются 3-битный код номера ана-
логового входа, подключенного через мультиплексор к устрой-
ству выборки и хранения, и бит ADM (на рис. 9.8. не показан), с
помощью которого программируется режим работы АЦП. При
ADM = 0 задается режим одиночного преобразования, в котором
после запуска выполняется одно преобразование и работа АЦП
прекращается. При ADM= 1 преобразователь переводится в режим
непрерывного преобразования. В этом режиме после запуска пре-
образования автоматически по завершении очередного преобра-
зования выполняется следующее. Результат аналого-цифрового
преобразования фиксируется в 8-битном регистре результата
ADDAT. Содержимое регистра ADDAT сохраняется в течение все-
го следующего цикла преобразования и изменяется только при
перезагрузке этого регистра. Регистр ADDAT программно досту-
пен.
Регистр DAPR (D/А Converter Program Register) предназначен
для программного задания внутренних опорных напряжений
^INTAREF И t/[NTAGND> ИСПОЛЬЗувМЫХ ДЛЯ формирования ЭТЭЛОННОГО
напряжения сравнения для каждого диапазона входных сигналов.
Диапазон входных сигналов определяет точность преобразования.
Чтобы лучше понять назначение регистра DAPR, рассмотрим
функции, реализуемые блоком формирования внутренних опор-
ных напряжений.
Блок формирования внутренних опорных напряжений содер-
жит резисторную матрицу и управляется 8-разрядным регистром
DAPR (4 младших и 4 старших разрядов). С помощью этого блока
опорное напряжение внешнего высокостабильного источника J/aref
преобразуется во внутренние опорные напряжения C^ntaref и
^intagnd- Оба внутренних напряжения tAINTAREF и J/intagnd про-
граммно могут изменяться относительно внешней аналоговой «зем-
ли» C/agnd с шагом 1/16 от напряжения t^REF. Младшие разряды
регистра DARP управляют формированием внутреннего напря-
жения J/intagnd, а старшие — формированием C^ntaref- Значения
CAjntagnd и J/intaref вычисляются по формулам:
^INTAGND - ^AGND +
DAPR3...DAPR0
16
(^aref -C^agnd);
t^INTAREF
- ^AGND +
DAPR7...DAPR4
16
(VaREF -^AGNd)-
Для правильной работы АЦП необходимо, чтобы минималь-
ная разность между внутренним опорным напряжением t7INTAREF
и напряжением tAINTAGND была больше 1,25 В.
При внешнем опорном напряжении t/AREF = 5 В и J/AGnd = О В
шаг дискретности задания внутренних опорных напряжений ра-
вен 0,3125 В. Табл. 9.1 содержит значения ^jntaref и t7INTAGND для
различных кодовых комбинаций регистра DAPR.
Возможность программирования внутренних опорных напря-
жений позволяет программно задавать значение t/[NTAREF и tAINTAGND
индивидуально для каждого диапазона входных сигналов. Это зна-
Таблица 9.1
Значения внутренних опорных напряжений АЦП для различных кодов
младших и старших разрядов регистра DARP
Код(ОАРЯЗ- DAPR0 и DAPR7-DAPR4) Напряжение, В Код(ОАРЯЗ- DAPR0 и DAPR7-DAPR4) Напряжение, В
^INTAGND ^INTAREF ^tNTAGND ^4 NT AREF
0000 0 5 1000 2,5 2,5
0001 0,3125 — 1001 2,8125 2,8125
0010 0,625 — 1010 3,125 3,125
ООП 0,9375 — 1011 3,4375 3,4375
0000 1,25 1,25 1100 3,75 3,75
0101 1,5625 1,5625 1101 — 4,0625
ОНО 1,875 1,875 1110 — 4,375
0111 2,1875 2,1875 1111 — 4,6875
чит, что блок формирования опорных напряжений (встроенный
ЦАП) может обеспечить формирование эталонных напряжений
с программируемым (переменным) шагом квантования. Напри-
мер, для диапазона входных сигналов 0...5 В ошибка квантова-
ния составляет порядка 20 мВ, а для диапазона 0...3 В — 12 мВ.
Минимальная ошибка квантования обеспечивается при значении
Um < Uon= 1,25 Ви равняется величине Д= 1,25 В / 256 = 5 мВ.
Возможность достижения такой ошибки эквивалентна увеличе-
нию точности преобразования входных сигналов номинального
диапазона 0... 5 В до 10 разрядов. АЦП МК SAB80C515 обеспечива-
ет как 8-разрядное, так и 10-разрядное преобразование.
Повышение точности преобразования достигается за счет уве-
личения времени преобразования и выполняется за два последо-
вательных цикла преобразования. В первом цикле преобразования
осуществляется «грубое» измерение входного сигнала и формиру-
ется 8-битный результат, старшие четыре разряда которого поме-
щаются в четыре младших разряда регистра DAPR. При этом из-
меняется уровень внутреннего напряжения ^intagnd (^intagnd при-
ближается к CAintaref) и обеспечивается формирование необходи-
мого значения Uon для точного преобразования. При загрузке ре-
гистра DAPR результатом «грубого» измерения инициируется по-
вторное преобразование входного сигнала, в котором разность
между значением и его грубой оценкой преобразуется с уста-
новленным для этой разности новым значением Uon (с более сжа-
тым диапазоном внутренних опорных напряжений). Благодаря это-
му обеспечивается формирование более мелких ступеней сравне-
ния и более точное представления младших разрядов результата
преобразования. В результате такого двойного преобразования фор-
мируется 10-разрядный результат, четыре старших разряда кото-
рого размещаются в регистре DAPR (DAPR3 —DAPR0), а шесть
младших разрядов — в регистре ADDAT (ADDAT7—ADDAT2).
Стандартное 8-разрядное преобразование выполняется за 15 ма-
шинных циклов, 10-разрядное — за 22 — 29 машинных циклов.
В общем случае, порядок работы с АЦП сводится к выполне-
нию следующих действий:
• с помощью устройства управления задается режим работы
преобразователя (программируется бит ADM) и указывается но-
мер аналогового входа, подключаемого через мультиплексор к
входу АЦП;
• в регистр DAPR проводится запись константы, определяю-
щей задаваемый диапазон внутренних опорных напряжений (за-
пись константы в регистр DAPR запускает преобразование).
По завершению преобразования код преобразуемого напряже-
ния считывается из регистра ADDAT, при этом АЦП готов к оче-
редному преобразованию. При 8-разрядном преобразовании и зна-
чении опорного напряжения 0...5 В (данный режим задается ко-
мандой записи константы #00h в регистр DAPR) точность преоб-
разования составляет 20 мВ. Входное напряжение преобразуется в
код N в соответствии с выражением
N = 256£7BX/5.
Преобразование цифровых данных в аналоговый сигнал может
быть выполнено с помощью внешних ЦАП. Однако такой способ
преобразования требует задействования значительного количества
выходных линий параллельного порта для выдачи цифрового кода.
Более простым является способ преобразования цифровых дан-
ных в аналоговый сигнал с помощью широтно-импульсного мо-
дулятора (ШИМ) и внешнего фильтра нижних частот (ФНЧ).
ШИМ преобразует цифровой код в последовательность прямоу-
гольных импульсов с постоянным периодом следования и пере-
менной длительностью. С помощью ФНЧ сформированная после-
довательность импульсов преобразуется в выходной аналоговый
сигнал (см. подразд. 9.3.5).
9.3.5. Блок таймеров и поддержка режима
«реального времени»
Задачи управления различным оборудованием в реальном вре-
мени предопределили обязательное наличие и использование в
МК таймеров (счетчиков). С их помощью осуществляется не толь-
ко счет внешних событий, но и существенно упрощается форми-
рование типовых управляющих сигналов в функции времени, пред-
назначенных для эффективного управления внешним оборудова-
нием. Модель организации процессов реального времени с ис-
пользованием таймеров рассматривается в подразд. 10.1. В боль-
шинстве случаев таймеры обеспечивают реализацию следующих
функций:
• деление внешней или внутренней частоты;
• счет событий;
• генерация импульсов заданной длительности с программным
и (или) аппаратным запуском;
• регистрация и генерация событий;
• имитация сторожевого таймера, предназначенного для борь-
бы с программными сбоями микропроцессорной системы.
Блок таймеров (счетчиков) МК, как правило, содержит в сво-
ем составе несколько (два или больше) таймеров общего назна-
чения, сторожевой таймер WDT (Watchdog Timer), а также набор
устройств, с помощью которых реализуются функции быстрого
ввода-вывода.
Таймеры общего назначения используются для отсчета интер-
валов реального времени и привязки к нему отдельных программ-
ных событий. Обычно они реализуются на базе 16-разрядных счет-
чиков и имеют несколько программируемых режимов работы. Из-
меняя входную тактовую частоту таймера, можно задавать требу-
емую разрешающую способность (минимальный квант времени)
таймера. Упрощенная структура физической модели таймера (рис.
9.9) включает следующие основные блоки:
• 16-разрядный регистр для приема начальных значений счета;
• программно недоступный 16-разрядный счетчик TH:TL, осу-
ществляющий счет входных импульсов CLK и формирующий вы-
ходной сигнал tov;
Внутренняя
Рис. 9.9. Упрощенная структурная схема таймера
• 16-разрядный выходной буферный регистр, отображающий
текущее содержимое счетчика TH: TL.
При разрешенном счете на вход счетчика таймера TH:TL от
внешнего или внутреннего источника поступают счетные импуль-
сы, каждый из которых увеличивают содержимое TH:TL на «1».
При переполнении счетчика на выходе таймера формируется вы-
ходной сигнал тОу
Таймер имеет несколько режимов работы, обеспечивающих
реализацию различных времязадающих функций. Настройку тай-
мера на заданный режим работы осуществляют с помощью уп-
равляющих бит регистра управления (на рис. 9.9 не показан).
«Режим программируемой задержки» реализуется при однократ-
ной загрузке счетчика TH.TL данными из регистра начального
значения счета. При запуске таймера в этом режиме обеспечивает-
ся аппаратное формирование выходного импульса tov через за-
данное время.
В режиме «управляемого генератора» на выходе таймера гене-
рируются импульсы программируемой частоты. Данный режим
реализуется при использовании импульсов tov для циклической
перезагрузки счетчика TH:TL данными из регистра начального
значения счета.
В режиме «счетчика» в счетчике TH:TL осуществляется под-
счет внешних событий (входных импульсов на входе CLK). Этот
режим обеспечивается при загрузке счетчика TH :TL нулевым зна-
чением и последующим разрешением счета. Значение счетчика кон-
тролируется при чтении содержимого выходного буферного реги-
стра.
16-разрядный счетчик TH:TL не имеет непосредственной свя-
зи с внутренней шиной данных МК, а следовательно, и с его
CPU. Программирование параметров формируемых сигналов тай-
мера и чтение содержимого счетчика TH: TL осуществляется че-
рез два программно доступных буферных регистра — регистр на-
чального значения счета и выходной буферный регистр. Назван-
ные регистры обычно имеют одинаковое имя TH:TL. Это не при-
водит к ошибкам, поскольку при программном доступе к этим
регистрам исключена возможность неправильного обращения к
ним: команда записи в регистр TH:TL осуществляет пересылку
данных из CPU в регистр начального значения счета, а при вы-
полнении команды чтения содержимого TH:TL реализуется пе-
ресылка данных из выходного буферного регистра таймера в CPU.
Рассмотренные особенности организации таймера учитывается в
его программной модели. Для программиста таймер представляет-
ся в виде одного регистра TH: TL.
Блоки быстрого ввода-вывода. Практика применения МК дик-
товала необходимость использования таймеров и в качестве часов
«реального времени». Блок быстрого ввода-вывода — High Speed
Input-Output (HSIO), реализованный фирмой Intel в MK 8xC51FX,
стал первым устройством, предназначенным для регистрации вход-
ных и генерации выходных событий в реальном времени. Под со-
бытием здесь понимается изменение входного или выходного сиг-
нала на внешнем выводе МК. Блок HSIO реализуется на основе
16-разрядного таймера (счетчика), связанного с массивом про-
граммируемых счетчиков РСА (Programmable Counter Array) че-
рез модули выборки и сравнения событий.
Быстрый ввод заключается в обнаружении программируемого
события на определенном входе МК и запоминании времени его
наступления в заданной системе отсчета времени. Обычно МК
может идентифицировать одно из следующих типов событий: фор-
мирование положительного перепада входного сигнала (переход
из «О» в «1»), формирование отрицательного перепада входного
сигнала (переход из «1» в «О»), наличие любого перепада входно-
го сигнала. Время наступления события заданного вида, получен-
ное из таймера, фиксируется в одном из регистров блока РСА и
называется захватом события (capture). Захват события сопровож-
дается запросом прерывания центрального процессора на обслу-
живание высокоскоростного ввода.
В режиме высокоскоростного вывода блок HSIO осуществляет
сравнение текущего времени, формируемого таймером, с задан-
ным. В момент равенства значений обеспечивается генерация про-
граммируемого события на определенном выходе МК. Выходным
событием может быть не только внешнее, но и внутреннее собы-
тие. Внутренние события не связаны с изменением потенциала на
каком-либо выводе МК и применяются, например, для запуска
встроенного АЦП в требуемый момент времени. Важным подре-
жимом быстрого вывода является формирование ШИМ-сигналов,
рассматриваемое ниже.
В обоих режимах высокоскоростного ввода-вывода текущее зна-
чение времени (сравниваемое или регистрируемое) формируется
на выходе таймера (счетчика), который осуществляет счет вход-
ных импульсов от внутреннего генератора МК или от внешнего
источника. Все функции блока HSIO (определение момента на-
ступления внешнего события, формирование сигналов заданного
вида в требуемые моменты времени, генерирование ШИМ-сиг-
налов) выполняются на аппаратном уровне, не требуя участия
центрального процессора. Благодаря этому повышается общая
пропускная способность микроконтроллерной системы, точность
измерения и отработки сигналов и снижается время реакции МК
на внешние события, что особенно важно для систем реального
времени. Для реализации функций захвата и сравнения базовый
таймер дополняют схемами захвата внешних событий и каналами
сравнения. Рассмотрим организацию блока HSIO (рис. 9.10) и осо-
бенности его функционирования.
Устройство HSIO может работать в двух основных режимах:
захвата и сравнения. Оно имеет четыре входа захвата внешних со-
бытий и четыре канала сравнения. В состав блока HSIO кроме тай-
мера Т/С входит набор из четырех многофункциональных 16-раз-
рядных регистров ССО —ССЗ. Назначение и использование мно-
гофункциональных 16-разрядных регистров ССО — ССЗ зависит
от режима работы блока HSIO. В режиме быстрого вывода и при
формировании ШИМ-сигналов содержимое названных регистров
использует при сравнении с текущим временем, а в режиме быс-
трого ввода — в этих регистрах фиксируется время захвата. В каче-
стве входов-выходов блока HSIO обычно используют многофунк-
Рис. 9.10. Структурная схема блока HSIO
циональные выходы одного из портов МК (на рис. 9.10 выводы
ССО-ССЗ).
В режимах сравнения блока HSIO 16-разрядное значение, загру-
женное в любой регистр ССО —ССЗ, сравнивается с текущим со-
держимым регистров TH:TL таймера. В момент равенства этих
значений генерируется внутренний сигнал «compare». В зависимо-
сти от способа активизации выходного события на внешнем вы-
воде блока HSIO различают два режима сравнения: режим фор-
мирования ШИМ-сигнала и режим формирования события за-
данного вида в заданный момент времени. Выбор конкретного ре-
жима сравнения осуществляется программно. Прежде чем рассмот-
реть работу канала блока HSIO в режиме сравнения, напомним
принцип формирования ШИМ-сигналов.
ШИМ-сигналы — это сигналы с фиксированной частотой и
регулируемой скважностью (ШИМ — широтно-импульсная мо-
дуляция). Формирование ШИМ-сигналов в современных МК чаще
всего осуществляется с помощью так называемых ШИМ-генера-
торов (рис. 9.11), основными узлами которого являются таймер,
настроенный для работы в режиме программируемого делителя
частоты, регистр задания скважности, «-разрядный цифровой ком-
паратор и формирователь выходного ШИМ-сигнала.
Выходной ШИМ-сигнал генерируется на выходе формирова-
теля, который представляет собой простейший RS-триггер. При
работе таймера на выходах счетчика таймера TH :TL формируется
цифровой пилообразный сигнал. С помощью «-разрядного цифро-
вого компаратора этот сигнал сравнивается со значением, загру-
женным в регистр задания скважности, и в момент равенства
формируется сигнал тсравн, устанавливающий RS-триггер. Импульс
переполнения tOv таймера сбрасывает RS-триггер. Частота поступ-
ления импульсов tOv определяет частоту/PWM формируемого ШИ-
М-сигнала. Длительность импульса (и скважность) ШИМ-сигна-
ла определяется значением в регистре задания скважности. При
изменении содержимого этого регистра скважность формируемых
Рис. 9.11. Функциональная схема простейшего ШИМ-генератора
Рис. 9.12. Временная диаграмма работы ШИМ-генератора
ШИМ-сигналов меняется. Временная диаграмма работы ШИМ-
генератора показана на рис. 9.12.
Области применения ШИМ-сигналов весьма разнообразны —
от простого цифроаналогового преобразования, требующего для
своей работы минимального количества внешних компонент, до
прямого цифрового управления ключами силовых преобразовате-
лей для двигателей постоянного и переменного тока. Наиболее
простое и в то же время эффективное применение ШИМ-генера-
тора состоит в реализации с его помощью цифроаналогового пре-
образования без использования дорогостоящих схем ЦАП. В по-
добном преобразователе ШИМ-сигнал буферизуется повторите-
лем и фильтруется с помощью ФНЧ (активного или пассивного).
В целях уменьшения выходного сопротивления преобразователя
преобразованный непрерывный выходной сигнал может быть до-
полнительно пропущен через аналоговый повторитель на базе опе-
рационного усилителя. ЦАП на основе ШИМ-генератора (рис. 9.13)
обладает достаточно высокими точностными характеристиками,
но имеет относительно низкое быстродействие. Подобные ЦАП
удобно использовать при невысоких требованиях к быстродей-
ствию формирования аналоговых сигналов, например для выво-
да информации о значении некоторой переменной на стрелоч-
ный индикатор или для задания медленно меняющихся аналого-
вых управляющих воздействий.
Второй режим сравнения фактически является режимом быст-
рого вывода. В этом режиме схемы формирования выходного сиг-
Рис. 9.13. Схема простейшего цифроаналогового преобразователя
(ЦАП) на основе ШИМ-генератора:
ШИМ — широтно-импульсная модуляция; ФНЧ — фильтр низких частот
нала канала HSIO переконфигурируются. Они состоят из двух
тригеров-защелок, не показанных на рис. 9.10: скрытой (Shadow
Latch) и выходной (Output Latch). Защелки связаны друг с дру-
гом через вентиль, управляемый сигналом сравнения. Для фор-
мирования выходного события заданного вида пользовательская
программа должна обеспечить выполнение следующей последо-
вательности действий:
• запретить работу таймера;
• записать в выходную защелку соответствующего канала HSIO
исходное значение выходного сигнала;
• инициализировать регистр ССх (х = 0—3), задавая время вы-
ходного события;
• запрограммировать выбранный канал HSIO для работы в ре-
жиме быстрого вывода;
• записать в скрытую защелку требуемое значение выходного
сигнала.
Операция записи в скрытую защелку выполняется теми же ко-
мандами, что и установка или сброс выходной защелки, однако
после программирования режима быстрого вывода приемником
этих команд становится скрытая защелка.
После запуска таймера содержимое регистров ССх и TH: TL срав-
нивается, и в момент равенства формируется сигнал «compare», с
помощью которого требуемое значение выходного сигнала из скры-
той защелки переписывается в выходную. Рассмотренный режим
сравнения является более точным, чем непосредственное переклю-
чение вывода порта в программируемые моменты времени. Эго свя-
зано с тем, что в этом режиме для формирования выходного собы-
тия не требуется дополнительный вызов подпрограммы переклю-
чения вывода порта, на котором формируется выходной сигнал.
Режимы захвата блока HSIO обеспечивают определение мо-
мента наступления входного события заданного вида. Входное со-
бытие может задаваться программно или аппаратно. При захвате
события время его наступления фиксируется в многофункцио-
нальном регистре ССх.
Режим захвата внешнего события на входе соответствующего
канала, называется режимом быстрого ввода. В этом режиме при
поступлении внешнего события формируется внутренний сигнал
«capture», с помощью которого осуществляется перепись текуще-
го содержимого счетчика TH:TL таймера в регистр ССх (х = 0 - 3)
канала. Для фиксации момента поступления внешнего события
специальная подпрограмма не требуется, поэтому режим и назы-
вают быстрым вводом.
Режим захвата, инициируемый программно при исполнении
команды записи 8-битного значения в регистр ССх (его младшую
половину CCLx), называется режимом «чтение на лету». В этом
режиме в качестве сигнала «capture», используемого для переписи
содержимого счетчика TH:TL в регистр ССх (х = 0 - 3), выступает
внутренний сигнал записи, формируемый при выполнении ко-
манды записи в регистре CCLx. Конкретное значение пересыла-
емого байта значение не имеет. Во многих применениях только
режим «чтение на лету» обеспечивает правильное чтение 16-бит-
ного значения счетчика TH:TL таймера без остановки счета. Дей-
ствительно, несмотря на то, что содержимое таймера Т/С про-
граммно доступно, из-за 8-разрядной внутренней шины прочи-
тать 16-битное значение регистров TH:TL можно только с по-
мощью двух последовательно выполняемых команд пересылок. Од-
нако если таймер изменит свое значение между выполнением этих
команд, произойдет ошибочное чтение. Для исключения подоб-
ных ошибок и предусмотрен режим «чтение на лету».
Сторожевой таймер WDT. Для контроля правильности функ-
ционирования ПО большинство современных МК имеют в своем
составе сторожевой таймер WDT. Функция сторожевого таймера
заключается в контроле длительности х между некоторыми собы-
тиями. Если ожидаемое событие не наступит в пределах интервала
т, то таймер вызывает прерывание программы, при этом форми-
руется внутренний сигнал сброса МК и осуществляется рестарт
управляющей программы. В условиях сильных промышленных по-
мех (электромагнитных, электростатических и др.), когда возмож-
ны искажения при считывании данных, таймер WDT обеспечи-
вает защиту от нештатных ситуаций, которые трудно предусмот-
реть заранее, но которые могут сделать программу неработоспо-
собной. Примером такой нештатной ситуации может быть зависа-
ние программы вследствие ожидания события, которое по какой-
либо причине не может произойти, или зацикливание програм-
мы из-за сбоя. Таймер WDT обычно реализуется на базе 16-битно-
го счетчика, который инкрементируется с определенной часто-
той. После запуска таймера WDT возможно только его программ-
ное обнуление. Для правильного функционирования системы
пользовательское ПО должно принудительно обнулять счетчик
таймера WDT непосредственно в ходе выполнения программы,
не допуская его переполнения. Если программный сброс таймера
WDT по какой-либо причине не выполняется, то таймера WDT
переполняется и осуществляется аппаратный сброс МК, вызыва-
ющий рестарт программы.
Аппаратные средства контроля и защиты. МК, как правило, не
содержат встроенных средств тестирования внутренних устройств.
Для контроля правильности функционирования ПО, защиты внут-
ренней памяти программ, контроля допустимого уровня сниже-
ния частоты тактового генератора и прочее в составе МК могут
быть предусмотрены специальные аппаратные средства контроля
и защиты. Кроме таймера WDT, МК некоторых типов, например
8XC51GB фирмы Intel, имеют специальную схему обнаружения
падения частоты тактовых импульсов ниже минимально допусти-
мого значения. При снижении частоты ниже определенного уров-
ня такая схема вырабатывает внутренний сигнал сброса МК. Для
защиты внутренней памяти программ от несанкционированного
доступа (программного «пиратства») некоторые типы МК содер-
жат в своем составе аппаратные средства защиты программ. В об-
ласти ПЗУ таких МК размещаю^ специальные программируемые
пользователем байты шифрации, которые изначально не запрог-
раммированы (все «1»). При чтении (верификации) программного
кода процедура верификации выполняется как обычно за исклю-
чением того, что каждый считываемый байт кода выходит иск-
люченный по ИЛИ-НЕ с одним из байтов защиты. Поэтому чтобы
прочитать программный код, необходимо знать закодированные бай-
ты шифрации в их правильной последовательности. Если область
шифрации оставлена незапрограммированной, все байты защиты
имеют значение OFFh, и любой байт программного кода, исклю-
ченный по ИЛИ-HE с байтом OFFh, остается неизмененным.
Встроенная система прерываний и управление потребляемой
мощностью. Наряду с таймерами, работу встраиваемых систем уп-
равления в реальном времени поддерживает система прерываний
МК. Встроенная система прерываний позволяет отказаться от не-
прерывного контроля состояния большого количества датчиков,
требующего существенных затрат процессорного времени, и пе-
рейти к обработке значительной части информации по прерыва-
ниям. Она является универсальным средством организации управ-
ления и обеспечивает автоматический запуск различных процедур
обслуживания от внешних или внутренних устройств микроконт-
роллерной системы. Система прерываний МК реализуется с по-
мощью размещенного на кристалле контроллера прерываний. По-
следний представляет собой устройство, устанавливающее одно-
значное соответствие между входным сигналом запроса прерыва-
ния и адресом подпрограммы обработки поступившего запроса.
Особенности реализации систем прерывания рассмотрены в под-
разд. 7.2.
Для приложений, где потребление энергии критично (в боль-
шинстве случаев это устройства с батарейками, аккумуляторным
питанием), важными требованиями являются малое энергопот-
ребление и возможность программного управления потребляемой
мощностью. Для удовлетворения указанных требований СБИС со-
временных МК реализуют по КМОП-технологии, которая обес-
печивает малое потребление энергии, и используют встроенные
программно-аппаратные средства для управления режимами энер-
гопотребления.
В МК имеются два режима пониженного энергопотребления —
режим холостого хода Idle и режим микропотребления (Power
Down mode).
В режиме Idle (этот режим также называют режимом ожида-
ния) работа CPU блокируется, но работа всей внутренней и внеш-
ней периферии не запрещается. За счет прекращения работы CPU
энергопотребление уменьшается. Поскольку ко всем внутренним
периферийным устройствам продолжают поступать тактовые им-
пульсы, они могут нормально функционировать. В режиме Idle обес-
печивается нормальная работа таймеров, поддерживается работа
АЦП, при незавершенных приеме или передаче может быть про-
должена работа последовательного порта. Реагируя на входные сиг-
налы, МК в этом режиме обеспечивает захват внешних событий и
некоторые другие функции. Уменьшение энергопотребления, ко-
торого можно достигнуть в режиме Idle, зависит от числа работа-
ющей периферии. Минимум потребления достигается, если все
таймеры остановлены, АЦП и последовательный порт не работают.
В режиме микропотребления, иногда называемом режимом
выключенного напряжения питания, генератор тактовых импуль-
сов МК отключается, прекращая тем самым работу всех блоков
МК, однако память IRAM сохраняет свое содержимое, потребляя
очень маленький ток (на два-три порядка меньший, чем в рабо-
чем режиме). В отличие от режима холостого хода, в котором про-
изводительность МК снижается, но не прекращается его работа,
в режиме микропотребления работа всех блоков МК останавлива-
ется, и никакие операции не выполняются.
Завершая рассмотрение назначения и особенностей функцио-
нирования основных блоков МК, отметим следующее. Несмотря
на непрерывное развитие и появление большого числа новых МК,
функциональная организация МК практически не меняется. Тем
не менее каждое семейство МК и даже каждый МК одного семей-
ства имеют некоторые специфические характеристики и особен-
ности использования. Построение конкретных микроконтроллер-
ных систем должно выполняться в строгом соответствии с фир-
менными справочными руководствами, в которых приводятся
исчерпывающие описания каждого МК. В рамках учебника невоз-
можно привести описание известных типов МК, но в этом и нет
необходимости в виду общности подходов, применяемых при по-
строении МК разных фирм.
9.4. Характеристики распространенных семейств
микроконтроллеров
Многообразие задач, решаемых с помощью МК, позволило
сформулировать основные требования к ресурсам, размещаемым
на его кристалле, и его производительности. Удовлетворить разно-
образные требования при минимальной стоимости кристалла с
помощью одной универсальной структуры МК практически невоз-
можно. Производители предлагают широкий спектр модификаций
МК, отличающихся друг от друга пользовательскими требования-
ми, ценой и требованиями, предъявляемыми к ресурсам кристалла.
Можно выделить два больших класса задач, решаемых встраи-
ваемыми системами: управление событиями в реальном времени
и управление потоками данных. Каждый класс задач характеризу-
ется своими специфическими требованиями, которые учитыва-
ются в наборе функций, реализуемых на кристалле МК, а также в
его системе команд. К первому классу относятся задачи, требую-
щие быстрой реакции микроконтроллерной системы на измене-
ние внешних условий (сигналы технологических датчиков, изме-
нение параметров и пр.). Эти задачи требуют применения МК с
встроенными памятью программ и памятью данных, большим
объемом интегрированной на кристалле периферии, большим
числом портов ввода-вывода для подсоединения датчиков и ис-
полнительных устройств, системой команд, включающей бито-
вые операции. Многие из встраиваемых систем управления, такие
как системы управления технологическим оборудованием и пе-
риферийными устройствами ВМ, системы управления устройства-
ми промышленной автоматики, а также распределенные систе-
мы, принадлежат к системам первого класса.
Ко второму классу задач относятся задачи, требующие быст-
рой обработки значительных объемов информации, например за-
дачи, характерные для систем управления бортовым оборудова-
нием, систем обработки видеоизображений и др. В таких систе-
мах, как правило, должен использоваться встроенный высоко-
производительный 32- или 64-разрядный процессор, выполня-
ющий множество различных вычислительных операций, в том чи-
сле операции с плавающей точкой. Встраиваемыми 16-разрядны-
ми и 32-разрядными МК с PC-подобной архитектурой являются
МК 80С186, 386ЕХ и др.
Для характеристики современных МК используют различные
классификационные признаки, важнейшими из которых являют-
ся тип ЦП, его производительность и разрядность обрабатыва-
емых данных, принцип организации и объем адресуемой памяти,
состав внутренней периферии, число выводов МК. Основные ха-
рактеристики МК обусловливают его функциональные возмож-
ности при решении конкретных пользовательских задач. В насто-
ящее время в дополнение к традиционно используемым 8-разряд-
ным МК общего назначения активно развиваются два направле-
ния в развитии микроконтроллерной элементной базы. Они ори-
ентированы на существенное расширение спектра возможных при-
менений МК во встраиваемых системах управления. Первое на-
правление характеризуется развитием МК для сложных встраива-
емых систем управления. В таких системах функциональная слож-
ность решаемых задач может быть сопоставима с возможностями
ПК. Использование 8-разрядных МК с их производительностью,
вычислительной мощностью и объемом встроенной периферии
для таких систем может оказаться неэффективным. Это направле-
ние связано с усложнением МК, применением 16- и 32-разряд-
ных МК, встраиванием дополнительных аппаратных ресурсов. Вто-
рое направление, напротив, направлено на некоторое «упроще-
ние» функциональных возможностей МК. Для некоторых объек-
тов при несложных алгоритмах управления требуется не высокая
производительность и большое число устройств внутренней пери-
ферии, а малое энергопотребление и компактные массогабарит-
ные характеристики. Более простые МК характеризуются умень-
шенным объемом внутренней памяти программ (1 — 2 Кбайт), со-
кращенным числом портов и выводов микросхемы. Подобные МК
находят применение в тех случаях, когда требуется обеспечить
небольшие габариты и низкую стоимость встраиваемых устройств
управления несложными объектами. Ниже рассматриваются ха-
рактеристики распространенных семейств МК. Цель такого рас-
смотрения — наглядно продемонстрировать возможности совре-
менных МК и помочь разработчикам микроконтроллерных си-
стем ориентироваться в многообразии типов МК.
4-разрядные МК. Эти МК являются самыми простыми и деше-
выми устройствами для встраиваемых применений. Они предназ-
начены для замены несложных схем на «жесткой» логике. Типи-
чными характеристиками 4-разрядных МК являются:
• объем внешней памяти IROM: < 1 Кбайт;
• объем внутренней памяти IRAM: 16—64 ячеек памяти (4-раз-
рядные);
• число команд: 30 — 50;
• тактовая частота: 100 КГц — 1 МГц;
• состав внутренней периферии: 2 — 4 параллельных порта
4-разрядных, иногда контроллер жидкокристаллического инди-
катора.
4-разрядные МК широко применяются в электронных часах и
игрушках, в простых калькуляторах и несложных устройствах бы-
товой техники. Подобные МК выпускаются различными фирма-
ми, в том числе и в России (МК серии КР145).
8-разрядные МК. Данные МК занимают лидирующее положе-
ние на мировом рынке микроконтроллерной техники. Объем про-
даж 8-разрядных МК примерно в 2,5 раза превышает объем про-
даж ближайших конкурентов 16-разрядных МК. Наиболее распро-
страненными 8-разрядными МК являются МК семейства MCS-51,
получившие свое название от МК 8051, выпущенного фирмой
Intel в 1980 г. Удачный набор внутренней периферии, возмож-
ность выбора внешней или внутренней памяти программ и отно-
сительно невысокая стоимость обеспечили повсеместное исполь-
зование МК этого семейства для решения самых разнообразных
задач. Основные характеристики МК семейства MCS-51 представ-
лены в табл. 9.2.
Важную роль в достижении высокой популярности МК семей-
ства МК MCS-51 сыграла открытая политика фирмы Intel, на-
правленная на широкое распространение лицензий на ядро МК
8051 среди ведущих полупроводниковых компаний мира. На се-
годня существует более 200 модификаций МК семейства MCS-51,
выпускаемых почти 20 компаниями. Эти модификации включают
Таблица 9.2
Характеристика 8-разрядных МК семейства MCS-51
Тип Макси- мальная тактовая частота, МГц Внешняя память (ROM/ EPROM), Кбайт Внутренняя память, байт Число таймеров, ед. Число парал- лельных портов, ед.
8хС51ВН 24 4 128 2 4
8хС52 24 8 256 3 4
8хС54 33 16 256 3 4
8хС58 33 32 256 3 4
8xC51FA 24 8 256 3+РСА 4
8xC51FB 24 16 256 3+РСА 4
8xC51FC 24 32 256 3 + РСА 4
8xC51GB 16 8 256 3 + 2PCA + WDT 6
8xC152JA 16 8 256 2 5
SAB 80C515 12 8 256 3+PCA + WDT 6
AT89 C55 12-24 флэш-па- мять, 20 256 3 4
Примечание. Все МК семейства содержат в своем составе асинхронный
последовательный приемопередатчик UART, кроме того, в составе МК 8xC51GB
и SAB 80С515 имеется 8-канальный АЦП.
в себя кристаллы с широчайшим спектром ресурсов: от 20-вывод-
ных устройств с одним таймером и программной памятью 1 Кбайт
до сложнейших 100-выводных кристаллов с 10-разрядным АЦП,
массивами таймеров (счетчиков), аппаратным 16-разрядным ум-
ножителем и 64 Кбайт программной памяти на кристалле. Ряду
фирм при внедрении современных технологических достижений
удается создать х51-совместимые МК с более высокими техни-
ческими характеристиками и низкой стоимостью. В частности,
благодаря использованию современной технологии производства
IROM, реализованного в виде электрически перепрограммиру-
емой флэш-памяти, разработчикам фирмы Atmel удалось отказать-
ся от прозрачного окна в корпусе МК со стиранием ультра фиале-
товым облучением и существенно снизить стоимость х51-совме-
стимых МК семейства АТ89 (см. табл. 9.2).
Некоторым недостатком МК семейства MCS-51 является их
относительно невысокая производительность (на выполнение од-
ной команды в среднем тратится 12 тактов частоты синхрониза-
ции). По этой причине для приложений, требующих повышенно-
го быстродействия и большей вычислительной мощности, часто
приходится использовать более производительные МК, например
RISC-контроллеры. Для устранения отмеченного недостатка раз-
работчики фирм Intel и Philips разработали МК семейства MCS-
251 с новой архитектурой, которая обеспечивает аппаратную и
программную совместимость с разработками на МК семейства
MCS-51, но обладает более высокой производительностью. Ос-
новными характеристиками МК семейства MCS-251 являются:
• 24-разрядное линейное адресное пространство объемом
16 Мбайт;
• регистр-регистровая архитектура;
• аппаратная реализация очереди команд;
• расширенный набор команд, включающий 16-битные ариф-
метические и логические команды;
• выполнение простых команд за два такта;
• расширенный стек объемом до 64 Кбайт.
Система команд МК семейства MCS-251 построена на базе двух
наборов инструкций: набора команд MCS-51 и набора расширен-
ных команд. Перед использованием МК семейства MCS-251 его
необходимо сконфигурировать путем инициализации однократно
программируемых конфигурационных регистров. Конфигурация
МК определяет, какой из наборов команд станет активным после
включения питания. Однако и после конфигурации сохраняется
возможность использования обоих наборов команд, но это требу-
ет специальных программных приемов.
8-разрядные МК с RISC CPU. Ряд производителей современ-
ных МК выпускают высокопроизводительные МК с RISC ЦПУ.
Напомним, что система команд RISC-процессора объединяет толь-
ко простые команды, выполняемые за один такт. Основным выиг-
рышем от такого подхода является существенное упрощение ап-
паратной реализации CPU и возможность повышения частоты ра-
боты и производительности.
8-разрядные MKAVR фирмы Atmel. AVR архитектура характери-
зуется следующими особенностями:
• мощный двухадресный гарвардский RISC процессор с раз-
дельным доступом к памяти программ и памяти данных;
• одинаковый размер команд (команды являются 16-разряд-
ными);
• наличие внутренней памяти программ, реализованной в виде
флэш-памяти;
• выполнение большинства команд МК за один машинный такт
с одновременным исполнением текущей и выборкой следующей
команды (реализуется конвейерная обработка команд и время вы-
полнения большинства команд при тактовой частоте 20 МГц со-
ставляет 50 нс);
• наличие регистрового файла, объединяющего 32 регистра,
каждый из которых напрямую связан с АЛУ (за один такт из реги-
стрового файла выбираются два операнда, выполняется операция
и результат возвращается в регистровый файл);
• производительность МК AVR существенно выше производи-
тельности МК семейства MCS-51, даже при выполнении слож-
ных операций, реализуемых тремя простыми RISC-командами (на-
помним, что CISC-команды МК семейства MCS-51 выполняют-
ся за 12 машинных тактов).
МК AVR разработаны в соответствии с принципами построе-
ния языка «Си». Благодаря этому компиляция исходных текстов,
написанных на «Си», осуществляется быстро и дает эффектив-
ный код.
Важной особенностью МК AVR является объединение в них
флэш-технологии при реализации памяти IROM со стандарт-
ным последовательным интерфейсом SPL Такое решение обес-
печило возможность многократно модифицировать программный
код во внутренней памяти программ в уже изготовленной систе-
ме пользователя. Число циклов перезаписи памяти IROM состав-
ляет не менее 103. Два программируемых бита секретности позво-
ляют защитить память программ от несанкционированного счи-
тывания. Кроме внутреннего ОЗУ объемом 128—512 байт, все МК
AVR имеют блок энергонезависимой электрически стираемой па-
мяти данных. Память EEPROM объемом 64—512 байт. Использо-
вание данного типа памяти удобно для хранения промежуточных
данных, различных констант и таблиц перекодировок. Память
EEPROM может быть загружена извне как через SPI-интерфейс,
так и с помощью обычного программатора. Число циклов переза-
писи составляет не менее 105.
MK AVR объединены в три подсемейства — Mega AVR (пре-
фикс ATmegaXXX), Classic AVR (префикс AT90SXXX) и Tiny AVR
(префикс ATtinyXXX). МК всех подсемейств программно совмес-
тимы снизу вверх и имеют единую базовую систему команд.
МК Mega AVR — самые мощные МК семейства. Они содержат
наибольший объем встроенной памяти (до 128 Кбайт), наиболее
полный набор устройств встроенной периферии и имеют наи-
большее количество выводов (64 вывода).
МК Classic AVR исторически были первыми МК семейства.
Состав внутренней периферии и объем встроенной памяти этих
МК, как и число выводов микросхемы, варьируется зависимости
от модификации. Большинство МК этого семейства содержат па-
мять программ типа флэш-память объемом от 1 до 8 Кбайт, внут-
реннюю память данных SRAM 128 — 512 байт и дополнительно к
ней перепрограммируемую память EEPROM объемом 64—512 байт.
Практически все МК подсемейства за исключением 8-выводных
малюток содержат два таймера (8-битный и 16-битный с форми-
рователем ШИМ и схемами сравнения), асинхронный (UART) и
синхронный (SPI) последовательные порты, аналоговый компа-
ратор. В последних моделях МК Classic AVR, например AT90S8535,
традиционный набор внутренний периферийных устройств рас-
ширен за счет включения 10-разрядного АЦП с мультиплексором
на восемь каналов и 8-битного таймера (дополнительно к двум
имевшимся). Этот таймер поддерживает работу блока быстрого
ввода-вывода, обеспечивая формирование ШИМ-сигналов и ре-
ализуя функции захвата (сравнения). Главной особенностью тай-
мера является то, что он может работать в асинхронном от всей
системы режиме, используя дополнительный источник внеш-
ней частоты 32,768 кГц, что позволяет вести отсчет реального
времени.
МК Tiny AVR — представляют собой наиболее простые и де-
шевые кристаллы семейства стоимостью около одного доллара. Они
выпускаются в 8-выводном корпусе и способны работать от ис-
точника пониженного напряжения 2,7 В. Несмотря на малые мас-
согабаритные характеристики и энергопотребление, МК Tiny AVR
содержат в своем составе полный набор периферийных устройств.
Распространенным семейством 8-разрядных RISC-контролле-
ров являются МК PlCmicro фирмы Microchip Technology Inc. Из важ-
нейших архитектурных особенностей данного семейства МК можно
выделить следующие: Гарвардская архитектура с раздельным до-
ступом к памяти программ и памяти данных, одинаковый формат
всех команд, наличие очереди команд, конвейерная обработка.
Для выполнения одной команды требуется восемь тактов (два ма-
шинных цикла), но благодаря конвейерной обработке, при кото-
рой одновременно с исполнением текущей осуществляется вы-
борка следующей команды, результаты исполнения большинства
команд МК PlCmicro формируются в каждом машинном цикле
длительностью четыре такта. Все МК PlCmicro имеют внутрен-
нюю память программ. В составе семейства имеются модели с ма-
сочной, однократно программируемой и многократно програм-
мируемой (с ультрафиалетовым стиранием и флэш) памятью. С по-
мощью бита секретности имеется возможность защитить память
программ от несанкционированного считывания. Бит секретности
устанавливается после записи программного кода в ПЗУ. Попытка
чтения ПЗУ с установленным битом секретности приводит либо
к чтению зашифрованной информации (МК Р1С16С5х), либо к
полному запрету считывания (PIC16C84).
Встроенный тактовый генератор, имеющий несколько режи-
мов работы, обеспечивает работу МК PlCmicro в широком диа-
пазоне частот (от 32 кГц до 33 МГц). Напряжение питания отдель-
ных моделей МК может варьироваться от 2 до 6 В. Отличительной
характеристикой этих МК является низкое энергопотребление,
которое существенно зависит от частоты работы МК. Например,
МК Р1С16С5х на частоте 32 кГц потребляет всего 12 мкА, а на
частотах 4 и 20 МГц — 2 и 9 мА соответственно. В режиме пони-
женного энергопотребления ток уменьшается до 0,25 мкА.
В зависимости от состава внутренних периферийных устройств
МК PlCmicro подразделяются на несколько программно совмес-
тимых семейств. Полное количество моделей МК PlCmicro состав-
ляет порядка 500. Родоначальником семейства являются МК
Р1С16С5х, оперирующие 12-битовыми командами и имеющие ми-
нимальную конфигурацию (8-битный таймер, сторожевой таймер
и 1 — 3 двунаправленных порта ввода-вывода). МК базового се-
мейства выпускаются в 18-, 20- и 28-выводных корпусах. Макси-
мальная производительность МК базового семейства равна 5 MIPS.
МК-«малютки» (8-выводные) Р1С12Схх имеют структуру, подоб-
ную базовой. В них связь с внешним «миром» осуществляется с
помощью шести линий ввода-вывода. Развитием базового семей-
ства являются МК Р1С16Схх с расширенным составом внутрен-
ней периферии. Отдельные модели этого семейства могут содер-
жать двунаправленные порты ввода-вывода, дополнительные тай-
меры (счетчики), последовательные порты, поддерживающие стан-
дарты последовательной связи (I2C, SPI, USART), аналоговый
компаратор и 8-разрядный АЦП, блоки быстрого ввода-вывода,
контроллер жидкокристаллического индикатора, сторожевой тай-
мер и т. д. В новых моделях МК этого семейства используется флэш-
память программ и добавлена электрически перепрограммиру-
емая память данных EEPROM.
Наиболее популярным и перспективным семейством МК
PlCmicro является семейство МК Р1С18Схх. При его разработке
основное внимание было уделено оптимизации системы команд
с целью обеспечить удобство компиляции программ, написанных
на языках высокого уровня, в частности на языке «Си». По срав-
нению с базовым МК в структуру МК Р1С18Схх внесены значи-
тельные изменения:
• максимальная тактовая частота 40 МГц;
• максимальная производительность 10 MIPS;
• адресное пространство памяти программ расширено до
2 Мбайт;
• доработан аппаратный интерфейс внешней памяти программ;
• расширена система команд;
• увеличено число периферийных устройств на кристалле.
МК содержат аппаратный умножитель, реализующий умноже-
ние байт в течение машинного цикла, и 10-разрядный многока-
нальный АЦП. В некоторых моделях может использоваться допол-
нительный USART с поддержкой протокола IEEE-485 или добав-
ляется межконтроллерный интерфейс сетевой поддержки CAN.
16-разрядные МК семейства MCS-96. Разработаны фирмой Intel
в конце 80-х гг. XX в., ориентированы на решение задач управле-
ния событиями (процессами) в реальном времени. В состав семей-
ства входит более 30 моделей МК, имеющих одинаковую базовую
структуру и программно совместимую систему команд. Семейство
МК MCS-96 динамически развивается, улучшаются его характе-
ристики. МК этого семейства фактически стали индустриальным
стандартом для 16-разрядных встроенных систем управления — в
них обеспечивается сочетание высоких технических показателей и
экономической эффективности. За годы развития адресное про-
странство памяти увеличилось с 64 Кбайт до 1 Мбайт (семейство
NT) и даже 6 Мбайт (семейство К17), тактовая частота повыси-
лась с 10 до 50 МГц, производительность возросла в 16 раз, при
этом улучшение характеристик достигнуто при значительном сни-
жении стоимости МК.
МК семейства MCS-96 имеют классическую структуру МК (см.
рис. 9.3). Основными блоками МК являются ЦПУ, память про-
грамм (внутренняя и (или) внешняя), память данных (внутрен-
няя, а при необходимости и внешняя), а также набор перифе-
рийных устройств, размещенных на кристалле вместе с ЦПУ.
ЦПУ МК реализовано в соответствии с так называемой ре-
гистр-регистровой архитектурой. В ней любые ячейки регистрового
ЗУ могут рассматриваться и как операнды-источники, и в каче-
стве приемника результата операции АЛУ. Такую архитектуру ЦПУ
в отличие от архитектуры с одним регистром результата называют
многоаккумуляторной. Важной особенностью регистр-регистровой
архитектуры является возможность использования 3-адресных ко-
манд логических и арифметических операций. Благодаря этому
необходимость в дополнительных операциях пересылки данных
из аккумулятора и обратно отпадает и производительность про-
цессора возрастает. В системе команд МК семейства MCS-96
3-адресными являются некоторые команды арифметических опе-
раций. Наряду с 3-адресными, в регистр-регистровой архитектуре
МК семейства MCS-96 широко используются 2-адресные коман-
ды, в которых адрес одного из операндов одновременно является
адресом приемника результата. МК семейства MCS-96 обеспечи-
вают выполнение до 2 млн простых команд в секунду, при этом
по сравнению с одноадресными командами семейства MCS-51 ко-
манды семейства MCS-96 являются значительно более мощными.
Объем регистрового файла RRAM в различных МК семейства
MCS-96 варьируется и может составлять 232, 488 байт или 1000
байт. При обращении к ячейкам RRAM применяется прямая ре-
гистровая адресация. Прямой доступ к ячейкам RRAM обеспечи-
вает простоту программирования, эффективный код и быстрое
выполнение. Ячейки RRAM используют только для хранения дан-
ных. В дополнение к ячейкам (регистрам) RRAM регистровый файл
МК включает регистры специальных функций SFR, предназна-
ченные для управления работой и отображения состояния пери-
ферийных устройств, размещенных на кристалле МК.
МК семейства MCS-96 реализованы в соответствии с Прин-
стонской (фон неймановской) архитектурой. Они имеют единое
адресное пространство памяти для команд и данных. Внутренняя
память программ IROM доступна только для чтения. У МК разных
типов объем памяти IROM может составлять 8, 12, 16, 24 или 32
Кбайт 8-разрядных слов, при этом некоторые модификации МК
могут не содержать внутренней памяти программ. В памяти IROM
имеется область, используемая для хранения векторов прерыва-
ний, ключа защиты и некоторых других специальных кодов. Для
размещения памяти программ также может использоваться вне-
шняя память. Максимальный суммарный объем внешней и внут-
ренней памяти (без регистрового запоминающего устройства) у
МК большинства типов составляет 64 Кбайт. Объем адресуемой
памяти в МК семейства NT может достигать 1 Мбайт. МК се-
мейств KR и NT дополнительно содержат внутреннюю память
IRAM, в которой могут хранится как данные, так и команды.
Емкость памяти IRAM в зависимости от типа МК может состав-
лять 128, 256 или 512 байт. При использовании памяти IRAM для
размещения команд программы возможна модификация програм-
мы в процессе ее выполнения и, кроме того, фрагменты про-
граммы в памяти IRAM выполняются быстро, поскольку память
IRAM имеет 16-разрядный интерфейс. В задачах с циклическим
выполнением небольших фрагментов кода использование памяти
IRAM может существенно повысить скорость выполнения про-
грамм, при этом основная программа по-прежнему может разме-
щаться в относительно «медленной» 8-разрядной памяти IROM.
ЦПУ обращается к памяти с помощью размещенного на крис-
талле контроллера памяти, содержащего 4-байтную очередь ко-
манд. При обращении к внешней памяти контроллер памяти уп-
равляет внешней шиной, ширина которой может динамически
переключаться с 8-разрядной на 16-разрядную.
В состав внутренней периферии МК семейства MCS-96 входит
классический набор периферийных устройств типового МК:
• набор из 6 —8 параллельных портов ввода-вывода, два из ко-
торых (РЗ и Р4) могут использоваться для организации внешней
мультиплексируемой 16-разрядной шины адрес (данные) (отдель-
ные выводы других портов, наряду со стандартным вводом-выво-
дом, могут выполнять альтернативные функции ввода-вывода сиг-
налов управления внутренней периферией);
• многоканальный АЦП, преобразующий аналоговые входные
сигналы напряжения в 8- или 10-разразрядный двоичный код;
• два 16-разрядных таймера (счетчика) (кроме функций счета
внешних событий и формирования программируемых задержек,
таймеры используются блоками быстрого ввода-вывода для гене-
рации выходных событий в заданные моменты времени и регист-
рации входных событий);
• формирователь ШИМ-сигналов;
• дуплексный последовательный порт (ряд моделей семейства,
наряду с универсальным синхронно-асинхронным приемопере-
датчиком SP, содержат в своем составе дополнительный синх-
ронный последовательный порт SSIO, предназначенный для од-
новременной двунаправленной связи двух МК или устройств, со-
держащих SSIO-порт);
• развитая система прерываний.
В МК некоторых типов для обслуживания прерываний, наряду
с типовым программируемым контроллером прерываний, исполь-
зуется контроллер прерываний PTS (Peripheral Transaction Server),
обслуживающий прерывания на микропрограммном уровне. Вы-
полнение микропрограмм-обработчиков запросов прерываний
совмещается во времени (фактически чередуется) с выполнени-
ем основной программы. Этим обеспечивается высокая скорость
обслуживания прерываний. Контроллер PTS может выполнять от-
дельные и групповые пересылки 8- и 16-разрядных слов данных
между любыми областями памяти, управлять многоканальным
АЦП, генерировать ШИМ-сигналы.
МК подсемейства MCS-296. До средины 90-х гг. XX в. для циф-
ровой обработки сигналов в большинстве случаев применялись
специализированные МП — цифровые сигнальные процессоры
DSP. При построении встраиваемых систем управления, выпол-
няющих цифровую обработку сигналов, существенной особенно-
стью является то, что такие системы нельзя реализовать ни от-
дельным МК с большим набором периферийных устройств, ни
отдельным сигнальным процессором. Использование первых для
подобных задач оказывается неэффективным, поскольку их сис-
тема команд мало пригодна для специфики цифровой обработки
сигналов, а процессоры DSP не содержат в своем составе необхо-
димого набора внутренней периферии. Как правило, подобные
системы строились как 2-процессорные системы. В них МК вы-
полнял обработку событий в реальном времени, а дополнитель-
ную цифровую обработку сигналов реализовывал процессор DSP.
По мере развития микроэлектроники стала возможна интеграция
функций этих процессов в одном кристалле. В 1996 г. фирма Intel
предложила 16-разрядный МК с конвейерной архитектурой
80296SA, который имеет высокую производительность и содер-
жит встроенные средства цифровой обработки сигналов. В каче-
стве отличительных характеристик МК подсемейства MCS-296
можно отметить:
• увеличение производительности ЦПУ;
• наличие аппаратных блоков умножения и деления;
• расширение системы команд МК семейства MCS-96 специ-
альными командами цифровой обработки сигналов.
Повышение производительности ЦПУ достигается за счет со-
кращения времени выборки команд из памяти и их конвейерной
обработки. Выборка команд и их выполнение реализуются разны-
ми блоками. При предварительной выборке команд из памяти они
размещаются в специальной очереди длиной 10 байт. В ходе вы-
полнения программы процессор практически не тратит дополни-
тельного времени на считывание команд из памяти, выбирая тре-
буемую команду из очереди. Выборка операндов из памяти более
приоритетна по сравнению с выборкой команд. Конвейер испол-
нения команд (4-ступенчатый) позволяет одновременно выпол-
нять четыре команды.
Аппаратные блоки умножения и деления позволяют значи-
тельно сократить время исполнения распространенных операций
цифровой обработки сигналов, например умножения с накоп-
лением.
В целом МК подсемейства MCS-296 обеспечивают в одном ус-
тройстве преимущества относительно дешевых МК с большим ко-
личеством интегрированных на кристалле периферийных устройств
и DSP-процессоров среднего быстродействия, предоставляя в рас-
поряжение пользователей мощное средство, способное решать
широкий спектр задач. В табл. 9.3 приведены основные характери-
стики наиболее популярных МК семейства MCS-96.
32-разрядные МК i386SX. МК 1386ЕХ (32-разрядные) фирмы
Intel предназначены для решения задач быстрой обработки зна-
чительных объемов информации. В своем составе они содержат вы-
сокопроизводительный 32-разрядный МП, подобный МП i386SX,
и уникальный набор периферии, обеспечивающий DOS-совме-
стимость с ПК PC/AT. При сбросе МК i386EX переводится в ре-
жим, в котором все внутренние периферийные устройства имеют
Таблица 9.3
Характеристика 16-разрядных МК семейства MCS-96
Обозначение Такто- вая часто- та, МГц Быст- родей- ствие, MIPS Память прог- рамм IROM, Кбайт Регист- ровый файл RRAM, байт Допол- нитель- ная па- мять IRAM, байт Линия ввода- вывода, ед.
Под- семейство Тип
ВН 8X96 ВН 12 1 8 232 — 48
кв 8ХС196КВ 16 2 8 232 — 48
кв 8ХС198 16 2 8 232 48
КС 8ХС196КС 20 2,5 16 488 — 48
8XC196KD 20 2,5 32 1000 — 48
KR 8XC196KR 16 2 16 488 256 56
8XC196KQ 16 2 12 360 128 56
8XC196JR 16 2 16 488 256 41
8XC196JQ 16 2 12 360 128 41
мс 8ХС196МС 16 2 16 488 — 53
8XC196MD 16 2 16 488 — 64
8ХС196МР 16 2 32 744 256 50
NT 8XC196NT 20 2,5 32 1000 512 56
8XC196NP 25 3 4 1000 — 56
8XC196NU 50 6 — 1000 — 32
MCS-296 8XC296SA 50 16 2 512 2048 32
Примечание. Все МК семейства содержат в своем составе два таймера
(счетчика) и последовательный порт SP. МК подсемейства KR и МК 8XC196NT
содержат два последовательных порта SP и SSIO. Число программируемых бло-
ков быстрого в МК разных типов варьируется от 6 до 10. Число каналов АЦП в
большинстве типов МК равно 8. МК семейств NT и MCS-296 не содержат АЦП.
Контроллером прерываний PTS оснащены все модификации, кроме МК подсе-
мейств ВН и КВ, а также МК 8XC296SA.
адреса ячеек и структуру прерываний, идентичные спецификаци-
ям шины ISA. При необходимости МК i386EX допускает программ-
ное изменение адресации периферийных устройств. Поддержка
DOS-совместимости обеспечивает быструю разработку и внедре-
ние встраиваемых высокопроизводительных 32-разрядных МК.
Основные особенности архитектуры МК i386EX следующие:
• высокопроизводительное 32-разрядное ЦПУ с частотой до
25 МГц;
• раздельные шины адреса и данных;
• 4 Мбайт адресное пространство памяти;
• 64 Кбайт адресное пространство ввода-вывода;
• совместимость адресов портов ввода-вывода и прерываний с
PC/AT;
• высокопроизводительный контроллер ПДП (два канала);
• два асинхронных последовательных порта UART;
• дуплексный синхронный последовательный порт;
• два режима пониженного энергопотребления;
• режим системного управления SMM;
• три программируемых таймера (счетчика);
• сторожевой таймер;
• три порта ввода-вывода параллельной информации;
• устройство управления регенерацией динамической памяти
DRAM;
• отсутствие встроенной памяти программ.
Более полно с характеристиками и особенностями работы МК
можно познакомиться в специальной литературе и фирменных
описаниях разработчиков МК.
Контрольные вопросы
1. Рассмотрите общую структуру и состав типовой структуры управле-
ния. Перечислите отличительные характеристики микропроцессорных
реализаций цифровых регуляторов.
2. Рассмотрите структурную схему МК, его состав и назначение функ-
циональных устройств.
3. Какие ЦПУ используются в современных МК? Укажите их особен-
ности по сравнению с ЦПУ ВМ общего назначения.
4. Чем отличается Гарвардская архитектура ВМ от Принстонской? Ука-
жите преимущества и недостатки названных архитектур.
5. Рассмотрите организацию памяти микроконтроллерных систем,
состав и назначение отдельных областей внутренней памяти МК. Каковы
особенности подключения внешней памяти?
6. Охарактеризуйте назначение и состав внутренних периферийных
устройств МК.
7. Перечислите состав встроенных средств МК для ввода-вывода дис-
кретных сигналов. Укажите особенности встроенных параллельных пор-
тов ввода-вывода. Как реализуется обмен данными с удаленными датчи-
ками и исполнительными устройствами в микроконтроллерных систе-
мах?
8. Укажите состав и назначение основных блоков функциональной
схемы АЦП. При наличии программируемого формирователя внутрен-
них эталонных напряжений за счет чего обеспечивается повышение то-
чности цифроаналогового преобразования?
9. Укажите назначение и функции, реализуемые таймерами общего
назначения. Рассмотрите особенности функционирования таймеров в
различных режимах.
10. Рассмотрите назначение и функции, реализуемые сторожевым тай-
мером WDT.
11. Рассмотрите назначение, особенности организации и использова-
ния блоков быстрого ввода-вывода.
12. Рассмотрите работу блока быстрого ввода-вывода в режиме «срав-
нение» при формировании ШИМ-сигналов. Поясните, каким образом с
помощью ШИМ-сигналов реализуют цифроаналоговое преобразование.
13. Рассмотрите работу блока быстрого ввода-вывода в режиме «за-
хват». Сравните быстрый ввод с программным способом определения
момента наступления входного события.
14. Укажите особенности и характеристики МК AVR.
15. Укажите особенности и характеристики МК семейства MCS-251.
16. Укажите особенности и характеристики МК семейства PlCmicro.
17. Укажите особенности и характеристики МК семейства MCS-296.
Глава 10
ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ ПАРАЛЛЕЛЬНОЙ
ОБРАБОТКИ ДАННЫХ
10.1. Параллельная обработка как архитектурный способ
повышения производительности
Производительность — важнейший показатель ВС. Увеличение
требований к производительности постоянно опережает возмож-
ности вычислительных систем. Поэтому задачи повышения про-
изводительности находятся в центре внимания исследователей и
разработчиков средств и систем вычислительной техники.
Имеются три метода, обеспечивающих увеличение произво-
дительности систем: совершенствование элементной базы, струк-
турные и математические методы. Совершенствование элемент-
ной базы позволяет увеличивать тактовую частоту работы уст-
ройств и систем, интегрировать в одном кристалле процессор,
память и часть устройств ввода-вывода, увеличивать разрядность
шин, памяти и операционных устройств, использовать внутри
кристалла более совершенные структуры устройств. Структурные
методы направлены на использование методов параллельной
обработки данных, что требует такой организации ВС, когда
параллельно (одновременно) выполняется большое число пре-
образований. Математические методы связаны с созданием но-
вых вычислительных методов решения классов задач, допускаю-
щих распараллеливание вычислительных процессов. Для реали-
зации потенциально достижимого уровня производительности
требуются согласованные усилия математиков и разработчиков
аппаратного обеспечения, системного ПО, интегральных мик-
росхем [8].
Параллельная обработка может быть организована на несколь-
ких уровнях организации ВС, но в первую очередь она связана с
применением архитектур с несколькими процессорами. Можно
отметить четыре основных преимущества параллельных архитек-
тур:
1. Применение мультипроцессорных архитектур — это един-
ственный способ построения наиболее высокопроизводительных
ВС. Построив даже самый мощный процессор для данного уровня
развития вычислительной техники, можно еще более увеличить
производительность, объединив в единую систему несколько про-
цессоров.
2. Отношение стоимости к производительности при требова-
нии высокой производительности у мультипроцессорных систем
ниже, чем у однопроцессорных. Рассмотрим этот вопрос более
подробно. Очевидно, что повышение производительности в рам-
ках одной архитектуры, как для процессора, так и для ВС, пост-
роенной на его основе, связано с повышением стоимости. Функ-
циональную зависимость между этими показателями устанавли-
вает так называемый закон Гроша:
И = 1/Т = ЛС2,
где V — производительность; Т — время решения задачи; к —
константа, зависящая от архитектуры, элементной базы, класса
задач, метода решения; С — стоимость.
Этот закон основан на статистических данных и известен с
ранних этапов развития вычислительной техники. Согласно это-
му закону после разработки новой архитектуры и создания опыт-
ного образца экономически целесообразно вкладывать средства
в улучшение ее реализации за счет совершенствования элемент-
ной базы, технологии изготовления и внесения некоторых не-
принципиальных изменений в структуру в целях повышения бы-
стродействия. Из графика (рис. 10.1), иллюстрирующий закон Гро-
ша (кривая 7) следует, что закон справедлив в определенных
границах (между точками а и Ь). Начиная с точки b эффект от
усовершенствований снижается и требуется внесение принци-
пиальных изменений, т.е. разработка новой архитектуры. На рис.
10.1 приведена также кривая ценообразования 2. Разность абс-
цисс между точками этих кривых характеризует прибыль. Обла-
сти I, II и III соответствуют млад-
шим, средним и старшим моделям
в рамках одной архитектуры. Наи-
большую прибыль с учетом массо-
вости производства обычно прино-
сят средние модели. Приведенные
кривые качественно характеризуют
процесс развития архитектур. Ана-
логичные зависимости существуют
для однопроцессорной и мульти-
процессорной систем (рис. 10.2).
Только ось абсцисс теперь соответ-
ствует производительности V, а ось
ординат — стоимости С. Для одно-
процессорной системы повышение
производительности с момента,
когда возможности архитектуры ис-
черпаны, неэффективно (на рисун-
Рис. 10.1. Зависимость производи-
тельности (V) от стоимости (С):
1 — закон Гроша; 2— кривая це-
нообразования; I, II, III — млад-
шие, средние и старшие модели
Рис. 10.2. Зависимость стоимости (С) для однопроцессорных и
мультипроцессорных ВС от их производительности (К):
I—III — зоны эффективности однопроцессорных и мультипроцессорных систем
ке этой границе соответствует точка а). Для мультипроцессорных
систем определенной архитектуры также, начиная с определен-
ного уровня сложности, дальнейшее вложение средств и нара-
щивание вычислительной мощности в рамках используемой ар-
хитектуры процессора становится малоэффективным (этому со-
ответствует точка Ь). Из приведенных рисунков следует, что можно
выделить три зоны производительности: I, II и III. В зоне I эко-
номически выгоднее использовать однопроцессорную систему,
в зоне III — применение мультипроцессорных систем дает суще-
ственный экономический эффект. В зоне II можно использовать
как однопроцессорную, так и мультипроцессорную систему. Муль-
типроцессорная система обеспечит больше возможностей для мо-
дернизации.
3. Мультипроцессорная система в связи с модульной организа-
цией имеет более широкие возможности для изменения произво-
дительности, что позволяет обеспечить широкий диапазон требо-
ваний в рамках одной архитектуры. Это свойство систем называют
масштабируемость.
4. Мультипроцессорная система позволяет обеспечить большую
отказоустойчивость за счет использования структурной избыто-
чности.
Несмотря на отмеченные преимущества мультипроцессорных
систем, их распространение сопряжено с определенными труд-
ностями, свойственными всем распределенным системам парал-
лельной обработки данных. Рассмотрим основные трудности.
1. Для параллельных систем характерны новые, не известные
ранее типы ошибок:
• дедлоки (взаимные блокировки процессов);
• ливлоки (невыполнение некоторых альтернатив);
• голодание (невозможность получить ресурс;
• несправедливость при планировании ресурса).
2. Сложности понимания и анализа параллельных процессов.
Мышление людей имеет последовательный характер, так как
мысли выражаются словами.
3. Недостаточная разработанность теоретических моделей. Тео-
рия параллелизма развивается в нескольких направлениях:
• создание вычислительных моделей применительно к задачам
синтеза и анализа (сети Петри, системы переходов, реактивные
системы и др.);
• разработка языков спецификации требований (предикаты,
темпоральная логика и др.);
• разработка методов верификации (анализ достижимости, ло-
гический вывод и др.).
4. Недостаточная разработанность технологии параллельного
программирования. При этом актуально решение нескольких за-
дач. Необходимо создание ОС, языков программирования, ком-
пиляторов и прикладных программ, наиболее полно использу-
ющих возможности параллельных архитектур. Желательна совме-
стимость и стыковка этих параллельных программных средств с
уже существующими средствами. Одна из актуальных задач — син-
хронизация и управление параллельными процессами.
Динамику развития направления распределенных ВС можно оха-
рактеризовать последовательностью следующих этапов. В 70-е гг.
XX в. — начало создания распределенных систем, определенная
эйфория больших ожиданий в связи с осознанием их преимуществ.
В конце 70-х — начале 80-х гг. XX в. — период разочарования в
связи с проявлением отмеченных трудностей при разработке и
использовании систем. В 80-е гг. XX в. — период понимания истока
трудностей, конкретизация проблем. В 90-е гг. XX в. — разработка
теории параллельных вычислений, появление надежды на пре-
одоление трудностей. В конце 90-х гг. XX в. — начале XXI в. — этап
успешной реализации распределенных систем. Однако теория и
технология разработки распределенных систем все еще находятся
в стадии становления [8, 12].
При уменьшении времени решения задач за счет распаралле-
ливания вычислений имеются ограничения принципиального ха-
рактера, которые наглядно выражает закон Амдаля [8, 12].
Пусть вычислительный процесс в результате распараллелива-
ния содержит часть г (0 < г < 1) объема вычислений, которая
остается последовательной, и часть (1 —г), которая допускает па-
раллельную обработку. Тогда имеется ограничение сверху: ускоре-
ние вычислений не может быть больше, чем в 1/граз. Замечено,
что с ростом размерности задач доля вычислений, допускающих
распараллеливание, растет. Это определяет перспективность па-
раллельных вычислений.
Существуют две постановки задачи повышения производитель-
ности за счет параллельной обработки:
1. Как за более короткий интервал времени решить отдельную
задачу?
2. Как за один и тот же интервал времени решить как можно
больше задач?
Средства, позволяющие решать первую задачу, помогают и при
решении второй. Но средства, направленные на решение второй
задачи, далеко не всегда решают первую задачу. Постановка пер-
вой задачи связана с повышением быстродействия средств обра-
ботки данных. Она характерна для процессов в реальном масшта-
бе времени. Например, задача слежения за летающим объектом.
Постановка второй задачи связана с повышением производитель-
ности средств обработки данных. Здесь требуется решить пакет задач
с минимальными затратами машинного времени. При этом реше-
ние отдельной задачи может потребовать больше времени, чем в
том случае, когда средства используются только для решения од-
ной задачи. В настоящее время актуально увеличивать производи-
тельность мощных ВС, которые являются общим инструментом
для многих пользователей. В тех случаях когда нет необходимости
выполнять несколько программ на одной и той же ВМ, произво-
дительность можно повысить, выполняя их на отдельных маши-
нах. Повышение производительности в пределах одной ВС имеет
смысл, если создаются условия для понижения стоимости обра-
ботки за счет совместного использования аппаратных и програм-
мных ресурсов: обеспечение доступа к совместно используемой
информации из каждой программы, обеспечение обмена данны-
ми между программами и т. п.
Существуют два способа организации параллельной обработки
данных. Многоэлементная обработка (рис. 10.3, а) осуществляет-
ся на нескольких параллельно работающих операционных устрой-
ствах (элементах структуры системы). Каждый элемент выполняет
свою работу, осуществляя обработку соответствующей порции
данных от начала до конца. Если время выполнения работы на
отдельном элементе составляет Т и в системе используются четы-
ре элемента, то при определенной идеализации можно ожидать,
что среднее время выполнения такой работы в системе составит
7/4. Реально эффект повышения производительности меньше из-
за сложности распараллеливания и «накладных расходов» на уп-
равление. Использование такого способа параллельной обработки
в современных процессорах связано с понятием суперскалярной
архитектуры процессора (см. гл. 5).
При многофазной (многостадийной) обработке (рис. 10.3, б)
процесс обработки данных разбивается на несколько стадий (фаз),
выполняемых последовательно. Между фазами имеются буферы
для хранения промежуточных результатов. После выполнения 1-й
б
Т/4
Овых
Рис. 10.3. Способы параллельной обработки данных:
а — многоэлементная; б — многофазная (многостадийная); DBX — входные дан-
ные; D8bK — выходные данные; Т — время обработки
фазы результат запоминается в буфере и начинается обработка
2-й фазы. Средства выполнения 1-й фазы освобождаются и на их
вход поступает следующая порция данных. Таким образом, па-
раллельно решается несколько задач. Если длительность фаз об-
работки одинакова и составляет Т/4, то и при таком способе для
приведенной структуры производительность увеличится в четы-
ре раза. Этот способ соответствует конвейерной обработке.
Параллельно выполняемые единицы обработки могут быть боль-
шими (программы) и маленькими (команды, микрооперации).
Разделение обработки на единицы различной величины, соответ-
ствующие многоуровневой организации процессов, называют гра-
нулярностью обработки. Способы распараллеливания с учетом гра-
нулярности обработки положены в основу классификации систем
параллельной обработки.
10.2. Классификация систем параллельной
обработки данных
К настоящему времени разработано большое число различных
архитектур систем параллельной обработки данных. Существуют
различные подходы к их классификации. Одной из первых появи-
лась классификация, предложенная М. Флинном в 1966 г. Ее ча-
сто используют и в настоящее время. Классификация Флинна ос-
нована на двух характеристиках организации процесса обработки:
потоке команд и потоке данных. Каждый из этих потоков может
быть одиночным либо множественным. Одиночность и множествен-
ность потоков определяется максимально возможным числом ко-
манд (или данных) одновременно находящихся на одинаковых
стадиях исполнения. Соответственно получаем четыре класса ар-
хитектур (рис. 10.4). На рисунке буквой А обозначены арифмети-
ческие блоки (ОБ обработки данных), У — управляющие блоки,
П — блоки памяти. Из блока П в блок У поступают команды, из
блока П в блок А — данные.
Первый класс систем обозначают ОКОД (Одиночный поток
команд и одиночный поток данных) или SISD (Single Instruction
stream/Single Data stream). К нему относятся компьютеры с одним
процессором. Второй класс — ОКМД (одиночный поток команд,
множественный поток данных) или SIMD (Single Instruction
stream/ Multiple Datastream). К нему относятся векторные ВМ, в
которых одинаковые преобразования выполняются над различ-
ными элементами данных (компонентами вектора). Третий класс —
МКОД (множественный поток команд, одиночный поток дан-
ных) или MISD (Multiple Instruction stream/ Single Datastream).
К нему относят конвейерные системы, в которых данные обраба-
тываются за несколько стадий. На отдельных стадиях обработка
выполняется различными операционными устройствами под уп-
равлением соответствующих команд. Четвертый класс — системы
окод
(SISD)
МКОД
(MISD)
МКМД
(MIMD)
Рис. 10.4. Классы архитектур ВС по классификации Флинна:
ОКОД (SISD) — с одиночными потоками команд и данных; ОКМД (SIMD) —
с одиночным потоком команд и множественным потоком данных; МКОД (MISD) —
с множественным потоком команд и одиночным потоком данных; МКМД
(MIMD) — с множественными потоками команд и данных
МКМД (множественный поток команд, множественный поток
данных) или MIMD (Multiple Instruction stream/ Multiple Data
stream). К этому классу относятся мультипроцессорные системы,
в которых отдельные порции данных обрабатываются различны-
ми операционными устройствами, каждое из которых выполняет
свою программу.
Приведенный подход Флинна порождает неоднозначность клас-
сификации существующих архитектур. Например, поток вектор-
ных данных можно рассматривать и как одиночный и как множе-
ственный. Кроме того, приведенными классами неоднозначно
отражается конвейеризация, которая применяется на нескольких
уровнях организации вычислительных процессов. Недостатком
является и большое многообразие систем в классе MIMD. Поэто-
му были предложены другие подходы к классификации Р.Хокни,
Т. Фенгом и др. [8].
Наиболее развитой и полной является предложенная проф.
Б. А. Головкиным регулярная система архитектур [12]. Она опира-
ется на основные принципы организации обработки данных с
учетом многоуровневой организации обработки данных. Выделе-
ны четыре уровня обработки: программ, команд, данных (обра-
батываемых на уровне регистровых передач), слов.
Программам как единицам обработки в качестве средства об-
работки соответствуют ВМ и ВС. Параллельно могут выполняться
части программ. Их выполняют процессоры.
Командам соответствуют процессоры. Параллельно могут вы-
полняться отдельные фазы (выборка команды, декодирование,
выборка операндов, выполнение операции). Их выполняют функ-
циональные блоки процессора.
Данным, обрабатываемым на уровне регистровых передач, со-
ответствуют АЛУ. Параллельно могут обрабатываться компоненты
векторов, матриц и других структур данных. Выполняют преобра-
зования ОБ АЛУ.
Словам соответствуют ОБ АЛУ. Параллельно могут обрабаты-
ваться разряды слов. Средства обработки — функциональные пре-
образователи разрядов в составе ОБ.
На каждом уровне обработки возможны четыре варианта орга-
низации процессов: последовательная организация, конвейер-
ная, параллельная (многоэлементная), параллельно-конвейер-
ная. Б. А. Головкиным в дополнение к классификации предложе-
на удобная система обозначений для различных архитектур ВС.
Классу архитектур соответствует кортеж, содержащий обозна-
чение каждого из выделенных уровней обработки (ПКДС), и
верхние индексы для обозначения варианта организации обра-
ботки на отдельных уровнях: 0 — последовательная, I — кон-
вейерная, II — параллельная, * — параллельно-конвейерная. При
этом крайними классами в классификации являются: П0К0Д°С0 —
полностью последовательная ВС; П*К*Д*С* — полностью па-
раллельно-конвейерная ВС. Всего регулярная система архитек-
тур охватывает 44 = 256 классов обработки и соответствующих
типов архитектур.
Регулярная система архитектур избыточна. Анализ разработан-
ных к настоящему времени архитектур ВС показал, что многооб-
разие классов без особого ущерба может быть уменьшено [12]. При
этом можно исходить из следующих предпосылок.
Одноразрядные процессорные элементы в настоящее время прак-
тически не используются. Принимая для всех архитектур С = Сп,
что соответствует многоразрядной параллельной обработке слов,
уровень «С» можно опустить при классификации систем.
Организация параллельного, конвейерного либо параллельно-
конвейерного выполнения программ на нескольких процессорах
осуществляется программными средствами. Поэтому на этом уровне
обработки (с позиций организации аппаратных средств) для ВС
достаточны два признака: однопроцессорная (О) либо мульти-
процессорная (М) система.
С учетом этого Б. А. Головкиным предложена так называемая
базовая регулярная система архитектур ВС. Она включает 2 24 =
= 32 класса архитектур. Крайними классами в этой классифика-
ции являются: ОК°Д° — однопроцессорная полностью последо-
вательная ВС; МК*Д* — мультипроцессорная параллельно-кон-
вейерная ВС.
В соответствии с приведенной классификацией для формали-
зованного описания степени совмещения операций в системе ис-
пользуют следующую запись:
У = (ль п2,
где — число процессоров; п2 — число АЛУ, работающих в про-
цессоре параллельно; л3 — глубина (число фаз) конвейеров на
уровне выборки и выполнения команд; л4 — число ОБ в АЛУ,
способных параллельно выполнять однотипные операции (см., на-
пример, в гл. 5 технологию ММХ); л5 — глубина конвейеров АЛУ
(уровень регистровых передач).
Потенциальное ускорение обработки за счет параллельной ар-
хитектуры можно оценить как число параллельно работающих ус-
тройств и ступеней конвейеров:
5
» = п„„
Для системы класса ОК°Д° N= (1,1,1,1,1), л = 1. Для других клас-
сов систем п > 1. Следует отметить, что эти оценки характеризуют
потенциальные возможности ускорения вычислений, которые ре-
ально не могут быть получены [8].
В последующих разделах рассматриваются вопросы организа-
ции мультипроцессорных систем. Для их работы помимо распа-
раллеливания обработки на разных уровнях важнейшим вопросом
является организация информационного взаимодействия парал-
лельно протекающих процессов. На это большое влияние оказы-
вает организация ОП системы.
10.3. Классификация мультипроцессорных систем
по способу организации основной памяти
Основным классификационным признаком для архитектур
мультипроцессорных систем является организация ОП. Это связа-
но с тем, что процессы, параллельно протекающие в мультипро-
цессорных системах, имеют существенные связи по данным, так
как решается общая задача. Это означает, что переменные, значе-
ние которых вычисляются в одном процессе, используются в ка-
честве аргументов в других процессах. Существуют два основных
типа архитектур: мультипроцессорные системы с общей памятью
(рис. 10.5) и мультипроцессорные системы с распределенной па-
мятью (рис. 10.6).
В системах с общей ОП процессоры имеют доступ на уровне
команд к одним и тем же общим для них данным в памяти. При
этом процессор не просто решает часть задачи, но и может опе-
рировать с ней целиком. Однако, поскольку процессоры связаны
с памятью только через одну шину, возникает проблема быстрого
доступа каждого из них к памяти. Частично эту проблему снимает
наличие кэшей, но возникает другая, связанная с этим проблема
Рис.
Рис. 10.6. Мультипроцессорная система с распределенной памятью
обеспечения «когерентности кэшей», заключающаяся в оператив-
ном отслеживании идентичности данных в кэшах и ОП. Таким
образом, общая память способствует ускорению выполнения еди-
ной программы параллельно работающими процессорами за счет
их быстрого доступа к общим данным в ней, но общая память
одновременно является узким местом мультипроцессорной си-
стемы, так как с ростом числа процессоров их быстрый доступ к
ней становится все более затруднительным.
В мультипроцессорной системы с распределенной памятью каж-
дый процессор обладает своей собственной памятью (на рис. 10.6
П1, П2, ..., П„) и может иметь свои устройства для ввода и выво-
да. Процессоры могут быть связаны между собою в систему разли-
чными способами. Это зависит от способа реализации коммуни-
кационной сети. В основном для коммуникаций используется сеть
связи с фиксированной топологией, когда каждый из процессо-
ров связан только с некоторой ограниченной группой близко рас-
положенных процессоров, а не со всеми. Если требуется сеанс
связи процессора с другим, удаленным процессором, с которым
у данного процессора нет прямой связи, то передача данных осу-
ществляется через промежуточные процессоры. При этом для пе-
редачи формируются сообщения (а не отдельные слова). Поэтому
мультипроцессорные системы с распределенной памятью назы-
вают мультипроцессорными системами с передачей сообщений.
Этот подход к построению архитектуры системы не имеет явных
ограничений на число процессоров в системе и обеспечивает воз-
можность их наращивания [8, 12].
Поскольку системы с общей памятью эффективно реализуют
относительно сильно связанные программы, но имеют существен-
ные ограничения по числу процессоров, а системы с передачей
сообщений, наоборот, могут иметь большое число процессоров,
но программы должны быть слабо связанными, то желательно
Рис. 10.7. Система SMP:
ЦП 1... ЦП4 — центральные процессоры; ОП — основная память; СШ — систем-
ная шина; KI, К2 — контроллеры
организовать совместное использование обоих типов архитектур.
Примером реализации такого подхода являются кластерные си-
стемы. Системы, содержащие группы (кластеры) процессоров с
относительно высокой связностью, и имеющие более низкую
степень связности между процессорами из разных групп, полу-
чили название кластерных. В общем случае они имеют иерархи-
ческую архитектуру, когда внутри каждого кластера данного уровня
иерархии имеются внутренние кластеры более низкого уровня
иерархии.
К типу архитектур мультипроцессорных систем с общей памя-
тью относятся системы SMP (Symmetric Multi-Processors). Для этой
аббревиатуры используют также расшифровку Shared Memory
Processors [8]. В этих системах все процессоры имеют равные права
по использованию разделяемых ресурсов (шины, памяти). В систе-
ме SMP (рис. 10.7), построенной на процессорах Pentium Pro,
процессоры ЦП 1... ЦП4 подключены к общей СШ. Каждый про-
цессор имеет встроенный кэш. К СШ подключена ОП. К ней
может обращаться в общем АП любой из четырех процессоров.
К СШ подключены два контроллера, обеспечивающие связь с
двумя шинами PCI. Контроллер К1 служит мостом между шинами
СШ и РС1_1. К шине РС1_1 могут быть подключены периферий-
ные устройства (накопители на дисках, монитор и др.). Второй
контроллер К2 служит мостом СШ с шиной РС1_2. Шина РС1_2
Рис. 10.8. ВС из четырех узлов (систем SMP), объединенных через шину
PCI
Рис. 10.9. МРР-система с топологией «общая шина»:
П1...П4 — память; ЦП1...ЦП4 — центральные процессоры; ИБ — интерфейс-
ный блок
может быть использована для объединения нескольких систем SMP.
В качестве примера на рис. 10.8 приведена функциональная схема
вычислительной системы из 4-х узлов, каждый из которых — си-
стема SMP.
Распределение задач между процессорами системы SMP осу-
ществляет ОС. Поддержку систем SMP имеют такие ОС, как MS
Windows NT, Unix.
Среди мультипроцессорных систем с распределенной памятью
большое внимание уделяется системам с массовым параллелиз-
мом. Их в литературе часто обозначают английской аббревиатурой
МРР (Massive Parallel Processing). Существует большое число спо-
собов объединения процессорных узлов в систему. Классифика-
ция этих способов и их характеристики рассматриваются в следу-
ющем разделе.
Рассмотрим несколько примеров организации систем с распре-
деленной памятью. В системе с топологией «общая шина» (рис. 10.9)
в качестве общей шины используют стандартные шины PCI, VME
Рис. 10.10. МРР-система с топологией «полный граф»:
П1...П4 — память; ЦП1... ЦП4 — центральные процессоры
и др. Подключение к шине осуществляется через интерфейсный
блок (ИБ). Для адресации к тому или иному процессорному узлу
обычно используется АП ввода-вывода. Достоинством такой то-
пологии является относительная простота и низкая стоимость
средств коммуникации. Недостатком является то, что общая шина —
узкое место в информационном обмене. Это снижает эффект от
увеличения числа процессоров.
Рассмотрим систему из четырех процессорных узлов с тополо-
гией «полный граф» (рис. 10.10). Цифрами 1, 2, 3 обозначены ин-
терфейсные блоки, через которые осуществляется связь типа «точка —
точка». При такой топологии каждый процессор непосредственно
связан с любым другим. Это обеспечивает максимальные возмож-
ности для информационного обмена между узлами. Однако с ро-
стом числа процессоров быстро возрастает сложность коммуника-
ционного оборудования, что ограничивает возможности приме-
нения такой топологии.
Рассмотрим систему из четырех процессорных узлов с тополо-
гией «двухмерный гиперкуб» (рис. 10.11). При такой топологии каж-
дый процессор непосредственно связан только с ближайшими со-
седями. Количество требуемых интерфейсных блоков (обозначены
цифрами 1 и 2) и каналов связи здесь меньше, чем в предыдущем
примере, а интенсивность информационного обмена также мень-
ше, чем в системе с топологией «полный граф», но больше, чем
в системе с топологией «общая шина». Топология «гиперкуб» на-
ходит широкое применение при построении систем с большим
числом процессоров.
Рассмотрим основные проблемы создания систем для высоко-
производительных вычислений и тенденции в архитектурных ре-
шениях. Потребность в высокопроизводительных вычислениях по
мере развития науки и техники все время возрастает. Эффектив-
ные ВС, способные осуществлять как быстрые вычисления, так и
Рис. 10.11. МРР-система с топологией «двухмерный куб»:
П1...П4 — память; ЦП1...ЦП4 — центральные процессоры
быстрый обмен данными, требуются, например, для точного про-
гнозирования погоды, для создания новых фармацевтических
средств, для проведения научных исследований в различных об-
ластях знаний (ядерная физика, аэродинамика, генетика и др.),
для задач оборонного значения и многих других. Возможность со-
здания и использования высокопроизводительных ВС относится к
факторам стратегического потенциала оборонного, научно-тех-
нического и народно-хозяйственного значения. Стоит задача: со-
здать к 2010 г. системы с производительностью порядка 1015 опе-
раций/с (1 петафлоп). Это на 6 —7 порядков выше, чем произво-
дительность современного компьютера.
Существуют два направления развития высокопроизводитель-
ных вычислений. Первое направление связано с применением до-
рогих суперкомпьютеров с уникальной архитектурой (специаль-
ные векторные процессоры, дорогостоящая сверхбыстрая память,
уникальное периферийное оборудование). Известны суперкомпь-
ютеры CRAY, NEC, IBM, Fujitsu, Эльбрус и др. Второе направ-
ление представляет собой создание систем с массовым паралле-
лизмом, содержащих большое количество (до 1 тыс. и больше)
стандартных процессоров. Это системы МРР. Основной упор при
этом делается на увеличение числа процессоров и повышение сте-
пени параллелизма программ. Используется массовое производ-
ство процессоров, что способствует снижению их стоимости (в
сравнении с векторными процессорами). Именно это направле-
ние стало основным в решении задач высокопроизводительных
вычислений.
Произведем сравнительную характеристику систем SMP и МРР.
Основное преимущество систем SMP — относительная простота
программирования. В системах, где все процессоры имеют одина-
ково быстрый доступ к ОП, вопрос о том, какой процессор какие
вычисления будет выполнять, не столь принципиален, и значи-
тельная часть вычислительных алгоритмов, разработанных для
однопроцессорных компьютеров, может ускоренно выполняться
в мультипроцессорных системах с использованием распараллели-
вающих и «векторизирующих» компиляторов. Системы SMP —
это наиболее распространенный сейчас тип параллельных ВС, а
2- и 4-процессорные компьютеры на основе процессоров Pentium
и Pentium Pro находят массовое применение. Однако, общее чис-
ло процессоров в системах SMP не превышает 16. Для эффектив-
ного использования Процессоров в таких системах требуется ре-
шение ряда проблем, таких как когерентность кэшей, арбитраж в
конкуренции за шину, обработка аппаратных прерываний. Разра-
ботаны способы решения этих проблем. Некоторые из них рас-
сматриваются ниже. Системы МРР позволяют создавать системы
с наиболее высокой производительностью. Узлами таких систем
часто являются системы SMP.
10.4. Способы организации внутренних связей
в мультипроцессорных системах
Основная цель организации мультипроцессорных систем —
повышение производительности за счет распараллеливания обра-
ботки данных. Что мешает достичь предельной производительно-
сти в мультипроцессорных системах? Во-первых, невозможность
в статике (на этапе компиляции программы) эффективно орга-
низовать параллельную обработку (обеспечить минимум пересы-
лок данных между процессорами и минимум простоев процессо-
ров). Во-вторых, задержки на передачу данных между процессор-
ными модулями в процессе решения задачи. Задержки в значитель-
ной мере зависят от того, как организованы внутренние связи.
Аппаратные средства, используемые для реализации внутрен-
них связей, по способу передачи данных можно разделить на две
группы: коммутаторы и сети связи [6].
Коммутаторы — это электронные схемы, обеспечивающие
оперативную коммутацию каналов передачи данных. Коммутатор
(рис. 10.12) имеет т и-разрядных информационных входов, /л' л-
разрядных информационных выходов и г (одноразрядных) уп-
равляющих входов. Комбинация сигналов (код) на управляющих
входах определяет вариант связи информационных входов с ин-
формационными выходами. Связь реализуется через электронные
элементы коммутатора. Все средства коммуникации сосредоточе-
ны в едином устройстве системы — коммутаторе. Обычно коммута-
тор — это сложное устройство, по стоимости сравнимое с про-
цессором [12]. Наиболее эффективным коммутатором является
такой, который позволяет любой информационный вход соеди-
нить с любым информационным выходом. Про такой коммутатор
говорят, что он реализует полную координатную сеть [3]. При та-
кой организации коммутатора пе-
редача данных от источников к
приемникам осуществляется за
такт. Однако при большом числе
коммутируемых узлов (входов и
выходов коммутатора) быстро воз-
растает сложность схемы. Поэтому
коммутаторы, реализующие пол-
ную координатную сеть, исполь-
зуются лишь при ограниченном
числе входов и выходов (т, т' < 16).
При большом числе коммутиру-
емых узлов используют коммута-
Рис. 10.12. Коммутатор — аппа-
ратное средство переключения
каналов передачи данных
торы с уменьшенным числом
связей и ограниченными комму-
тационными возможностями. Для
увеличения числа коммутируемых связей используют каскадное
включение коммутаторов. Ниже будут рассмотрены схемы таких
коммутаторов. При использовании коммутатора все связи между
процессорами реализуются через него.
При использовании сети связи конкретные процессоры могут
непосредственно связываться только со своими соседями (по прин-
ципу точка—точка). Обращение к удаленному процессору осуще-
ствляется через цепочку промежуточных процессорных элементов.
В сети источник и адресат не соединяются прямой линией связи
как в системе с коммутатором. Передача сообщений ведется через
ряд промежуточных пунктов, в которых передаваемые сообщения
могут храниться в памяти в течение времени занятости канала,
ведущего к следующему приемному пункту. Здесь вместо комму-
тации каналов осуществляется коммутация пакетов. При большой
длине сообщения оно разбивается на части (пакеты). Пакеты пе-
редаются независимо друг от друга адресату, где затем объединя-
ются в сообщение. Существенно отметить, что при этом средства
коммуникации распределены между отдельными процессорными
элементами. Суть сети связи в рассматриваемом здесь смысле со-
стоит в том, что процессоры наряду с другими компонентами
(блоки памяти, интерфейсные блоки и др.) образуют узлы в сети
ВС. Каждый узел может непосредственно связываться для переда-
чи или получения данных только с теми узлами, с которыми у
него в сети имеется непосредственная связь. Для связи с другими
узлами используются многократные передачи по звеньям сети через
промежуточные узлы. Если не фиксировать внимание на упомяну-
том различии между коммутаторами и сетями связи, то коммута-
торы вследствие сложности реализуемых соединений тоже можно
назвать сетями (имея в виду сеть из коммутирующих электронных
элементов), что нередко и делается в литературе. Однако для си-
стем с коммутаторами можно сказать, что они имеют такие сети,
в которых все внутренние связи сконцентрированы в отдельном
устройстве (коммутаторе).
Для сравнительной характеристики внутренних связей ВС су-
щественно рассматривать следующие их характеристики: тополо-
гию, время начальной задержки на соединение, пропускную спо-
собность, сложность и стоимость реализации, способность к рас-
ширению (масштабируемость).
Топология — это абстрактная характеристика структуры ВС,
учитывающая только свойства существования элементов структу-
ры и их связности. При таком уровне абстракции сеть адекватно
можно представить неориентированным графом. Для сети внут-
ренних связей существенна такая топологическая характеристи-
ка, как диаметр графа сети. Диаметр графа d — это число ребер в
кратчайшем маршруте, соединяющем два максимально удален-
ных узла. Если диаметр равен d, то передача сообщения из любого
гиперкуб
Рис. 10.13. Топологическая классификация внутренних связей
узла сети в любой другой узел может быть выполнена не более
чем через d- 1 промежуточный узел. Можно считать, что диаметр
в определенной степени характеризует время передачи сообще-
ний по сети. Поэтому чем меньше диаметр графа сети, тем лучше.
С учетом важности топологической характеристики внутрен-
них связей приведем классификацию основных типов связей. Бо-
лее полную информацию о внутренних связях ВС можно получить
в [3, 12]. Как уже отмечалось выше, внутренние связи будем де-
лить на две группы: коммутаторы и сети связи. Сети связи относят
к статическим схемам коммутации. Они обеспечивают прямые ка-
налы связи только с соседними узлами и используются для ком-
мутации пакетов (а не каналов). Коммутаторы относят к динами-
ческим схемам коммутации, так как они обеспечивают установ-
ление и гибкую реконфигурацию каналов связи между узлами.
Рассмотрим классификацию и топологические характеристи-
ки сетей связи (рис. 10.13). При этом ограничимся наиболее рас-
пространенными регулярными сетями связи [12]. Важным топо-
логическим признаком при классификации является число сосед-
них узлов в сети, с которыми реализована непосредственная связь.
Это зависит от «мерности» метрического про-
странства, в котором реализуются связи. Со-
ответственно выделены одно-, двух-, трехмер- О О О О
ные и гиперкубические группы сетей связи.
К одномерным сетям относится «цепоч- риС. ю.14.
ка» (рис. 10.14) — одномерная линейная связь. «Цепочка»
12 3 4
? ? ? ?
а
12 3 4
б
Рис. 10.15. «Шина»:
а — общая шина; б — общая шина с коммутатором (арбитром шины)
Ее также иногда называют одномерной (линейной) сеткой. Она
может использоваться как конвейер. При этом нужно учитывать,
что производительность конвейера ограничивается возможностя-
ми самой медленной ступени, а на передачу между соседними
ступенями также затрачивается определенное время. По тополо-
гическим характеристикам цепочка — наихудшая сеть связи. При
Nузлах диаметр сети: d=N- 1.
Простотой отличается и схема связи узлов через общую шину
(рис. 10.15, а). Шина используется для связи всеми системными
элементами в режиме разделения времени. Схему отличает явно
выраженная модульность и масштабируемость, простота наращи-
вания. Но при наращивании подключаемых элементов производи-
тельность системы ограничивается фиксированной пропускной
способностью шины. Процессоры конкурируют за использование
шины. Для разрешения конфликтов часто используется специаль-
ная электронная схема (в структуре — дополнительный узел сети),
называемый арбитром шины (рис. 10.15, б). В соответствии с зало-
женными приоритетами арбитр выбирает один из нескольких зап-
росов процессоров на доступ к шине и обеспечивает выбранному
процессору монопольное владение шиной на время обмена. Такая
схема сочетает экономичность и логическую простоту.
Для повышения пропускной способности внутренних связей
используют набор из нескольких шин. Параллельные независимо
работающие шины имеют возможность одновременно обслужи-
вать несколько запросов на доступ к памяти, организованной по
модульному
принципу. При этом следует учитывать, что время
передачи данных по шине меньше времени
доступа к ячейке памяти. Поэтому для более
эффективного использования шин использу-
ют рассмотренные выше принципы конвейе-
ризации и пакетного обмена.
Эффективность информационного обмена
по цепочке можно повысить, если цепочку
замкнуть в «кольцо» (рис. 10.16). В кольце пере-
дача информации осуществляется от некото-
рого данного процессора-предшественника к
процессору-преемнику, далее — к следующе-
му процессору-преемнику, пока не достигнет
адресата. Каждый процессор после инициали-
зации передачи, получив информацию от О
процессора-предшественника, проверяет ад-
рес сообщения. Если адрес соответствует
данному процессору, как пункту назначе- _______О
ния, то передача прекращается. Если адрес
не соответствует, то сообщение передается / \
далее процессору-преемнику. Структура от- / \
личается логической простотой и модульно- О О
стью (легко наращивать число узлов). У каж-
дого процессора (узла) два процессора-пре- Рис-«Звезда»
емника. При N узлах диаметр графа для дан-
ного типа связи: d= ] N/2 [. Скобки означают округление до цело-
го в меньшую сторону.
При связях типа «звезда» (рис. 10.17) передача информации
осуществляется по индивидуальным трактам через расположен-
ный в центре коммутатор. Каждая передача требует прохождения
по двум трактам. Звезда функционально соответствует общей шине
с коммутатором (см. рис. 10.15, б), но из-за индивидуальных трак-
тов имеет лучшую пропускную способность.
Многие вычислительные процессы организованы по иерархи-
ческому принципу. Это приводит к иерархическим структурам свя-
зей в ВС, таким как дерево, пирамида, кластер [12].
При выборе типа внутренних связей в ВС ищется компромисс
в выполнении противоречивых требований: уменьшение числа свя-
зей и улучшение возможностей связывания. Для N узлов схема с
топологией «полный граф», имеющей минимальный диаметр d= 1,
требует N(N- 1)/2 связей. При построении систем с большим чис-
лом процессоров желательна такая организация, при которой об-
щее число связей возрастало бы существенно медленнее, чем при
квадратичной зависимости от числа узлов N, а число связей от-
дельного узла возрастало бы медленнее, чем число узлов N. В це-
сит от N. В гиперкубе (рассматривается ниже) оно увеличивается
на 1 при удвоении N.
Рассмотрим связь типа «ортогональная сетка» (рис. 10.18). Каж-
дый процессор в ней (не считая крайних) связан с четырьмя со-
седними. Диаметр соответствующего графа d = -1). В приве-
денном на рисунке примере W= 16, d= 6. Легко убедиться, что
кратчайший маршрут, соединяющий наиболее удаленные узлы (на
концах диагоналей), содержит шесть ребер. Крайние узлы имеют
меньшее число связей, регулярность связей на краях нарушается.
При организации параллельных вычислительных процессов это
приводит к соответствующим нежелательным краевым эффектам.
Рис. 10.20. Гиперкубы:
а — размерностью d = 2; б — размерностью d = 3; в — размерностью d = 4
Рис. 10.21. Перекрестный коммутатор:
XI...Х4 — входы; И... У4 — выходы
Связи всех узлов можно сделать идентичными в «тороидальной
сетке» (рис. 10.19).
Рассмотрим организацию связей «-мерный гиперкуб (рис. 10.20).
В «-мерном пространстве рассмотрим двоичный гиперкуб: в вер-
шинах каждая из п координат принимает значения «0» либо «1».
В каждой вершине помещен процессорный узел. Процессорный
узел связан с соседним узлом по каждой из п координат. Двоич-
ный «-мерный куб регулярными локальными связями объединяет
в систему N - 2" процессорных узлов. Процессор соответствует
вершине графа. Число связей соответствует числу ребер и равно
/12"-1. Гиперкубические связи находят все более широкое приме-
нение в мультипроцессорных системах [8, 12].
Рассмотрим принципы построения коммутаторов внутренних
связей [12] на примере перекрестного (матричного) коммутатора
(рис. 10.21), содержащего т входов (XI, Х2, ХЗ, ...), п выходов
(И, Y2, Y3, ...) и матрицу т*п коммутирующих элементов. В та-
ком коммутаторе возможно соединение входов с выходами (по
принципу один к одному) в любом порядке. Входы и выходы,
которые еще не соединены, называют свободными. Любой сво-
бодный вход может быть соединен с любым свободным выходом.
Коммутаторы, обладающие таким свойством, называют неблоки-
Рис. 10.22. Состояния коммутирующего элемента:
а — прямое соединение; б — перекрестное соединение; в — верхнее раздвоение;
г — нижнее раздвоение
XI
Х8
XI
Х2
ХЗ
Х4
Х5
Х6
гз
Г4
Y5
Гб
Y7
У8
И
Y2
Рис. 10.23. Однокаскадный
коммутатор «тасовка»:
XI ...Х8 — входы; И... У8 — вы-
ходы
рующими. Сложность реализации
коммутатора пропорциональна
числу т*п коммутирующих эле-
ментов. Перекрестный коммутатор
т*п имеет т\ состояний.
Коммутирующий элемент мо-
жет иметь четыре состояния (рис.
10.22): прямое соединение, пере-
крестное соединение, верхнее раз-
двоение, нижнее раздвоение. Пер-
вые два состояния определяют пе-
рекрестный коммутатор 2x2. Пос-
ледние два состояния используют-
ся для соединений по принципу
один ко многим. Показанные со-
стояния не исчерпывают всех воз-
можностей коммутации.
В структурной схеме однокас-
кадного коммутатора типа «тасовка» (рис. 10.23) верхняя и ниж-
няя половины входов оказываются соединенными вперемежку как
при тасовке колоды карт. Предполагается, что сообщения переда-
ются в направлении слева направо. Приведенная однокаскадная
схема не обладает соединительной полнотой. Она не обеспечивает
возможность подключения любого входа к любому выходу. Одна-
ко это можно обеспечить каскадным включением коммутаторов.
Многокаскадная коммутирующая сеть «Омега» (рис. 10.24) явля-
ется наиболее распространенным типом многокаскадных комму-
таторов. Каждый каскад этой сети — это коммутатор типа «тасов-
ка». Нетрудно убедиться, что здесь любой вход может быть под-
Рис. 10.24. Многокаскадная блокирующая сеть коммутации «Омега»:
Х1...Х8 — входы; И... Г8 — выходы
ключей к любому выходу. Эта сеть является блокирующей. В бло-
кирующих сетях при одновременном связывании двух и более пар
вход-выход маршруты обмена различных пар могут оказаться час-
тично совпадающими. При этом по некоторой локальной связи в
сети требуется одновременно передавать разные сигналы, что не-
возможно. Такие конфликтные связывания приходится разносить
во времени, что увеличивает расход времени на обмен между уз-
лами. Усложняя связи можно построить перестраиваемые небло-
кирующие коммутационные сети. Они более сложны. Примеры та-
ких многокаскадных коммутаторов (коммутирующих сетей) при-
ведены в [12].
10.5. Состояние производства и использования
высокопроизводительных вычислительных систем
В области высокопроизводительных систем наблюдается устой-
чивая тенденция снижения показателя стоимость (производитель-
ность). Наиболее мощными ВС являются суперкомпьютеры. Их ар-
хитектура, основанная на организации параллельной работы век-
торных процессоров, специализирована для эффективного реше-
ния определенных классов задач. Однако продукция основных ком-
паний-поставщиков суперкомпьютеров, таких как, CRAY Research,
NEC, SUN, Hewlett Packard и других остается непозволительно
высокой для большинства российских предприятий и организа-
ций. Кроме того, во многих странах действует ряд законов и поло-
жений, препятствующих экспорту в Россию изделий, относящих-
ся к классу высокотехнологичных [32].
С другой стороны, все большую популярность приобретают си-
стемы, собранные из серийно производимых комплектующих. По
производительности такие системы с большим числом процессо-
ров уже не уступают суперкомпьютерам, а по стоимости и надеж-
ности часто лучше их. С учетом этого применительно к системам
для высокопроизводительных вычислений изменяется и архитек-
тура МП, а для организации информационного взаимодействия
все чаще используются стандартные каналы связи и средства те-
лекоммуникаций.
Развитие архитектуры ВС зависит от большого числа факторов.
Существенными факторами являются: области применения и со-
ответствующие требования к системам; компании-производители
ВС; развитие технологии производства ИС и элементной базы;
результаты научных исследований в области ВС и информацион-
ных технологий. Все эти факторы динамично изменяются, влияя
на спектр архитектур используемых ВС. Для характеристики раз-
вития ВС периодически публикуются обзоры 500 наиболее мощ-
ных высокопроизводительных систем.
В качестве примера структурирования информации и обобщен-
ной характеристики состояния в области высокопроизводитель-
ных ВС приведем данные одного из таких обзоров [27]. Системы,
способные осуществлять как быстрый счет, так и быстрый обмен
данными, требуются для точного прогнозирования погоды и кли-
мата, для развития современного промышленного дизайна, для
создания новых фармацевтических средств, для проведения науч-
ных исследований в различных областях знаний и для соблюдения
других научных и прикладных интересов. Требуются такие систе-
мы и самим производителям ВС для выполнения соответствую-
щих прикладных исследований и автоматизации проектирования.
Области применения высокопроизводительных систем условно
подразделяют на пять категорий: исследовательскую, промышлен-
ную, академическую, административную и область производите-
лей. Далее рассматриваются две характеристики: распределение числа
высокопроизводительных ВС и их суммарной вычислительной мощ-
ности.
Наибольшее число высокопроизводительных ВС вводится в дей-
ствие в промышленности — 48 %. Далее следует область исследо-
ваний — 26%, в академической области (образование) — 14%, в
административной области — 8 %, у производителей — 4 %.
Наибольшая производительность систем требуется в исследо-
вательской области применения. Поэтому наиболее мощные ВС
используются в этой области. Наглядную характеристику ВС в этом
отношении дает распределение суммарной производительности
по областям применения. Производительность систем в исследо-
вательской области составляет — 47 % (в доле от суммарной про-
изводительности). В промышленной области производительность
систем составляет — 25 %, в академической — 14 %, в админист-
ративной — 9 %, в области производителей — 5 %.
На основе анализа ряда обзоров можно отметить две явные и
устойчивые тенденции: наибольшее количество систем в промыш-
ленной области и наивысшая производительность — в исследова-
тельской. В промышленности используется наибольшее число «сред-
них» систем. Научные исследования нуждаются в сверхмощных ВС
для решения сложнейших научно-технических задач. Если первая
сфера финансируется в основном бизнесом, то вторая — государ-
ством. Подобная ситуация сохранится достаточно долго: в про-
мышленности отсутствует класс «высокозатратных» задач, срав-
нимых с задачами исследовательской обдасти, а для научных орга-
низаций не имеет смысла чрезмерно наращивать число ВС [27].
Основными фирмами — производителями высокопроизводи-
тельных ВС являются: IBM, SGI, SUN, HP, Fujitsu, NEC, Hitachi,
Intel, Compaq. Наибольшее число высокопроизводительных систем
установлено в США — 55 %, в Европе — 31 %, в Японии — II %.
В Европе наибольшее число систем установлено в Германии — 43 %.
Рассмотрим распределение высокопроизводительных систем по
архитектурам. Системы МРР составляют 65 %, системы SMP —
21 %, системы PVP (с векторными процессорами) — 12%, клас-
теры — 2 %. Анализ динамики развития ВС показывает, что доля
кластерных систем возрастает.
Распределение архитектур по суммарной производительности
следующее: системы МРР — 77 %, системы PVP — 14%, систе-
мы SMP — 8 %, кластеры — 1 %. Направление ВС с массовым
параллелизмом МРР лидирует как по количеству, так и по сум-
марной производительности установленных систем. Как уже от-
мечалось выше, узлами систем МРР служат системы SMP.
10.6. Направления развития высокопроизводительных
вычислительных систем
10.6.1. Тенденции развития архитектур систем
с общей разделяемой памятью
Симметричные многопроцессорные системы SMP содержат
несколько процессоров, объединенных с памятью коммуникаци-
онной средой (шиной или коммутатором), пропускная способ-
ность которой достаточна для быстрого обращения к памяти. Вре-
мя обращения процессоров к физически единой памяти одинако-
во. Система работает под управлением одной. При этом задания
могут планироваться для работы на разных процессорах в преде-
лах имеющихся ресурсов, допуская динамическое распараллели-
вание процессов. Возможность более быстрого выполнения про-
грамм, разработанных для однопроцессорных систем, — суще-
ственное преимущество архитектуры SMP. Этот фактор существен-
но сокращает время выхода и готовность традиционных приложе-
ний для систем SMP по сравнению с другими мультипроцессор-
ными архитектурами.
Наиболее актуальный вопрос для систем SMP — организация
быстрого доступа процессоров к ОП. Для уменьшения затрат вре-
мени на обмен данными с учетом свойства локальности программ
и данных (см. подразд. 8.3) процессоры имеют кэш-память. По-
скольку процессоры одновременно работают с данными, храня-
щимися в единой памяти, в архитектуре систем SMP обязательно
должен быть механизм поддержки когерентности данных.
Когерентность данных означает, что в любой момент времени
для каждого элемента данных во всей памяти системы SMP су-
ществует только одно его значение, хотя одновременно могут
существовать несколько копий элемента данных, размещенных
в разных видах памяти и обрабатываемых разными процессора-
ми. Таким образом, когерентность данных — это одинаковость
всех копий каждого элемента данных, участвующего в вычисли-
тельном процессе. Механизм когерентности должен следить за
тем, чтобы операции с одним и тем же элементом данных вы-
полнялись на разных процессорах последовательно, удаляя уста-
ревшие копии. Для обеспечения высокого быстродействия в со-
временных системах SMP когерентность реализуется аппаратными
средствами.
Типичные системы БМРдля поддержки когерентности исполь-
зуют дополнительную шину слежения (snoopy bus). Для того, что-
бы кэши всех процессоров были когерентными, каждый процес-
сор «подглядывает» за шиной, осуществляя поиск тех операций
считывания и записи между другими процессорами и ОП, кото-
рые влияют на содержимое собственных кэшей. Например, если
процессор «А» запрашивает ту часть памяти, которая обрабатыва-
ется процессором «Б», то процессор «Б» перехватывает этот зап-
рос и помещает свои значения запрашиваемых данных на шину,
откуда «А» их считывает. Когда процессор «Б» записывает изме-
ненное значение обратно из своего кэша в память, то все другие
процессоры видят, как эта запись проходит по шине, и удаляют
устаревшие значения из своих кэшей.
При увеличении числа процессоров узким местом становится
шина, через которые процессоры соединяются с ОП. Для повы-
шения производительности системы требуется увеличение про-
пускной способности шины.
Рассмотрим подход к решению этой проблемы на примере муль-
типроцессорной системы Power Scale, разработанной группой ком-
паний Bull [46]. В основу архитектуры были положены результаты
исследований параметров производительности системы при вы-
полнении современных коммерческих приложений. Рассматрива-
лись приложения, связанные с необходимостью манипулирова-
ния большими объемами данных и разделением доступа к этим
данным между многими программами. Такие прикладные програм-
мы характеризуются большими рабочими наборами данных с низ-
ким уровнем локализации. При моделировании исполнения по-
добных программ в системе SMP были выявлены следующие две
особенности.
Из-за малой вероятности нахождения требуемых данных в кэ-
шах возникает интенсивный обмен между ОП и кэшами процес-
соров. Поэтому важно увеличить пропускную способность средств
доступа к памяти.
В традиционных системах SMP одна из задач планировщика
процессов — запуск следующего разрешенного для выполнения
процесса на первом же процессоре, который становится свобод-
ным. По мере увеличения числа процессоров и процессов возрас-
тает вероятность перемещения процессов с одного процессора на
другой. Эта побочная миграция процессов вызывает увеличение
(A/У)
Рис. 10.25. Функциональная схема мультипроцессорной системы Power
Scale (группа компаний Bull):
БУ — блок управления; L2 — уровень кэш-памяти; ЦП — центральный процессор
информационных обменов между кэшами, что снижает произво-
дительность. Поэтому актуально обеспечить физическую реализа-
цию когерентности кэшей.
Функциональная схема системы Power Scale (рис. 10.25) со-
держит разделяемую ОП, включающую блок накопителя систем-
ной памяти и блок управления системной памятью; четыре про-
цессорных блока, каждый из которых содержит два процессора
Power PC с кэшами 2-го уровня. Основным средством доступа к
разделяемой ОП является достаточно сложная «системная шина».
Она включает шину адреса (управления) (А, У), реализованную
классическим образом, и восемь наборов магистралей данных (че-
тыре — от процессорных блоков и четыре — от блоков системной
памяти), которые соединяются между собой посредством высо-
коскоростного матричного коммутатора данных. К коммутатору
подключен также порт ввода-вывода, входящий в состав блока
ввода-вывода. Используется также расслоение памяти (каждый из
четырех блоков содержит по четыре слоя). Такая организация па-
мяти позволяет обращаться к ней многим процессорам одновре-
менно. Каждый процессорный блок имеет свой выделенный порт
памяти для пересылки данных. При этом общая шина адреса и
управления гарантирует, что на уровне системы все адреса явля-
ются когерентными. Управление информационным обменом орга-
низовано с учетом необходимости обеспечения когерентности
кэшей и достижения максимальной производительности. Более
детально эти вопросы рассмотрены в [26].
10.6.2. Архитектура вычислительных систем с распределенной
разделяемой памятью
В системах с симметричной мультипроцессорной архитектурой
время обращения к общей памяти одинаково для всех процессо-
ров. Отсюда происходит еще одно название для таких систем —
UMA (Uniform Memory Architecture) [8]. Как уже отмечалось ра-
нее, общая память и шина, связывающая процессоры с памятью
становятся узким местом и сдерживают увеличение вычислитель-
ной мощности системы. Помимо рассмотренного подхода с ком-
мутатором и «широкой» шиной данных (256 бит) получила раз-
витие концепция построения распределенной разделяемой памя-
ти — distributed shared memory (DSM) [27]. Это физически распре-
деленная память с общим АП, доступ к которой осуществляется
посредством команд «чтение» и «запись». Системы с распределен-
ной разделяемой памятью, являющиеся развитием систем SMP,
подразделяют на три класса:
• системы с архитектурой NUMA (Non-Uniform Memory Archi-
tecture);
• системы с архитектурой СОМА (Cache-Only Memory Architecture);
• системы с рефлексивной памятью RM (Reflective Memory).
Выделенные классы отличаются организацией ОП и организа-
цией информационного взаимодействия процессоров через раз-
деляемую память.
Рассмотрим принципиальные особенности архитектуры NUMA.
Целью разработчиков архитектуры NUMA было стремление объ-
единить достоинства классов систем SMP (относительная про-
стота разработки программ) и систем МРР (хорошая масштаби-
руемость — возможность наращивания числа процессорных узлов
в системе). Упрощению написания программ для систем с общей
ОП способствует единое АП памяти для всех процессоров систе-
мы, что упрощает реализацию связей по данным между процес-
сами. Создатели архитектуры NUMA в конце 70-х гг. XX в. предло-
жили архитектуру, содержащую набор кластеров, соединенных
межкластерной шиной. АП с использованием старших разрядов
адреса делится между кластерами. Когда процессор обращается к
памяти, он посылает адрес к своему контроллеру памяти. Рези-
дентная память кластера связана с процессором через локальную
шину. Контроллер анализирует старшие разряды адреса и по ним
определяет, в каком модуле (кластере) находится требуемая ячейка
памяти. Если адрес локальный, то запрос выставляется на ло-
кальную шину, иначе — на межкластерную шину. Локальный зап-
рос выполняется существенно быстрее, чем удаленный.
Проблема развития этого подхода заключается в использова-
нии каждым процессором кэш-памяти. Возникает упомянутая уже
выше проблема когерентности кэшей — идентичности значений
всех копий переменной в системе. Решение аппаратными сред-
ствами этой проблемы стало основой класса архитектур CC-NUMA
(cache coherent NUMA).
У истоков создания архитектуры CC-NUMA стояла компания
Sequent. По данным аналитиков данная архитектура позволяет на
порядок повысить производительность и увеличить возможности
масштабирования всех ресурсов системы. Распределенная разде-
ляемая память в системах NUMA образуется как совокупность
памятей вычислительных модулей, каждый из которых может вклю-
чать несколько процессоров (1 — 4) с подсоединенным к ним бло-
ком локальной памяти. Каждый такой модуль имеет архитектуру
SMP (см. рис. 10.7). Распределение памяти по вычислительным
модулям позволяет рационально использовать процессоры и бло-
ки памяти и строить системы из стандартных модулей (например,
использовать серийные системные платы ПК). Существенным ар-
хитектурным отличием CC-NUMA является использование аппа-
ратуры для увязки механизма работы кэш-памяти вычислитель-
ного модуля с удаленными блоками памяти других вычислитель-
ных модулей. Варианты построения таких систем разнообразны.
Для примера рассмотрим реализацию системы NUMA Q2000 ком-
пании Sequent [24].
Вычислительный модуль системы NUMA Q2000 (рис. 10.26)
является мультипроцессорной системой SMP. Он содержит: до че-
Рис. 10.26. Функциональная схема вычислительного модуля ВМ
системы NUMA Q2000
Рис. 10.27. Структурная схема мультипроцессорной системы NUMA
Q2000:
BM1...BMN — вычислительные машины
тырех процессоров Pentium Pro, СШ, к которой помимо процес-
соров подключены память емкостью до 4 Гбайт, два моста с ши-
нами PCI, адаптер IQ-Link. Адаптер реализует протокол когерен-
тности кэшей, содержит блоки для подключения входа и выхода
данных при информационном взаимодействии модулей в системе
и реализует соответствующий протокол обмена (входных и вы-
ходных «линков»). Через шины PCI подключаются периферийные
устройства. Вычислительный модуль может использоваться как в
составе системы (рис. 10.27), так и самостоятельно.
Помимо отмеченных архитектурных особенностей в адаптер IQ-
Link вводится дополнительный удаленный кэш (3-го уровня), в
котором хранятся копии строк данных, загружаемых из удален-
ных блоков памяти. Этот кэш обслуживает обращения к данным
при отсутствии требуемой строки в кэше процессора и блоке ло-
кальной памяти.
Локальная память вычислительного модуля отображается в еди-
ное для системы глобальное АП. Интерфейс адаптера IQ-Link с
СШ вычислительного модуля отслеживает адреса, выставляемые
процессорами в СШ, и определяет, в какой из выделенных диа-
пазонов адресов попадает появившийся адрес. Каждый из выде-
ленных диапазонов адресов приписан блоку памяти одного из
вычислительных модулей. Попадание в определенный диапазон
определяет идентификатор, который используется для маршру-
тизации пакета, доставляющего в случае необходимости требуе-
мую строку кэш-памяти. Для быстрого определения строк, распо-
ложенных в кэше 3-го уровня, используется специальный каталог.
В случае отсутствия в нем тэга строки, соответствующей адресу на
СШ, шина переводится в состояние «незавершенная транзакция»
и формируется пакет с командой доставки требуемой кэш-строки.
Адаптер IQ-Link реализует физический уровень когерентного под-
ключения к шине.
Контроллер «линков» принимает из вычислительного модуля
пакеты для передачи на выход, пропускает пакеты, не предназна-
ченные данному модулю, и принимает адресованные модулю па-
кеты из входного «линка».
Рассмотренный выше (см. подразд. 10.6.1) механизм когерент-
ности кэшей с использованием шины слежения является крити-
чным для эффективной работы узла SMP и должен иметь малое
время задержки. Требование малой задержки когерентных связей
приводит к архитектуре с одной объединительной платой [28]. Это
физически ограничивает возможное число подсоединенных про-
цессоров и плат памяти. Реализованные таким образом узлы SMP
содержат не более 32 процессоров. Использование архитектуры
NUMA-Q снимает ограничение одной объединительной платы и
позволяет строить большие узлы с SMP подобной архитектурой.
Используя короткие шины внутри каждого вычислительного мо-
дуля (см. рис. 10.26), можно достичь весьма малых задержек для
большинства операций доступа к памяти. Таким образом, архи-
тектура NUMA с использованием блоков IQ-Link позволяет стро-
ить большие системы с множеством коротких шин и малыми за-
держками.
Существенной особенностью организации памяти в системах с
архитектурой NUMA является то, что в ней отделены передачи,
связанные с промахами когерентности, от передач данных, свя-
занных с вводом-выводом и обменами процессор (память). Тра-
фик ввода-вывода и трафик процессор—память выполняются па-
раллельно в различных модулях с производительностью, опре-
деляемой пропускной способностью СШ (см. рис. 10.26). В то же
время шина IQ-Link осуществляет слежение за всеми шинами
процессор-память и гарантирует когерентность данных между
ними. Пропускная способность когерентной шины IQ-Link дове-
дена до 1 Гбайт/с и с развитием технологии увеличивается. Очень
важна способность подсистем ввода-вывода работать централизо-
ванно, но при этом оставаться доступными из любого вычисли-
тельного модуля. Важно, что трафик ввода-вывода проходит мимо
IQ-Link [28].
Существенным достоинством систем SMP является простота
программирования. Обеспечивается быстрый доступ ко всем ча-
стям ОП, благодаря аппаратной поддержке ресурсы системы ди-
намически перераспределяются между параллельно протекающи-
ми процессами. При объединении нескольких узлов в систему МРР
возникает проблема значительных задержек при обменах данны-
ми между узлами системы. Эти задержки значительно больше, чем
задержки внутри узла. Для оптимизации производительности тре-
буется существенный объем перепрограммирования с учетом ар-
хитектуры системы, что не требуется в системах SMP.
Наиболее эффективный способ достичь высокой производи-
тельности и сохранить при этом простую модель программирова-
ния — строить как можно больший узел (с разделяемой памя-
тью), прежде чем переходить к системам из нескольких узлов.
Именно это и позволяет делать архитектура CC-NUMA. Она по-
зволяет подсоединять до 256 процессоров, организовать память
большого объема и обеспечить большую пропускную способность
шины ввода-вывода. При этом обеспечиваются меньшие средние
задержки доступа к памяти, чем у других архитектур.
Как это было показано на приведенных примерах, одна из ос-
новных проблем при создании разделяемой памяти в мультипро-
цессорной системе состоит в том, как извещать другие процессо-
ры об изменениях, вызванных выполнением команд записи. Стрем-
ление к повышению производительности процессоров стимули-
рует переход в кэшах от сквозной записи к буферизованной отло-
женной записи и обратной записи (см. гл. 4 и 5). При буферизации
и обратной записи возрастает интервал времени между измене-
нием данных в кэше и их появлением на шине процессора. Следо-
вательно, возрастает задержка доставки этих изменений в удален-
ные копии данных в других кэшах. Кроме того, при обратной за-
писи модификация данных в кэше не появляется на шине памяти
до моментов смены кэш-строк.
Для модификации удаленных копий данных используются два
протокола: коммуникационный и протокол когерентности. Про-
токол — это соглашение о том, как коммуникационные компо-
ненты взаимодействуют друг с другом. Коммуникационный про-
токол применяется для доставки изменений. Протокол когерент-
ности используется для предотвращения использования копий тех
данных, которые изменились в другом процессоре. В простейшем
случае происходит «прослушивание» шины процессоров в целях
выявления команд записи в адреса ячеек памяти, копии которых
имеются в кэшах и ОП. В этом случае коммуникационный прото-
кол и протокол когерентности неразрывно связаны [27].
При разработке протоколов могут быть использованы разли-
чные модели состоятельности памяти. Простейшей является мо-
дель строгой состоятельности. В соответствии с этой моделью опе-
рация чтения из разделяемой памяти должна доставлять в процес-
сор последнее записанное значение этой переменной. Поэтому,
когда одна из копий переменной модифицируется, остальные
копии должны быть объявлены несостоятельными, либо модифи-
цироваться. Как уже отмечалось выше, выполнение этих действий
требует специальных аппаратных средств. Однако какими бы эти
средства ни были, следование модели строгой состоятельности
снижает производительность системы. Это обусловлено необходи-
мостью в данном случае синхронизации обращений процессоров
к памяти и введением глобального времени, позволяющего стро-
го упорядочить действия во всех процессорах системы.
Поэтому с целью повысить производительность системы, раз-
работаны более тонкие модели неполной состоятельности дан-
ных, которые допускают появление несогласованности копий дан-
ных в ходе их параллельной обработки, если это не влечет изме-
нения результата выполнения программы по сравнению со случа-
ем строгой состоятельности памяти.
При построении разделяемой памяти существенны следующие
ее характеристики:
• аппаратный, программный либо аппаратно-программный спо-
соб реализации механизмов управления работой разделяемой па-
мяти;
• размер минимальной разделяемой единицы данных: слово,
кэш-строка, страница, сегмент, объект и т.д.;
• модель состоятельности памяти;
• механизм управления распределением памяти и размещени-
ем данных (централизованный или распределенный, статический
или динамический) [27].
При аппаратной реализации разделяемой памяти размер раз-
деляемых единиц данных, как правило, соответствует кэш-стро-
ке. Это обусловлено привязкой к механизму когерентности кэш-
памяти МП. Аппаратные реализации имеют малую задержку при
пересылках данных, но использование таких средств существенно
повышает стоимость системы.
Системы с единой разделяемой памятью в основном являются
симметричными мультипроцессорными системами SMP. Получив-
шие распространение системы с распределенной разделяемой
памятью, как уже отмечалось выше, делятся на типы архитектур
NUMA, СОМА и RM (системы с рефлексивной памятью). В архи-
тектурах типов NUMA и СОМА используется объявление «неко-
герентных» копий данных несостоятельными, в системах с реф-
лексивной памятью применяется модификация разделяемых дан-
ных. В системах SMP возможно как объявление несостоятельными
модифицируемых данных, так и модификация разделяемых дан-
ных. С основными принципами организации систем СОМА и RM
можно познакомиться по литературе [27].
Все рассмотренные архитектуры систем с распределенной и
разделяемой памятью имеют свои достоинства и недостатки. Эф-
фективность использования их зависит от класса задач и других
факторов.
10.6.3. Развитие архитектур микропроцессоров
высокопроизводительных вычислительных систем
В эру информатики быстрое развитие информационных техно-
логий и средств вычислительной техники способствует проник-
новению их во все сферы жизни и деятельности людей. При этом
в связи с прогрессом науки и техники требования к СОД растут с
опережающим темпом по отношению к их возможностям. Разви-
тие СОД идет по нескольким направлениям: совершенствование
технологии производства элементной базы (уменьшение проект-
ной нормы, увеличение уровня интеграции интегральных микро-
схем, повышение тактовой частоты их работы); развитие архитек-
туры систем и устройств; совершенствование технологии програм-
мирования; развитие теории, средств и методов построения сис-
тем распределенной обработки данных. Из всех СОД наиболее мас-
совое применение получил компьютер. Производительность ком-
пьютеров увеличивалась на порядок каждые пять лет [28]. Разви-
тие телекоммуникационных технологий, компьютерных сетей, рас-
ширение сферы применения компьютеров способствовали тому,
что большинство компьютеров используются в настоящее время
не как отдельные изолированные системы, а как узлы компью-
терной сети. Требования к росту производительности, а также тен-
денции объединения средств обработки данных в мультипроцес-
сорные системы и сети повлияли на развитие архитектуры МП.
Большой уровень интеграции микросхем, обеспечиваемый ус-
пехами микроэлектроники, позволяет в современных МП исполь-
зовать все способы параллельной обработки данных на нескольких
уровнях организации вычислительного процесса. Однако для повы-
шения эффективности параллельной обработки данных необходим
симбиоз аппаратных и программных средств. Этот симбиоз поро-
дил новое направление в развитии архитектур МП: мультитредо-
вые и мультипроцессорные (в одном кристалле) архитектуры [28].
Можно отметить следующие основные архитектурные способы
повышения производительности МП:
• увеличение емкости памяти внутри кристалла (интеграция на
кристалл функций управления ОП, так как в большинстве ВМ
контроллер памяти реализован в чипсете, как это описано в гл. 8);
• увеличение состава и числа функциональных устройств (ин-
теграция общесистемных функций в процессоре размещением на
кристалле процессора средств реализации сетевых и телекомму-
никационных функций, что упрощает создание мультипроцессор-
ных систем и объединение компьютеров в сеть).
Рассмотрим тенденции развития по каждому из отмеченных
направлений.
Организация внутрикристальной памяти. Традиционно внутри-
кристальная память МП включает регистры процессора и встро-
енную кэш-память одного либо двух уровней (см. гл. 4, 5). В послед-
них разработках процессоров помимо встроенных кэшей развива-
ется технология встроенной динамической памяти DRAM (части
ОП, а не буфера, каковым является кэш, как это описано в гл. 8).
Напомним, что процессор и память — основные устройства ВМ.
Идея создания однокристального компьютера всегда была попу-
лярной. Корпорацией IBM достигнуты положительные результа-
ты в размещении на кристалле с процессором встраиваемого бло-
ка памяти EDRAM (Embedded DRAM) достаточно большой ем-
кости. В разработке IBM блок EDRAM емкостью 16 Мбайт зани-
мает менее 20 % площади кристалла и обеспечивает обмен с яд-
ром процессора со скоростью 50 Гбайт/с.
Постоянный рост емкости кэш-памяти МП сопровождался ус-
ложнением процесса управления. При этом в МП использовалось
программное управление режимом записи кэш-строк путем уста-
новки бита, переключающего режимы сквозной и обратной запи-
си (см. гл. 4, 5). Однако при промахе в кэш возрастает интервал
времени между модификацией переменной в процессоре и запи-
сью ее в память. Это снижает производительность мультипроцес-
сорных систем. Чтобы снизить влияние подобных эффектов на
работу системы, в процессорах были введены команды управле-
ния кэшированием. Так, в процессоре Pentium III появились до-
полнительные команды: запись из регистров процессора в память,
минуя кэш; чтение из памяти в регистры, минуя кэш; запись дан-
ных из памяти выборочно в кэш 1-го и 2-го уровня; запись из
кэша и буферов записи в память.
Команды упреждающего кэширования позволяют заранее заг-
ружать в кэш нужные данные, что уменьшает задержки, связан-
ные с доступом к ОП. Команды записи из кэш-памяти и буферов
записи позволяют поддерживать когерентность кэшей. Однако труд-
но требовать управления кэш-памятью при разработке программ
на ЯВУ. Распределение памяти всегда было функцией компилято-
ра. Поэтому и управление кэш-памятью — это дополнительная
задача компилятора.
Существенной частью внутрикристальной памяти процессора
являются его регистры. Рассмотрим особенности организации ре-
гистровой памяти в мультитредовой архитектуре. Основная осо-
бенность — использование не одного, а нескольких регистровых
файлов. Каждый регистровый файл обслуживает один вычисли-
тельный процесс — поток исполняемых команд (тред). Всего в
каждом процессоре имеется п регистровых файлов. В каждом такте
происходит переключение процессора на работу с очередным ре-
гистровым файлом. Поэтому запрос, выданный в ОП каждым из
потоков, может обслуживаться в течение (п - 1) тактов (вплоть до
момента времени, когда процессор переключится на тот же ре-
гистровый файл). Выбор значения п определяется отношением
времени доступа в память ко времени выполнения команды. Зада-
ча формирования потоков из последовательной программы долж-
на решаться компилятором. Компания Level One, приобретен-
ная компанией Intel, выпустила в 1999 г. мультитредовый сетевой
МП IXP 1200, содержащий в своем составе шесть процессоров
(4-тредовых). Компания IBM в 2000 г. анонсировала проект ком-
пьютера Blue Gene, кристалл МП которого включает 32 процес-
сора (8-тредовых). В кристалл процессора встроена память ED RAM,
содержащая 32 блока (соответственно числу процессоров). Шина
доступа к памяти содержит 256 разрядов и имеет высокую про-
пускную способность. При этом от кэша можно отказаться, разра-
ботчики вместо кэша между процессором и памятью использова-
ли буферную память небольшой емкости.
Увеличение состава и числа функциональных устройств. С ро-
стом уровня интеграции возникает задача распределения между
функциональными блоками системы дополнительных ресурсов на
кристалле. Память — ресурс, непосредственно не проводящий
вычисления. Размещение памяти на кристалле имеет целью умень-
шить задержки, связанные с извлечением из памяти затребован-
ных данных и команд. За счет этого увеличение емкости памяти на
кристалле дает прирост производительности системы. Однако после
достижения емкостью памяти некоторой величины, этот прирост
производительности оказывается меньше, чем прирост произво-
дительности, который можно получить при использовании того
же ресурса вентилей кристалла для дополнительного построения
функциональных преобразователей.
Использование нескольких АЛУ в МП с суперскалярной архи-
тектурой и создание специализированных блоков для мультиме-
дийных приложений (см. процессоры с MMX-расширением си-
стемы команд Pentium) были рассмотрены в гл. 5.
Основная проблема эффективного использования дополнитель-
ных функциональных устройств на кристалле — это организация
их загрузки (параллельной работы). Управлять загрузкой устройств
можно динамически, исследуя программный код на стадии ис-
полнения, и статически на уровне компиляции программ. Пер-
вый способ используется в суперскалярных архитектурах процес-
соров, второй — в процессорах с длинным командным словом
(см. VLIV-процессоры в гл. 5).
Выявление команд, допускающих параллельное исполнение,
не всегда возможно на уровне компиляции. Для многих типов за-
дач возможность параллельного исполнения команд зависит не
только от кода программы, но и от конкретного набора данных,
с которым работает программа, а также от возникающих в ходе
вычислительного процесса исключительных ситуаций. Во время
компиляции трудно (а иногда и невозможно) установить длитель-
ность исполнения отдельных команд в связи с тем, что возника-
ют промахи при обращении в кэш-память. Кроме того, при ис-
полнении команд с некоторыми наборами данных могут возник-
нуть арифметические переполнения, формирование недопусти-
мых адресов и другие исключительные ситуации, обработка кото-
рых требует дополнительного времени.
Параллельное исполнение команд в процессоре предполагает
использование следующих механизмов:
• переименование регистров с целью устранения ресурсных за-
висимостей;
Рис. 10.28. Организация динамического распараллеливания исполнения
команд:
АЛУ — арифметико-логическое устройство; ЗП — запись; ЧТ — чтение
• предсказание переходов (см. гл. 5);
• динамическое назначение команд на исполнение параллель-
но работающими устройствами, включая изменение порядка ис-
полнения в сравнении с порядком следования в программе.
В МП Alpha 21264 динамическое назначение команд на испол-
нительные устройства осуществляет блок «резервирующей стан-
ции», состоящей из совокупности элементов ассоциативной па-
мяти [28]. Каждый элемент содержит позиции для размещения
кода операции, имени 1-го операнда, его значения, признака
доступности 1-го операнда, имени 2-го операнда, его значения,
признака доступности 2-го операнда, имени регистра результата.
Резервирующая станция работает следующим образом. Когда
завершается исполнение очередной команды и вырабатывается
результат, то имя этого результата сравнивается с именами опе-
рандов в резервирующей станции. Если в резервирующей станции
обнаруживается команда, ждущая этого результата, то данные
записываются в соответствующую позицию элемента ассоциатив-
ной памяти, и устанавливается признак их доступности. Когда у
команды доступны все результаты, инициируется ее исполнение.
Таким образом, здесь используется механизм управления после-
довательностью исполнения команд, основанный на потоке дан-
ных (см. подразд. 3.1). Организацию динамического распараллели-
вания исполнения команд с использованием резервирующей стан-
ции иллюстрирует рис. 10.28.
Интеграция функций. С увеличением уровня интеграции микро-
схем появилась возможность создания систем на одном кристалле —
System On Chip (8ОС).Вкристалле интегрируются функции, для
Рис. 10.29. Функциональная схема МП Alpha 21364:
ОП — основная память
выполнения которых ранее требовались наборы микросхем, сете-
вые платы и другие средства. При интеграции функциональных
устройств системы на одном кристалле с одной стороны умень-
шаются задержки при их информационных обменах, что повыша-
ет производительность, с другой стороны уменьшается общее число
микросхем системы, упрощается изготовление и монтаж плат, а
это ведет к снижению стоимости систем и повышению их надеж-
ности. Таким образом, интеграция функций системы на кристал-
ле улучшает все общетехнические показатели системы.
В частности, в кристалл процессора интегрируются стандарт-
ные интерфейсы сетевых и телекоммуникационных систем, что
позволяет без дополнительных адаптеров соединять МП друг с
другом, с ТВС. Так в процессорах Motorola МРС8260 поддержива-
ется несколько телекоммуникационных протоколов, включающих
10/100 Мбит/с Ethernet, 155 Мбит/с ATM и др.
Разработка систем с распределенной разделяемой памятью (см.
подразд. 10.6.2) привела к интеграции в кристалл блока управле-
ния когерентностью многоуровневой памяти на кристалле и рас-
пределенной ВП, доступ к которой осуществляется через интег-
рированную в тот же кристалл коммуникационную среду. Рассмот-
рим реализацию такого подхода на примерах МП Alpha 21364 и
Power 4.
Укрупненная функциональная схема МП Alpha 21364 (рис. 10.29)
содержит микропроцессорное ядро, организация которого соот-
ветствует архитектуре МП Alpha 21264 (особенности этой архитек-
туры отражены на рис. 10.28); два блока кэш-памяти 1-го уровня
(команд и данных), кэш-память 2-го уровня, контроллер ОП, се-
тевой интерфейс и буферы обмена. Операционная часть процес-
сорного ядра содержит два блока операций с плавающей точкой
и четыре — для целочисленной обработки. Для динамического рас-
параллеливания исполнения в резервирующей станции рассмат-
риваются сразу 80 команд. После декодирования команда поме-
щается в очередь к соответствующим ОБ. Команды, получившие
все операнды, при освобождении требуемого ОБ поступают на
исполнение (см. рис. 10.28). Для динамического переименования
доступны 41 из 80 целочисленных регистров и 41 из 72 регистров
с плавающей точкой. Обмен данными между кэшами 1-го и 2-го
уровня, а также между кэшем 1-го уровня и ОП буферизован (см.
рис. 10.29). Благодаря встроенному сетевому интерфейсу упроща-
ется объединение МП в мультипроцессорные системы. Сетевой
интерфейс поддерживает четыре межпроцессорных соединения
типа «точка-точка». Скорость обмена по каждому соединению
10 Гбайт/с. Сетевой интерфейс обеспечивает когерентность кэ-
шей в мультипроцессорной системе и реализует асинхронный
обмен данными с адаптивной маршрутизацией. Наличие четырех
сетевых каналов позволяет строить системы с топологией «орто-
гональная сетка» и «тороидальная сетка» (см. рис. 10.18 и 10.19).
МП имеет 5-й порт для подключения периферийных устройств
(на рис. 10.29 не показан).
Укрупненная функциональная схема МП Power 4 (рис. 10.30)
содержит: два центральных процессора (ЦП1, ЦП2) с архитекту-
рой Power 3, общую внутрикристальную кэш-память 2-го уров-
Рис. 10.30. Функциональная схема МП Power 4:
ЦП1, ЦП2 — центральные процессоры; ОП — основная память
ня, внешнюю кэш-память 3-го уровня и интерфейсы межпроцес-
сорных соединений (линков). Каждый центральный процессор
содержит раздельные кэш-памяти команд и данных по 64 Кбайт.
Наряду с параллелизмом уровня команд (ILP), характерным для
суперскалярных архитектур (например, процессор Pentium III),
МП Power 4 реализует параллелизм уровня тредов (потоков) TLP.
Это параллелизм на более высоком уровне организации вычисли-
тельных процессов, чем ILP. Тред — это изолированный процесс
с собственными командами и данными. Имеется достаточно боль-
шое число прикладных программ, для которых характерна хоро-
шая распараллеливаемость на уровне тредов. Особенно это отно-
сится к серверам. Для них мультитредовые архитектуры весьма эф-
фективны [49]. Динамическое выявление параллелизма позволяет
уменьшать простои процессора при трудно выявляемых в статике
ситуациях. Процессор реализован на кристалле площадью 400 мм2
с использованием технологии SOI (кремний на изоляторе) с про-
ектной нормой 0,18 мкм и уровнем интеграции 170 млн вентилей.
Одна из существенных особенностей этого процессора — наличие
кэш-памяти 2-го уровня, разделяемой двумя процессорами крис-
талла и внешними процессорами других кристаллов через соеди-
нения (линки) «шириной» 16 байт. Физически кэш-память 2-го
уровня емкостью около 1,5 Мбайт состоит из трех одинаковых
блоков. Связь блоков памяти с процессорами реализована через
коммутатор с пропускной способностью 100 Гбайт/с. Порт, пред-
назначенный для связи кристалла с внешней кэш-памятью 3-го
уровня емкостью до 32 Мбайт, имеет ширину 16 байт для каждого
из двух направлений пересылки данных.
При объединении четырех кристаллов (рис. 10.31), проводники
линков могут быть короткими и прямыми. Это позволяет вести
обмен между кристаллами фрагмента мультипроцессорной систе-
мы с предельно достижимой пропускной способностью. Фрагмент
имеет четыре канала для организации связей с другими фрагмен-
тами. Таким образом, имеется возможность строить мультипро-
цессорные системы масштабируемой вычислительной мощности
с топологией «ортогональная» или «тороидальная сетка» (см. рис.
10.18 и 10.19).
Рассмотрим подробнее особенности мультитредовой архитек-
туры процессоров. Для однотредовых архитектур (процессоры
Pentium III, Alpha 21264 и др.) параллелизм уровня тредов может
быть выявлен только статически (при компиляции программы)
из-за ограниченности количества команд, которые могут быть про-
смотрены на предмет их параллельного исполнения (ограничен-
ность окна исполнения). Особенностью мультитредовых архитек-
тур является введение множества устройств выборки команд, каж-
дое из которых организует окно исполнения для одного треда [28].
В рамках одного треда выполняется предсказание переходов, ди-
Рис. 10.31. Объединение процессоров Power 4 в фрагмент
мультипроцессорной системы:
ОП — основная память
намическая подготовка команд к исполнению (см. гл. 4). Выявле-
ние тредов осуществляется как при компиляции (статически) так
и при их исполнении (динамически). Компилятор не может разре-
шить проблемы зависимостей тредов при использовании общих
регистров или ячеек памяти. Учет этих зависимостей может быть
реализован только динамически. Для решения этих проблем в муль-
титредовых процессорах предусмотрен дополнительный механизм
условного исполнения тредов. При необходимости специальная ап-
паратура обеспечивает возврат с отбрасыванием наработанных ре-
зультатов при обнаружении нарушения зависимостей между треда-
ми. По оценкам аналитиков мультитредовый процессор Alpha 21464
в 10 раз производительнее однотредового процессора Alpha 21264.
10.6.4. Направления развития мультипроцессорных систем
с распределенной памятью
В мультипроцессорных ВС с распределенной памятью (класс
систем МРР) каждый процессор, как правило, работает со своей
локальной памятью, а если программе требуется узнать значение
переменной, расположенной в памяти другого процессорного узла,
приводится в действие механизм передачи сообщений. Такой под-
ход позволяет создавать системы, содержащие тысячи процессо-
ров и достигать суммарной производительности в сотни миллиар-
дов операций в секунду. Основные проблемы, связанные с созда-
нием систем МРР: снижение затрат времени на передачу сообще-
ний; необходимость учета при программировании топологии си-
стем и специального распределения данных между процессорами
с целью минимизации числа и объема пересылок данных между
узлами системы.
Написание программ с учетом особенностей организации си-
стемы и архитектуры процессорных узлов весьма трудоемко и тре-
бует весьма высокой квалификации программистов.
Различные экземпляры систем МРР могут содержать различное
число процессоров (масштабируемость подобных систем — одно из
их преимуществ). Коммуникационные подсистемы могут реализо-
вать сеть с различной топологией и пропускной способностью ка-
налов. Программы системы МРР, стремящиеся максимально пол-
но использовать ее возможности, оказываются достаточно жестко
привязанными к ее архитектуре. В результате число пакетов про-
грамм, разработанных для каждой из систем МРР, весьма ограни-
чено. Это сдерживает распространение таких систем и делает их
дороже. А это в свою очередь сдерживает рост числа приложений.
В результате возникает порочный круг, тормозящий развитие [2].
Рассмотрим основные направления в развитии систем рассматри-
ваемого класса, позволяющие преодолевать отмеченные трудности.
Одно из направлений связано с использованием концепции
виртуальной памяти (см. гл. 4). Все узлы мультипроцессорной си-
стемы используют единое АП. Если программа обратилась по ад-
ресу, принадлежащему локальной памяти другого процессора, ге-
нерируется аппаратное прерывание по особому случаю адреса-
ции, и ОС выполняет пересылку сообщения от одного узла друго-
му. В результате можно ускорять исполнение программы, первона-
чально разработанной для последовательных систем, транслируя
ее с помощью специального распараллеливающего компилятора.
При высоком быстродействии коммуникационной системы этот
подход оправдывает себя. При этом снижать производительность
системы может эффект пинг-понга. Если на одну страницу попа-
дает несколько разделяемых переменных, считываемых и моди-
фицируемых множеством процессоров, страница непрерывно миг-
рирует с узла на узел. Рассмотренный подход позволяет снизить
стоимость программирования, но быстродействующая коммуни-
кационная система существенно увеличивает стоимость системы,
что ограничивает возможности ее тиражирования.
В связи с этим актуальна замена дорогого нестандартного ком-
муникационного оборудования стандартным широко тиражируе-
мым сетевым [2]. По данным статистики с 1992 г. скорость роста
производительности сетевого оборудования выше, чем процес-
соров. Основные достоинства систем с сетевым телекоммуника-
ционным оборудованием — возможность расширения и модер-
низации. Для использования в составе параллельных ВС перспек-
тивны сетевые технологии Fast Ethernet, Gigabit Ethernet, техно-
логии коммутации, протоколы широковещания и мультикастинга
[23].
Одна из основных проблем применения систем МРР — слож-
ность разработки параллельных программ. У унаследованных от
последовательных вычислений прикладных программ основной не-
достаток — большой объем кода, принципиально не допускаю-
щего параллельного исполнения. Для эффективного решения за-
дач на параллельных системах необходимо соответственно пере-
рабатывать алгоритмы их решения. Одним из существенных дос-
тижений в деле создания ПО для систем с распределенной памя-
тью является стандартизация интерфейса передачи сообщений MPI
(Message Passing interface) [8].
Стандарт MPI поддерживает несколько режимов передачи дан-
ных:
• синхронную передачу сколь угодно большого объема, не тре-
бующую выделения промежуточных буферов для данных;
• асинхронную передачу, при которой посылающий процесс
не ждет начала приема, что позволяет эффективно передавать
короткие сообщения;
• коллективные операции (широковещательную передачу, раз-
борку-сборку, операции редукции);
• гетерогенные вычисления, при которых ВС может включать
процессоры, имеющие разные списки команд и форматы пред-
ставления данных (см. гл. 4).
Существенным для стандарта MPI является использование по-
нятия коммуникатора. Все операции синхронизации процессов и
передачи сообщений локализуются внутри коммуникатора. С ком-
муникатором связывается группа процессов. Все коллективные
операции вызываются одновременно на всех процессах этой груп-
пы. Поскольку взаимодействия между процессами инкапсулиру-
ются внутри коммуникатора, на базе стандарта MPI можно со-
здавать библиотеки параллельных программ. Поддержка модуль-
ного программирования в сочетании с независимостью от аппара-
туры — основа для создания библиотек, и как следствие — рас-
ширение возможностей использования разработанного ПО в раз-
ных системах.
Однако и при использовании стандарта MPI разработка парал-
лельных программ весьма трудоемка. Уровень стандарта MPI для
разработки параллельных программ можно рассматривать как уро-
вень Ассемблера. При разработке на этом уровне параллельных
программ возникает много ошибок нового типа (по сравнению с
последовательными программами). На их поиск тратится много
времени. Определенным выходом из этого затруднения стали ЯВУ,
основанные на параллелизме данных. К ним относятся языки
Fortran-D, High Performance Fortran, mpC (вариант языка С) [23].
Более детально с проблемами и технологией параллельного про-
граммирования можно познакомиться по специальной литерату-
ре [8].
10.7. Производительность мультипроцессорных систем
при увеличении числа процессоров
Как уже отмечалось ранее, производительность ВС зависит от
большого числа факторов. Сложность учета влияния различных
факторов приводит к тому, что для сравнительной характеристи-
ки различных систем по производительности часто сравнивают
время выполнения на них тестовых задач [49]. Однако представля-
ют интерес и упрощенные аналитические оценки производитель-
ности. Они позволяют более глубоко понять механизм влияния
отдельных факторов на производительность. В данном разделе рас-
сматривается несколько подходов к аналитическим оценкам вли-
яния числа процессоров на производительность мультипроцессор-
ных систем.
В методах и средствах параллельной и конвейерной обработки
информации, применяемых в мультипроцессорных системах, ал-
горитмические, программные и архитектурные факторы сильно
связаны между собой и оказывают еще большее влияние на про-
изводительность, чем это имеет место для однопроцессорных си-
стем [12].
Те участки вычислений, которые удалось распараллелить, вы-
полняются с высокой скоростью, тогда как обычно сохраняющи-
еся участки последовательных вычислений выполняются намного
медленнее. Все это приводит к большим колебаниям скорости
вычислений в высокопроизводительных ВС (в 10—20 раз) [12].
Рассмотрим влияние числа процессоров п на производитель-
ность систем. Пусть вычисления на ВС с одним процессором зани-
мают время 7(1), а на ВС с п процессорами такого же класса Т\п).
Ускорение вычислений г(л) можно оценить отношением
г(и) = 7(1)/7(и).
Полной загрузки всех п процессоров достигнуть не удается, к
тому же появляются дополнительные «накладные расходы» на
управление ресурсами системы с целью решения одной общей
задачи. Поэтому г(п) = п можно рассматривать как максимальную
оценку г(л), практически не достижимую. Реально 1 < г(п) < п.
Для оценки значения г(п) используют закон Амдаля, позволя-
ющий свести оценку одного комплексного показателя г к более
простым оценкам частных показателей работы ВС. Первая частная
оценка сводится к выделению доли s от всего объема вычислений,
которая выполняется в быстром режиме с распараллеливанием
вычислительного процесса. Тогда (1 - s) — доля вычислений, вы-
полняемых последовательно. Пусть эти две выделенные части вы-
числительного процесса не совмещаются во времени. Тогда полу-
чим
r(n, s) = 1/(1 - s + s/k(n)) = k(ri)/[k(ri) - s(k(n) - 1)],
где к (п) — второй частный показатель, оценивающий во сколько
раз распараллеливаемая часть работы выполняется п процессора-
ми быстрее, чем одним, к(п) < п.
Из приведенных соотношений следует, что значение г (и, s)
по мере увеличения числа процессоров п асимптотически стре-
мится к значению 1/(1 - s), как показано на рис. 10.32. Некоторое
дополнительное повышение производительности ВС можно полу-
чить, если совмещать во времени медленный (последовательный)
и быстрый (параллельный) процессы [12].
Рассмотрим подходы к оценкам показателя к(п) ускорения
распараллеливаемой части процессора в зависимости от числа
процессоров п. Из известных подходов наиболее пессимистичной
является оценка, выражающая гипотезу Мински (Minsky М. L.),
согласно которой r(n) = log2n. Эта оценка справедлива в тех случа-
ях, когда на каждом следующем шаге вычислений число задей-
ствованных процессоров уменьшается в два раза. Такие случаи бы-
вают при оперировании с элементами массивов как с отдельны-
ми скалярными операндами, когда в результате обработки масси-
вов требуется получить единственное число (например, вычисле-
ние определителя матрицы). По оценкам аналитиков приведен-
Рис. 10.32. Зависимость показате-
ля ускорения вычислений г (п, s)
в мультипроцессорной системе от
числа процессоров п и доли объ-
ема вычислений s, выполняемой
с распараллеливанием вычисли-
тельного процесса
Рис. 10.33. Ускорение параллельных
вычислений [коэффициент £(«)] в
зависимости от числа процессоров п
ную оценку Мински можно рассматривать как нижнюю границу
оценок ускорения при распараллеливании [12].
Более реалистичный результат дает оценка, основанная на пред-
положении, что на каждом шаге распараллеливаемых между п
процессорами вычислений могут участвовать от 1 до л процессо-
ров. Пусть на некотором шаге работают i процессоров, а (л - z)
процессоров простаивают. Вероятность такой ситуации обозначим
Рь Pi + Р2 + ••• Рп = 1- Приняв равномерный закон распределения
вероятностей и полагая, что i процессоров делают в i раз больше
вычислительной работы, чем один, получим
к(п) = 1 / X*- = 1 / 2,-^ = «/2,-
(=1 1 (=1 1 (=1 I
Учитывая, что ряд 1 + 1/2 + 1/3 + ...1/л сходится к значению In
л, получим
к (л) = л/1пл.
Рассмотрим графики зависимостей к(п) (рис. 10.33) для рас-
смотренных выше оценок. Как показывают экспериментальные ис-
следования, реальные оценки для большинства случаев располо-
жены между зависимостями л/(1пл) и 1п2л, причем ближе к пер-
вой кривой [12]. Таким образом, можно считать, что оценка ускоре-
ния лежит ориентировочно в диапазоне: 1п2л < к(п) < л/In л, хотя в
конкретных случаях ускорение вычислений может выходить за эти
границы.
10.8. Вычислительные системы на кристалле.
Закономерности, проблемы и тенденции развития
10.8.1. Понятие о системах на кристалле
Возможность реализации всех блоков ВС на одном кристалле
весьма перспективна для разработчиков. Это позволяет улучшить
все общетехнические показатели системы: снизить стоимость,
повысить быстродействие и надежность.
В сложных дискретных системах общетехнические показатели
существенно зависят от технологии реализации соединений меж-
ду вентилями, элементами, узлами, блоками [7]. Из опыта разра-
ботки дискретных систем известны следующие усредненные от-
носительные оценки: стоимость соединения на кристалле в 10 раз
ниже, чем на печатной плате и в 100 раз ниже, чем в межплатных
соединениях. Соответственно и задержки в связях, существенно
влияющие на быстродействие, на печатной плате в 10 раз боль-
ше, чем на кристалле. Надежность и помехозащищенность соеди-
нений на кристалле также существенно выше, чем на плате и в
межплатных соединениях.
Проблемой, ограничивающей возможность использования тех-
нологии СБИС в проектировании систем, была необходимость
специализации СБИС и их относительно невысокая тиражиру-
емость (объем выпуска). Полный цикл проектирования СБИС
весьма трудоемок и дорог. Поэтому при малой тиражируемости
специализированной СБИС ее цена весьма велика. Решением
этой проблемы стало развитие направления СБИС программи-
руемой логики [1, 42]. Программируемая логика — универсаль-
ное средство для разработки цифровых устройств и систем на
базе кристалла СБИС [15]. СБИС программируемой логики со-
держит множества унифицированных функциональных преобра-
зователей и элементов памяти, а также средства программиро-
вания функций, выполняемых функциональными преобразова-
телями, и связей между ними, а также связей с внешними выво-
дами СБИС. Программирование выполняется пользователем с
использованием сравнительно простых специализированных ус-
тройств — программаторов, программно управляемых от стан-
дартного компьютера. Использование СБИС программируемой
логики в составе систем стало «островком аппаратной специали-
зации в системе» [15].
Возможность реализации системы на кристалле появилась в
связи с развитием технологии производства СБИС, когда уровень
интеграции превысил 1 млн вентилей на кристалле. Появилась
возможность реализации на одном кристалле как унифицирован-
ных блоков: процессора, памяти, контроллеров шин, так и спе-
циализированных устройств, реализуемых средствами программи-
руемой логики на той же СБИС.
Общая структура СБИС системы на кристалле — System On
Programmable Chip (SOPC) содержит блоки (рис. 10.34): процес-
сор, кэш-память, ОП ОЗУ, интерфейс шины для связи с ВП и
другими устройствами, последовательный порт, а также поле про-
граммируемой логики, позволяющее реализовать специализиро-
ванные блоки системы.
Получили развитие два направления создания кристаллов SOPS:
однородные и блочные.
Рис. 10.34. Общая структура СБИС системы на кристалле:
ОЗУ — оперативное запоминающее устройство
В однородных (generic) кристаллах SOPC блоки конфигуриру-
ются (программируются) в кристалле на базе программируемой
логики. При разработке систем используются готовые программы
крупных блоков системы (процессора, контроллера шины и др.).
Такие программы «параметризуемых мегафункций» получили на-
звание «единиц интеллектуальной собственности» — Intellectual
Properties (IP). Разработка и поставка IP на рынке средств вычи-
слительной техники стало важной сферой деятельности многих
фирм. Проектировщик системы выбирает необходимые блоки IP,
называемые также soft-ядрами, и размещает их на кристалле SOPC.
В блочных кристаллах SOPC определенные области кристалла
заранее выделены под аппаратные ядра. Эти ядра реализованы не
на программируемой логике, а с использованием полного цикла
проектирования. Это позволяет уменьшить площадь кристалла, не-
обходимую для реализации блока, и повысить его быстродействие.
Недостатком такого подхода является некоторое снижение гибко-
сти системы, так как реализованные при изготовлении СБИС блоки
нельзя изменять. Однако, в СБИС имеется поле программируемой
лигики, позволяющее создавать специализированные блоки. Оба
направления кристаллов SOPC успешно развиваются.
Направление «Системы на кристалле» позволяет проектиров-
щику с учетом конкретного назначения системы, вида реализу-
емых функций и требований к быстродействию гибко решать воп-
росы об аппаратной либо программной реализации отдельных
функций системы. Это способствует повышению производитель-
ности при относительно невысокой стоимости. Переход от про-
граммной реализации к аппаратной теперь не требует существен-
ной конструкторской переработки. Систематическое повторное
использование блоков IP позволяет сократить сроки и повысить
качество разработки систем. Дальнейший рост уровня интеграции,
связанный с переходом к нанотехнологии, делает переход от со-
здания в кристалле СБИС не отдельных устройств, а систем не
только возможным, но и необходимым. Эти аспекты развития рас-
сматриваются в последующих подразделах.
10.8.2. Переход к нанотехнологии производства
интегральных схем. Тенденции развития
Полупроводниковые структуры современных ИС формируются
с использованием планарной технологии. Интегральные микро-
схемы создаются на основе слоев из проводящих материалов, на-
носимых на поверхность кремниевой пластины. Существует мно-
жество материалов для формирования таких слоев. Различные со-
четания материалов и методов их нанесения лежат в основе раз-
ных технологий создания ИС. Наибольшее распространение полу-
чили МОП-технологии и КМОП-технологии. В МОП-технологии
используются три слоя, в которых размещаются проводники и
элементы транзисторов: диффузионный слой, слой поликремния
и слой металла [43]. Эти слои выполняют различные функции.
Основной тенденцией при проектировании ИС является по-
стоянное уменьшение минимального размера участка на кристал-
ле, в пределах которого возможно успешное формирование эле-
ментов. При проектировании топологии слоев микросхем задают-
ся не абсолютные размеры, а используются единицы, кратные
некоторому параметру размера ц, называемому проектной нор-
мой. Этот параметр приблизительно равен максимальному значе-
нию смещения топологического элемента, которое может возник-
нуть при его формировании на пластине [43]. Параметр ц опреде-
ляет ширину проводника и линейные размеры других компонент
полупроводниковых структур. Так ширина проводника на пласти-
не не может быть менее 2ц. Таким образом, пропорционально ц
определяются все линейные размеры А'х У элементов на кристал-
ле. Поэтому параметр ц непосредственно влияет на плотность раз-
мещения транзисторов на кристалле СБИС: снижение линейного
размера на 30 %, связанное с уменьшением ц, позволяет удвоить
плотность размещения.
С размерами транзистора, а также с толщиной слоя диэлектри-
ка, отделяющего затвор транзистора от канала, связана величина
напряжения питания и энергии, выделяемой при переключении
вентиля. Чем меньше размеры, тем меньше напряжение и энер-
гия.
Таким образом, снижение проектной нормы ц в технологии
изготовления ИС существенно влияет на три важнейших показа-
теля: уровень интеграции (число вентилей на кристалле), быстро-
действие, энергопотребление.
Приводимые ниже данные о закономерностях изменения ха-
рактеристик СБИС и тенденциях развития основаны на матери-
алах презентации фирмы Intel на IX Международном академиче-
ском форуме в Барселоне в апреле 2004 г. Рассмотрим график из-
менения проектной нормы ц (рис. 10.35) по мере развития техно-
логии. Масштаб по оси ординат логарифмический. Видно, что при
логарифмическом масштабе график изменения проектной нормы
в функции времени хорошо аппроксимируется прямой линией.
Таким образом, уменьшение линейных размеров элементов на кри-
сталле с течением времени происходит по экспоненциальному
закону.
В развитии производства ИС в зависимости от значения ц выде-
ляют три этапа с соответствующими названиями технологии:
• микронная технология (ц > 1 мкм);
• субмикронная технология (1 > ц > 0,1 мкм);
• нанотехнология (ц < 0,1).
Нанотехнология — это технология XXI в.
Как уже отмечалось ранее, снижение проектной нормы на 30 %
позволяет удвоить плотность размещения транзисторов. Еще быст-
рее растет уровень интеграции СБИС, так как по мере развития
технологии выращивания кристаллов кремния, увеличивается и
площадь кристалла ИС. Из теории СБИС известно, что еще быст-
рее, чем число вентилей, растет число соединений в СБИС [7].
Для снижения затрат площади кристалла на соединения увеличи-
Рис. 10.35. Уменьшение линейных размеров ц вентиля на кристалле по
данным фирмы Intel
вают число слоев металлизации при изготовлении СБИС. В насто-
ящее время их пять и более.
Одной из важнейших проблем, связанных с ростом уровня
интеграции, является проблема снижения энергопотребления кри-
сталла. Она определяется проблемой теплоотвода от переключае-
мых вентилей. Повышение температуры выше определенного уров-
ня (80—90 °C) ведет к нарушению работы р— «-переходов [7]. Энер-
гия переключения зависит от напряжения питания ИС:
LTZ Е2
W —т,
RH
где Е — напряжение питания; RH — эквивалентная активная на-
грузка вентиля; т — время переключения уровня выходного сиг-
нала.
Минимально допустимое напряжение питания Е зависит от
порога открывания МОП-транзистора, а порог зависит от разме-
ров транзистора и толщины слоя диэлектрика, отделяющего зат-
вор транзистора от канала (см. рис. 6.23). По мере совершенствова-
ния технологии толщина слоя диэлектрика уменьшается.
По мере снижения проектной нормы ц уменьшается напряже-
ние питания Е (рис. 10.36). При переходе к нанотехнологии темп
уменьшения снижается. Поэтому проблема локального разогрева
отдельных областей кристалла становится все более острой.
Создание нанотехнологии, охватывающей диапазон линейных
размеров полупроводниковых структур 1 —100 нм, требует иссле-
дований и развития технологии
на атомарном, молекулярном и
макромолекулярном уровнях.
Необходимо раскрытие особен-
ностей и основ работы полупро-
водниковых структур наношка-
лы, создание и использование
структур, устройств и систем с
новыми свойствами и функцио-
нальными возможностями, обус-
ловленными уменьшением раз-
меров элементов и связей.
По оценкам ученых при
уменьшении линейных размеров
транзисторов до 10 нм не требу-
ется фундаментальных измене-
ний в схемотехнике КМОП-вен-
тилей. Кремниевая нанотехноло-
гия будет развитием КМОП-
Рис. 10.36. Уменьшение напряже-
ния питания Е ИС по мере совер-
шенствования технологии
структур с эволюционным совершенствованием используемых
материалов, технологических процессов, средств контроля и уп-
равления технологическими процессами. При этом будет увеличи-
ваться подвижность носителей (а следовательно и скорость пере-
ключения вентилей), изменяться конфигурация транзисторов,
соединение их в схемы устройств с использованием 3D интегра-
ции. Будут совершенствоваться с учетом миниатюризации компо-
нентов в нанодиапазоне соединения компонентов в виде наноп-
роводников, нанотрубок и др.
Для преодоления ограничений, возникающих в связи с тепло-
выделением при работе схем, проводятся исследования по ряду
направлений: материалы и процессы, схемотехника устройств,
архитектура систем. Развитие новых архитектур систем на кри-
сталле происходит на основе системного подхода к решению ком-
плекса проблем: технологических, схемотехнических, системотех-
нических.
10.8.3. Развитие параллельной обработки данных в системах
на кристалле. Тенденции изменений архитектуры систем
Потребность в повышении производительности процессоров
непрерывно возрастает и всегда опережает достигнутый уровень.
Рост производительности обеспечивается различными способами:
совершенствованием элементной базы и повышением тактовой
частоты работы устройств, развитием архитектуры систем. При
этом широко используются методы параллельной обработки дан-
ных на различных уровнях организации вычислительного процес-
са (см. подразд. 10.1, 10.2).
График роста производительности процессоров фирмы Intel (рис.
10.37) позволяет прогнозировать достижение к 2010 г. уровня 1012
операций в секунду. На графике отмечено соответствие различных
уровней производительности различным семействам процессоров
фирмы Intel. Соответствующие архитектурные особенности этих
семейств рассмотрены в гл. 5.
По мере роста интеграции параллельная обработка (рис. 10.38)
применяется на все большем числе уровней организации вычи-
слительных процессов:
• на уровне обработки и пересылок слов данных за счет увели-
чения разрядности;
• конвейеризация процессов при выполнении микроопераций;
• конвейеризация на уровне выборки и исполнения команд;
• параллельная работа нескольких операционных устройств;
• векторная обработка данных (в частности видеоинформации);
• мультитредовая обработка (см. подразд. 10.3);
• мультипроцессорная обработка.
Производительность
Рис. 10.37. Рост производительности процессов по мере
совершенствования их архитектуры и технологии производства
По данным фирмы Intel переход от однопроцессорной к муль-
типроцессорным системам на кристалле позволяет замедлить рост
потребляемой мощности при увеличении ресурсов кристалла. Так
для однопроцессорных структур на уровне развития технологии в
2002 г. увеличение производительности на 1 % связано с увеличе-
нием потребляемой мощности на 3 %. При мультипроцессорных
структурах темп увеличения мощности снижается не менее, чем в
три раза.
Мультитредовая и мультиядерная архитектура
Будущая архитектура Xeon
(мультитредовая)
Архитектура Pentium 4
Архитектура Pentium Pro
Архитектура Pentium
Параллелизм
«тредов»
и процессоров
(суперскалярная)
£—Параллельное —
исполнение команд
юооооо
100000
юооо
1000
юо
ю
1
1980 1985 1990 1995 2000 2005 2010
Рис. 10.38. Развитие параллельной обработки в кристалле процессоров
фирмы Intel
Мультипроцессорные системы на кристалле обозначают абб-
ревиатурой CMP (Chip Multi-Processor).
Как и при организации мультипроцессорных систем на базе
нескольких кристаллов МП (см. подразд. 10.3), в мультиплексор-
ных системах на кристалле СМР в первую очередь получили раз-
витие «симметричные» системы: Chip Multi-Processor, Symmetric
General Purpose cores — мультипроцессорные системы на крис-
талле с симметричными ядрами общего назначения (рис. 10.39).
Минимальное число ядер на кристалле — 2. Обмен информацией
происходит через общий кэш. Достоинства таких систем, как и
систем SMP (см. подразд. 10.3): относительная простота разработ-
ки, интенсивное взаимодействие ядер, относительная простота
программирования. Недостаток — это однотредовые системы. На-
помним, что тред — это изолированный процесс с собственными
командами и данными. Для многих задач при решении можно
выделять хорошо распараллеливаемые треды. Особенностью одно-
тредовых систем является слабая зависимость производительнос-
ти от характера решаемых задач.
В подразд. 10.6.3 рассматривались архитектурные особенности
мультитредовых систем. Этот подход к распараллеливанию про-
цессов получил развитие и в мультиплексорных системах на кри-
сталле. Такие системы получили обозначение SMT — Simultaneous
Multi-Threading. В них организовано параллельное выполнение не-
скольких тредов с совместным использованием ресурсов на крис-
талле. Рассмотрим основные особенности этого класса систем:
• одновременное выполнение двух и более тредов в одном про-
цессорном ядре (при этом возможно совместное или разделяемое
использование ресурсов);
• более эффективные соотношения
мультипроцессорной
системы СМР:
ПЯ1...ПЯ4 — процессорные
ядра
производительности к площади кристал-
ла, производительности к мощности;
• возрастает сложность разработки,
производительность сильно зависит от
класса решаемых задач.
Далее в результате исследования
проблем, связанных с наращиванием
производительности, предложен класс
асимметричных кластерных мультипро-
цессорных систем АССМР (Asymmetric
Cluster СМР). На кристалле размеща-
ется асимметричный кластер процес-
сорных ядер с различной специализи-
рованной аппаратурой. Кластер может
содержать, например, RISC-ядро про-
цессора, DSP-ядра (специализирован-
ные процессоры для цифровой обра-
ботки сигналов), блоки памяти, средства коммуникаций: «лин-
ки», порты. Асимметричные архитектуры позволяют повысить от-
ношение прироста производительности к приросту мощности в
три раза в сравнении с симметричными архитектурами. Но при
этом требуется разработка специализированных ядер. Для их по-
вторного использования в различных разработках в фирмах созда-
ются библиотеки 1Р-ядер.
Направление дальнейшего развития архитектур систем на
кристалле — создание мультиядерных архитектур (Multi-Cores
Architecture). Особенности и достоинства этого класса архитек-
тур:
• большое число простых процессорных ядер на кристалле;
• большой кэш;
• использование при разработках архитектуры результатов со-
здания и исследования систем SMP (см. подразд. 10.3);
• эффективность взаимодействия ядер;
• высокое соотношение производительности к мощности;
• простота масштабирования производительности системы.
Основные проблемы, выявленные при разработке новых клас-
сов архитектур систем на кристалле и требующие исследования
следующие:
• выбор способа соединения процессорных ядер на кристалле
(шины, коммутаторы и др.), оптимизация соединений по соот-
ношению производительность — мощность;
• синхронизация процессов в ядрах;
• влияние на производительность системы необходимости «под-
качки» данных из внешнего системного окружения кристалла;
• пропускная способность каналов с памятью;
• ОС для работы с новым аппаратным обеспечением;
• метод решения того или иного класса задач для использова-
ния возможности параллельной обработки, присущей тому или
иному классу архитектур;
• построение оптимизирующих компиляторов для новых клас-
сов архитектур и новых методов решения задач.
Решение этих проблем окажет существенное влияние на раз-
витие средств вычислительной техники в XXI в. и на увеличение
производительности СОД.
Рост производительности СОД оказывает влияние и на орга-
низацию взаимодействия ВС (машины) с человеком. В большин-
стве современных систем используется интерактивный режим вза-
имодействия человек— машина. При этом действия оператора на
пульте вызывают прерывание вычислительного процесса и ввод
команд и данных от человека в систему. Ответная информация о
результатах выполнения команд по завершении необходимых про-
цессов появляется на экране либо других устройствах вывода. При
такой организации взаимодействия человека и машины человек
всегда ожидает завершения решения поставленной задачи, и сис-
тема ожидает реакции человека на ее сообщения. Такие ожидания
снижают производительности системы человек—машина.
Поэтому в будущем планируется реализация проактивного ре-
жима (Proactive Computing). При этом система прогнозирует зап-
росы и действия человека и заранее выполняет соответствующую
обработку данных. Это требует дополнительных вычислительных
ресурсов, но позволяет снизить задержки и помогает человеку
принимать решения.
Контрольные вопросы
1. Каковы способы повышения производительности ВС? В чем пре-
имущества и ограничения параллельных ВС? Сформулируйте закон Ам-
даля. Дайте классификацию ВС по способу инициирования выполнения
команд.
2. В чем заключается постановка задачи повышения производительно-
сти за счет параллельной обработки? Каковы способы повышения про-
изводительности за счет параллельной обработки? Дайте понятие о гра-
нулярности параллельной обработки. Приведите единицы обработки дан-
ных.
3. Каковы способы обобщенного представления архитектур параллель-
ных ВС? Дайте их классификацию. В чем заключается подход Флинна?
В чем его ограничения?
4. Что такое использование гранулярности при классификации ВС;
регулярная система архитектур ВС с параллельной обработкой; уровни и
средства распараллеливания вычислений, обозначения классов, избы-
точность системы классификации?
5. Что такое базовая регулярная система архитектур? Дайте описание
степени совмещенной обработки, оценки ускорения.
6. Дайте классификацию мультипроцессорных систем по способу орга-
низации ОП. Каковы функциональные схемы систем с общей и распре-
деленной памятью?
7. Приведите примеры систем SMP и МРР. Дайте сравнительную ха-
рактеристику систем SMP и МРР. Каковы условия применения? Дайте
понятие о кластерах. Приведите пример кластера, организации процессов в
кластере.
8. Расскажите о проблемах и тенденциях создания ВС для высокопро-
изводительных вычислений. Дайте характеристику состояния и исполь-
зования высокопроизводительных ВС.
9. Приведите примеры систем МРР с различными топологиями: «об-
щая шина», «полный граф», «двухмерный гиперкуб». Каково влияние
топологии на производительность и стоимость ВС?
10. Каковы способы организации внутренних связей в мультипроцес-
сорных системах? Топологическая классификация внутренних связей?
11. В чем отличия коммутаторов и сетей связи как средств, обеспечи-
вающих информационный обмен между блоками мультипроцессорных
систем?
12. Чем отличаются коммутация каналов и коммутация пакетов? Ка-
ковы области применения этих способов коммутации?
13. Что характеризует топология структуры ВС? Как топология влияет
на общетехнические показатели ВС?
14. Какие системы относят к высокопроизводительным ВС? Где тре-
буются высокопроизводительные ВС? Каковы требования к производи-
тельности таких систем? Насколько эти требования превышают возмож-
ности современных компьютеров?
15. В чем заключается проблема когерентности кэшей? Как эта про^
блема решается в системах SMP?
16. Что понимают под распределенной разделяемой памятью? Какие
типы распределенной разделяемой памяти используются в мультипро-
цессорных системах? В чем заключаются основные принципы организа-
ции этих типов памяти?
17. Каковы тенденции развития архитектуры процессоров, использу-
емых в мультипроцессорных системах?
18. Каковы направления развития мультипроцессорных систем класса
МРР?
19. Какие подходы существуют к оценке производительности мульти-
процессорных систем? Как оценить увеличение производительности ВС
в зависимости от числа процессоров?
20. Что такое системы на кристалле? Почему актуально развитие это-
го направления?
21. Какие показатели характеризуют уровень технологии производ-
ства СБИС?
22. Каковы закономерности изменения основных показателей СБИС
в связи с развитием технологии?
23. Что такое нанотехнология? В чем проблемы создания СБИС с ис-
пользованием нанотехнологии?
24. Какие классы архитектур ВС появились в связи с применением
нанотехнологии? Каковы тенденции дальнейшего развития систем на
кристалле?
25. Перечислите основные проблемы развития систем на кристалле
при использовании нанотехнологий. Качественно охарактеризуйте влия-
ние решения этих проблем на основные характеристики ВС.
Глава 11
ВВЕДЕНИЕ В ТЕЛЕКОММУНИКАЦИОННЫЕ
ВЫЧИСЛИТЕЛЬНЫЕ СЕТИ
11.1. Принципы построения телекоммуникационных
вычислительных сетей
Одной из важнейших задач научно технического развития в ин-
формационную эру является создание информационной инфра-
структуры общества, обеспечивающей сбор, формирование, хра-
нение, распространение и целенаправленное использование ин-
формации. Для реализации информационной инфраструктуры ис-
пользуются ВМ, ВС, системы телекоммуникаций. Целью данной
главы является рассмотрение предпосылок возникновения сетей
как развития способов и средств реализации информационного вза-
имодействия компьютеров при их объединении в системы, введе-
ние в терминологию, ознакомление с назначением и основными
принципами построения ТВС, с направлениями их развития. Более
детальному изучению ТВС посвящены специальные дисциплины.
11.1.1. Основные понятия
Телекоммуникационная вычислительная сеть — это сеть обмена и
распределенной обработки информации, образуемая множеством
взаимосвязанных абонентских систем и средствами связи. Средства
передачи и обработки информации в ТВС ориентированы на кол-
лективное использование общесетевых ресурсов: аппаратных, про-
граммных, информационных. ТВС называют в литературе также
информационными вычислительными сетями, компьютерными
сетями. Мы в дальнейшем будем использовать термин ТВС.
Обобщенная функциональная схема ТВС (рис. 11.1) включает в
себя абонентские станции и телекоммуникационную систему. Уз-
лами сети являются абонентские станции АС1,..., ACN. Абонент-
ская станция включает в себя ВМ (либо ВС), программный ин-
терфейс и аппаратный интерфейс.
Для работы в составе сети помимо традиционных функций,
свойственных одиночно работающей ВМ, требуется выполнять ряд
дополнительных функций, определяемых разработчиками сети.
Часть этих функций выполняется программно, а часть — специ-
ализированными аппаратными средствами. Программные средства,
АС1 AC2 ACN
Рис. 11.1. Обобщенная функциональная схема телекоммуникационной ВС:
АС1, АС2, ..., ACN — абонентские станции; ВМ — вычислительная машина
реализующие сетевые функции в абонентской станции, образуют
программный интерфейс — часть системного ПО ВМ. Специали-
зированные аппаратные средства образуют дополнительный блок
в ВМ, называемый «сетевой адаптер» или «сетевая карта». Этот
блок реализует аппаратный интерфейс (см. рис. 11.1). Таким обра-
зом, абонентской станцией может быть компьютер, содержащий
сетевую карту (адаптер) и соответствующее ПО.
Телекоммуникационная система (или коммуникационная подсеть)
включает физическую среду передачи информации, аппаратные и
программные средства, обеспечивающие взаимодействие абонент-
ских станций. Важнейшими функциями при этом являются: синх-
ронизация взаимодействия абонентских систем при обмене инфор-
мацией, коммутация соединений, маршрутизация сообщений.
Для ТВС большое значение имеют следующие требования:
• ВМ в сети связываются между собой автоматически.
• каждая ВМ в сети должна иметь возможность работать как в
автономном режиме под управлением своей ОС, так и в качестве
узла сети.
Использование ВМ и ВС не автономно, а в составе сети обеспе-
чивает дополнительные возможности информационного обслужи-
вания пользователей и экономически целесообразно, поскольку
позволяет наиболее дорогие ресурсы использовать коллективно.
11.1.2. Организация и работа простейшей
телекоммуникационной сети
Для пояснения исходных принципов функциональной органи-
зации сети рассмотрим простейший случай взаимодействия двух
компьютеров [49]. Простейшая сеть (рис. 11.2), содержит две ВМ,
Рис. 11.3. Формат сообщений
в простейшей сети
связанные между собой двумя однонаправленными проводными
каналами связи. В конце каждого канала имеется буфер с дисцип-
линой FIFO (First In, First Out). Каждая машина ВМ в такой сети
может запросить данные из ОП другой машины. Для этого запра-
шивающая машина должна послать адрес запрашиваемых данных.
Запрашиваемая машина должна считать данные по запрашивае-
мому адресу, поместить их в буфер и переслать ответ с данными
первой машине. Таким образом, сообщения, которыми обмени-
ваются ВМ, можно разделить на два типа: запрос о данных, со-
держащий адрес ОП, и ответ со считанными данными. Для обо-
значения каждого из двух типов сообщений требуется, по край-
ней мере, один дополнительный служебный бит, образующий за-
головок сообщения (рис. 11.3). Приняв сообщение и проанализи-
ровав значение бита заголовка, ВМ может распознать, был ли
получен новый запрос с адресом запрашиваемых данных, либо
получен ответ с данными на ранее переданный запрос. Этот при-
мер показывает организацию обмена сообщениями фиксирован-
ного формата (например, при длине сообщения в слово). В реаль-
ных сетях сообщения могут иметь переменную длину и содержат
сотни слов. Кроме того, процесс обмена между машинами конку-
рирует за разделяемые ресурсы с другими процессами в ВМ. Про-
цессов в ВМ может быть несколько (см. гл. 4). Основные функции,
связанные с распределением ресурсов, а также с организацией
взаимодействия процессов обработки данных и передач и приема
сообщений по сети, реализуются программными средствами. Для
организации выполнения этих функций управляющему процессу
требуется более полная служебная информация в сообщениях, что
обусловливает расширение заголовка. Сообщением называют пор-
цию данных, оформленную для передачи данных по сети в соот-
ветствии с принятыми соглашениями.
Весьма важными требованиями при организации сети являют-
ся требования к надежности и достоверности передачи сообще-
ний. Как правило, канал связи между ВМ в сети имеет много
большую протяженность, чем длина соединений между узлами
внутри ВМ. Поэтому каналы передачи сообщений в большей сте-
пени подвержены воздействию помех. Сбои, происходящие при
передаче данных, можно разделить на две категории: искажение
данных и потерю сообщения. Для повышения достоверности по-
лучаемых данных используют помехоустойчивое кодирование [30].
Кодирование проводится при подготовке сообщения к передаче.
После приема сообщения выполняется декодирование с выявле-
нием искажения сообщения либо его правильности. Соответству-
ющую реакцию на эти две возможности организует ПО. Для выяв-
ления потерь передаваемых сообщений используют принцип кви-
тирования и контроля времени между отправкой сообщения и
получением подтверждения от приемника о его получении. При
посылке сообщения запускается таймер с запрограммированным
в нем допустимым временем ожидания ответа. Если таймер сраба-
тывает раньше, чем приходит ответ, это воспринимается как по-
теря сообщения. Это событие вызывает прерывание вычислитель-
ного процесса в передающем узле, которое инициирует выполне-
ние соответствующей программы.
Последовательность действий при передаче сообщения следу-
ющая:
• прикладная программа, которой требуется обмен с памятью
другого компьютера, загружает копию передаваемых данных в
буфер программы, управляющей обменом;
• системная программа, управляющая обменом, присоединяет
к сообщению заголовок, выполняет кодирование (в простейшем
случае вычисляет контрольную сумму и присоединяет ее к сооб-
щению), запускает таймер, используемый для контроля времени
ответа;
• системная программа, управляющая обменом, передает дан-
ные аппаратному интерфейсу сети и инициирует передачу сооб-
щения по каналу связи.
Порядок действий при приеме следующий:
• поступление сообщения в аппаратный интерфейс сети вызы-
вает инициирование обслуживания этого события системной про-
граммой (эта программа копирует полученные данные из аппа-
ратного интерфейса в буфер системной программы);
• производится декодирование данных (в простейшем случае
подсчет контрольной суммы и сравнение ее с принятой конт-
рольной суммой) и при отсутствии искажения данных формиру-
ется сигнал подтверждения приема (квитирование), а если обна-
ружено искажение данных, сообщение уничтожается (передающая
сторона определит это событие по срабатыванию таймера).
Реакция передающей стороны на подтверждение (квитанцию)
от приемной стороны следующая:
• если подтверждение получено, копия сообщения удаляется
из системного буфера;
Заголовок __________ Концевик
Данные
2 бит 1 л 4 бит
Рис. 11.4. Модифицированный фор-
мат сообщений в простейшей сети
• если подтверждение отсут-
ствует и срабатывает таймер,
инициируется повторная переда-
ча сообщения и запуск таймера.
В расширенном формате со-
общений (рис. 11.4) в рассмат-
риваемой простейшей сети уве-
личен размер заголовка, чтобы отразить увеличившееся разнооб-
разие сообщений в канале связи, добавлен концевик с контрольной
суммой (либо с остатком от деления на полином при использова-
нии циклического кода). Сообщения могут быть закодированы
битами заголовка следующим образом:
«00» — запрос данных (передается адрес);
«01» — ответ (передаются данные);
«10» — подтверждение запроса;
«11» — подтверждение ответа.
Приведенную выше последовательность действий передающе-
го и приемного узлов сети при передаче сообщения называют про-
токолом. Протокол — это соглашение о взаимодействии компью-
теров (или других коммуникационных компонентов) в сети. Со-
глашение включает форматы данных и порядок действий.
11.1.3. Параметры производительности
телекоммуникационной сети
Важнейшей характеристикой сетевого взаимодействия компь-
ютеров является производительность коммуникационной систе-
мы. Рассмотрим диаграмму (рис. 11.5), поясняющую параметры,
используемые для характеристики задержек при обмене сообще-
ние. 11.5. Параметры, характеризующие задержки при передаче
сообщений по сети:
Д/| — задержка времени в передающем узле; Д/2 — время передачи данных; Д/3 —
время продвижения сигналов по телекоммуникационной системе; Д^ — задерж-
ка времени в приемном узле; — время транспортировки сообщения; —
время обмена
ниями. По оси абсцисс откладывается время t. Цифры характери-
зуют события при передаче сообщений: 0 — начало передачи; 1 —
появление 1-го бита в канале связи; 2 — достижение 1-м битом
приемной стороны; 3 — появление последнего бита сообщения
на выходе передающей стороны; 4 — достижение последним би-
том приемной стороны; 5 — завершение обмена. Параметры Л/,
соответствуют интервалам времени, характеризующим различные
виды задержек:
Д/[ — задержка в передающем узле (интервал от начала переда-
чи до появления 1-го бита в канале связи);
Д/2 — время передачи данных — интервал от поступления в
канал связи 1-го бита до поступления последнего бита;
Д?з — время продвижения сигналов по телекоммуникационной
системе (в рассматриваемом простейшем случае по каналу связи);
Д/4 — задержка в приемном узле (интервал от поступления из
канала связи последнего бита сообщения до завершения обмена).
Помимо перечисленных параметров используются еще два ин-
тегральных показателя: /’транс — время транспортировки сообще-
ния (интервал времени, в течение которого сигналы сообщения
присутствуют в телекоммуникационной системе); To6m — время
обмена (интервал времени с момента начала передачи на переда-
ющей стороне до момента завершения приема на приемной сто-
роне). Для определения этих показателей можно использовать сле-
дующие соотношения:
/транс = Д^2 *" Д(з >
^обм = М + + Д(з + До-
оценка показателей Д^ и Д/4 проводится на основе анализа про-
цессов в передающем и приемном узлах. Показатель Д/3 включает
сумму задержек в канале связи и телекоммуникационном обору-
довании (в рассмотренной простейшей сети — это задержка в ка-
нале связи). Показатель Д/2 определяется информационным объ-
емом сообщения Vc (в битах или в байтах) и шириной полосы
пропускания телекоммуникационной системы WJKC (в бит/с либо
в байт/с соответственно):
Д6 = /^ткс-
Для интегральной оценки производительности при обмене в
сети используется также интегральный показатель эффективной
полосы пропускания [49]:
^эфф = К: //обм-
11.1.4. Классификация телекоммуникационных
вычислительных сетей
В основу классификации сетей положены два показателя: чис-
ло узлов в сети и их удаленность. Это влияет на коммуникацион-
ные средства, используемые для объединения в сеть ВМ, ВС и
терминалов, а также на организацию телекоммуникационной сети.
По этим признакам выделяют четыре вида сетей [5, 49]:
1. Глобальные сети (Wide Area Network — WAN) — сети, объе-
диняющие тысячи узлов, удаленность которых может достигать
нескольких тысяч километров. Глобальные сети объединяют або-
нентов, которые могут находиться в разных странах и на разных
континентах. В связи с большой сложностью такие сети имеют
иерархическую структуру.
2. Региональные сети (Metropolitan Area Network — MAN) —
сети, объединяющие абонентов района, города, области. Удален-
ность абонентов обычно составляет десятки — сотни километров.
3. Локальные сети (Local Area Network — LAN) — сети, объеди-
няющие до нескольких сотен узлов, удаление которых не превы-
шает нескольких километров. Обычно локальные ВС создают в пре-
делах одного здания.
4. Системные сети (Storage or system Area Network — SAN) —
это высокопроизводительные ВС, объединяющие до нескольких
сотен узлов, с длиной связей до 100 м, располагаемые чаще всего
в специальном машинном зале. Принципы построения таких си-
стем были рассмотрены в гл. 10.
Приведенная классификация показывает преемственную связь
ТВС с ВС.
11.1.5. Архитектурные принципы построения сетей
Архитектура сети (сетевая архитектура) — логическая и тех-
ническая организация ТВС, включающая совокупность сетевых
аппаратных и программных средств, методов доступа и использу-
емых протоколов.
В начальный период создания ТВС (70-е гг. XX в.), когда сетей
было мало, для каждой сети разрабатывались свои протоколы и
по-своему распределялись функции между подсистемами [10]. От-
сутствие единой технологии и унифицированных средств сильно
затрудняло и удорожало создание сетей. Из всех систем обработки
данных и информационного обслуживания ТВС являются самыми
сложными и крупномасштабными, объединяющими большое чи-
сло различных подсистем. Для преодоления влияния сложности
на эффективность и стоимость создания и использования ТВС ис-
пользуется иерархический подход к функциональной организа-
ции, а также унификация архитектур и стандартизация использу-
емых аппаратных и программных средств.
Физическими блоками структуры сети являются ВМ (либо вы-
числительные системы, локальные сети), образующие узел сети,
терминалы, каналы связи, коммуникационные средства. Они от-
личаются большим разнообразием по своим характеристикам,
функциональным возможностям, конструктивному исполнению.
Представление логической организации сети позволяет абст-
рагироваться от многих деталей, характеризующих физическое ис-
полнение подсистем и блоков. В логических структурах с точки
зрения передачи данных представлены на информационном уровне
структурные блоки сети, их архитектура, распределение функ-
ций, интерфейсы. На уровне логического представления сети мож-
но по единой технологии управлять каналами связи и устрой-
ствами.
Элементами логических структур сети являются узлы, пред-
ставляющие (на логическом уровне) ВМ, терминалы, устройства
коммутации; соединительные элементы, представляющие кана-
лы связи; процессы, представляющие выполнение программ в
отдельных узлах.
Форму объединения узлов в сеть характеризует топология сети.
Используют различные топологии сетей: «звезда», «кольцо», «де-
рево» и др.
По содержанию процесса обработки в логических структурах
можно выделить три типа обработки: переадресацию данных, об-
работку сообщений, информационную обработку.
Переадресация подразумевает выполнение функций, обеспе-
чивающих продвижение сообщения по сети без какой-либо обра-
ботки данных. К таким функциям относится управление маршру-
тизацией, передачей данных между соседними узлами и т.п.
Обработка сообщения обеспечивает накопление данных, уп-
равление темпом операций, преобразование кода, сжатие дан-
ных, шифрование и другие виды дополнительной обработки, не
меняющие информационное содержание сообщений.
Информационная обработка обеспечивает преобразование ин-
формации, семантика которой определена соглашениями, поло-
женными в основу организации сети, в информацию, семантика
которой понятна абоненту.
Разные типы обработки связывают с разными уровнями иерар-
хии протоколов. Понятие иерархии протоколов по существу ана-
логично понятию модульности в программном обеспечении. Рас-
пределяя обработку между несколькими модулями, можно обес-
печить гибкость при расширении сети так, чтобы модификация
имеющихся и добавление новых функций касались только неболь-
шого числа связанных модулей. Свойство модульности состоит в
том, что, приписывая программам пользователя высокий ранг, а
каналам передачи данных — низкий, обработку протоколов рас-
пределяют между несколькими уровнями иерархии и интерфейсы
стандартизуют для каждого уровня. Стандартизуют как протоколь-
ные, так и обслуживающие интерфейсы. Протокольные интерфей-
сы обеспечивают передачу данных между модулями одинакового
иерархического уровня двух узлов, между которыми идет обмен.
Обслуживающие интерфейсы обеспечивают связь между соседни-
ми иерархическими уровнями внутри одного узла.
Важным вопросом при разработке архитектуры сети является
число уровней иерархии протоколов. Чем больше глубина иерар-
хии (больше уровней), тем больше гибкость системы, но тем боль-
ше «накладных расходов» при обмене сообщениями. Международ-
ной организацией по стандартизации (International Organization
for Standardization — ISO) принята и рекомендована 7-уровневая
эталонная модель взаимодействия открытых систем (ЭМВОС),
называемая также моделью — Open Systems Interconnection (OSI).
Эта модель является базовой для разработчиков сетей. Реальная
архитектура может иметь меньше уровней в целях повышения эко-
номичности реализации.
11.2. Эталонная модель взаимодействия открытых систем
В ТВС каждая ВМ рассматривается как открытая система в том
смысле, что реализованное в ней ПО взаимодействия по сети удов-
летворяет некоторому набору универсальных соглашений (прото-
колов), точное выполнение которых и делает возможным взаимо-
действие с любой другой ВМ. ЭМВОС — это система стандартных
протоколов, которые служат единым руководящим документом
для разработки различных архитектур ТВС. Стандарты ЭМВОС
распределяют функции передачи данных в сети по уровням иерар-
хии, регламентируют функции каждого уровня и взаимосвязи
между уровнями. В эталонной модели представлены следующие
стандарты:
1. Средства межуровневого обслуживания. Для каждого уровня
регламентированы семантика и виды обслуживания, но форматы
протоколов не устанавливаются, чтобы не ограничивать выбор
средств и методов при проектировании систем.
2. Внутри уровневые протокольные средства. Регламентируют-
ся процедуры коммутации, семантика и классы сигналов комму-
тируемых каналов.
Методы программной и аппаратной реализации протоколов и
других средств обслуживания в эталонной модели не регламенти-
руются.
Концепция построения сети как открытой системы предпола-
гает придание ей следующих свойств:
• большое количество элементов, состав которых может изме-
няться за период жизненного цикла системы;
• большое число функций, реализуемых в системе, состав и
способ реализации которых может меняться;
• развитие системы как по составу элементов так и по составу и
реализации функций не должно нарушать ее работоспособности.
В архитектуре открытых систем поддерживается «открытость»
вширь (по составу элементов) и вглубь (по набору функций). Обес-
печение этих свойств накладывает ограничения на структуру свя-
зей между элементами, на логику взаимодействия, на функцио-
нальную организацию элементов системы.
ЭМВОС не является сборником стандартов, а только дает ре-
комендации по их разработке. Руководствуясь ЭМВОС, междуна-
родные и национальные организации по стандартизации разраба-
тывают стандарты. Следует отметить, что использование между-
народных стандартов и рекомендаций снижает трудоемкость раз-
работки и отладки сетей, но в определенной мере сковывает ини-
циативу разработчиков и их естественное стремление к постоян-
ному совершенствованию ранее принятых решений.
В ЭМВОС функции обработки и передачи данных разделены на
семь функциональных групп. С учетом взаимодействия функцио-
нальных групп они упорядочены и образуют семь уровней иерар-
хии:
• прикладной уровень (application) — 7;
• представительский уровень (presentation) — 6;
• сеансовый уровень (session) — 5;
• транспортный уровень (transport) — 4;
• сетевой уровень (network) — 3;
• канальный уровень (data-link) — 2;
• физический уровень (physical) — 1;
Нумерация уровней осуществляется снизу вверх. Первым явля-
ется самый низкий физический уровень. Самым высоким (7) яв-
ляется прикладной уровень. Рассмотрим распределение функций
взаимодействия открытых систем по уровням иерархии и краткую
характеристику каждого уровня.
Прикладной уровень (7), будучи самым верхним, обеспечивает
доступ в среду взаимодействия открытых систем прикладных про-
цессов, т.е. он предназначен для организации доступа каждого
пользователя к программам удаленных пользователей. На этом
уровне предусмотрены такие функции как пересылка файлов,
пересылка заданий, обращение к базам данных. На этом уровне
функционируют технологии, являющиеся надстройкой над инф-
раструктурой передачи данных. К ним относятся: электронная по-
чта, удаленный доступ к ресурсам, телеконференции и др.
Представительский уровень (6) транслирует различные форма-
ты данных и коды в стандартную форму представления заданий и
наборов данных, а также интерпретирует стандартные сообщения
применительно к конкретным ВМ и терминалам. Форма выраже-
ния информации (синтаксис), обрабатываемой в нескольких уз-
лах сети, может отличаться. Следовательно, для обеспечения воз-
можности обмена информацией между такими объектами необ-
ходимо согласование синтаксисов, которое и является основной
функцией представительного уровня. Поэтому на этом уровне ус-
танавливают общий синтаксис, который могут понять оба объек-
та. Здесь осуществляются преобразование форматов, сжатие дан-
ных. На практике многие функции этого уровня задействованы на
прикладном уровне. Поэтому во многих сетях протоколы уровня
представления практически не используются. Это свидетельствует
о том, что рекомендации ЭМВОС не являются жесткими.
Сеансовый уровень (5) обеспечивает средства, необходимые або-
нентам для организации, синхронизации и административного
управления обменом данными между ними. Уровень обеспечивает
по запросам процессов создание портов для приема и передачи
сообщений, организацию соединений (логических каналов), а
также выполнение универсальных функций управления для про-
токолов представительного уровня, например установление ре-
жимов передачи (односторонняя, полудуплексная или двухсто-
ронняя). Кроме того, на сеансовом уровне реализуются функции
контроля местоположения данных в нормальном режиме и функ-
ции восстановления для аномальных ситуаций. Набор функций,
требуемых на сеансовом уровне, зависит от вида передачи на при-
кладном уровне, т. е. от типа диалога, режима пересылки, длины
сообщений. Многие функции этого уровня на практике реализуют
протоколы транспортного уровня.
Транспортный уровень (4) обеспечивает управление трафиком
(передачей данных) в системе, управление качеством передачи,
расчленение данных на фрагменты (сегментирование данных) и
синтез их на приемной стороне, пересылку данных между або-
нентами. С точки зрения прикладных процессов важно обеспечить
требуемую скорость передач. На транспортном уровне устанавли-
вают: время задержки при передаче, длину блока данных в транс-
портном протоколе и ряд других параметров. Кроме того, на этом
уровне обеспечивается уплотнение каналов. Это позволяет одно-
временно установить несколько транспортных соединений на од-
ном сетевом соединении для более эффективного использования
каналов связи. На этом уровне оптимизируют использование ус-
луг, предоставляемых на сетевом уровне, с целью обеспечить мак-
симальную пропускную способность при минимальных затратах.
Протоколы транспортного уровня широко развиты и интенсивно
используются на практике.
Сетевой уровень (3) осуществляет управление логическим ка-
налом передачи данных в сети (адресация, выбор маршрута, ком-
мутация). На сетевом уровне реализуют такие функции, как уста-
новка сетевого соединения, выбор маршрута передачи данных
(трассировка), ретрансляция, управление потоком путем регули-
рования объемов пересылаемых данных (структуризация данных,
разбивка на пакеты), извещение транспортного уровня о потере
данных. Каждый пользователь сети обязательно использует прото-
колы сетевого уровня, имеет свой уникальный адрес.
Канальный уровень (2) осуществляет установление, поддержа-
ние и разъединение логических каналов, повышение надежности
передач с использованием методов помехоустойчивого кодирова-
ния. Основными функциями канального уровня являются уста-
новка и разъединение соединения на канальном уровне, выявле-
ние ошибок при передаче данных и, если возможно, восстанов-
ление передачи. На канальном уровне предусмотрена так называ-
емая функция дробления — установка на одном соединении ка-
нального уровня нескольких соединений физического уровня. При
этом резервируют несколько каналов связи. Функция дробления
предназначена для повышения производительности, распределе-
ния нагрузки и обеспечения устойчивой работы при отказах от-
дельных каналов связи. Протоколы этого уровня весьма многочи-
сленны и существенно отличаются друг от друга своими функци-
ональными возможностями.
Физический уровень (7) обеспечивает передачу двоичных сигна-
лов через передающую среду (образуемую, например, каналом
связи, модулятором и демодулятором). Передача последователь-
ности двоичных сигналов осуществляется по соединению физи-
ческого уровня, которое устанавливается между объектами каналь-
ного уровня. На этом уровне реализуют такие функции управления
каналом связи, как подключение и отключение, формирование и
прием сигналов. Установка и разъединение соединений канального
уровня учитывают все особенности реальной системы. Например,
передача одного сообщения нескольким объектам (точка — мно-
готочие) на физическом уровне моделируется как соединение с
одной исходящей точкой и несколькими концевыми точками.
Многоуровневая организация обеспечивает независимость уп-
равления на z-м уровне от порядка функционирования (z-l)-ro и
(z + 1)-го уровней, что упрощает управление взаимодействием.
В частности, прикладной процесс создается только для обработки
данных без учета структуры сети, типа каналов связи, способа
выбора маршрутов и т. п.
Рассмотрим организацию взаимодействия абонентских станций
АС-А и АС-В на базе модели взаимодействия открытых систем (рис.
11.6). Цифрами показаны уровни организации. Для установления
связи между портами А и В используется служба взаимодействия,
включающая уровни с 5 по 1. Для абонентских станций А и В это
целостная система, наделенная всеми необходимыми функциями.
Служба взаимодействия
Рис. 11.6. Организация взаимодействия абонентских станций АС-А
и АС-В на базе ЭМВОС
Многоуровневая организация управления взаимодействием от-
крытых систем обусловливает необходимость модификации сооб-
щений (рис. 11.7) на каждом уровне. Как уже отмечалось выше (см.
рис. 11.4), данные в сообщении снабжаются заголовком (на рис.
11.7 обозначен 3) и концевиком (К), в которые включается ин-
формация, необходимая для обработки сообщения на соответ-
ствующем уровне (указатели типа сообщения, адрес отправите-
ля, адрес получателя и др.). Каждый уровень при передаче блока
информации нижестоящему уровню снабжает его своим заголов-
ком. Заголовок вышестоящего уровня воспринимается нижестоя-
щим как передаваемые данные. Снабжение сообщения обрамле-
нием на /-м уровне сходно с вложением в конверт при почтовой
связи. При многоуровневой организации один конверт вкладыва-
ется в другой конверт и т.д. Наибольшее число конвертов имеем
на нижнем уровне иерархии.
Каждый уровень управления оперирует только с «конвертами».
Поэтому состав сообщений, сформированных на верхнем уровне,
не влияет на функционирование нижних уровней.
Для упрощения реализации
Рис. 11.7. Изменение формата сооб-
щения на разных уровнях иерархии
сетей обмен организуется только
между процессами одинакового
уровня. Это необходимое условие
логической независимости уров-
ней организации сети.
Процедура взаимодействия
процессов на основе обмена со-
общениями устанавливается со-
ответствующим протоколом. У
протокола рассматривают логи-
ческую и процедурную характе-
ристики. Логическая характерис-
тика включает формат и семан-
тику сообщений. Процедурная характеристика включает правила
выполнения действий.
Средства каждого уровня реализуют протокол своего уровня и
интерфейсы с соседними уровнями. Нижестоящие уровни обслу-
живают вышестоящие. Каждый уровень имеет интерфейс только с
соседними уровнями. На каждом уровне определены:
• услуги (функции);
• спецификация протоколов (как выполняются функции).
Набор протоколов, достаточный для организации взаимодей-
ствия в сети, называют стеком коммуникационных протоколов.
Функции физического и канального уровней, а также части-
чно сетевого уровня в абонентской станции обычно реализуют
аппаратными средствами, а функции более высоких уровней —
программными средствами (см. рис. 11.1). Число уровней и распре-
деление функций между ними существенно влияют на сложность
организации управления и эффективность сети. Телекоммуника-
ционная система в общем случае реализуется с использованием,
как аппаратных, так и программных средств.
11.3. Коммутация и маршрутизация
при передаче данных в сети
Для передачи данных между абонентами сети требуется уста-
новление соединений, проходящих через узлы и каналы связи.
Важнейшие характеристики передачи данных зависят от пропуск-
ной способности линий связи, производительности узлов, спосо-
бов организации каналов связи и способов передачи данных по
каналам связи.
Возможны три способа коммутации при передаче данных: ком-
мутация каналов, сообщений и пакетов.
Коммутация каналов обеспечивает создание физического ка-
нала, обеспечивающего прямую передачу данных между абонен-
тами сети. Рассмотрим фрагмент сети, содержащий абонентов а,- и
cij, а также расположенные между ними узлы связи А, В, С и D.
Пусть абонент а, имеет непосредственную связь с узлом А, а або-
нент cij — с узлом D. Рассмотрим организацию обмена между або-
нентами а, и df.
• абонент а, инициирует установление связи с абонентом ау;
• узел связи А, реагируя на адрес абонента dj, коммутирует
соединение линии абонента а, с линией, соединяющей узел А и
узел В;
• процедура «проключения» соединения повторяется с узлами
В, С и D, в результате между абонентами а,- и ау коммутируется
канал;
• узел D и абонент dj посылают сигнал обратной связи;
• получив сигнал обратной связи, абонент а, начинает переда-
чу данных.
Коммутация сообщений производится передачей сообщения по
маршруту, определяемому узлами сети с использованием информа-
ции, содержащейся в заголовке сообщения. Сообщение, создава-
емое отправителем а„ принимается узлом А и хранится в памяти
узла. Узел А обрабатывает заголовок сообщения и определяет мар-
шрут передачи сообщения, ведущий к узлу В. Узел В принимает
сообщение, помещает его в память, обрабатывает заголовок и
передает сообщение следующему узлу. Процесс приема, обработ-
ки заголовка и передачи сообщения повторяется последовательно
всеми узлами на маршруте от абонента а, до абонента aj.
Коммутация пакетов происходит аналогично коммутации со-
общений. Отличием данного способа передачи является то, что
учитывается ограничение на максимальную длину пакета. С уче-
том этого ограничения длинное сообщение разделяется на пакеты
с ограниченной длиной, и далее пакеты передаются с использо-
ванием рассмотренного способа коммутации сообщений.
Коммутация пакетов — основной способ передачи данных в
ТВС. При коммутации каналов требуется, чтобы все участки ском-
мутированного канала имели одинаковую пропускную способ-
ность, что накладывает жесткие ограничения на систему переда-
чи данных. При коммутации пакетов и сообщений пропускная
способность отдельных линий может отличаться. Представление
данных пакетами ограниченной фиксированной длины позволяет
эффективно использовать принципы временного разделения ка-
налов для одновременной передачи нескольких потоков данных.
В сетях с коммутацией пакетов используются два способа пере-
дачи данных: дейтаграммный и виртуальный канал.
Дейтаграммой называют пакет, заголовок которого содержит
адрес получателя и необходимые служебные маршрутные при-
знаки. Совокупность процедур управления передачей таких паке-
тов называют дейтаграммной службой. Дейтаграммную сеть назы-
вают также бесконтактной (нет непосредственного контакта меж-
ду отправителем и получателем). Особенность организации ее ра-
боты заключается в отсутствии фазы установления соединения и
фазы разъединения. В ней нет сквозного механизма подтвержде-
ний, управления потоком данных, исправления ошибок. Эти ус-
луги обеспечиваются на уровне отдельных звеньев сети. Работу
бесконтактной сети можно сравнить с отправкой письма по почте.
Обычно письмо доходит до адресата, но автор не знает этого. По-
лучатель для уведомления автора должен послать ему свое (дру-
гое) письмо. Это соответствует уже протоколу высокого уровня.
Виртуальный канал — это способ, при котором сначала уста-
навливается маршрут передачи всего сообщения с помощью спе-
циального служебного пакета — запроса на соединение. Для этого
пакета и выбирается маршрут, который при согласии получателя
на соединение закрепляется для всего последующего трафика и
получает номер определенного виртуального канала (соединения)
для использования его другими пакетами того же сообщения,
направляемыми в тот же адрес. Пакеты, передаваемые по одному
виртуальному соединению, не являются независимыми и поэто-
му могут иметь сокращенный заголовок с номером пакета в со-
ставе сообщения. Сеть с установлением виртуальных каналов на-
зывают контактной в том смысле, что при передаче сообщений
предполагается предварительно установление контакта между от-
правителем и получателем. Контактную сеть можно сравнить с
телефонной системой. Человек, который звонит, знает, когда ус-
танавливается соединение.
Сравнивая рассмотренные два способа передачи данных мож-
но отметить следующее:
• виртуальное соединение обеспечивает упорядоченность па-
кетов и более простое управление потоком данных вдоль марш-
рута;
• процедура установления виртуального соединения сложнее,
чем при передаче дейтаграмм;
• при виртуальном соединении нет возможности учитывать из-
менение ситуации в сети во время передачи сообщения (при дей-
таграммном способе такая возможность существует).
Приведенное сравнение показывает, что для всех случаев нет
единой рекомендации выбора лучшего способа передачи данных.
При передаче больших массивов данных предпочтительнее вирту-
альные соединения. При передаче коротких сообщений, что ха-
рактерно для обмена между ВМ и терминалом, выгоднее исполь-
зовать дейтаграммы.
Рассмотрим задачу маршрутизации в сети. Адрес, указанный в
заголовке пакета, необходим для выбора маршрута. Выбор прово-
дится на основе определенного алгоритма. Алгоритм маршрутиза-
ции — это правило назначения выходной линии связи данного
узла телекоммуникационной системы для передачи пакета, осно-
ванное на информации в заголовке пакета (адреса отправителя и
получателя) и на информации о загрузке этого узла. Существуют
различные алгоритмы маршрутизации. Их разделяют на фиксиро-
ванные и адаптивные. В фиксированных алгоритмах выбор направ-
ления передачи не зависит от загрузки узлов и каналов. В адаптив-
ных учитывается текущая информация о состоянии и загрузке
элементов сети. С алгоритмами маршрутизации можно познако-
миться по литературе [37, 47].
Коммутация пакетов относится к логическим типам коммута-
ции. При логической коммутации в узлах связи часто используют
специальные ВМ, осуществляющие прием, хранение, анализ,
выбор маршрута и отправку сообщений адресату. В узлах коммута-
ции выполняются также функции внутрисетевого и межсетевого
интерфейса, функции моста — соединителя нескольких сегмен-
тов сети.
Рассмотрим основные типы сетевого оборудования и исполь-
зуемую терминологию. Из перечисленных ниже устройств сетевые
адаптеры реализуют функции аппаратного интерфейса в абонент-
ских станциях (см. рис. 11.1), а остальные используют для постро-
ения телекоммуникационной системы.
Сетевой адаптер (сетевая карта) — это плата расширения,
включаемая в разъем шины PCI компьютера (см. гл. 8). Сетевые
адаптеры различаются выполняемыми функциями и ценой. Их
можно разделить на две группы:
• адаптеры для клиентских компьютеров;
• адаптеры для серверов.
Адаптеры для клиентских компьютеров проще и дешевле. Они
реализуют функции физического и канального уровней. При этом
значительная часть функций по приему и передаче сообщений
выполняется соответствующими системными программами, в зна-
чительной мере загружающими центральный процессор компью-
тера.
Адаптеры для серверов реализуют функции четырех уровней:
физического, канального, сетевого и транспортного. Они имеют
собственные процессоры, что позволяет разгружать центральный
процессор. Цена таких адаптеров существенно выше, чем клиент-
ских.
Коммутатор — устройство, осуществляющее поочередное под-
ключение нескольких входных каналов связи на один выходной
без изменения скорости передачи.
Концентратор (хаб — hub) — устройство, осуществляющее пе-
реключение потока данных из одного либо нескольких каналов на
другой (другие). Обычно концентраторы переключают потоки дан-
ных от нескольких низкоскоростных каналов на меньшее число
более скоростных с использованием функций физического уров-
ня. Они позволяют объединять несколько локальных сетей в одну.
Используются для формирования различной топологии сети.
Повторитель (repeater) — усилитель, восстанавливающий ам-
плитуду и форму сигнала при передачах на большие расстояния.
Он регенерирует пакеты данных, обеспечивает электрическую
независимость сопрягаемых сетей и защиту от действия помех.
Мост (bridge) — устройство, предназначенное для соединения
идентичных сетей. Работа моста соответствует протоколам сетево-
го уровня. Соединяемые мостом сети могут иметь некоторые от-
личия на физическом и канальном уровнях, но должны иметь
одинаковые протоколы на сетевом и выше уровнях. Мост выпол-
няет фильтрацию информационных пакетов в соответствии с ад-
ресами получателей.
Шлюз (gateway) — устройство, позволяющее объединять раз-
личные сети. Шлюз выполняет протокольные преобразования всех
уровней модели взаимодействия открытых систем.
Маршрутизатор (router) — устройство, выполняющее соеди-
нение на транспортном уровне. Он обеспечивает соединение ло-
гически не связанных сетей, имеющих одинаковые протоколы на
сеансовом уровне и выше, создает нужный логический канал и
передает сообщение по назначению. Маршрутизаторы могут со-
единять сети с разными методами доступа, перераспределять на-
грузки в линиях связи, выбирая наилучшие маршруты, выпол-
нять буферизацию данных.
Мультиплексор — многоканальное устройство согласования.
В частности он может выполнять функцию объединения несколь-
ких низкоскоростных каналов связи на один более скоростной
методом кодового, частотного либо временного уплотнения.
11.4. Локальные вычислительные сети
ТВС, в состав которой входят ВМ, терминалы и другие устрой-
ства, расположенные относительно близко (например, в пределах
одного здания) называют локальной вычислительной сетью (ЛВС).
ЛВС часто используют для управления и другого информационно-
го обслуживания в технических системах, оборудование которых
распределено в пространстве. Это автоматизированные системы
управления технологическим оборудованием, системы управления
и контроля оборудованием кораблей, самолетов и др. В таких систе-
мах часто возникает необходимость передачи больших объемов ин-
формации на небольшие расстояния. При этом экономически це-
лесообразна специфическая технология построения сетей. Вопросы
построения ЛВС, управления сетями, организации межсетевого
взаимодействия, безопасности в сетях изучаются в специальной
дисциплине. Поэтому цель данного подраздела — ознакомление с
основными принципами построения и терминологией ЛВС.
Основная отличительная особенность ЛВС — наличие единого
для всех абонентов сети высокоскоростного канала передачи дан-
ных. При этом ЛВС обеспечивает более дешевый способ комплек-
сирования оборудования, чем глобальная сеть.
Наиболее важными характеристиками ЛВС являются:
• тип передающей физической среды;
• тип передачи данных (синхронный или асинхронный);
• метод доступа к среде (каналу связи), топология;
• методы передачи данных;
• типы компьютеров в узлах сети; число узлов;
• тип управления в сети (одноранговая или двухранговая — с
выделенным сервером), типы протоколов, регламентирующих
форматы и процедуры обмена информацией.
Рассмотрим типы каналов связи и их характеристики. В ЛВС
используют несколько типов каналов связи (передающих сред):
витую пару, коаксиальный кабель, волоконно-оптический кабель.
Реже используют инфракрасный и микроволновый каналы. От
среды зависит ряд характеристик ЛВС (табл. 11.1).
Наиболее распространенным является построение каналов связи
с использованием витой пары. В тех случаях, когда требуется обес-
печить высокую помехозащищенность (например, в производствен-
ных условиях с высоким уровнем электромагнитных помех), либо
требуется наиболее высокая скорость передачи сигналов, исполь-
зуют волоконно-оптические линии связи. Волоконно-оптические
каналы сопрягаются с приемопередатчиками, фото- и светодио-
дами через специальные оптические разъемы.
Рассмотрим методы передачи данных и проблему синхрониза-
ции. На выбор метода передачи данных существенно влияют два
основных требования: уплотнение канала и обеспечение надеж-
ной передачи данных. Небольшая протяженность линий связи в
ЛВС позволяет использовать в них немодулированные сигналы,
что, в свою очередь, позволяет удешевить аппаратуру для переда-
чи и приема сигналов. При организации обмена важной задачей
является синхронизация процессов передающей и принимающей
стороны. Приемник и передатчик сигналов в сети представляют
собой синхронные конечные автоматы. Для организации взаимо-
действия необходима их синхронизация. Это можно сделать раз-
ными способами. В ЛВС различают два типа передачи данных: асин-
хронный и синхронный. Соответственно используются два согла-
шения о форматировании сообщений.
Таблица 11.1
Характеристики каналов связи
Характеристика Тип канала связи
витая пара коаксиальный кабель волоконно-оптиче- ский кабель
Скорость передачи, Мбит/с До 10 До 140 До 500
Дальность передачи, км 0,01-0,1 До 2,5 До 200
Число узлов в сети 10-100 До 100 2 точки кольца
Сложность соединения Низкая Средняя Высокая
Возможность ответвления Плохая Средняя Плохая
Помехозащищенность Средняя Высокая Очень высокая
Относительная стоимость 1 10 50
Стоп
Старт
Стоп
Стоп
Старт
Старт
Рис. 11.8. Асинхронный формат сообщения
При асинхронном формате сообщения [5] каждый байт данных
имеет дополнительные сигналы «старт» и «стоп» (рис. 11.8). На-
значение этих сигналов состоит в том, чтобы известить приемник
о приходе данных, а также дать приемнику время для выполне-
ния некоторых функций, связанных с синхронизацией, до по-
ступления следующего байта. «Старт» и «стоп» — уникальные спе-
циальные сигналы, которые распознает приемник. При известной
скорости передачи сигналов, восприняв сигнал «старт», в прием-
нике нетрудно организовать синхронизацию приема отдельных би-
тов данных. Так как синхронизация устанавливается для каждого
байта, допустима невысокая точность совпадения частот синхро-
низирующих импульсов у передающей и приемной стороны, так
как неточность не ведет к существенному расхождению по фазе, а
корректируется в каждом байте. При этом требования к аппарату-
ре невысоки, что приводит к снижению ее стоимости.
Более сложной является синхронная передача (рис. 11.9). При
синхронной передаче нет необходимости вставлять старт-стопо-
вые сигналы в каждый байт. Начальные сигналы сообщения назы-
вают синхробайтом либо флагом. Основная функция этих сигна-
лов состоит в том, чтобы оповещать приемник о приходе сообще-
ния. При длинных сообщениях требуется средство против накап-
ливания разницы фаз сигналов синхронизации приемника и пе-
редатчика. Для решения этой проблемы используют два метода:
добавляют в канал связи отдельную линию синхронизации, либо
применяют специальные коды. При передаче синхроимпульсов они
используются для синхронизации автоматов передатчика и при-
емника.
Когда узлы разделены большими расстояниями (в сравнении с
блоками и устройствами внутри ВМ), экономически более вы-
годно встроить временную настройку в сам сигнал, вместо того
чтобы использовать отдельный сигнал синхронизации. Коды, име-
ющие средства синхронизации, называют синхронизирующими
(а также само синхронизирующими). При использовании таких
Флаг
Данные и служебная информация Синхробайт
Рис. 11.9. Формат сообщения при синхронной передаче
кодов принимающее устройство может периодически проверять
себя, чтобы убедиться в том, что оно опрашивает линию точно в
тот самый момент, когда некоторый бит поступает в приемник.
Самые лучшие синхронизирующие коды — это те коды, при ис-
пользовании которых состояние линии часто меняется. Измене-
ния состояния линии (перепад напряжения) позволяют прием-
нику настраиваться на сигнал. Это позволяет организовать надеж-
ную передачу данных при неизвестных заранее задержках сигна-
лов в линии связи.
Идея построения синхронизирующих кодов заключается в том,
чтобы организовать регулярные и частые изменения уровней сиг-
нала в линии. Переходы осуществляют разделение «О» и «1» в при-
емнике, и логические схемы отслеживают изменения состояния
для того, чтобы выделять «1» и «О» из потока битов для целей на-
стройки. Стробирование обычно проводится приемником с более
высокой скоростью, чем скорость передачи данных, чтобы более
точно определить элементы данных. Наиболее распространеные
цифровые коды: NRZ, RZ, Манчестерский и AMI (рис. 11.10).
Код NRZ — это униполярный код без возвращения к нулю.
Время делится на дискретные интервалы т, соответствующие дли-
тельности передачи одного бита. Уровень сигнала принимает два
значения: Н (высокий) и L (низкий). Низкий уровень соответ-
ствует нулевому напряжению. Смена уровней на границе интер-
валов происходит тогда, когда смежные биты имеют различное
значение. Этот код очень эффективен по полосе частот в канале,
но возможности самосинхронизации ограничены (при длинных
последовательностях «0» или «1» перепады уровня отсутствуют).
Чем больше перепадов уровня сигнала в единицу времени, тем
больше требуется полоса частот в канале. Поэтому скорость пе-
редачи сигналов в канале связи измеряют в бодах. Бод соответ-
ствует одному изменению уровня сигнала в секунду. Код NRZ
относительно прост, имеет низкую стоимость и поэтому широко
используется.
Код RZ (с возвращением к нулю) предусматривает, что в пред-
ставлении каждого бита сигнал изменяется, по меньшей мере,
один раз. Код обладает очень хорошими свойствами синхрониза-
ции. Основной его недостаток — необходимость двух изменений
уровня при передаче каждого бита. Поэтому код RZ требует боль-
шей полосы частот в канале, чем код NRZ.
Манчестерский код используется во многих системах передачи
данных. Он обеспечивает изменение уровня сигнала при передаче
каждого бита, что обеспечивает возможность самосинхронизации.
Однако, он требует большей полосы частот в канале и ведет к
удорожанию аппаратных средств в сравнении с кодом NRZ. Этот
код используется в ЛВС.
Код AMI является примером биполярного кодирования. В нем
для представления «1» используются уровни разной полярности.
В отношении синхронизации с этим кодом возникают проблемы
при передаче длинных последовательностей «О».
Рассмотрим методы доступа к каналам связи. В ЛВС для переда-
чи информации используют моноканал (monochannel). Монока-
нал — это канал связи, одновременно используемый нескольки-
ми абонентами. Для организации доступа наиболее часто исполь-
зуют временное разделение канала. При этом разработано несколько
методов.
При централизованном доступе управляет доступом сервер. Де-
централизованные методы доступа реализуются на основе прото-
колов, обязательных для всех узлов сети. Существуют детермини-
рованные и случайные методы децентрализованного доступа. Де-
терминированные методы обеспечивают более полную загрузку
моноканала. Протокол гарантирует каждому компьютеру в сети
определенное время доступа к моноканалу. Обращение компьюте-
ра к сети может быть только в отведенные ему протоколом интер-
валы времени. При случайном методе доступа к моноканалу обра-
щения компьютера могут происходить в любой момент времени,
но нет гарантий, что по каждому такому обращению будет эф-
фективно выполнена требуемая передача данных.
Протоколы доступа к каналу рассматриваются в специальных
дисциплинах. С ними можно познакомиться по литературе [5, 10,
11, 37].
Рассмотрим топологии ЛВС. В ЛВС используют различные топо-
логии: «шина», «кольцо» («петля»), «звезда», «дерево» (рис. 11.11).
Шинная топология характеризуется использованием разомк-
нутого сегмента кабеля, к которому подключаются абонентские
«Шина»
«Кольцо»
«Петля»
v
о—- -—-о
«Звезда»
Рис. 11.11. Топологии ЛВС
станции. Передаваемая станцией информация распространяется
в обе стороны. Применение шин снижает стоимость проводки,
унифицирует подключение различных модулей, обеспечивает воз-
можность широковещательного обращения. Используют два ме-
тода уплотнения передачи сигналов по шине: временное и ча-
стотное разделение. При временном разделении каждая станция
использует определенный временной интервал для передачи дан-
ных, что регламентируется используемым методом доступа к среде.
При частотном разделении несколько станций могут одновре-
менно передавать информацию по различным частотным подка-
налам.
При кольцевой топологии сигналы передаются по кольцу, в
большинстве случаев в одном направлении. Каждая станция не-
посредственно подсоединяется к двум соседним, но «прослуши-
вает» передачу любой станции. Все станции могут иметь равные
права доступа к среде, но иногда одна станция выделяется в каче-
стве главной. Она выполняет функцию монитора в сети: инициа-
ция и тестирование кольца. Такую организацию (с монитором)
называют «петлей».
При топологии «звезда» центральная станция выполняет функ-
ции коммутатора в сети, соединяющего различных пользователей.
Узел в центре звезды может выполнять функции, отличные от
обычной обработки данных и коммутации каналов. Он может со-
гласовывать скорости передачи и приема у станций, участвующих
в обмене. Передатчик и приемник в сети могут работать, исполь-
зуя различные связные протоколы. Существенно, что в такой сети
большая часть средств, требующихся для управления сетью, мо-
жет находиться в одном месте и разделяться между всеми устрой-
ствами системы. Для доступа к каналам не требуется специальной
логики, так как каждый канал связан с одним устройством. Для
разных каналов одной сети, связывающих абонентские станции с
центральным узлом, можно использовать различную передающую
среду.
Топология «дерево» представляет собой несколько шин, под-
ключенных к магистральной шине через повторители. Иерархи-
ческая организация такой сети позволяет упростить ПО для уп-
равления.
По типам используемых ВМ в узлах сети делят на однородные
и неоднородные (гетерогенные). В однородных ЛВС во всех узлах
используются однотипные ВМ с одинаковыми ОС и однотипны-
ми средствами для работы в составе сети. Многие процедуры рас-
пределенной обработки данных в однородных сетях проще, чем в
неоднородных.
ЛВС могут объединять от единиц до нескольких десятков ВМ.
Существуют два подхода к организации управления процесса-
ми в сети: с централизованным и децентрализованным управ-
лением. В сетях с централизованным управлением среди узлов
один выделен для управления и называется сервером. В ЛВС с
децентрализованным управлением функции сервера распреде-
лены между узлами. Такие ЛВС называют одноранговыми сетя-
ми (peer-to-peer).
В одноранговой сети каждая ВМ может выполнять функции
как клиента так и сервера. Она может выполнять запросы от дру-
гих ВМ и направлять свои запросы для обслуживания в сеть. От-
сутствие сервера не позволяет администратору централизованно
управлять ресурсами. Достоинствами такой организации является
низкая стоимость. Недостатки: возможность подключения неболь-
шого числа узлов (не более 10), сложность управления, слож-
ность обновления ПО.
В сетях с централизованным управлением (двухранговых или
серверных) один узел (сервер) управляет взаимодействием всех
остальных узлов сети и выполняет ряд сервисных функций. Сети,
в которых сервер выполняет только функции организации, хра-
нения и выдачи клиентам информации по их запросам, называ-
ют системами «файл-сервер», или сетями с выделенным сервером.
В таких системах сервер называют файл-сервером, как и саму сис-
тему. Системы, в которых сервер в дополнение к функциям файл-
сервера выполняет еще и функции обработки данных, называют
системами «клиент-сервер». В таких системах сервер называют сер-
вером приложений. Двухранговые сети позволяют объединять боль-
шое число ВМ, имеют более эффективное управление ресурса-
ми, но имеют более высокую стоимость.
11.5. Локальная вычислительная сеть Ethernet
Одной из распространенных реализаций ЛВС является сеть
Ethernet. Эта сеть была разработана в США в 70-х rr. XX в. Сеть
использует топологии: «шина», «дерево», «звезда». В качестве пе-
редающей среды используется коаксиальный кабель, витая пара
либо волоконно-оптическая линия связи. В простейшем случае сеть
состоит из одного сегмента с топологией «шина». Длина кабеля не
должна превышать 500 м. К кабелю можно подключать до 100 при-
емопередатчиков от узлов сети. Сеть с топологией «дерево» орга-
низуют из нескольких сегментов, соединяемых через повторители
(см. рис. 11.11). Максимальное число сегментов — 15. Максималь-
ная скорость передачи — 10 Мбит/с.
Сеть Ethernet имеет 3-уровневую организацию (рис. 11.12). Вер-
хний (прикладной) уровень объединяет функции обработки дан-
ных и ввода-вывода сообщений. Канальный и физический уровни
обеспечивают доступ к моноканалу и передачу по нему сообще-
ний. Функции канального и физического уровней реализуются ап-
паратно контроллером Ethernet и приемопередатчиком. Контрол-
лер выполняет функции интерфейса с шиной ВМ (обычно с ши-
ной PCI, см. гл. 8), формирования кадров (разделения сообщения
на блоки ограниченной длины), управления связью, кодирова-
Устройства Функции
Кабель
Канальный уровень
Физический уровень
Рис. 11.12. Схема организации ЛВС Ethernet
Уровни ЭМВОС
Прикладной уровень
К шине ВМ
Плата
контроллера
Ethernet
Кабель ППД
(1x50 м)
ППД
э- Кабель ЛВС
Рис. 11.13. Средства подключения ВМ и ЛВС Ethernet:
ППД — приемопередатчик; L — длина кабеля
ния и декодирования. Приемопередатчик устанавливается непос-
редственно на кабеле и служит для формирования сигналов, при-
ема сигналов и выявления столкновений.
Рассмотрим конструктивную реализацию средств подключения
ВМ к ЛВС Ethernet (рис. 11.13). Контроллер реализован в виде пла-
ты расширения с разъемом для подключения к шине ВМ. Плата
имеет второй разъем для соединения специальным кабелем с мо-
дулем приемопередатчика. Приемопередатчик устанавливается не-
посредственно на коаксиальном кабеле ЛВС.
Передаваемые по каналу данные представлены Манчестерским
кодом (см. рис. 11.10). Для исключения потерь данных их передача
предваряется последовательностью из 64 бит: 10101010 ... 10101011.
Последовательность «1010 ... 10» — это последовательность им-
пульсов (меандр) с частотой 5 МГц [31]. Код «11», завершающий
последовательность, отмечает момент начала кадра. Приемник вклю-
чается в работу при обнаружении последовательности «101010» ... и
после приема «11» начинает принимать кадр. После исчезновения
сигналов в канале кадр считается принятым и начинается его об-
работка.
В ЛВС Ethernet используется метод множественного доступа к
среде с контролем несущей частоты и разрешением конфлик-
тов, обозначаемый как метод CSMA/CD (Carrier Sense Multiple
Access with Collision Detection). При этом методе контроллер про-
веряет наличие сигналов в канале, и после исчезновения несу-
щей частоты начинает передачу кадра в канал с фиксированной
задержкой (9,8 мкс). Задержка создает интервал между кадрами,
необходимый для восстановления аппаратурой контроллеров
исходного состояния, в котором они могут начинать прием оче-
редного кадра.
В том случае, если при передаче приемопередатчик выявляет
столкновение, контроллер прекращает передачу кадра и передает
в канал помеху в виде последовательности из 32—48 бит, тем
самым «подкрепляя» столкновение. Системе разрешается сделать
еще 15 попыток передачи кадра. Если все 16 попыток неудачны,
формируется сигнал об ошибке.
Рассмотрим формат кадра ЛВС Ethernet (рис. 11.14). Адреса при-
емников, кодируемые в начальной части кадра могут быть физи-
ческими, групповыми или широковещательными. Физический
адрес однозначно соответствует одному узлу сети. Широковеща-
тельный адрес относится ко всем узлам. Групповой адрес опреде-
ляет группу узлов. Тип адреса кодируется в 1-м бите адреса прием-
ника: «О» — физический, «1» — групповой или широковещатель-
ный. При широковещательном адресе во всех битах 48 разрядного
поля адреса приемников записаны единицы. В поле адреса источ-
ника записывается его физический адрес. Поле типа кадра иден-
тифицирует команды и ответы. Для повышения достоверности пе-
редачи используются циклические коды. В поле «контрольная сум-
ма» записывается остаток от деления передаваемого кода на опре-
деленный полином [30].
Согласованный набор протоколов и реализующих их аппарат-
ных и программных средств, достаточных для построения сети,
называют сетевой технологией. Самой распространенной сетевой
технологией является технология IEEE802.3/Ethemet. Количество
сетей, выполненных по этой технологии, превысило 5 млн [10].
Технология создана в 70-х гг. XX в.
В первоначальном варианте в каче-
Адрес приемника 6 байт стве линии связи использовался коаксиальный кабель. Позже были разработаны модификации этой
Адрес 6 байт технологии, рассчитанные на дру-
источника гие среды: • 10 Base-2 — использует тон-
Тип кадра 2 байт кий коаксиальный кабель (четверть дюйма) и обеспечивает сегменты
Данные 46-1500 байт длиной до 185 м с числом подклю- чаемых узлов до 30;
Контрольная 4 байт • 10 Base-5 — использует толстый
сумма (полдюйма) коаксиальный кабель, обеспечивает сегменты длиной до
Рис. 11.14. Формат кадра Л ВС 500 м, с числом подключаемых к
Ethernet сегменту узлов до 100;
• 10 Base-T — использует витую пару, обеспечивает сегменты
длиной до 100м, с числом подключаемых к сегменту узлов до
1024;
• 10 Base-F — использует волоконно-оптический кабель, обес-
печивает сегменты длиной до 2000 м, с числом подключаемых к
сегменту узлов до 1024.
Скорость передачи при этих технологиях равна 10 Мбит/с.
В развитие технологии Ethernet созданы варианты технологий
Fast Ethernet со скоростью передачи 100 Мбит/с (100Base-TX, 100
Base-T4, 100-Base-FX) и Gigabit Ethernet co скоростью 1000 Мбит/с
(1000 Base-LX и 1000 Base-SX с использованием волоконно-опти-
ческого кабеля, а также 1000 Base-CX и 1000 Base-T с использова-
нием витой пары).
11.6. Основные понятия о сети Интернет
и корпоративных сетях
Интернет — это глобальная сеть, которая объединяет множе-
ство различных сетей в единое информационное пространство.
Интернет может обеспечить информационный обмен между лю-
быми компьютерами, которые входят в состав сетей, подключен-
ных к ней. Основные узлы сети Интернет — это ЛВС.
В 1983 г. было принято решение об использовании протоколов
TCP/IP на всех узлах сети ARPANET. Установление TCP/IP в ка-
честве стандарта положило начало развитию сети Интернет. «ТСР/
1Р» обозначает стек протоколов, связанных с протоколами TCP
(Transmission Control Protocol) и IP (Internet Protocol).
Рис. 11.15. Стек протоколов сети Интернет
Таблица 11.2
Соответствие протоколов ЭМВОС
Уровень Протоколы TCP/IP
ЭМВОС Интернет
Прикладной (7) IV Telnet, FTP, SMTP, НТРР и др. TFTP, DNS
Представительный (6)
Сеансовый (5)
Транспортный (4) III TCP UDP
Сетевой (3) II IP
Канальный (2) I (Вне стандарта TCP/IP) Ethernet, Fast Ethernet и др.
Физический (1)
Протокол IP (рис. 11.15) организует разбиение сообщений на
пакеты, выбирает маршрут для передаваемого пакета и обрабаты-
вает получаемые. Протокол TCP — протокол транспортного уровня.
Он управляет потоком данных, обрабатывает ошибки, обеспечи-
вает сборку сообщения из пакетов. Детальное описание протоко-
лов, входящих в стек протоколов TCP/IP можно найти в спра-
вочной литературе [37, 39]. Примерная схема соответствия стека
протоколов сети Интернет и эталонной модели ЭМВОС представ-
лена в табл. 11.2 [40].
В иерархии стека протоколов сети Интернет выделены четыре
уровня. Самый нижний уровень (I) соответствует физическому и
канальному уровням эталонной модели. Этот уровень в протоко-
лах TCP/IP не регламентируется. Здесь возможно использование
всех популярных стандартов физического и канального уровней.
Так для локальных сетей — это Ethernet, Fast Ethernet и др.
Следующий уровень (II) — это уровень межсетевого взаимо-
действия, функции которого предназначены для передачи паке-
тов. В терминах эталонной модели этот уровень соответствует сете-
вому. На этом уровне используется протокол IP, который проек-
тировался как протокол передачи пакетов между сетями. Поэтому
он хорошо работает в сетях со сложной топологией, рационально
используя подсистемы и пропускную способность линий связи.
Протокол IP является дейтаграммным протоколом, он не гаран-
тирует доставку пакетов до узла назначения, но старается эту до-
ставку осуществить.
Следующий уровень (III) называют основным. Он соответству-
ет транспортному уровню эталонной модели. На этом уровне фун-
кционируют протокол управления передачей TCP (Transmission
Control Protocol) и протокол дейтаграмм пользователя UDP (User
Datagram Protocol). Протокол TCP обеспечивает надежную пере-
дачу сообщений между удаленными прикладными процессами за
счет образования виртуальных соединений. Протокол UDP обес-
печивает передачу пакетов дейтаграммным способом, как и про-
токол IP, и выполняет только функции связующего звена между
сетевым протоколом и многочисленными прикладными процес-
сами.
Верхний уровень (IV) называется прикладным. За долгие годы
использования (с 1983 г.) стек TCP/IP накопил большое число
протоколов прикладного уровня. К ним относится протокол ко-
пирования файлов FTP, протокол электронной почты SMTP,
протокол гипертекстового доступа к удаленной информации HTTP
и др. Рассмотрим подробнее некоторые из них.
Протокол Telnet позволяет пользователю одного компьютера
устанавливать связь по сети Интернет с удаленной ВС (обслужи-
вающей машиной). Когда связь установлена, пользователь может
работать так, будто его клавиатура, мышь и монитор подключены
непосредственно к удаленному компьютеру. Протокол Telnet ра-
ботает на базе протокола TCP. На прикладном уровне над прото-
колом Telnet находится либо программа поддержки реального тер-
минала, либо прикладной процесс в обслуживающей машине.
Работа с протоколом Telnet походит на набор телефонного номе-
ра. Например, пользователь набирает на клавиатуре telnet delta и
получает на экране приглашение на вход в машину delta.
Протокол FTP пользуется транспортными услугами протоко-
ла TCP. Пользователь протокола FTP может вызывать несколько
команд, которые позволят ему посмотреть каталог удаленной ма-
шины, скопировать один или несколько файлов.
Протокол SMTP (Simple Mail Transfer Protocol) поддерживает
передачу сообщений электронной почты между произвольными
узлами сети Интернет. Он содержит механизмы промежуточного
хранения почты и повышения надежности доставки. Протокол
обеспечивает группирование сообщений в адрес одного получа-
теля и размножение нескольких копий одного сообщения для пе-
редачи в разные адреса. Протокол допускает использование раз-
личных транспортных служб.
Протокол HTTP (Hyper Text Transfer Protocol) передачи ги-
пертекста используется в одной из самых популярных служб сети
Интернет — службе «Всемирная паутина» — Word Wide Web
(WWW). При помощи этого протокола и клиентской программы —
браузера (программы чтения гипертекста) пользователь имеет воз-
можность получать информацию с узлов (сайтов — sites) всемир-
ной паутины WWW.
Существуют несколько способов подсоединения абонента к сети
Интернет. Во всех случаях необходимо обеспечить соединение ком-
пьютера абонента с сетью, имеющей связь с Интернетом, иметь
на компьютере специальное ПО. Услуги, связанные с доступом к
Интернету, предоставляют фирмы, называемые провайдерами —
Internet Service Provider (ISP). Провайдер имеет ВС, постоянно
соединенную с Интернетом и содержащую серверы доступа, че-
рез которые осуществляется подключение абонентов. Рассмот-
рим два распространенных способа подключения абонента к сети
(рис. 11.16).
Первый способ (рис. 11.6, а) предполагает, что все компьюте-
ры организации (университета) объединены в ЛВС. Сервер ЛВС
через устройство сопряжения и выделенную линию связи соеди-
нен с сервером доступа провайдера. От типа выделенной линии
связи зависит скорость передачи. В качестве выделенной линии
могут использоваться:
• цифровая волоконно-оптическая линия связи со скоростью
передачи до 622 Мбит/с;
• кабельная линия связи со скоростью передачи от 64 Кбит/с
до 2 Мбит/с;
• телефонный канал со скоростью 48 — 56 Кбит/с.
Подключение по выделенной линии обеспечивает наиболее
комфортные условия для пользователя, но достаточно дорого.
Наиболее дешевый способ подключения (рис. 11.16, б) — ва-
риант соединения по коммутируемой модемной линии с исполь-
зованием телефонной сети. Этот вариант предусматривает под-
ключение к серверу доступа провайдера по телефонной линии
путем «дозвона» до сервера, регистрации с вводом имени пользо-
вателя и пароля. После этого компьютер абонента соединен с се-
тью Интернет в течение време-
| Абонент]
Сетевой
адаптер
| Абонент]
Модем
ЛВС
Телефонная
сеть
Устройство
сопряжения
Модем
Выделенная
линия связи
Internet
Service
Provider
Internet
Service
Provider
Рис. 11.16. Способы подключения
абонента к сети Интернет:
а — через локальную вычислительную
сеть (ЛВС); б — через модемы и теле-
фонную сеть
ни поддержания телефонной
связи.
Среди ЛВС выделяют корпо-
ративные сети. Корпоративные
сети — это сети масштаба пред-
приятия. Они имеют значитель-
ную территорию охвата и обы-
чно используют коммуникаци-
онные возможности Интернета
[10]. Корпоративные сети актив-
но развиваются. Их называют
также сетями интранет (интра-
сеть). Интранет — это такая
ЛВС, которая имеет расширен-
ные функциональные возможно-
сти благодаря использованию
технологий Интернета, имеет
доступ в Интернет и при этом
имеет защиту от доступа к сво-
им ресурсам со стороны внешних пользователей. Функции защи-
ты выполняют специальные средства — брандмауэры. Они как ми-
нимум проверяют полномочия внешнего абонента, знание им па-
роля. Этим обеспечивается защита от несанкционированного до-
ступа к сети. Информация в Интернет и все ее услуги доступны
пользователям сети Интранет.
Корпоративные сети являются частью корпоративных инфор-
мационных систем (КИС). Эти системы пришли на смену автома-
тизированным системам управления. КИС — это интегрирован-
ные системы управления организацией с распределенными в про-
странстве подразделениями. К важным особенностям КИС отно-
сятся: управление, основанное на углубленном анализе данных;
использование современных средств информационного обслужи-
вания лиц, принимающих решения; электронный документообо-
рот и делопроизводство.
ТВС — основа создания и развития информационной инфра-
структуры современного общества. Поэтому интегрированные се-
тевые технологии находятся в состоянии быстрого развития и ока-
зывают существенное влияние на различные сферы жизни и дея-
тельности людей.
Контрольные вопросы
1. Какие средства в составе абонентских станций позволяют им авто-
матически связываться между собой?
2. Что такое телекоммуникационная система?
3. Что такое сообщение? Какая информация «упакована» в сообще-
нии?
4. Поясните последовательности действий при передаче и приеме со-
общения.
5. Поясните формат сообщения в сети. Какая информация кодируется
в заголовке и в концевике? Для чего она используется?
6. Поясните временную последовательность событий при передаче
сообщения. Какие параметры характеризуют временные задержки при
передаче сообщений по сети?
7. По каким признакам ТВС подразделяются на виды? Перечислите
виды сетей и их назначение.
8. Что такое архитектура сети? Что такое протокол?
9. Какую информацию о сети дает ее логическое представление?
10. Какие виды обработки информации выделяют при рассмотрении
логической организации сети?
11. Что такое открытая система? Для чего разработана эталонная мо-
дель взаимодействия открытых систем (ЭМВОС)? Какие стандарты пред-
ставлены в этой модели?
12. Почему используется многоуровневая организация взаимодействия
открытых систем? Как изменяется формат сообщения на разных уров-
нях?
13. В чем назначение протокола и интерфейса отдельного уровня? Что
такое логическая и процедурная характеристики протокола? Что такое
стек коммуникационных протоколов?
14. Поясните организацию коммутации каналов в сети. В чем отличия
коммутации сообщений и коммутации пакетов?
15. В чем заключается дейтаграммный способ передачи данных?
16. Поясните способ передачи данных с установлением виртуального
соединения в сети.
17. Поясните назначение основных типов сетевого оборудования: ком-
мутатора, концентратора, повторителя, моста, шлюза, маршрутизато-
ра, мультиплексора.
18. Какие типы каналов связи используются в ЛВС? Сравните их по
основным характеристикам, существенным для работы сети.
19. В чем заключается проблема синхронизации при передачах данных
по сети? Чем отличаются асинхронный и синхронный тип передачи дан-
ных?
20. В чем назначение синхронизирующих кодов? В чем состоит идея их
построения?
21. Какие топологии используются для построения ЛВС? Что такое
одноранговые и двухранговые сети?
22. Поясните функциональную организацию ЛВС Ethernet. Как рас-
пределены функции по уровням организации взаимодействия? Как со-
относится организация ЛВС с ЭМВОС?
23. Какие средства используются для организации ЛВС Ethernet? Как
функции взаимодействия распределены между этими средствами?
24. Что такое сеть Интернет? В чем ее назначение? Какие функции
выполняют протоколы TCP и IP?
25. Поясните многоуровневую организацию взаимодействия абонен-
тов в сети Интернет. Сопоставьте ее уровни с ЭМВОС.
26. Какие функции выполняет протокол HTTP? К какому уровню
организации взаимодействия он относится? Поясните его использова-
ние в службе WWW («Всемирной паутине»).
27. Что такое сети Интернет? В чем их назначение? Какое они имеют
отношение к сети Internet?
СПИСОК ЛИТЕРАТУРЫ
1. Антонов A. IT. Обзор элементной базы фирмы Altera / А. П. Антонов,
В. Ф. Мелехин, А. С. Филиппов. — СПб.: Изд. дом «Файнстрит», 1997.
2. Арапов Д. Можно ли превратить сеть в суперкомпьютер? // Откры-
тые системы. — 1997. — № 4.
3. Артамонов Г. Т. Топология сетей ЭВМ и многопроцессорных систем /
Г.Т.Артамонов, В.Д.Тюрин. — М. : Радио и связь, 1991.
4. Беркс А. Предварительное рассмотрение логической конструкции
электронного вычислительного устройства / А. Беркс, Г. Голдстейн,
Дж. Нейман : пер. с англ. // Кибернетический сборник. — М.: Мир, 1964. —
Вып. 9.
5. Блэк Ю. Сети ЭВМ: Протоколы, стандарты, интерфейсы : пер. с
англ. — М.: Мир, 1990.
6. Богданов А. В. Высокопроизводительные вычисления и обработка
информации: Пример суперкомпьютерного центра Института высоко-
производительных вычислений и баз данных: Высокопроизводительные
вычисления / [А. В. Богданов, Ю. Е. Горбачев, С. В. Козырев, В. В. Мареев ;
отв. за вып. В.Н. Козлов]. — СПб.: Изд-во СПбГТУ, 2000.
7. Файзулаев Б. Н. Быстродействующие матричные БИС и СБИС. Тео-
рия и проектирование / [Б. Н. Файзулаев, И. И. Шагурин, А. И. Карма-
зинский и др.]; под ред. Б. Н. Файзулаева и И.И.Шагурина. — М.: Радио
и связь, 1989.
8. Воеводин В. В. Параллельные вычисления / В. В. Воеводин, Вл. В. Во-
еводин. — СПб.: БХВ — Петербург, 2002.
9. Ефремов В.Д. Вычислительные машины и системы : учебник /
[В. Д. Ефремов, В. Ф. Мелехин, К. П.Дурандин и др.] ; под ред. В.Д. Еф-
ремова и В. Ф. Мелехина. — М.: Высш, шк., 1993.
10. Бройдо В. Л. Вычислительные системы, сети и телекоммуникации /
В. Л. Бройдо. — СПб.: Питер, 2002.
11. Пятибратов А. П. Вычислительные системы, сети и телекоммуни-
кации : учебник / А. П. Пятибратов, Л. П.Гудыно, А. А. Кириченко ; под
ред. А. П. Пятибратова. — М.: Финансы и статистика, 1998.
12. Головкин Б. А. Вычислительные системы с большим числом про-
цессоров / Б. А. Головкин. — М.: Радио и связь, 1995.
13. Григорьев В.Л. Микропроцессор i486. Архитектура и программиро-
вание : в 4 кн. / В. Л. Григорьев. — М.: ГРАНАЛ, 1993.
14. Громов ГР. Очерки информационной технологии / Г.Р.Громов. —
М. : Инфоарт, 1993.
15. Грушвицкий Р.И. Проектирование систем на микросхемах програм-
мируемой логики / Р. И. Грушвицкий, А.Х. Мурсаев, Е. П. Угрюмое. —
СПб.: БХВ — Санкт-Петербург, 2002.
16. Гук М. Аппаратные средства IBM PC / М. Гук. — СПб.: Питер, 2002.
17. Гук М. Интерфейсы ПК: справочник / М. Гук. — СПб.: Питер, 1999.
18. Гук М. Процессоры Pentium 4, Athlon и Duron / М. Гук, В. Юров. —
СПб. : Питер, 2001.
19. Дьяков Ю. И. Основные направления и проблемы развития микро-
электроники в России / Ю. И. Дьяков, А. А. Попов, А.Т. Яковлев // Ин-
формационные технологии и вычислительные системы. — М.: Изд. Ин-
ститута высокопроизводительных вычислительных систем РАН, 1995. —
№ 1.
20. Забродин А.В. Высокопроизводительный вычислительный LINUX-
кластер Санкт-Петербургского технического университета с удаленным
доступом к вычислительным ресурсам ИПМ им. М. В. Келдыша РАН : Вы-
сокопроизводительные вычисления / А. В. Забродин, Н. В. Живова,
Н. Н.Шабров ; отв. за вып. В. Н. Козлов. — СПб.: Изд-во СПбГТУ, 2000.
21. Иванов П.М. Алгебраическое моделирование сложных систем /
П.М. Иванов. — М.: Наука : Физматлит, 1996.
22. Каган Б.М. Электронные вычислительные машины и системы :
учеб, пособие / Б.М.Каган. — 3-е изд. — М.: Энергоатомиздат, 1991.
23. Карпов Ю.Г. Протоколы групповой коммуникации. Высокопроиз-
водительные вычисления / Ю.Г. Карпов ; отв. за вып. В. Н. Козлов. — СПб.:
Изд-во СПбГТУ, 2000.
24. Коваленко Е. Система Sequent NUMA-Q / Е. Коваленко // Откры-
тые системы. — 1997. — № 2.
25. Компьютерные сети. Принципы, технологии, протоколы / В. Г. Оли-
фер, Н.А.Олифер. — СПб. : Питер, 2002.
26. Компьютерные технологии сегодня и завтра : Материалы конфе-
ренций, организованных фирмой Intel — М. : Интел, 1995, 1997.
27. Корнеев В. В. Архитектуры с распределенной разделяемой памятью /
В. В. Корнеев. Открытые системы. — 2001. — № 3.
28. Корнеев В. В. Эволюция микропроцессорных архитектур / В. В. Кор-
неев // Открытые системы. — 2000. — № 4.
29. Корнеев В. В. Современные микропроцессоры / В. В. Корнеев,
А. В. Киселев. - М.: НОЛИДЖ, 2000.
30. Курочкин Ю.А. Надежность и диагностика цифровых устройств и
систем / Ю.А. Курочкин, А. С. Смирнов, В.А.Степанов. — СПб.: Изд.-во
СПбГТУ, 1993.
31. Ларионов А. М. Вычислительные комплексы, системы и сети : учеб-
ник/А. М. Ларионов, С. А. Майоров, Г. И. Новиков. — Л.: Энергоатомиз-
дат, 1987.
32. Малашонок Д. Высокопроизводительные компьютерные системы в
1999 г.: Высокопроизводительные вычисления / Д. Малашонок, И. Шош-
мина ; отв. за вып. В. Н. Козлов. — СПб.: Изд-во СПбГТУ, 2000.
33. Мелехин В. Ф. Развитие средств обработки, хранения и передачи
информации. Влияние на разработку технических систем и подготовку
специалистов / В. Ф. Мелехин, И. Г. Черноруцкий // Тр. международной
научно-технической конференции «Пятьдесят лет развития кибернети-
ки». — СПб.: Нестор, 1999.
34. Микропроцессорные системы : учеб, пособие / [Е. К. Александров,
Р. И. Грушвицкий, М. С. Куприянов и др.] ; под ред. Д. В. Пузанкова. —
СПб. : Политехника, 2002.
35. Организация ЭВМ / К. Хамахер, 3. Врашневич, С. Заки. — 5-е изд. —
СПб. : Питер, 2003.
36. Построение сетей ЭВМ / М. Като, Д. Иммура, Е.Тома: пер. с япон. —
М. : Мир, 1988.
37. Протоколы информационно-вычислительных сетей : справочник /
под ред. И. А. Мизина и А.П. Кулешова. — М.: Радио и связь, 1990.
38. Рудометов Е. Материнские платы и чипсеты / Е. Рудометов, В. Ру-
дометов. — 2-е изд. — СПб.: Питер, 2001.
39. Семенов Ю.А. Протоколы и ресурсы Internet / Ю. А. Семенов. — М.:
Радио и связь, 1996.
40. Системы интегрированных сетевых услуг : учеб, пособие /
[М. М. Емельянов, В. Н. Захаров, М. Б. Игнатьев и др.]. — СПб. : Изд-во
СПбГУАП, 1999.
41. Таненбаум Э. Архитектура компьютера / Э.Таненбаум. — СПб. :
Питер, 2002.
42. Угрюмое Е. П. Цифровая схемотехника / Е. П. Угрюмое. — СПб. :
БХВ — Санкт-Петербург, 2002.
43. Ульман Дж. Вычислительные аспекты СБИС: пер. с англ.; под ред.
П.П. Пархоменко / Дж. Ульман. — М.: Радио и связь, 1990.
44. Чечкин А. В. Математическая информатика /А. В. Чечкин. — М. :
Наука, 1991.
45. Цилькер Б. Я. Организация ЭВМ и систем : учебник / Б. Я. Циль-
кер, В. А. Орлов. — СПб.: Питер, 2004.
46. Шнитман В. Архитектура Power Scale I В. Шнитман // Открытые
системы. — 1996. — № 4.
47. Яцкевич Ю. Э. Маршрутизация и управление трафиком в компью-
терных сетях/ Ю.Э.Яцкевич. — СПб. : СПбГТУ, 1999.
48. Altera. — Data Book, 1996.
49. Hennessy J.L., Patterson D.A. Computer Architecture. A Quantitative
Approach. — Third Edition. — Morgan Kaufmann Publishers, San Francisco,
CA 94104-3205, USA, 2003.
50. Patterson D.A., Hennessy J.L. Computer Architecture. A Quantitative
Approatch. Second Edition — San Francisco, California, 1996.
51. http://www.intel.ru
ОГЛАВЛЕНИЕ
Предисловие................................................3
Список сокращений..........................................6
РАЗДЕЛ I. ВВЕДЕНИЕ В ОРГАНИЗАЦИЮ ВЫЧИСЛИТЕЛЬНЫХ
МАШИН И СИСТЕМ
Глава 1. Основные понятия вычислительной техники и принципы
построения вычислительных машин.........................8
1.1. Кибернетика, информатика и вычислительная техника.....8
1.2. Основные понятия вычислительной техники..............10
1.3. Способы представления информации
в вычислительных машинах..................................13
1.4. Основные принципы организации вычислительных машин
и систем..................................................15
1.5. Вычислительные машины, комплексы, системы и сети.....17
1.6. Этапы развития вычислительных машин. Феномен персональных
компьютеров...............................................19
Глава 2. Введение в организацию персональных компьютеров PC.24
2.1. Принцип «открытой» архитектуры. IBM PC совместимые
компьютеры................................................24
2.2. Базовая функциональная схема компьютера PC...........25
2.3. Конструктивные принципы построения компьютеров PC.
Термины..................................................29
Глава 3. Основные характеристики и параметры
вычислительных машин. Факторы, влияющие на их развитие.32
3.1. Организация вычислительных машин и теория автоматов.
Унификация средств вычислительной техники. Преобразования,
выполняемые электронными схемами.......................32
3.2. Многоуровневая организация вычислительных процессов.
Понятия архитектуры вычислительной машины, аппаратного
и программного обеспечения.............................38
3.3. Основные характеристики вычислительных машин и систем.
Методы оценки..............................................43
3.4. Влияние технологии производства интегральных схем на
архитектуру и характеристики вычислительных машин и систем ...47
РАЗДЕЛ II. ВЫЧИСЛИТЕЛЬНЫЕ МАШИНЫ
Глава 4. Организация процессоров..........................52
4.1. Введение в функциональную организацию процессора.....52
4.2. Классификация и особенности организации процессоров
по числу и способу использования внутренних регистров.......61
4.3. Система команд..........................................65
4.4. Способы адресации операндов и команд....................69
4.5. Производительность процессоров. Оценки
производительности..........................................77
4.6. Направления совершенствования архитектуры
микропроцессоров............................................80
4.7. Функции операционных систем, реализуемые с аппаратной
поддержкой процессора. Встроенные средства тестирования
и отладки..................................................111
4.8. Организация взаимодействия процессора с памятью......116
Глава 5. Архитектура широко распространенных семейств
процессоров.............................................149
5.1. Направления развития архитектур современных процессоров.149
5.2. Процессоры Pentium ..................................150
5.3. Особенности процессоров, архитектурно близких к процессорам
семейства Pentium..........................................201
5.4. Процессоры архитектуры IA-64 и VLIW-процессоры Transmeta
Crusoe.....................................................204
5.5. Семейство процессоров SPARC..........................209
5.6. Микропроцессоры семейства MIPS.......................214
5.7. Микропроцессоры семейства PowerPC....................222
5.8. Семейство процессоров Alpha..........................225
5.9. Процессоры PA-RISC...................................228
5.10. Тенденции развития архитектур процессоров...........229
Глава 6. Память вычислительных машин......................233
6.1. Иерархическая организация системы памяти.............233
6.2. Схемотехника и организация работы СБИС динамической
памяти.....................................................236
6.3. Организация регенерации..............................244
6.4. Достоверность и надежность хранения информации.......246
6.5. Архитектурные способы повышения скорости обмена между
процессором и памятью......................................251
6.6. Архитектурные особенности СБИС динамической памяти
высокого быстродействия....................................258
6.7. Модули основной памяти...............................264
6.8. Организация основной памяти в компьютере.............268
6.9. Организация СБИС статической памяти. Области
использования..............................................272
6.10. Принципы построения СБИС энергонезависимой памяти......275
6.11. Внешняя память......................................290
Глава 7. Принципы обмена данными в вычислительных машинах.
Интерфейсы вычислительных машин.........................302
7.1. Общие сведения. Назначение и классификация шинных
интерфейсов...............................................302
7.2. Организация и обмен данными между периферийными
устройствами и вычислительным ядром системы..............305
7.3. Организация прерываний..............................310
7.4. Организация прямого доступа к памяти................325
7.5. Внешние интерфейсы вычислительных машин.............329
Глава 8. Структура и организация работы персонального
компьютера.............................................361
8.1. Структура персонального компьютера..................361
8.2. Системная шина. Организация кэша 2-го уровня........363
8.3. Организация обмена данными по системной шине.
Влияние кэш-памяти на производительность компьютера...365
8.4. Шины расширения. Назначение. Протоколы обмена.
Пропускная способность....................................379
8.5. Системный контроллер. Организация управления обменом
между устройствами........................................386
8.6. Контроллер шин PCI, ISA, IDE. Организация информационных
потоков..................................................391
8.7. Системные ресурсы компьютера. Принципы
автоконфигурирования. Средства реализации................395
8.8. Развитие видеосистемы. Направления развития организации
информационных потоков в компьютерах.....................399
8.9. Тенденции развития персональных компьютеров
и вычислительных систем..................................407
РАЗДЕЛ III. ВЫЧИСЛИТЕЛЬНЫЕ СИСТЕМЫ И СЕТИ
Глава 9. Вычислительные системы в системах управления.
Микроконтроллеры.......................................412
9.1. Понятия о централизованных и распределенных системах
обработки данных и системах реального времени............412
9.2. Организация микроконтроллерных систем...............415
9.3. Типовая структура микроконтроллера..................418
9.4. Характеристики распространенных семейств
микроконтроллеров........................................444
Глава 10. Вычислительные системы параллельной обработки
данных.................................................458
10.1. Параллельная обработка как архитектурный способ
повышения производительности..............................458
10.2. Классификация систем параллельной обработки
данных....................................................463
10.3. Классификация мультипроцессорных систем по способу
организации основной памяти...............................467
10.4. Способы организации внутренних связей
в мультипроцессорных системах.............................473
10.5. Состояние производства и использования
высокопроизводительных вычислительных систем..............481
10.6. Направления развития высокопроизводительных
вычислительных систем......................................483
10.7. Производительность мультипроцессорных систем
при увеличении числа процессоров............................502
10.8. Вычислительные системы на кристалле. Закономерности,
проблемы и тенденции развития...............................504
Глава 11. Введение в телекоммуникационные вычислительные
сети....................................................516
11.1. Принципы построения телекоммуникационных
вычислительных сетей.......................................516
11.2. Эталонная модель взаимодействия открытых систем......524
11.3. Коммутация и маршрутизация при передаче данных
в сети.....................................................529
11.4. Локальные вычислительные сети........................533
11.5. Локальная вычислительная сеть Ethernet...............540
11.6. Основные понятия о сети Интернет и корпоративных сетях.543
Список литературы..........................................549
Учебное издание
Мелехин Виктор Федорович
Павловский Евгений Григорьевич
Вычислительные машины, системы и сети
Учебник
2-е издание, стереотипное
Редактор Е. А. Бережной
Технический редактор О. Н. Крайнова
Компьютерная верстка: Р. Ю. Волкова
Корректоры Т. В. Кузьмина, И. Н. Волкова
Изд. № 102109399. Подписано в печать 26.07.2007. Формат 60x90/16.
Гарнитура «Таймс». Бумага тип. № 2. Печать офсетная. Усл. печ. л. 35,0.
Тираж 1 500 экз. Заказ № 19621.
Издательский центр «Академия», www.academia-moscow.ru
Санитарно-эпидемиологическое заключение № 77.99.02.953Д.004796.07.04 от 20.07.2004.
117342, Москва, ул. Бутлерова, 17-Б, к. 360. Тел./факс: (495)330-1092, 334-8337.
Отпечатано в ОАО «Саратовский полиграфкомбинате». www.sarpk.ru
410004, г. Саратов, ул. Чернышевского, 59.