Открыть Электронные книги
Категории
Открыть Аудиокниги
Категории
Открыть Журналы
Категории
Открыть Документы
Категории
23я7
УДК 004.382.7(075)
О66
Рецензенты:
Сергеев М. Б., заведующий кафедрой вычислительных систем и сетей
Санкт-Петербургского государственного университета аэрокосмического
приборостроения, доктор технических наук;
Яшин А. И., профессор кафедры АСОИУ Санкт-Петербургского
государственного электротехнического университета.
ISBN 978-5-49807-862-5
Учебник посвящен систематическому изложению вопросов организации структуры и функцио-
нирования вычислительных машин и систем, при этом большое внимание уделяется вопросам эф-
фективности традиционных и перспективных решений в области компьютерной техники. Рас-
смотрены структура и функционирование классических фон-неймановских машин, принципы ор-
ганизации шин, внутренней и внешней памяти, операционных устройств и устройств управления,
систем ввода-вывода. Изложены основные тенденции в архитектуре современных процессоров.
Значительная часть материала посвящена идеологии построения и функционирования параллель-
ных и распределенных вычислительных систем самых разнообразных классов. Показаны наиболее
перспективные направления в области организации и архитектуры вычислительных машин
и систем. В основу работы положен 30-летний университетский опыт преподавания авторами со-
ответствующих дисциплин.
Допущено Министерством образования и науки РФ в качестве учебника для студентов высших
учебных заведений, обучающихся по направлению «Информатика и вычислительная техника».
ББК 32.973.23я7
УДК 004.382.7(075)
Все права защищены. Никакая часть данной книги не может быть воспроизведена в какой бы то ни было фор-
ме без письменного разрешения владельцев авторских прав.
Информация, содержащаяся в данной книге, получена из источников, рассматриваемых издательством как
надежные. Тем не менее, имея в виду возможные человеческие или технические ошибки, издательство не
может гарантировать абсолютную точность и полноту приводимых сведений и не несет ответственности за
возможные ошибки, связанные с использованием книги.
Протокол шины.............................................................................................................................346
Синхронный протокол............................................................................................................347
Асинхронный протокол..........................................................................................................348
Методы повышения эффективности шин............................................................................350
Пакетный режим пересылки информации.......................................................................350
Конвейеризация транзакций.................................................................................................350
Протокол с расщеплением транзакций.............................................................................351
Ускорение транзакций.............................................................................................................352
Увеличение полосы пропускания шины...........................................................................352
Стандартизация шин...................................................................................................................353
Шины «большого» интерфейса............................................................................................353
Шины «малого» интерфейса.................................................................................................360
Контрольные вопросы.................................................................................................................362
Глава 8. Системы ввода/вывода........................................................ 364
Адресное пространство системы ввода/вывода.................................................................365
Периферийные устройства........................................................................................................367
Модули ввода/вывода.................................................................................................................368
Функции модуля.......................................................................................................................368
Структура модуля.....................................................................................................................372
Методы управления вводом/выводом..................................................................................374
Ввод/вывод с опросом.............................................................................................................374
Ввод/вывод по прерываниям................................................................................................376
Прямой доступ к памяти........................................................................................................377
Каналы и процессоры ввода/вывода.....................................................................................380
Канальная подсистема.............................................................................................................384
Контрольные вопросы.................................................................................................................385
Глава 9. Процессоры........................................................................ 386
Конвейеризация вычислений...................................................................................................386
Синхронные линейные конвейеры.....................................................................................387
Метрики эффективности конвейеров................................................................................388
Нелинейные конвейеры..........................................................................................................389
Конвейер команд.......................................................................................................................389
Конфликты в конвейере команд..........................................................................................390
Выборка команды из точки перехода.................................................................................394
Методы решения проблемы условного перехода..........................................................396
Предсказание переходов.........................................................................................................396
Суперконвейерные процессоры...........................................................................................412
Суперскалярные процессоры...................................................................................................414
Особенности реализации суперскалярных процессоров............................................418
Аппаратная поддержка суперскалярных операций......................................................421
Гиперпотоковая обработка.....................................................................................................430
Архитектура процессоров..........................................................................................................434
Процессоры с архитектурой CISC......................................................................................435
Процессоры с архитектурой RISC......................................................................................436
Процессоры с архитектурой VLIW ...................................................................................442
Оглавление 9
Полносвязная топология........................................................................................................508
Топология гиперкуба...............................................................................................................509
Динамические топологии...........................................................................................................511
Одношинная топология..........................................................................................................511
Многошинная топология.......................................................................................................511
Блокирующие, неблокирующие и реконфигурируемые топологии.......................512
Топология полносвязной коммутационной матрицы («кроссбар»).......................514
Коммутирующие элементы сетей с динамической топологией...............................516
Многоступенчатые динамические сети.............................................................................517
Блокирующие многоступенчатые сети..............................................................................518
Неблокирующие многоступенчатые сети .......................................................................521
Реконфигурируемые многоступенчатые сети.................................................................524
Контрольные вопросы.................................................................................................................525
Глава 13. Вычислительные системы класса SIMD.............................. 526
Векторные вычислительные системы....................................................................................527
Понятие вектора и размещение данных в памяти.........................................................527
Понятие векторного процессора..........................................................................................528
Архитектуры векторной обработки «память-память» и «регистр-регистр»........529
Структура векторного процессора......................................................................................531
Структура векторной вычислительной системы...........................................................533
Ускорение векторных вычислений.....................................................................................534
Матричные вычислительные системы..................................................................................535
Фронтальная ВМ......................................................................................................................537
Контроллер массива процессорных элементов..............................................................537
Массив процессорных элементов........................................................................................538
Ассоциативные вычислительные системы..........................................................................543
Ассоциативные процессоры .................................................................................................543
Ассоциативные многопроцессорные системы................................................................546
Вычислительные системы с систолической структурой................................................547
Классификация систолических структур.........................................................................549
Топология систолических структур...................................................................................550
Структура процессорных элементов..................................................................................553
Пример вычислений с помощью систолического процессора..................................553
Контрольные вопросы.................................................................................................................555
Глава 14. Вычислительные системы класса MIMD............................. 557
MIMD-системы с разделяемой памятью..............................................................................558
Симметричные мультипроцессорные системы..............................................................558
Параллельные векторные системы.....................................................................................562
Вычислительные системы с неоднородным доступом к памяти..............................563
MIMD-системы с распределенной памятью.......................................................................565
Системы с массовой параллельной обработкой (MPP)..............................................566
Кластерные вычислительные системы..............................................................................569
Кластеры больших SMP-систем..........................................................................................572
Вычислительные системы на базе транспьютеров........................................................573
Тенденции развития высокопроизводительных вычислительных систем...............575
Контрольные вопросы.................................................................................................................577
Оглавление 11
Благодарности
Прежде всего наши слова искренней любви родителям.
Самые теплые слова благодарности нашим семьям, родным, любимым и близким
людям. Без их долготерпения, внимания, поддержки, доброжелательности и сер-
дечной заботы эта книга никогда бы не была написана.
Выход в свет данной работы был бы невозможен вне творческой атмосферы, бес-
численных вопросов и положительной обратной связи, которую создавали наши
многочисленные студенты.
Авторы искренне признательны всем талантливым сотрудникам издательства «Пи-
тер».
И, конечно, огромная признательность нашим коллегам, общение с которыми под-
держивало огонь творчества, и нашим учителям, давшим базис образования, под-
крепляемого нами всю жизнь.
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты
comp@piter.com (издательство «Питер», компьютерная редакция).
Мы будем рады узнать ваше мнение!
На веб-сайте издательства http://www.piter.com вы найдете подробную информацию
о наших книгах.
Глава 1
Становление и эволюция цифровой
вычислительной техники
1843 год. Георг Шутц совместно с сыном Эдвардом (Edvard Scheutz, 1821–1881)
строят разностную машину с принтером для работы с разностями третьего по-
рядка.
1871 год. Бэббидж создает прототип одного из устройств своей аналитической ма-
шины — «мельницу» (так он окрестил то, что сейчас принято называть централь-
ным процессором), а также принтер.
1885 год. Дорр Фельт (Dorr E. Felt, 1862–1930) из Чикаго строит свой «компто-
метр» — первый калькулятор, где числа вводятся нажатием клавиш.
1890 год. Результаты переписи населения в США обрабатываются с помощью пер-
фокарточного табулятора, созданного Германом Холлеритом (Herman Hollerith,
1860–1929) из Массачусетcского технологического института.
1892 год. Вильям Барроуз (William S. Burroughs, 1857–1898) предлагает устрой-
ство, схожее с калькулятором Фельта, но более надежное, и от этого события берет
старт индустрия офисных калькуляторов.
1937 год. Джорж Стибитц (George Stibitz, 1904–1995) из Bell Telephone Laboratories
демонстрирует первый однобитовый двоичный вычислитель на базе электромеха-
нических реле.
1937 год. Алан Тьюринг (Alan M. Turing, 1912–1954) из Кембриджского универ-
ситета публикует статью, в которой излагает концепцию теоретической упрощен
ной вычислительной машины, в дальнейшем получившей название машины
Тьюринга.
1938 год. Клод Шеннон (Claude E. Shannon, 1916–2001) публикует статью о реали-
зации символической логики на базе реле.
1938 год. Немецкий инженер Конрад Цузе (Konrad Zuse, 1910–1995) строит меха-
нический программируемый вычислитель Z1 с памятью на 1000 битов. В последнее
время Z1 все чаще называют первым в мире компьютером.
1939 год. Джордж Стибитц и Сэмюэль Вильямс (Samuel Williams, 1911–1977) пред-
ставили Model I — калькулятор на базе релейной логики, управляемый с помощью
модифицированного телетайпа, что позволило подключаться к калькулятору по
телефонной линии. Более поздние модификации допускали также определенную
степень программирования.
1940 год. Следующая работа Цузе — электромеханическая машина Z2, основу ко-
торой составляла релейная логика, хотя память, как и в Z1, была механической.
1941 год. Цузе создает электромеханический программируемый вычислитель Z3.
Вычислитель содержит 2600 электромеханических реле. Z3 — это первая попытка
реализации принципа программного управления, хотя и не в полном объеме (в об-
щепринятом понимании этот принцип еще не был сформулирован). В частности,
не предусматривалась возможность условного перехода. Программа хранилась на
перфоленте. Емкость1 памяти составляла 64 22-битовых слова. Операция умноже-
ния занимала 3–5 с.
ниться в памяти.
28 Глава 1. Становление и эволюция цифровой вычислительной техники
машины был профессор Макс Ньюмен (Max Newman, 1987–1984), а изготовил его
Томми Флауэрс (Tommy Flowers, 1905–1998). Colossus был создан для расшиф-
ровки кодов немецкой шифровальной машины «Лоренц Шлюссель-цузат-40».
В состав команды разработчиков входил также Алан Тьюринг. Машина была вы-
полнена в виде восьми стоек высотой 2,3 м, а общая длина ее составляла 5,5 м.
В логических схемах машины и в системе оптического считывания информации
использовалось 2400 электронных ламп, главным образом тиратронов. Инфор-
мация считывалась с пяти вращающихся длинных бумажных колец со скоростью
5000 символов/с.
Наконец, третий кандидат на роль первой электронной ВМ — уже упоминав-
шийся программируемый электронный калькулятор общего назначения ENIAC
(Electronic Numerical Integrator and Computer — электронный цифровой интегра-
тор и вычислитель). Идея калькулятора, выдвинутая в 1942 году Джоном Мочли
( John J. Mauchly, 1907–1980) из университета Пенсильвании, была реализована
им совместно с Преспером Эккертом ( J. Presper Eckert, 1919–1995) в 1946 году. С
самого начала ENIAC активно использовался в программе разработки водородной
бомбы. Машина эксплуатировалась до 1955 года и применялась для генерирова-
ния случайных чисел, предсказания погоды и проектирования аэродинамических
труб. ENIAC весил 30 тонн, содержал 18 000 радиоламп, имел размеры 2,5 × 30 м
и обеспечивал выполнение 5000 сложений и 360 умножений в секунду. Использо-
валась десятичная система счисления. Программа задавалась схемой коммутации
триггеров на 40 наборных полях. Когда все лампы работали, инженерный персонал
мог настроить ENIAC на новую задачу, вручную изменив подключение 6000 про-
водов. При пробной эксплуатации выяснилось, что надежность машины чрезвы-
чайно низка — поиск неисправностей занимал от нескольких часов до нескольких
суток. По своей структуре ENIAC напоминал механические вычислительные ма-
шины. 10 триггеров соединялись в кольцо, образуя десятичный счетчик, который
исполнял роль счетного колеса механической машины. Десять таких колец плюс
два триггера для представления знака числа представляли запоминающий регистр.
Всего в ENIAC было 20 таких регистров. Система переноса десятков в накопителях
была аналогична предварительному переносу в машине Бэббиджа.
При всей важности каждой из трех рассмотренных разработок основное событие,
произошедшее в этот период, связано с именем Джона фон Неймана. Американ-
ский математик Джон фон Нейман ( John von Neumann, 1903–1957) принял уча-
стие в проекте ENIAC в качестве консультанта. Еще до завершения ENIAC Эккерт,
Мочли и фон Нейман приступили к новому проекту — EDVAC, главной особенно-
стью которого стала идея хранимой в памяти программы.
Технология программирования в рассматриваемый период была еще на зачаточном
уровне. Первые программы составлялись в машинных кодах — числах, непосред-
ственно записываемых в память ВМ. Лишь в 50-х годах началось использование
языка ассемблера, позволявшего вместо числовой записи команд использовать
символьную их нотацию, после чего специальной программой, также называемой
ассемблером, эти символьные обозначения транслировались в соответствующие
коды.
30 Глава 1. Становление и эволюция цифровой вычислительной техники
точно определенное правило действий, для которого задано указание, как и в ка-
кой последовательности это правило необходимо применять к исходным данным
задачи, чтобы получить ее решение;
точное предписание, определяющее содержание и порядок действий, которые не-
обходимо выполнить над исходными и промежуточными данными для получения
конечного результата при решении всех задач определенного типа.
Основными свойствами алгоритма являются: дискретность, определенность, мас-
совость и результативность.
Дискретность выражается в том, что алгоритм описывает действия над дискретной
информацией (например, числовой или символьной), причем сами эти действия
также дискретны.
Свойство определенности означает, что в алгоритме указано все, что должно быть
сделано, причем ни одно из действий не должно трактоваться двояко.
Массовость алгоритма подразумевает его применимость к множеству значений ис-
ходных данных, а не только к каким-то уникальным значениям.
Наконец, результативность алгоритма состоит в возможности получения резуль-
тата за конечное число шагов.
Рассмотренные свойства алгоритмов предопределяют возможность их реализации
на ВМ, при этом процесс, порождаемый алгоритмом, называют вычислительным
процессом.
В основе архитектуры современных ВМ лежит представление алгоритма реше-
ния задачи в виде программы. Согласно стандарту ISO 2382/1-93, программа для
ВМ состоит из команд, необходимых для выполнения функций, задач. Причем эти
команды соответствуют правилам конкретного языка программирования.
ВМ, где определенным образом закодированные команды программы хранятся
в памяти, известна под названием вычислительной машины с хранимой в памяти
программой. Идея принадлежит создателям вычислителя ENIAC Эккерту, Мочли
и фон Нейману. Еще до завершения работ над ENIAC они приступили к новому
проекту — EDVAC, главной особенностью которого стала концепция хранимой в па-
мяти программы, на долгие годы определившая базовые принципы построения
последующих поколений вычислительных машин. Относительно авторства суще-
ствует несколько версий, но поскольку в законченном виде идея впервые была из-
ложена в 1945 году в статье фон Неймана [161], именно его фамилия фигурирует
в обозначении архитектуры подобных машин, составляющих подавляющую часть
современного парка ВМ и ВС.
Сущность фон-неймановской концепции вычислительной машины можно свести
к четырем принципам:
двоичного кодирования;
программного управления;
однородности памяти;
адресуемости памяти.
38 Глава 1. Становление и эволюция цифровой вычислительной техники
Код операции представляет собой указание, какая операция должна быть выполне-
на, и задается с помощью r-разрядной двоичной комбинации.
Вид адресной части и число составляющих ее адресов зависят от типа команды:
в командах преобразования данных АЧ содержит адреса объектов обработки (опе-
рандов) и результата; в командах изменения порядка вычислений — адрес следу-
ющей команды программы; в командах ввода/вывода — номер устройства ввода/
вывода. Адресная часть также представляется двоичным кодом, длину которого
обозначим через p. Таким образом, команда в вычислительной машине имеет вид
(r + p)-разрядной двоичной комбинации.
Фон-неймановская архитектура
В статье фон Неймана определены основные устройства ВМ, с помощью которых
должны быть реализованы вышеперечисленные принципы. Большинство совре-
менных ВМ по своей структуре отвечают принципу программного управления.
Типичная фон-неймановская ВМ (рис. 1.3) содержит: память, устройство управле-
ния, арифметико-логическое устройство и устройство ввода/вывода1.
В любой ВМ имеются средства для ввода программ и данных к ним. Информация
поступает из подсоединенных к ВМ периферийных устройств (ПУ) ввода. Резуль-
таты вычислений выводятся на периферийные устройства вывода. Связь и взаи-
модействие ВМ и ПУ обеспечивают порты ввода и порты вывода. Термином порт
обозначают аппаратуру сопряжения периферийного устройства с ВМ и управле-
ния им. Совокупность портов ввода и вывода называют устройством ввода/вывода
(УВВ) или модулем ввода/вывода вычислительной машины (МВВ).
Память компьютера имеет сложную многоуровневую структуру, реализованную
в виде взаимодействующих запоминающих устройств (ЗУ), которые могут исполь-
зовать различные физические принципы для хранения данных.
Введенная информация сначала запоминается в основной памяти, а затем перено-
сится во вторичную память, для длительного хранения. Чтобы программа могла
выполняться, команды и данные должны располагаться в основной памяти (ОП),
1
Термины «остроконечники» и «тупоконечники» заимствованы из книги «Путешествия Гул-
ливера» Дж. Свифта, где упоминается религиозная война между двумя группами, предста-
вители одной из которых разбивали яйцо с острого (little) конца, а их антагонисты — с тупо-
го (big).
2
В отличие от ячейки основной памяти разрядность регистра обычно больше одного байта
и совпадает с разрядностью ВМ.
42 Глава 1. Становление и эволюция цифровой вычислительной техники
Быстродействие
Целесообразно рассматривать два вида быстродействия: номинальное и среднее.
Номинальное быстродействие характеризует возможности ВМ при выполнении
стандартной операции. В качестве стандартной обычно выбирают короткую опера-
цию сложения. Если обозначить через τсл время сложения, то номинальное быстро-
действие определится из выражения:
1 îï
Víîì = .
τñë ñ
где Тэ — время выполнения эталонного алгоритма; N — количество операций, со-
держащихся в эталонном алгоритме.
Обозначим через ni число операций i-го типа; l — количество типов операций в ал-
горитме (i = 1, 2, ..., l); τi — время выполнения операции i-го типа.
Время выполнения эталонного алгоритма рассчитывается по формуле:
l
Tý = ∑ τi ni . (1.1)
i =1
Подставив (1.1) в выражение для Vср, получим
N
Vñð = .
l (1.2)
∑ τi ni
i =1
Разделим числитель и знаменатель в (1.2) на N:
1
Vñð = .
l
ni (1.3)
∑ N τi
i =1
ni
Обозначив частоту появления операции i-го типа в (1.3) через qi = , запишем
N
окончательную формулу для расчета среднего быстродействия:
46 Глава 1. Становление и эволюция цифровой вычислительной техники
1 îï
Vñð = l ñ . (1.4)
∑ qi τi
i =1
В выражении (1.4) вектор {τ1, τ2, ..., τl} характеризует систему команд ВМ, а век-
тор {q1, q2, ..., ql}, называемый частотным вектором операций, характеризует алго-
ритм.
Очевидно, что для эффективной реализации алгоритма необходимо стремиться
к увеличению Vср. Если Vном главным образом отталкивается от быстродействия
элементной базы, то Vср очень сильно зависит от оптимальности выбора команд
ВМ.
Формула (1.4) позволяет определить среднее быстродействие машины при реали-
зации одного алгоритма. Рассмотрим более общий случай, когда полный алгоритм
состоит из нескольких частных, периодически повторяемых алгоритмов. Среднее
быстродействие при решении полной задачи рассчитывается по формуле:
1 îï
Vñðï = m l ñ , (1.5)
∑ ∑ β j q ji τi
j =1 i =1
где m — количество частных алгоритмов; βj — частота появления операций j-го част-
ного алгоритма в полном алгоритме; qij — частота операций i-го типа в j-м частном
алгоритме.
Обозначим через Nj и Tj — количество операций и период повторения j-го частного
алгоритма; Tmax = max(
j
T1 , ..., T j , ..., Tm ) — период повторения полного алгоритма;
T
α j = max — цикличность включения j-го частного алгоритма в полном алгоритме.
Tj
m
Тогда за время Tmax в ВМ будет выполнено N max = ∑ α j N j операций, а частоту по-
j =1
явления операций j-го частного алгоритма в полном алгоритме можно определить
из выражения:
α jN j
βj = . (1.6)
N max
Для расчета по формулам (1.5, 1.6) необходимо знать параметры ВМ, представлен-
ные вектором {τ1, τ2, ..., τl}, параметры каждого j-го частного алгоритма — вектор {qj1,
qj2, ..., qjl} и параметры полного алгоритма — вектор {β1, β2, ..., βm}.
Производительность ВМ оценивается количеством эталонных алгоритмов, выпол-
няемых в единицу времени:
1 çàäà÷
Ï= .
Tý ñ
Критерии эффективности вычислительных машин 47
Ai
Ai = . (1.19)
Amax i
Формула (1.18) применяется тогда, когда уменьшение Ai приводит к увеличению
(улучшению) значения аддитивной формулы критерия. Выражение (1.19) исполь-
зуется, когда к увеличению значения аддитивной формулы критерия приводит
увеличение Ai.
Перспективы совершенствования
архитектуры ВМ и ВС
Совершенствование архитектуры вычислительных машин и систем началось с мо-
мента появления первых ВМ и не прекращается по сей день. Каждое изменение
в архитектуре направлено на абсолютное повышение производительности или,
по крайней мере, на более эффективное решение задач определенного класса.
Перспективы совершенствования архитектуры ВМ и ВС 51
Контрольные вопросы
1. По каким признакам можно разграничить понятия «вычислительная машина»
и «вычислительная система»?
2. В чем заключается различие между функциональной и структурной организаци-
ей вычислительной машины? Как они влияют друг на друга?
54 Глава 1. Становление и эволюция цифровой вычислительной техники