Концепция машины с хранимой в памяти программой 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]. Кроме того, ВМ с не­посредственными связями плохо поддаются реконфигурации.
Hosted by uCoz