Использование отклонения частного показателя от максимального. 2 страница
Конфликты в конвейере команд.................................................................. 418
Методы решения проблемы условного перехода..................................... 423
Предсказание переходов............................................................................. 425
Суперконвейерные процессоры................................................................. 445
Архитектуры с полным и сокращенным набором команд...................................................... 447
Основные черты RISC-архитектуры ........................................................... 448
Регистры в RISC-процессорах.................................................................... 449
Преимущества и недостатки RISC ............................................................. 452
Суперскалярные процессоры................................................................................................. 453
Особенности реализации суперскалярных процессоров.......................... 458
Аппаратная поддержка суперскалярных операций.................................... 461
Контрольные вопросы ............................................................................................................ 474
Глава 10. Параллелизм как основа
высокопроизводительных вычислений ........................................................ 477
Уровни параллелизма.............................................................................................................. 477
Параллелизм уровня задания....................................................................... 478
Параллелизм уровня программ.................................................................... 480
Параллелизм уровня команд........................................................................ 481
Метрики параллельных вычислений ...................................................................................... 481
Профиль параллелизма программы............................................................ 481
Ускорение, эффективность, загрузка и качество......................................... 483
Закон Амдала............................................................................................................................ 486
Закон Густафсона..................................................................................................................... 488
Классификация параллельных вычислительных систем....................................................... 490
Классификация Флинна................................................................................ 490
Контрольные вопросы ............................................................................................................ 492
Глава 11. Организация памяти вычислительных
систем ................................................................................................................... 493
Память с чередованием адресов............................................................................................ 494
Модели архитектуры памяти вычислительных систем ......................................................... 495
Модели архитектур совместно используемой памяти................................ 496
Модели архитектур распределенной памяти.............................................. 499
Мультипроцессорная когерентность кэш-памяти................................................................... 501
Программные способы решения проблемы когерентности....................... 501
Аппаратные способы решения проблемы когерентности.......................... 502
Контрольные вопросы ............................................................................................................ 522
Глава 12. Топологии вычислительных систем................................................................ 524
Метрики сетевых соединений................................................................................................. 527
Функции маршрутизации данных............................................................................................. 528
Перестановка................................................................................................. 529
Тасование...................................................................................................... 529
Баттерфляй................................................................................................... 530
Реверсирование битов.................................................................................. 531
Сдвиг.............................................................................................................. 531
Сеть ILLIAC IV............................................................................................... 531
Циклический сдвиг........................................................................................ 532
Статические топологии............................................................................................................ 532
Линейная топология..................................................................................... 533
Кольцевые топологии................................................................................... 533
Звездообразная топология .......................................................................... 534
Древовидные топологии............................................................................... 535
Решетчатые топологии................................................................................. 536
Полносвязная топология.............................................................................. 537
Топология гиперкуба ................................................................................... 537
Топология k-ичного п-куба........................................................................... 539
Динамические топологии ........................................................................................................ 540
Блокирующие и неблокирующие многоуровневые сети............................ 540
Шинная топология........................................................................................ 541
Топология перекрестной коммутации («кроссбар»)................................... 542
Коммутирующие элементы сетей с динамической топологией................. 543
Топология «Баньян»..................................................................................... 544
Топология «Омега» ..................................................................................... 545
Топология «Дельта»..................................................................................... 546
Топология Бенеша........................................................................................ 547
Топология Клоша.......................................................................................... 548
Топология двоичной n-кубической сети с косвенными связями................ 549
Топология базовой линии ............................................................................ 549
Контрольные вопросы ............................................................................................................ 550
Глава 13. Вычислительные системы класса SIMD.......................................................... 552
Векторные и векторно-конвейерные вычислительные системы........................................... 553
Понятие вектора и размещение данных в памяти ..................................... 553
Понятие векторного процессора.................................................................. 554
Структура векторного процессора................................................................ 556
Структуры типа «память-память» и «регистр-регистр».............................. 560
Обработка длинных векторов и матриц....................................................... 561
Ускорение вычислений................................................................................. 561
Матричные вычислительные системы.................................................................................... 563
Интерфейсная ВМ......................................................................................... 565
Контроллер массива процессоров .............................................................. 565
Массив процессоров ............................................................................................................... 566
Ассоциативные вычислительные системы............................................................................. 571
Вычислительные системы с систолической структурой......................................................... 572
Классификация систолических структур...................................................... 574
Топология систолических структур.............................................................. 575
Структура процессорных элементов............................................................ 577
Пример вычислений с помощью систолического процессора................... 578
Вычислительные системы с командными словами сверхбольшой
длины (VLIW)................................................................................................................ 580
Вычислительные системы с явным параллелизмом команд (EPIC)..................................... 582
Контрольные вопросы............................................................................................................. 585
Глава 14. Вычислительные системы класса MIMD......................................................... 586
Симметричные мультипроцессорные системы..................................................................... 587
Архитектура SMP-системы........................................................................... 589
Кластерные вычислительные системы................................................................................... 593
Классификация архитектур кластерных систем........................................... 594
Топологии кластеров..................................................................................... 597
Системы с массовой параллельной обработкой (МРР)......................................................... 600
Вычислительные системы с неоднородным доступом к памяти........................................... 603
Вычислительные системы на базе транспьютеров................................................................ 606
Архитектура транспьютера........................................................................... 607
Вычислительные системы с обработкой по принципу волнового фронта ........................... 609
Контрольные вопросы ............................................................................................................ 611
Глава 15. Потоковые и редукционные
вычислительные системы................................................................................. 613
Вычислительные системы с управлением вычислениями
от потока данных.......................................................................................................... 614
Вычислительная модель потоковой обработки........................................... 614
Архитектура потоковых вычислительных систем......................................... 618
Статические потоковые вычислительные системы..................................... 620
Динамические потоковые вычислительные системы.................................. 622
Макропотоковые вычислительные системы................................................ 628
Гиперпотоковая обработка........................................................................... 629
Вычислительные системы с управлением вычислениями по запросу.................................. 632
Контрольные вопросы ............................................................................................................ 635
Заключение............................................................................................................................. 637
Список литературы............................................................................................................... 638
Алфавитный указатель........................................................................................................ 653
Введение
Мы живем в информационную эпоху: документы ЮНЕСКО свидетельствуют, что сейчас в информационной сфере занято больше половины населения развитых стран. Основу современных информационных технологии, их базис, составляют аппаратные средства компьютерной техники.
Современные вычислительные машины (ВМ) и системы (ВС) являются одним из самых значительных достижений научной и инженерной мысли, влияние которого на прогресс во всех областях человеческой деятельности трудно переоценить. Поэтому понятно то пристальное внимание, которое уделяется изучению ВМ и ВС в направлении «Информатика и вычислительная техника» высшего профессионального образования.
В государственном образовательном стандарте высшего профессионального образования содержание дисциплины «Организация ЭВМ и систем» определено следующим образом:
· основные характеристики, области применения ЭВМ различных классов;
· функциональная и структурная организация процессора;
· организация памяти ЭВМ;
· основные стадии выполнения команды;
· организация прерываний в ЭВМ;
· организация ввода-вывода;
· периферийные устройства;
· архитектурные особенности организации ЭВМ различных классов;
· параллельные системы;
· понятие о многомашинных и многопроцессорных вычислительных системах;
Все эти вопросы освещены в учебнике, который вы держите в руках, уважаемый читатель. Иными словами, данный учебник отвечает всем требованиям образовательного стандарта.
Авторы стремились к достижению трех целей:
· изложить классические основы, демонстрирующие накопленный отечественный и мировой опыт вычислительных машин и систем;
· показать последние научные и практические достижения, характеризующие динамику развития аппаратных средств компьютерной техники;
· обобщить и отразить 25-летний университетский опыт преподавания авторами учебника соответствующих дисциплин.
Первая глава учебника посвящена базовым положениям. Обсуждаются понятия «организация» и «архитектура» вычислительных машин и систем, уровни абстракции, на которых эти понятия могут быть раскрыты. Прослеживается эволюция ВМ и ВС как последовательности идей, предопределивших современное состояние в области вычислительной техники. Анализируются тенденции дальнейшего развития архитектуры ВМ и ВС с учетом технологического прогресса и последних достижений в проектировании вычислительных средств.
Во второй главе дается понятие архитектуры системы команд и обсуждаются различные аспекты этой архитектуры. Рассматриваются основные виды информации, являющейся объектом обработки и хранения в ВМ и ВС. Приводятся основные способы представления такой информации: форматы, стандарты, размещение в памяти, способы доступа к данным. Представлены классификация и характеристика команд ВМ. Обсуждаются принципы выбора эффективной системы операций и системы адресации.
Третья глава является основой для понимания принципов функционирования вычислительных машин с классической фон-неймановской архитектурой. На примере гипотетической ВМ прослеживается взаимодействие узлов вычислительной машины в ходе выполнения типовых команд. Приводится описание языка микропрограммирования как средства формальной записи вычислительных процессов на уровне архитектуры ВМ.
Четвертая глава отведена принципам организации системы коммуникаций между элементами структуры ВМ. Дается понятие системной шины. Рассматриваются способы синхронизации и арбитража устройств, подключенных к шине.
В пятой главе определены принципы и средства, используемые при построении систем памяти ВМ. Поясняется концепция иерархического построения памяти. В первой части главы обсуждаются вопросы организации внутренней памяти с учетом ее реализации па базе полупроводниковых запоминающих устройств (ЗУ): структура памяти с произвольным доступом, матричная организация микросхем ЗУ, основные типы оперативных и постоянных запоминающих устройств. Описываются архитектурные аспекты внутренней памяти ВМ — модульное построение, конвейеризация, расслоение, обнаружение и исправление ошибок. Значительное внимание уделено принципам организации и функционирования кэш-памяти. Обсуждаются вопросы виртуализации памяти ВМ, методы и средства защиты памяти от несанкционированного доступа. Вторая часть главы содержит краткую характеристику различных типов внешних запоминающих устройств, включая магнитные и оптические дисковые ЗУ, магнитоленточные запоминающие устройства. Приводится классификация и описание массивов магнитных дисков с избыточностью (RAID).
Содержание шестой главы — это описание принципов организации устройств управления (УУ) ВМ. Обсуждаются вопросы построения, функционирования и проектирования УУ с «жесткой» логикой и УУ с микропрограммной организацией, а также способы ускорения их работы.
Предметом внимания седьмой главы являются операционные устройства ВМ. Рассматриваются жесткие и магистральные структуры операционных устройств, их организация и классификация, способы реализации в ВМ основных арифметических и логических операций с учетом обработки данных в различных формах представления и форматах. Наряду со «стандартными» способами реализации арифметических операций обсуждаются и такие алгоритмы, использование которых ведет к существенному ускорению вычислений.
Восьмая глава учебника посвящена вопросам организации систем ввода/вывода (СВВ). Рассматриваются способы организации ввода/вывода (программно-управляемый ввод/вывод, ввод/вывод по прерываниям, прямой доступ к памяти) и их влияние на эволюцию принципов построения СВВ. Описываются особенности систем ввода/вывода больших универсальных ВМ с их концепцией процессоров (каналов) ввода/вывода.
В девятой главе излагаются вопросы, касающиеся архитектуры процессоров вычислительных машин. Дается понятие конвейера команд, обсуждаются принципы организации такого конвейера и проблемы, возникающие при его реализации. Особое внимание уделяется конфликтам в конвейере команд и способам борьбы с ними. Поясняется концепция суперконвейеризации. Рассматривается проблема семантического разрыва и способы его преодоления в ВМ с архитектурами CISC и RISC. Глава завершается изложением концепции суперскалярного процессора.
Десятая глава предваряет вторую часть учебника, посвященную вопросам построения вычислительных систем, реализующих концепцию распараллеливания вычислений. Излагается теоретический базис таких вычислений. Приводится схема классификации параллельных вычислительных систем.
В одиннадцатой главе рассматриваются два основных принципа организации памяти ВС: общая (совместно используемая) память и распределенная память. Рассказывается об особенностях различных моделей как той, так и другой памяти. Значительное внимание в главе уделено вопросам когерентности кэш-памяти.
Двенадцатая глава содержит достаточно подробный обзор топологий сетей межсоединений, связывающих между собой компоненты вычислительных систем.
В тринадцатой главе сосредоточен материал по системам, которые согласно классификации Флинна можно отнести к системам класса SIMD. Несмотря на достаточную расплывчатость границ того или иного класса, допускаемую классификацией в схеме Флинпа, в учебнике к SIMD-системам отнесены: векторные и векторно-конвейерные ВС, матричные ВС, ассоциативные ВС, вычислительные системы с систолической структурой и ВС с командным словом сверхбольшой длины.
В четырнадцатой главе рассматриваются системы класса MIMD. К таким в учебнике отнесены симметричные мультипроцессорные системы (SMP), кластерные ВС, системы с массовым параллелизмом (МРР), ВС на базе транспьютеров, системы с неоднородным доступом к памяти, ВС с обработкой по принципу волнового фронта.
В пятнадцатой главе описываются системы с нетрадиционным способом управления вычислительным процессом: потоковые и макропотоковые ВС, а также вычислительные системы с управлением по запросу. Именно особенность управления вычислениями предопределила выделение этих систем в отдельную группу, хотя в принципе их можно трактовать как варианты систем класса MIMD. В главе рассматривается также концепция гиперпотоковых вычислений; впрочем, изложение данного вопроса было бы уместно и в девятой главе.
Учебник предназначен для студентов инженерного, бакалаврского и магистерского уровней компьютерных специальностей, может быть полезен аспирантам, преподавателям и разработчикам вычислительных машин и систем.
Вот, пожалуй, и все. Насколько удалась эта работа — судить вам. уважаемый читатель.
Благодарности
Прежде всего, наши слова искренней любви родителям.
Самые теплые слова благодарности нашим семьям, родным, любимым и близким людям. Без их долготерпения, внимания, поддержки, доброжелательности и сердечной заботы эта книга никогда бы не была написана,
Выход в свет данной работы был бы невозможен вне творческой атмосферы, бесчисленных вопросов и положительной обратной связи, которую создавали наши многочисленные студенты.
Хочется отметить особо значимую роль руководителя проекта Юрия Суркиса, благодаря незаурядным профессиональным качествам которого и состоялось данное издание. Авторы искренне признательны всем талантливым сотрудникам издательства «Питер».
И, конечно, огромная признательность нашим коллегам, общение с которыми поддерживало огонь творчества, и нашим учителям, давшим базис образования, подкрепляемого нами всю жизнь.
От издательства
Ваши замечания, предложения, вопросы отправляйте по адресу электронной почты [email protected] (издательство «Питер», компьютерная редакция). Мы будем рады узнать ваше мнение!
На веб-сайте издательства http://www.piter.com вы найдете подробную информацию о наших книгах.
Глава 1
Становление и эволюция
цифровой вычислительной
техники
Изучение любого вопроса принято начинать с договоренностей о терминологии. В нашем случае определению подлежат понятия вычислительная машина (ВМ) и вычислительная система (ВС). Сразу же оговорим, что предметом рассмотрения будут исключительно цифровые машины и системы, то есть устройства, оперирующие дискретными величинами. В литературе можно найти множество самых различных определений терминов «вычислительная машина» и «вычислительная система». Причина такой терминологической неопределенности кроется в невозможности дать удовлетворяющее всех четкое определение, достойное роли стандарта. Любая из известных формулировок песет в себе стремление авторов отразить наиболее существенные, по их мнению, моменты, в силу чего не может быть всеобъемлющей. В подтверждение этого тезиса приведем несколько определений термина «вычислительная машина», взятых из различных литературных источников[1]. Итак, вычислительная машина — это:
1. Устройство, которое принимает данные, обрабатывает их в соответствии с хранимой программой, генерирует результаты и обычно состоит из блоков ввода, вывода, памяти, арифметики, логики и управления.
2. Функциональный блок, способный выполнять реальные вычисления, включающие множественные арифметические и логические операции, без участия человека в процессе этих вычислений.
3. Устройство, способное:
· хранить программу или программы обработки и но меньшей мере информацию, необходимую для выполнения программы;
· быть свободно перепрограммируемым в соответствии с требованиями пользователя;
· выполнять арифметические вычисления, определяемые пользователем;
· выполнять без вмешательства человека программу обработки, требующую изменения действий путем принятия логических решений в процессе обработки.
Не отдавая предпочтения ни одной из известных формулировок терминов «вычислительная машина» и «вычислительная система», тем не менее воспользуемся наиболее общим их определением [33], условившись, что по мере необходимости смысловое их наполнение может уточняться.
Термином вычислительная машина будем обозначать комплекс технических и программных средств, предназначенный для автоматизации подготовки и решения задач пользователей.
В свою очередь, вычислительную систему определим как совокупность взаимосвязанных и взаимодействующих процессоров или вычислительных машин, периферийного оборудования и программного обеспечения, предназначенную для подготовки и решения задач пользователей.
Таким образом, формально отличие ВС от ВМ выражается в количестве вычислителей. Множественность вычислителей позволяет реализовать в ВС параллельную обработку. С другой стороны, современные вычислительные машины с одним процессором также обладают определенными средствами распараллеливания вычислительного процесса. Иными словами, грань между ВМ и ВС часто бывает весьма расплывчатой, что дает основание там, где это целесообразно, рассматривать ВМ как одну из реализаций ВС. И напротив, вычислительные системы часто строятся из традиционных ВМ и процессоров, поэтому многие из положений, относящихся к ВМ, могут быть распространены и на ВС. Последнее замечание имеет непосредственное отношение к материалу данной главы. Условимся, что сказанное относительно вычислительных машин распространяется и на ВС с традиционными процессорами. В тех случаях, когда излагаемый материал справедлив лишь по отношению ВС, структура или принцип действия которых отличается от традиционных, будет действовать термин «вычислительная система».
И, наконец, заключительное замечание. Специфика главы вынуждает использовать в ней многие понятия, полное содержание которых станет ясным лишь после изучения последующих разделов книги. Там, где это возможно, пояснения будут даваться по ходу изложения (правда, в упрощенном виде). В любом случае, для получения полной картины к материалу данной главы имеет смысл еще раз вернуться после ознакомления со всей книгой.
Определение понятия «архитектура»
Рассмотрение принципов построения и функционирования вычислительных машин и систем предварим определением термина архитектура в том виде, как он будет трактоваться в данной книге.
Под архитектурой вычислительной машины обычно понимается логическое построение ВМ, то есть то, какой машина представляется программисту. Впервые термин «архитектура вычислительной машины» (computer architecture) был употреблен фирмой IBM при разработке машин семейства IBM 360 для описания тех средств, которыми может пользоваться программист, составляя программу на уровне машинных команд. Подобную трактовку называют «узкой», и охватывает она перечень и формат команд, формы представления данных, механизмы ввода/вывода, способы адресации памяти и т. п. Из рассмотрения выпадают вопросы физического построения вычислительных средств: состав устройств, число регистров процессора, емкость памяти, наличие специального блока для обработки вещественных чисел, тактовая частота центрального процессора и т. д. Этот круг вопросов принято определять понятием организация или структурная организация.
Архитектура (в узком смысле) и организация — это две стороны описания ВМ и ВС. Поскольку для наших целей, помимо теоретической строгости, такое деление не дает каких-либо преимуществ, то в дальнейшем будем пользоваться термином «архитектура», правда, в «широком» его толковании, объединяющем как архитектуру в узком смысле, так и организацию ВМ. Применительно к вычислительным системам термин «архитектура» дополнительно распространяется на вопросы распределения функций между составляющими ВС и взаимодействия этих составляющих.
Уровни детализации структуры вычислительной машины
Вычислительная машина как закопченный объект являет собой плод усилий специалистов в самых различных областях человеческих знаний. Каждый специалист рассматривает вычислительную машину с позиций стоящей перед ним задачи, абстрагируясь от несущественных, по его мнению, деталей. В табл. 1.1 перечислены специалисты, принимающие участие в создании ВМ, и круг вопросов, входящих в их
компетенцию.
Круг вопросов, рассматриваемых в данном курсе, по большей части относится к компетенции системного архитектора и охватывает различные степени детализации ВМ и ВС. В принципе таких уровней может быть достаточно много, однако сложившаяся практика ограничивает их число четырьмя уровнями (рис. 1.1).