|
||
Концепция машины с хранимой в памяти программой 35
|
||
|
||
копнения частных достижений, главным образом в архитектуре вычислительных систем и, в несколько меньшей мере, в сфере технологий.
Поводом для начала отсчета нового поколения стали значительные успехи в области параллельных вычислений, связанные с широким распространением вычислительных систем с массовым параллелизмом. Особенности организации таких систем, обозначаемых аббревиатурой МРР (massively parallel processing), будут рассмотрены в последующих разделах. Здесь же упрощенно определим их как совокупность большого количества (до нескольких тысяч) взаимодействующих, но достаточно автономных вычислительных машин. По вычислительной мощности такие системы уже успешно конкурируют с суперЭВМ, которые, как ранее отмечалось, по своей сути являются векторными ВС. Появление вычислительных систем с массовым параллелизмом дало основание говорить о производительности, измеряемой в TFLOPS (1 TFLOPS соответствует 1012 операциям с плавающей запятой в секунду).
Вторая характерная черта шестого поколения — резко возросший уровень рабочих станций. В процессорах новых рабочих станций успешно совмещаются RISC-архитектура, конвейеризация и параллельная обработка. Некоторые рабочие станции по производительности сопоставимы с суперЭВМ четвертого поколения. Впечатляющие характеристики рабочих станций породили интерес к гетерогенным (неоднородным) вычислениям, когда программа, запущенная на одной рабочей станции, может найти в локальной сети не занятые в данный момент другие станции, после чего вычисления распараллеливаются и на эти простаивающие станции.
Наконец, третьей приметой шестого поколения в эволюции ВТ стал взрывной рост глобальных сетей. Этот момент, однако, выходит за рамки данной книги, поэтому далее комментироваться не будет.
Завершая обсуждение эволюции ВТ, отметим, что верхняя граница шестого поколения хронологически пока не определена и дальнейшее развитие вычислительной техники может внести в его характеристику новые коррективы. Не исключено также, что последующие события дадут повод говорить и об очередном поколении.
Концепция машины с хранимой в памяти программой
Исходя из целей данного раздела, введем новое определение термина «вычислительная машина» как совокупности технических средств, служащих для автоматизированной обработки дискретных данных по заданному алгоритму.
Алгоритм — одно из фундаментальных понятий математики и вычислительной техники. Международная организация стандартов (ISO) формулирует понятие алгоритм как «конечный набор предписаний, определяющий решение задачи посредством конечного количества операций» (ISO 2382/1-84). Помимо этой стандартизированной формулировки существуют и другие определения. Приведем наиболее распространенные из них. Итак, алгоритм — это:
• способ преобразования информации, задаваемый с помощью конечной системы правил;
|
||
|
||
|
||
36 Глава 1. Становление и эволюция цифровой вычислительной техники
|
||
|
||
• совокупность правил, определяющих эффективную процедуру решения любой задачи из некоторого заданного класса задач;
• точно определенное правило действий, для которого задано указание, как и в
какой последовательности это правило необходимо применять к исходным данным задачи, чтобы получить ее решение.
Основными свойствами алгоритма являются: дискретность, определенность, массовость и результативность.
Дискретность выражается в том, что алгоритм описывает действия над дискретной информацией (например, числовой или символьной), причем сами эти действия также дискретны.
Свойство определенности означает, что в алгоритме указано все, что должно быть сделано, причем ни одно из действий не должно трактоваться двояко.
Массовость алгоритма подразумевает его применимость к множеству значений исходных данных, а не только к каким-то уникальным значениям.
Наконец, результативность алгоритма состоит в возможности получения результата за конечное число шагов.
Рассмотренные свойства алгоритмов предопределяют возможность их реализации на ВМ, при этом процесс, порождаемый алгоритмом, называют вычислительным процессом.
В основе архитектуры современных ВМ лежит представление алгоритма решения задачи в виде программы последовательных вычислений. Согласно стандарту ISO 2382/1-84, программадля ВМ — это «упорядоченная последовательность команд, подлежащая обработке».
ВМ, где определенным образом закодированные команды программы хранятся в памяти, известна под названием вычислительной машины с хранимой в памяти программой. Идея принадлежит создателям вычислителя ENIAC Эккерту, Моч-ли и фон Нейману. Еще до завершения работ над ENI АС они приступили к новому проекту — EDVAC, главной особенностью которого стала концепция хранимой в памяти программы, на долгие годы определившая базовые принципы построения последующих поколений вычислительных машин. Относительно авторства существует несколько версий, но поскольку в законченном виде идея впервые была изложена в 1945 году в статье фон Неймана [219], именно его фамилия фигурирует в обозначении архитектуры подобных машин, составляющих подавляющую часть современного парка ВМ и ВС.
Сущность фон-неймановской концепции вычислительной машины можно свести к четырем принципам:
• двоичного кодирования;
• программного управления;
• однородности памяти;
• адресности.
Принцип двоичного кодирования
Согласно этому принципу, вся информация, как данные, так и команды, кодиру- ; ются двоичными цифрами 0 и 1. Каждый тип информации представляется двоич- '■
|
||
|
||
|
||
Концепция машины с хранимой в памяти программой 37
|
||
|
||
ной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды можно выделить два поля (рис. 1.2): поле кода операции (КОп) и поле адресов (адресную часть — АЧ).
|
||
|
||
Код операции {КОп) Адресная часть (АЧ)
|
||
|
||
Рис. 1.2. Структура команды
Код операции представляет собой указание, какая операция должна быть выполнена, и задается с помощью г-разрядной двоичной комбинации.
Вид адресной части и число составляющих ее адресов зависят от типа команды: в командах преобразования данных АЧ содержит адреса объектов обработки (операндов) и результата; в командах изменения порядка вычислений — адрес следующей команды программы; в командах ввода/вывода — номер устройства ввода/ вывода. Адресная часть также представляется двоичной последовательностью, длину которой обозначим через/». Таким образом, команда в вычислительной машине имеет вид (г + ^-разрядной двоичной комбинации.
Принцип программного управления
Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов — команд. Каждая команда предписывает некоторую операцию из набора операций, реализуемых вычислительной машиной. Команды программы хранятся в последовательных ячейках памяти вычислительной машины и выполняются в естественной последовательности, то есть в порядке их положения в программе. При необходимости, с помощью специальных команд, эта последовательность может быть изменена. Решение об изменении порядка выполнения команд программы принимается либо на основании анализа результатов предшествующих вычислений, либо безусловно.
Принцип однородности памяти
Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции — перевода текста программы с языка высокого уровня на язык конкретной ВМ.
Концепция вычислительной машины, изложенная в статье фон Неймана, предполагает единую память для хранения команд и данных. Такой подход был принят
|
||
|
||
|
||
38 Глава 1. Становление и эволюция цифровой вычислительной техники
|
||
|
||
в вычислительных машинах, создававшихся в Принстонском университете, из-за чего и получил название принстонской архитектуры. Практически одновременно в Гарвардском университете предложили иную модель, в которой ВМ имела отдельную память команд и отдельную память данных. Этот вид архитектуры называют гарвардской архитектурой. Долгие годы преобладающей была и остается принстонская архитектура, хотя она порождает проблемы пропускной способности тракта «процессор-память». В последнее время в связи с широким использованием кэш-памяти разработчики ВМ все чаще обращаются к гарвардской архитектуре.
Принцип адресности
Структурно основная память состоит из пронумерованных ячеек, причем процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек -т- адреса. .
Фон-неймановская архитектура
В статье фон Неймана определены основные устройства ВМ, с помощью которых должны быть реализованы вышеперечисленные принципы. Большинство современных ВМ по своей структуре отвечают принципу программного управления. Типичная фон-неймановская ВМ (рис. 1.3) содержит: память, устройство управления, арифметико-логическое устройство и устройство ввода/вывода.
|
||
|
||
|
||
|
||
Рис. 1.3.Структурафон-неймановской вычислительной машины
|
||
|
||
В любой ВМ имеются средства для ввода программ и данных к ним. Информация поступает из подсоединенных к ЭВМ периферийных устройств (ПУ) ввода. Результаты вычислений выводятся на периферийные устройства вывода. Связь и взаимодействие ВМ и ПУ обеспечивают порты ввода и порты вывода. Термином порт обозначают аппаратуру сопряжения периферийного устройства с ВМ и управления им. Совокупность портов ввода и вывода называют устройством ввода/вывода (У В В) или модулем ввода/вывода В М (М В Б).
|
||
|
||
|
||
Концепция машины с хранимой в памяти программой 39
Введенная информация сначала запоминается в основной памяти, а затем переносится во вторичную память, для длительного хранения. Чтобы программа могла выполняться, команды и данные должны располагаться в основной памяти (ОП), организованной таким образом, что каждое двоичное слово хранится в отдельной ячейке, идентифицируемой адресом, причем соседние ячейки памяти имеют следующие по порядку адреса. Доступ к любым ячейкам запоминающего устройства (ЗУ) основной памяти может производиться в произвольной последовательности. Такой вид памяти известен как память с произвольным доступом. ОП современных ВМ в основном состоит из полупроводниковых оперативных запоминающих устройств (ОЗУ), обеспечивающих как считывание, так и запись информации. Для таких ЗУ характерна энергозависимость — хранимая информация теряется при отключении электропитания. Если необходимо, чтобы часть основной памяти была энергонезависимой, в состав ОП включают постоянные запоминающие устройства (ПЗУ), также обеспечивающие произвольный доступ. Хранящаяся в ПЗУ информация может только считываться (но не записываться).
Размер ячейки основной памяти обычно принимается равным 8 двоичным разрядам — байту. Для хранения больших чисел используются 2,4 или 8 байтов, размещаемых в ячейках с последовательными адресами. В этом случае за адрес числа , часто принимается адрес его младшего байта. Так, при хранении 32-разрядного числа в ячейках с адресами 200, 201, 202 и 203 адресом числа будет 200. Такой прием называют адресацией по младшему байту или методом -«остроконечников» (little endian addressing). Возможен и противоположный подход — по меньшему из адресов располагается старший байт. Этот способ известен как адресация по старшему байту или метод «тупоконечников» (big endian addressing)1. Адресация по младшему байту характерна для микропроцессоров фирмы Intel и мини-ЭВМ фирмы DEC, а по старшему байту — для микропроцессоров фирмы Motorola и универсальных ЭВМ фирмы IBM. В принципе выбор порядка записи байтов существенен лишь при пересылке данных между ВМ с различными формами их адресации или при манипуляциях с отдельными байтами числа. В большинстве ВМ предусмотрены специальные инструкции для перехода от одного способа к другому.
Для долговременного хранения больших программ и массивов данных в ВМ обычно имеется дополнительная память, известная как вторичная. Вторичная память энергонезависима и чаще всего реализуется на базе магнитных дисков. Информация в ней хранится в виде специальных программно поддерживаемых объектов — файлов (согласно стандарту ISO, файл — это «идентифицированная совокупность экземпляров полностью описанного в конкретной программе типа данных, находящихся вне программы во внешней памяти и доступных программе посредством специальных операций»).
Устройство управления (УУ) — важнейшая часть ВМ, организующая автоматическое выполнение программ (путем реализации функций управления) и обеспечивающая функционирование ВМ как единой системы. Для пояснения функций УУ ВМ следует рассматривать как совокупность элементов, между которыми
1 Термины «остроконечники» и «тупоконечники» заимствованы из книги «Путешествия Гулливера» Дж. Свифта, где упоминается религиозная война между двумя группами, представители одной из которых разбивали яйцо с острого (little) конца, а их антагонисты — с тупого (big).
|
||
|
||
|
||
40 Глава 1. Становление и эволюция цифровой вьнгслителыюй техники
происходит пересылка информации, в ходе которой эта информация может подвергаться определенным видам обработки. Пересылка информации между любыми элементами ВМ инициируется своим сигналом управления (СУ), то есть управление вычислительным процессом сводится к выдаче нужного набора СУ в нужной временной последовательности. Цепи СУ показаны на рис. 1.3 полутоновыми линиями. Основной функцией УУ является формирование управляющих сигналов, отвечающих за извлечение команд из памяти в порядке, определяемом программой, и последующее исполнение этих команд. Кроме того, УУ формирует СУ для синхронизации и координации внутренних и внешних устройств ВМ.
Еще одной неотъемлемой частью ВМ является арифметико-логическое устройство (АЛУ). АЛУ обеспечивает арифметическую и логическую обработку двух входных переменных, в результате которой формируется выходная переменная. Функции АЛУ обычно сводятся к простым арифметическим и логическим операциям, а также операциям сдвига. Помимо результата операции АЛУ формирует ряд признаков результата (флагов), характеризующих полученный результат и события, произошедшие в процессе его получения (равенство нулю, знак, четность, перенос, переполнение и т. д.). Флаги могут анализироваться в УУ с целью принятия решения о дальнейшей последовательности выполнения команд программы.
УУ и АЛУ тесно взаимосвязаны и их обычно рассматривают как единое устройство, известное как центральный процессор (ЦП) или просто процессор. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения (Р О Н), служащих для промежуточного хранения информации в процессе ее обработки.
Типы структур вычислительных машин и систем
Достоинства и недостатки архитектуры вычислительных машин и систем изначально зависят от способа соединения компонентов. При самом общем подходе можно говорить о двух основных типах структур вычислительных машин и двух типах структур вычислительных систем.
Структуры вычислительных машин
В настоящее время примерно одинаковое распространение получили два способа построения вычислительных машин: с непосредственными связями и на основе шины..
Типичным представителем первого способа может служить классическая фон-неймановская ВМ (см. рис. 1.3). В ней между взаимодействующими устройствами (процессор, память, устройство ввода/вывода) имеются непосредственные связи. Особенности связей (число линий в шинах, пропускная способность и т. п.) определяются видом информации, характером и интенсивностью обмена Достоинством архитектуры с непосредственными связями можно считать возможность развязки «узких мест» путем улучшения структуры и характеристик только определенных связей, что экономически может быть наиболее выгодным решением. У фон-неймановских ВМ таким «узким местом» является канал пересылки данных между ЦП и памятью, и «развязать» его достаточно непросто [56]. Кроме того, ВМ с непосредственными связями плохо поддаются реконфигурации.
|
||
|
||