Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции

.pdf
Скачиваний:
38
Добавлен:
06.02.2015
Размер:
2.13 Mб
Скачать

ляются вычислительным машинами в современном понимании этого термина и их правильней классифицировать как калькуляторы.

Вторым претендентом на первенство считается вычислитель Colossus, построенный в 1943 году в Англии в местечке Bletchley Park близ Кембриджа. Изобретателем машины был профессор Макс Ньюмен (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 таких регистров.

В середине 40-х годов появились теоретические разработки, указывающие, что более эффективными могут быть машины с хранимой программой. В первую очередь следует указать на работы Норберта Винера и Джона фон Неймана. Некоторые рекомендации по созданию эффективных электронных вычислительных машин были изложены Винером в книге «Кибернетика»: «В настоящее время существует два типа вычислительных машин:

машины, именуемые аналоговыми машинами. В них данные изображаются величинами, измеряемыми по какой-либо шкале, так что точность машины определяется точностью построения этой шкалы;

машины, подобные обычному арифмометру, которые называют цифровыми машинами. В них данные изображаются серией выборов из нескольких возможностей, а точность определяется четкостью различения отдельных возможностей при каждом выборе и числом сделанных выборов.

Мы видим, что для точных вычислений цифровые машины, во всяком случае, лучше, а из них лучше всего машины с двоичной системой. В случае идеальной вычислительной машины все данные должны быть введены в машину в начале работы, и затем она должна по возможности быть свободна от человеческого вмешательства до конца работы. Это означает, что в машину должны быть введены не только цифровые данные, но и все правила их сочетаний. Поэтому вычислительная машина должна быть не только арифметической, но также и логической машиной».

Широко известная концепция построения ВМ связана с именем Джона фон Неймана. Американский математик Джон фон Нейман (John von Neumann, 1903-

1957) принял участие в проекте ENIAC в качестве консультанта. Еще до завершения ENIAC Эккерт, Мочли и фон Нейман приступили к новому проекту – EDVAC, главной особенностью которого стала идея хранимой в памяти программы.

В 1946 году Джоном Нейманом на летней сессии Пенсильванского университета был распространен отчет и в том же году была опубликована ставшая классической статья «Предварительное рассмотрение ло-

гической конструкции электронно-вычислительного устройства» где были изложены принципы построения вычислительных машин. С тех пор прошло полвека, но выдвинутые положения сохраняют актуальность и сегодня.

В статье убедительно обосновывается использование двоичной системы для представления чисел (ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде). В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации – текстовую, графическую, звуковую и другие, но двоичное кодирование данных попрежнему составляет информационную основу любого современного компьютера.

Еще одной поистине революционной идеей, значение которой трудно переоценить, является предложенный Нейманом принцип «хранимой программы». Первоначально программа задавалась путем установки перемычек на специальной коммутационной панели. Это было весьма трудоемким занятием: например, для изменения программы машины ENIAC требовалось несколько дней (в то время как собственно расчет не мог продолжаться более нескольких минут – выходили из строя лампы). Нейман первым догадался, что программа может также храниться в виде набора нулей и единиц, причем в той же самой памяти, что и обрабатываемые ею данные. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Последующий опыт разработки ЭВМ показал правильность основных выводов Неймана, которые, естественно, в последующие годы развивались и уточнялись. Основные рекомендации, предложенные Нейманом для разработчиков ЭВМ:

1.Принцип двоичного кодирования. Электронные машины должны работать в двоичной, а не в десятичной системе счисления.

2.Принцип программного управления. Все вычисления, предписанные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов команд. Каждая команда содержит указания на конкретную выполняемую операцию, местонахождение (адреса) операндов и ряд служебных признаков.

3.Принцип хранимой программы. В процессе решения задачи программа ее исполнения должна размещаться в запоминающем устройстве машины, обладающем достаточной емкостью и соответствующей скоростью выборки и записи команд программы.

4.Принцип однотипности представления данных и команд. Программа также как и числа, которыми оперирует машина, записывается в двоичном коде. Таким образом, по форме представления команды и числа однотипны, а это дает возможность машине исполнять операции над командами программы.

5.Принцип иерархичности памяти. Трудности физической реализации единого емкого быстродействующего запоминающего устройства, быстродействие которого соответствовало бы скорости работы логических схем, требует иерархического построения памяти. Должно быть, по меньшей мере, два уровня иерархии: основная и внешняя память.

6.Принцип адресности основной памяти. Основная память должна состоять из пронумерованных ячеек, каждая из которых доступна программе в любой момент времени по ее двоичному адресу или по присвоенному ей имени.

7.Арифметические устройства машины конструируются на основе схем, выполняющих операцию сложения. Создание специальных устройств для вычисления других операций нецелесообразно.

8.В машине используется параллельный принцип организации вычислительного процесса (операции над словами производятся одновременно по всем разрядам).

Структура ВМ, предложенная фон Нейманом, должна содержать следующие устройства: управляющее устройство, арифметическое устройство, основную (оперативную) и внешнюю память, устройство ввода программ и данных, устройство вывода результатов расчетов, пульт управления. С современных позиций эта схема трактуется с небольшими уточнениями как указано ниже на рисунке 1.3.1 (первоначально устройство ввода и вывода изображалось одним блоком, а память не разделялась на основную и внешнюю).

Пул ь т р уч н о го уп р а в л ен и я

Уп р а в л я ю щ ее уст р о й ст в о

У ст р о й ст в о в в о д а

( У В )

Ар и ф м ет и к о -

ло ги ч еск о е уст р о й ст в о ( А Л У )

В н у т р е н н я я

У с т р о й с т в о

( о с н о в н а я ,

в ы в о д а

( о п е р а т и в н а я )

( У В )

п а м я т ь ( О П )

Р е з у л ь т а т р а с ч е т а

П р о гр а м м ы

В н е ш н я я

,

п а м я т ь ( В П )

 

 

Рис.1.3.1. Архитектура ВМ фон Неймана

Управляющее устройство (УУ) – важнейшая часть ВМ, организующая автоматическое выполнение программ (путем реализации функций управления) и обеспечивающая функционирование ВМ как единой системы. Для пояснения функций УУ ВМ следует рассматривать как совокупность элементов, между которыми происходит пересылка информации, в ходе которой эта информация может подвергаться определенным видам обработки. Пересылка информации между любыми элементами ВМ инициируется своим сигналом управления (СУ), то есть управление вычислительным процессом сводится к выдаче нужного набора СУ в нужной временной последовательности. Цепи СУ показаны на рис. 1.3.1 полутоновыми линиями. Основной функцией УУ является формирование управ-

ляющих сигналов, отвечающих за извлечение команд из памяти в порядке, определяемом программой, и последующее исполнение этих команд. Кроме того, УУ формирует СУ для синхронизации и координации внутренних и внешних устройств ВМ.

Еще одной неотъемлемой частью ВМ является арифметико-логическое устройство (АЛУ). АЛУ обеспечивает арифметическую и логическую обработку двух входных переменных, в результате которой формируется выходная переменная. Функции АЛУ обычно сводятся к простым арифметическим и логическим операциям, а также операциям сдвига. Помимо результата операции АЛУ формирует ряд признаков результата (флагов), характеризующих полученный результат и события, произошедшие в процессе его получения (равенство нулю, знак, четность, перенос, переполнение и т. д.). Флаги могут анализироваться в УУ с целью принятия решения о дальнейшей последовательности выполнения команд программы.

УУ и АЛУ тесно взаимосвязаны и их обычно рассматривают как единое устройство, известное как центральный процессор (ЦП) или просто процессор. Помимо УУ и АЛУ в процессор входит также набор регистров общего назначения, служащих для промежуточного хранения информации в процессе ее обработки.

Память – хранит информацию, передаваемую из других устройств, в том числе поступающую извне через устройство ввода, и выдает во все другие устройства информацию, необходимую для протекания вычислительного процесса.

Введенная информация сначала запоминается в основной памяти, а затем переносится во вторичную память, для длительного хранения. Чтобы программа могла выполняться, команды и данные должны располагаться в основной памяти, организованной таким образом, что каждое двоичное слово хранится в отдельной ячейке, идентифицируемой адресом, причем соседние ячейки памяти имеют следующие по порядку адреса. Доступ к любым ячейкам запоминающего устройства основной памяти может производиться в произвольной последовательности. Такой вид памяти известен как память с произвольным доступом. Основная память современных ВМ в основном состоит из полупроводниковых оперативных запоминающих устройств (ОЗУ), обеспечивающих как считывание, так и запись информации. Для таких запоминающих устройств характерна энергозависимость – хранимая информация теряется при отключении электропитания. Если необходимо, чтобы часть основной памяти была энергонезависимой, в состав ОП включают постоянные запоминающие устройства (ПЗУ), также обеспечивающие произвольный доступ. Хранящаяся в ПЗУ информация может только считываться (но не записываться).

Структура памяти современных ЭВМ имеет еще более сложную структуру, поскольку внутренняя память ЭВМ разделилась на ряд иерархических уровней памяти, обладающих различным объемом и быстродействием – основная память, кэш-память, сверхоперативная память, память каналов и т.д.

Емкость памяти характеризуют числом байтов, которое может храниться в запоминающем устройстве. На практике применяются более крупные единицы, а для их обозначения к словам «бит» или «байт» добавляют приставки: кило, мега, гига, тера, пета, экза (kilo, mega, giga, tera, peta, exa). Стандартно эти приставки означают умножение основной единицы измерений на 103, 106, 109, 1012, 1015 и 1018 соответственно. В вычислительной технике, ориентированной на двоичную систему счисления, они соответствуют значениям достаточно близким к стандартным, но представляющим собой целую степень числа 2, то есть 210, 220, 230, 240, 250, 260. Во избежание разночтений, в последнее время ведущие международные организации по стандартизации, например IEEE (Institute of Electrical and Electronics Engineers), предлагают ввести новые обозначения, добавив к основной прис-

тавке слово binary (бинарный): kilobinary, megabinary, gigabinary, terabinary, petabinary, exabinary. В результате вместо термина «килобайт» предлагается термин «киби-байт», вместо «мегабайт» «мебибайт» и т. д. Для обозначения новых единиц предлагаются сокращения: KiB, MiB, GiB, TiB, PiB и EiB.

Внутренняя память состоит из ячеек, каждая из которых служит для хранения одного машинного слова. Номер ячейки называется адресом. Размер ячейки основной памяти обычно принимается равным 8 двоичным разрядам – байту. Для хранения больших чисел используются 2, 4 или 8 байтов, размещаемых в ячейках с последовательными адресами.

Для долговременного хранения больших программ и массивов данных в ВМ обычно имеется дополнительная память, известная как вторичная. Вторичная память энергонезависима и чаще всего реализуется на базе магнитных дисков. Информация в ней хранится в виде специальных программно поддерживаемых объектов – файлов (согласно стандарту ISO, файл – это «идентифицированная совокупность экземпляров полностью описанного в конкретной программе типа данных, находящихся вне программы во внешней памяти и доступных программе посредством специальных операций»).

Непосредственно в вычислительном процессе участвует только основная память. Обмен информацией между основной и внешней памятью происходит только после окончания отдельных этапов вычислений.

Пульт управления – позволяет оператору вмешиваться в процесс решения задачи, т.е. давать директивы устройству управления.

Устройство ввода – позволяет ввести программу решения задачи и исходные данные в ЭВМ и поместить их в основную память. В зависимости от типа устройства ввода исходные данные для решения задачи вводятся непосредственно с клавиатуры, иного устройства ввода, либо должны быть предварительно помещены на какой-либо носитель – перфокарты, перфоленты, магнитные карты, магнитные ленты, магнитные и оптические диски и т.д.

Устройство вывода – служит для вывода из ЭВМ результатов обработки исходной информации. Чаще всего это символьная информация, которая выводится с помощью различного типа печатающих устройств или на экран дисплея. В ряде случаев это графическая информация в виде чертежей и рисунков, которые могут быть выведены с помощью графических дисплеев, графопостроителей, принтеров, плоттеров и т.д.

Разработанные Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название «фон-неймановской архитектуры». Подавляющее большинство вычислительных машин на сегодняшний день

– фон-неймановские машины.

Технология программирования в рассматриваемый период была еще на зачаточном уровне. Первые программы составлялись в машинных кодах – числах, непосредственно записываемых в память ВМ. Лишь в 50-х годах началось использование языка ассемблера, позволявшего вместо числовой записи команд использовать символьную их нотацию, после чего специальной программой, также называемой ассемблером, эти символьные обозначения транслировались в соответствующие

Несмотря на свою примитивность, машины первого поколения оказались весьма полезными для инженерных целей и в прикладных науках. Так, Атанасофф подсчитал, что решение системы из восьми уравнений с восемью переменными с помощью популярного тогда электромеханического калькулятора Маршана заняло бы восемь часов. В случае же 29 уравнений с 29 переменными, с которыми калькулятор ABC справлялся менее чем за час, устройство с калькулятором Маршана затратило бы 381 час. С первой задачей в рамках проекта водородной бомбы ENIAC справился за 20 секунд, в противовес 40 часам, которые понадобились бы при использовании механических калькуляторов.

В 1947 году под руководством С.А. Лебедева начаты работы по созданию малой электронной счетной машины (МЭСМ). Эта ЭВМ была запущена в эксплуатацию в 1951 году

и стала первой электронной вычислительной машиной в СССР и континентальной Европе

(см. напр. http://za.zubr.in.ua/2008/02/04/1601/).

1.4. Второе поколение (1954-1962).

Второе поколение характеризуется рядом достижений в элементной базе, структуре и программном обеспечении. Принято считать, что поводом для выделения нового поколения ВМ стали технологические изменения, и, главным образом, переход от электронных ламп к полупроводниковым диодам и транзисторам со временем переключения порядка

0,3 мс.

Первой ВМ, выполненной полностью на полупроводниковых диодах и транзисторах,

стала TRADIC (TRAnisitor Digital Computer), построенная в Bell Labs по заказу военно-

воздушных сил США как прототип бортовой ВМ. Машина состояла из 700 транзисторов и 10 000 германиевых диодов. За два года эксплуатации TRADIC отказали только 17 полупроводниковых элементов, что говорит о прорыве в области надежности, по сравнению с машинами на электронных лампах. Другой достойной упоминания полностью полупроводниковой ВМ стала ТХ-0, созданная в 1957 году в Массачусетском технологическом институте. Наиболее мощной ЭВМ второго поколения была IBM-7030 Stretch (1959 г.), установленная в ядерном центре Лос-Аламоса.

Принципиальным изменением в структуре ВМ стало добавление аппаратного блока обработки чисел в формате с плавающей запятой. До этого обработка вещественных чисел производилась с помощью подпрограмм, каждая из которых имитировала выполнение ка- кой-то одной операции с плавающей запятой (сложение, умножение и т. п.), используя для этой цели обычное целочисленное арифметико-логическое устройство.

Еще одно значимое нововведение в архитектуре ВМ – появление в составе вычислительной машины процессоров ввода/вывода, позволяющих освободить центральный процессор от рутинных операций по управлению вводом/выводом и обеспечивающих более высокую пропускную способность тракта «память – устройства ввода/вывода» (УВВ).

Нельзя не отметить значительные события в сфере программного обеспечения, а именно создание языков программирования высокого уровня: Фортрана (1956), Алгола (1958) и Кобола (1959).

1.5. Третье поколение (19631972).

Третье поколение ознаменовалось резким увеличением вычислительной мощности ВМ, ставшим следствием больших успехов в области архитектуры, технологии и программного обеспечения. Основные технологические достижения связаны с переходом от дискретных полупроводниковых элементов к интегральным микросхемам и началом применения полупроводниковых запоминающих устройств начинающих вытеснять ЗУ на магнитных сердечниках. Существенные изменения произошли и в архитектуре ВМ. Это, прежде всего, микропрограммирование как эффективная техника построения устройств управления сложных процессов, а также наступление эры конвейеризации и параллельной обработки. В области программного обеспечения определяющими вехами стали первые операционные системы и реализация режима разделения времени.

В первых ВМ третьего поколения использовались интегральные схемы с малой степенью интеграции (small-scale integrated circuits, SSI), где на одном кристалле размещается порядка 10 транзисторов. Ближе к концу рассматриваемого периода на смену SSI стали приходить интегральные схемы средней степени интеграции (medium-scale integrated circuits, MSI), в которых число транзисторов на кристалле увеличилось на порядок.

Революционной вехой в истории ВТ стало создание семейства вычислительных машин IBM 360, архитектура и программное обеспечение которых на долгие годы служили эталоном для последующих больших универсальных ВМ (mainframes). В машинах этого се-

мейства нашли воплощение многие новые для того периода идеи, в частности: предварительная выборка команд, отдельные блоки для операций с фиксированной и плавающей запятой, конвейеризация команд, кэш-память.

Среди вычислительных машин, разработанных в этот период в СССР, прежде всего необходимо отметить «быстродействующую электронно-счетную машину» БЭСМ-6 (С.А. Лебедев) с производительностью 1 миллион операций в секунду.

В сфере программного обеспечения необходимо отметить создание в 1970 Кеном Томпсоном (Kenneth Thompson) из Bell Labs языка В, прямого предшественника популярного языка программирования С, и появление ранней версии операционной системы

UNIX.

1.6. Четвертое поколение (19721984).

Отсчет четвертого поколения обычно ведут с перехода на интегральные микро схемы большой (large-scale integration, LSI) и сверхбольшой (very large-scale int-gration, VLSI)

степени интеграции. К первым относят схемы, содержащие 1000 транзисторов на кристалле, в то время как число транзисторов на одном кр сталле VLSI имеет порядок 100 000. При таких уровнях интеграции стало возможным уместить в одну микросхему не только центральный процессор, но и вычислительную машину (ЦП, основную память и систему ввода/вывода).

Конец 70-х и начало 80-х годов – это время становления и последующего победного шествия микропроцессоров и микроЭВМ, что, однако, не снижает важности изменений, произошедших в архитектуре других типов вычислительных машин и систем.

Одним из наиболее значимых событий в области архитектуры ВМ стала идея вычислительной машины с сокращенным набором команд (RISC, Redused Instruction Set Computing), выдвинутая в 1975 году и впервые реализованная в 1980 году. В упрощенном изложении суть концепция RISC заключается в сведении набора команд ВМ к наиболее употребительным простейшим командам. Это позволяет упростить схемотехнику процессора и добиться резкого сокращения времени выполнения каждой из «простых» команд. Более сложные команды реализуются как подпрограммы, составленные из быстрых «простых» команд.

В области программного обеспечения выделим появление языков программирования сверхвысокого уровня, таких как функциональное программирование и Пролог (Prolog, programming in logic). Эти языки ориентированы на декларативный стиль программирования, в отличие от Паскаля, С, Фортрана и т. д. – языков императивного стиля программирования. Два события в области программного обеспечения связаны с Кеном Томпсоном

(Kenneth Thompson) и Деннисом Ритчи (Dennis Ritchie) из Bell Labs. Это создание языка программирования С и его использование при написании операционной системы UNIX для машины DEC PDP-11.

1.7. Пятое поколение (19841990).

Главным поводом для выделения вычислительных систем второй половины 80-х годов в самостоятельное поколение стало стремительное развитие ВС с сотнями процессоров, ставшее побудительным мотивом для прогресса в области параллельных вычислений. Ранее параллелизм вычислений выражался лишь в виде конвейеризации, векторной обработки и распределения работы между небольшим числом процессоров. Вычислительные системы пятого поколения обеспечивают такое распределение задач по множеству процессоров, при котором каждый из процессоров может выполнять задачу отдельного пользователя.

В рамках пятого поколения в архитектуре вычислительных систем сформировались два принципиально различных подхода: архитектура с совместно используемой памятью и архитектура с распределенной памятью.

Знаковой приметой рассматриваемого периода стало стремительное развитие технологий глобальных и локальных компьютерных сетей. В противовес мощным универсальным ВМ, работающим в режиме разделения времени, пользователи все более отдают предпочтение подключенным к сети индивидуальным рабочим станциям. Такой подход позволяет для решения небольших задач задействовать индивидуальную машину, а при необходимости в большой вычислительной мощности обратиться к ресурсам подсоединенных же сети мощных файл-серверов или суперЭВМ.

1.8. Шестое поколение (1990).

На ранних стадиях эволюции вычислительных средств смена поколений ассоциировалась с революционными технологическими прорывами. Каждое из первых четырех поколений имело четко выраженные отличительные признаки и вполне определенные хронологические рамки. Последующее деление на поколения уже не столь очевидно и может быть понятно лишь при ретроспективном взгляде на развитие вычислительной техники. Пятое и шестое поколения в эволюции ВТ – это отражение нового качества, возникшего в результате последовательного накопления частных достижений, главным образом в архитектуре вычислительных систем и, в несколько меньшей мере, в сфере технологий.

Поводом для начала отсчета нового поколения стали значительные успехи в области параллельных вычислений, связанные с широким распространением вычислительных систем с массовым параллелизмом. Упрощенно можно определить их как совокупность большого количества (до нескольких тысяч) взаимодействующих, но достаточно автономных вычислительных машин. По вычислительной мощности такие системы уже успешно конкурируют с суперЭВМ.

Вторая характерная черта шестого поколения – резко возросший уровень рабочих станций. В процессорах новых рабочих станций успешно совмещаются RISC-архитектура, конвейеризация и параллельная обработка. Некоторые рабочие станции по производительности сопоставимы с суперЭВМ четвертого поколения. Впечатляющие характеристики рабочих станций породили интерес к гетерогенным (неоднородным) вычислениям, когда программа, запущенная на одной рабочей станции, может найти в локальной сети не занятые в данный момент другие станции, после чего вычисления распараллеливаются и на эти простаивающие станции.

Наконец, третьей приметой шестого поколения в эволюции ВТ стал взрывной рост глобальных сетей.

1.8.1. Быстродействие и производительность ЭВМ

Одно из важнейших характеристик ЭВМ является ее быстродействие, которое характеризуется числом определенного типа команд, выполняемых за 1 сек. Быстродействие ЭВМ характеризует скорость обработки информации компьютером.

Реальное или эффективное быстродействие, обеспечиваемое ЭВМ значительно ниже оно может сильно отличаться в зависимости от класса решаемых задач. Часто вместо характеристики быстродействия используют связанную с ней характеристику производительности – объем работ (например, число стандартных программ), осуществляемых ЭВМ в единицу времени.

Единицей измерения производительности компьютера может являться время: компьютер, выполняющий тот же объем работы за меньшее время является более быстрым.

Наиболее простой способ определения времени называется астрономическим временем или временем выполнения (execution time). Это задержка выполнения задания, включающая буквально все: работу процессора, обращения к диску, обращения к памяти, ввод/вывод и накладные расходы операционной системы.

Для измерения времени работы процессора на данной программе используется специальный параметр – время ЦП (CPU time), которое не включает время ожидания ввода/вывода или время выполнения другой программы.

Быстройдействие ЦП зависит от трех параметров: такта (или частоты) синхронизации, среднего количества тактов на команду и количества выполняемых команд. Невозможно изменить ни один из указанных параметров изолированно от другого, поскольку базовые технологии, используемые для изменения каждого из этих параметров, взаимосвязаны: частота синхронизации определяется технологией аппаратных средств и функциональной организацией процессора, среднее количество тактов на команду зависит от функциональной организации и архитектуры системы команд, а количество выполняемых в программе команд определяется архитектурой системы команд и технологией компиляторов.

В действительности быстродействие определяется по времени выполнения реальных программ. Одним из таких способов измерения быстродействия процессора является определение показателя MIPS – (миллион команд в секунду). В общем случае MIPS есть скорость операций в единицу времени, т.е. для любой данной программы MIPS есть просто отношение количества команд в программе к времени ее выполнения.

Положительными сторонами MIPS является то, что эту характеристику легко понять, особенно покупателю, и что более быстрая машина характеризуется большим числом MIPS. Однако использование MIPS в качестве метрики для сравнения наталкивается на три проблемы. Во-первых, MIPS зависит от набора команд процессора, что затрудняет сравнение по MIPS компьютеров, имеющих разные системы команд. Во-вторых, MIPS даже на одном и том же компьютере меняется от программы к программе. В-третьих, MIPS может меняться по отношению к производительности в противоположенную сторону.

Измерение быстродействия компьютеров при решении научно-технических задач, в которых существенно используется арифметика с плавающей точкой, всегда вызывало особый интерес. Именно для таких вычислений впервые встал вопрос об измерении быстродействия, а по достигнутым показателям часто делались выводы об общем уровне разработок компьютеров. Обычно для научно-технических задач быстродействие процессора оценивается в MFLOPS (миллионах чисел-результатов вычислений с плавающей точкой в секунду, или миллионах элементарных арифметических операций над числами с плавающей точкой, выполненных в секунду) и далее GFLOPS, TFLOPS, PFLOPS...

Как единица измерения, MFLOPS, предназначена для оценки производительности ЭВМ с операциями с плавающей точкой, и поэтому не применима вне этой ограниченной области. Например, программы компиляторов имеют рейтинг MFLOPS близкий к нулю вне зависимости от того, насколько быстра машина, поскольку компиляторы редко используют арифметику с плавающей точкой.

Наиболее часто MFLOPS, как единица измерения быстродействия, используется при проведении контрольных испытаний на тестовых пакетах «Ливерморские циклы» и

Linpack.

Ливерморские циклы – это набор фрагментов фортран-программ, каждый из которых взят из реальных программных систем, эксплуатируемых в Ливерморской национальной лаборатории им. Лоуренса (США). Обычно при проведении испытаний используется либо малый набор из 14 циклов, либо большой набор из 24 циклов. Ливерморские циклы считаются типичными фрагментами программ численных задач. В Ливерморских циклах

встречаются последовательные, сеточные, конвейерные, волновые вычислительные алгоритмы, что подтверждает их пригодность и для параллельных машин.

Linpack – это пакет фортран-программ для решения систем линейных алгебраических уравнений. Целью создания Linpack отнюдь не было измерение производительности. В основе алгоритмов действующего варианта Linpack лежит метод декомпозиции. Исходная матрица размером 100х100 элементов (в последнем варианте размером 1000х1000), результат работы тестового пакета Linpack с двойной точностью.

Оценка быстродействия ЭВМ всегда приблизительна, ибо при этом ориентируются на некоторые усредненные или, наоборот, на конкретные виды операций. Реально при решении различных задач используются и различные наборы операций. Поэтому для характеристики ЭВМ часто вместо производительности обычно указывают тактовую частоту, более объективно определяющую быстродействие машины. И так как каждая операция требует для своего выполнения вполне определенного количество тактов. Зная тактовую частоту, можно достаточно точно определить время выполнения любой машинной операции.

1.9. Основные классы современных ЭВМ.

Вычислительные машины могут быть классифицированы по разным признакам,

вчастности:

принципу действия;

назначению;

размеру и вычислительной мощности;

по физическим принципам, используемым для реализации ЭВМ и т.д.;

1.9.1. Аналоговые, цифровые и гибридные ЭВМ.

По принципу действия вычислительные машины делятся на три больших класса: аналоговые, цифровые и гибридные. Критерием деления вычислительных машин на эти три класса является форма представления информации, с которой они работают (рис. 1.9.1):

Рис. 1.9.1. Две формы представления информации в машинах

ЦВМ (цифровые вычислительные машины), или вычислительные машины дис-

кретного действия, работают с информацией, представленной в дискретной, а точнее в цифровой форме.

В основе цифровой вычислительной машины лежит два состояния ее элементов – включено (единица или логическая переменная «истина»), выключено (ноль или логическая переменная «ложь»). Из этих элементарных состояний стоится процесс вычислений в двоичной системе исчисления и вся логика через базовые логические операции сложения, умножения и отрицания.