Информатика: техническое обеспечение
Платов А.
Рождение на свет ЭВМ было вызвано потребностью решать военные задачи расчётного характера. Первая цифровая ЭВМ "ENIAC" была создана в 1946 г. в США и предназначалась для баллистических расчётов при стрельбе. Первая отечественная цифровая ЭВМ «МЭСМ» создана в 1950 г. Ход развития ЭВМ принято делить на этапы - поколения ЭВМ. Основной показатель, по которому ЭВМ относят к тому или иному поколению - элементная база.
Таблица 1. Поколения ЭВМ
Период | Эл. база | Быстродействие | Объём ОЗУ | Внешние устройства | Архитектура | Программное обеспечение |
1946-60 | вакуумные лампы, | 0,1 mips | 100 Кб | магн. барабанмагн. лентаперфокартаперфолентацифровая печать, телетайп | фон Неймана | Библиотеки стандартных программ и ассемблеры |
1955-70 | полупроводники | 1 mips | 1Мб | графопостроитель, магнитный диск | мультипрограммный режим | Операционные системы, языки программирования высокого уровня и трансляторы, СУБД |
1965-80 | БИС | 10 mips | 10Мб | Дисплеи, гибкие диски, матричные принтеры | Мини-ЭВМ,сети ЭВМ,системы коллективного пользования | Диалоговые системы, машинная графика, системы обработки текстов, промышленное производство программного обеспечения |
1975-90 | СБИС | 100 mips | 100Мб | Лазерный принтер, винчестер, оптический диск | ПЭВМ, многопроцессорные системы, локальные сети | Базы знаний, экспертные системы, сборочное программирование, пакеты прикладных программ общего назначения. |
Современные ЭВМ относятся также к четвёртому поколению.
Любая классификация ЭВМ условна в силу их чрезвычайного разнообразия. Назначение и функциональные возможности ЭВМ – это две взаимосвязанные стороны, по которым можно определять место ЭВМ.
СуперЭВМ [supercomputer] – сверхпроизводительная система, предназначенная для решения задач, требующих больших объёмов вычислений. К таким задачам относятся задачи аэродинамики, ядерной физики и физики плазмы, сейсмологии, метеорологии, обработки изображений и др. СуперЭВМ всегда выполняются на пределе технических возможностей. Это системы общего назначения.
Сервер [server] – ЭВМ, предоставляющая свои ресурсы другим пользователям. Различаются файл-серверы, серверы печати, серверы баз данных и др. Наличие сервера всегда предполагает наличие других ЭВМ, которые связаны в сеть. Сети и серверы – это неразделимые понятия. ЭВМ, которую обслуживает сервер, называется клиентной рабочей станцией или просто клиентом.
Рабочая станция [workstation] – специализированная высокопроизводительная ЭВМ, ориентированная на профессиональную деятельность в определённой области (обычно САПР, графика), имеющая поэтому дополнительное оборудование и специализированное программное обеспечение.
Персональная ЭВМ - ПЭВМ [personalcomputer - PC] – универсальная, однопользовательская ЭВМ. Настройка такой ЭВМ может выполняться, как правило, самим пользователем. Среди ПЭВМ можно выделить переносные ПЭВМ – наколенные [laptop], блокнотные [notebook] и карманные [palmtop] ЭВМ.
Терминал [terminal] – устройство, подключенное к более мощной ЭВМ, не предназначенное для работы в автономном режиме и обеспечивающее ввод-вывод информации и команд пользователя.
Архитектура ЭВМ – это способ обработки данных (способ организации вычислительного процесса), который реализуется аппаратурой ЭВМ.
Простейшая архитектура была определена Дж. фон Нейманом в середине 40-х годов. В качестве основных устройств универсальной ЭВМ были выделены: центральный процессор (ЦПУ) [processor (CPU)] (арифметико-логическое устройство + устройство управления), память для хранения данных и команд и устройства ввода-вывода.
Вычислительный процесс выполняется строго последовательно: команда за командой. Также последовательно обрабатываются данные.
Такой способ организации вычислительного процесса позже получил название архитектуры фон Неймана.
Пример
Каждая машинная команда выполняется в 5 этапов: считывание команды из памяти, дешифрация команды, считывание данных, выполнение команды, запись результатов в память.
Рассмотрим простую программу:
a=b+c
d=e+f
ЭВМ, построенная согласно архитектуре фон Неймана, последовательно выполнит эти две команды. Причём после выполнения каждой команды процессор будет простаивать, ожидая, пока результат запишется в память, и затем придут новые данные для следующей команды.
Однако эти команды являются несвязанными, так как для них нужны разные данные. Поэтому их можно было бы выполнять параллельно.
Источник: [7].
Уже в 50-х гг. были начаты работы по разработке такой архитектуры ЭВМ, которая позволяла в той или иной мере оптимизировать вычислительный процесс.
Чтобы минимизировать число обращений к памяти при выполнении серии несвязанных операций, была разработана конвейерная [pipeline] архитектура.
Для ускорения выполнения команд процессор ставит их на конвейер, состоящий, например, из 5 каскадов. Устройство, выполняющее такую обработку команд, называется конвейером команд [commandpipeline]. Таким образом, фазы выполнения различных операций совмещаются во времени, тем самым поток команд из памяти команд становится более интенсивным.
Ускорение выполнения несвязанных арифметических операций достигается аналогичным способом с помощью арифметического конвейера [arithmeticpipeline], который интенсифицирует поток данных из памяти.
Чтобы сократить время обработки данных, можно применить другой очевидный способ: совместить выполнение двух или более арифметических операций во времени. Для этого нужно просто иметь два или более арифметических устройств. Такая архитектура называется суперскалярной [superscalar].
Архитектура фон Неймана, конвейерная и суперскалярная архитектуры объединяются общим названием – архитектура SISD [SingleInstructionSingleData] (см. рис. 2.1).
Согласно этой архитектуре существует один поток команд и один поток данных. Эти потоки могут подвергаться конвейеризации или распараллеливанию внутри процессора. Большинство современных ЭВМ построено по такому принципу.
Решение многих задач на ЭВМ связано обработкой данных векторного или матричного типа. В таких задачах будут присутствовать программные фрагменты типа:
for i=1 to N : a[i]=b[i]+c[i] : next i
Причём число N может быть очень велико (сотни тысяч и более). Использование ЭВМ архитектуры SISD становится неэффективным.
Для решения подобных задач применяются ЭВМ векторной [vector] архитектуры. В состав такой ЭВМ входит векторный процессор [array (vector) processor], который представляет собой несколько однотипных процессорных элементов, каждый из которых выполняет операцию с соответствующим элементом вектора данных.
Такая архитектура именуется также как архитектура SIMD [SingleInstructionMultipleData] (см. рис. 2.2).
Большинство современных суперЭВМ используют векторно-конвейерную архитектуру, то есть каждый процессорный элемент векторного процессора использует конвейерный способ обработки данных и команд.
Архитектуры SISD и SIMD объединяются в класс однопроцессорных архитектур.
Класс многопроцессорных архитектур также может быть сведён к двум видам: MISD-архитектура и MIMD-архитектура.
В архитектуре MISD [MultipleInstructionSingleData] одни и те же данные обрабатываются большим числом параллельных процессов. Такой архитектуре соответствует обычная локальная сеть персональных ЭВМ, которая работает с общей базой данных. ЭВМ, которые соответствуют MISD-архитектуре, не существует.
Архитектура MIMD [MultipleInstructionMultipleData] включает в себя возможности всех рассмотренных выше архитектур.
Можно выделить две разновидности MIMD-архитектуры: сильносвязанные и слабосвязанные системы. Сильносвязанная архитектура реализуется, например, в многопроцессорных серверах. Слабосвязанную архитектуру можно проиллюстрировать на примере кластерных систем.
Основа для сравнения ЭВМ различных типов – это производительность ЭВМ, то есть время, которое затрачивает ЭВМ на выполнение некоторого объёма работы.
Самую точную практическую оценку производительности конкретной ЭВМ можно получить лишь из времени работы реальной программы, для выполнения которой нужна данная ЭВМ.
Однако поскольку ЭВМ используются, как правило, для решения различных задач, то существуют многообразные тесты, с помощью которых можно оценить возможности ЭВМ.
Самой простой (и самой неточной) характеристикой производительности является число MIPS [MillionInstructionsPerSecond] - миллион команд в секунду. В общем случае MIPS определяется как отношение количества команд в программе ко времени её выполнения. Большее число MIPS на практике не значит более высокой производительности ЭВМ. Это число, вообще говоря, может меняться при выполнении разных программ даже на одной ЭВМ. Операции с плавающей точкой состоят из нескольких десятков обычных целочисленных операций, поэтому если ЭВМ с низким числом MIPS имеет боле эффективную реализацию плавающей арифметики, то такая ЭВМ может быть более производительной, чем ЭВМ с высоким числом MIPS.
Для оценки производительности ЭВМ, предназначенных для решения научно-технических задач, в которых существенно используется плавающая арифметика, применяется оценка по числу MFLOPS [MillionFloatingPointOperationsPerSecond] - миллион плавающих операций в секунду. Эта оценка гораздо более точна, чем оценка по MIPS, но справедлива только для оценки возможностей ЭВМ при работе с плавающими числами.