- •1.1Внутренняя обработка данных
- •1.1.1Логические основы эвм
- •1.1.2Функциональное строение эвм
- •1.1.3Понятие программы
- •1.1.4Архитектура эвм
- •1.1.5Производительность эвм
- •1.2Внешняя обработка данных
- •1.2.1Алгоритмы и структуры данных
- •1.2.2Программирование и языки программирования
- •1.2.3Процедурное программирование
- •1.2.4Функциональное программирование
- •1.2.5Логическое программирование
- •1.2.6Объектно-ориентированное программирование
- •2.Аппаратное и программное обеспечение
- •2.1Классификация эвм
- •2.2Аппаратные компоненты персональных эвм
- •2.2.1Структура пэвм
- •2.2.2Системная шина
- •2.2.3Центральный процессор
- •2.2.4Внешняя и внутренняя память
- •2.2.5Внешние устройства
- •2.2.6Внешние запоминающие устройства
- •2.2.7Внешние устройства ввода-вывода
- •2.2.8Видеосистемы
- •3.Вычислительные сети
- •3.1Понятие вычислительной сети
- •3.2Локальные вычислительные сети
- •3.2.1Архитектура локальной сети
- •3.2.2Аппаратные компоненты локальной сети
- •3.3Глобальная сеть Internet
- •3.3.1Общая характеристика глобальной сети Internet
- •3.3.2Адресация и маршрутизация в сети Internet
- •3.3.3Службы сети Internet
- •3.4Архитектура вычислительного процесса
- •3.4.1Архитектура приложения
- •3.4.2Централизованная архитектура
- •3.4.3Распределённая архитектура
- •3.4.4Архитектура «Клиент-сервер»
- •3.4.5Многозвенная архитектура
- •Список используемых сокращений
- •Использованная литература
- •Предметный указатель
- •Содержание
- •Александр Юрьевич Платов
- •603950, Н.Новгород, ул. Ильинская, 65.
1.1.3Понятие программы
Решение задачи на ЭВМ – это процесс получения результатных данных на основе обработки исходных с помощью программы.
Программа [program, routine] – это последовательность команд, понятных ЭВМ, или машинных команд. Машинные команды [computer instruction] представляют собой целые числа, принимая которые, ЭВМ производит строго определённые действия. Набор этих команд зависит от конкретной ЭВМ и носит название машинного языка [computer (machine) language]. Машинные команды, как и данные, хранятся в файлах, однако, файлу с командами можно передать управление компьютером. Такие файлы также называют программами.
Каждая машинная команда содержит, во-первых, информацию об операции, которую нужно выполнить на данном шаге, и, во-вторых, исходные данные для этой операции – операнды.
Пример
Пусть в некотором файле записана следующая последовательность чисел:
B8 05 03 BB-00 00 CD 16-CD 20
Очевидно, что размер файла – 10 байт. Если запустить этот файл на исполнение, то клавиатура будет работать быстрее. Всего в данной последовательности закодировано четыре машинных команды. Например, команда CD означает вызов специальной функции, а операнд 16 или 20 означает номер вызываемой функции.
1.1.4Архитектура эвм
Архитектура ЭВМ – это способ обработки данных (способ организации вычислительного процесса), который реализуется аппаратурой ЭВМ. Архитектура ЭВМ описывает некоторую конструкцию ЭВМ, независимую от строения решаемой задачи, то есть любая алгоритмизируемая задача может быть решена на ЭВМ, построенной в соответствии с данной архитектурой. Однако эффективность реализации алгоритма существенно зависит от архитектуры. Очевидно, что для решения задач гидроаэродинамики и для бухгалтерских расчётов требуются различные алгоритмы. Поэтому для каждой конкретной архитектуры может быть выделен круг прикладных задач, для решения которых использование данной архитектуры предпочтительно.
Понятие архитектуры ЭВМ используется для проведения сравнительного анализа возможностей ЭВМ.
В 1946 г. американским учёным Дж. фон Нейманом был предложен принцип организации вычислительного процесса, который до сих пор реализуется в большинстве современных ЭВМ.
Согласно этой архитектуре вычислительный процесс выполняется строго последовательно: команда за командой. Также последовательно обрабатываются данные.
Для представления вычислительного процесса используются понятия потока данных и потока команд, введённые в 1966 г. американским учёным М. Флинном. Поток команд представляет собой последовательность машинных команд, поступающих из ЗУ к УУ и далее после дешифрации к АЛУ. Поток данных представляет собой последовательность данных, которые обрабатываются АЛУ и считываются из ЗУ. В соответствии с этим вычислительный процесс архитектуры фон Неймана можно представить рис. 2.6.
Поскольку в такой архитектуре имеются только один поток команд и только один поток данных, то она получила название архитектуры SISD [Single Instruction Single Data].
Уже в 50-х гг. были начаты работы по разработке такой архитектуры ЭВМ, которая позволяла в той или иной мере оптимизировать вычислительный процесс.
Основная идея этой оптимизации заключается в совмещении во времени операций по обработке данных. Архитектура ЭВМ, вычислительный процесс которой организован таким образом, называется параллельной.
Рис.
2.1
Архитектура
SISD
Совмещение во времени определённых операций достигается несколькими путями. Существует всего две причины, создающие возможность параллельной обработки данных.
Это несвязанность данных, обрабатываемых в одном потоке команд, и независимость потоков команд. В соответствии с этим можно выделить несколько так называемых уровней параллелизма (рис. 2.7), для каждого из которых будут применяться свои приёмы совмещения операций.
Рис.
2.2
Уровни
параллелизма
Несвязанность потоков данных порождает три нижних уровня параллелизма. Верхние три уровня обусловлены несвязанностью команд, и реализация параллельной обработки достигается использованием нескольких процессоров.
Пример
Рассмотрим простую программу, состоящую из двух команд:
команда a: a=b+c
команда b: d=e+f
Эти команды используют несвязанные данные. Поэтому их можно было бы выполнять параллельно. Выполнение каждой команды осуществляется в течении 5 фаз, например для команды a: a1, a2, a3, a4, a5. Предположим, что каждая фаза операции выполняется за один такт. Тогда вычислительный процесс фон Неймана будет иметь вид:
Такт |
|
|
|
|
|
1 |
a1 |
|
|
|
|
2 |
a2 |
a1 |
|
|
|
3 |
a3 |
a2 |
a1 |
|
|
4 |
a4 |
a3 |
a2 |
a1 |
|
5 |
a5 |
a4 |
a3 |
a2 |
a1 |
6 |
|
a5 |
a4 |
a3 |
a2 |
7 |
|
|
a5 |
a4 |
a3 |
8 |
|
|
|
a5 |
a4 |
9 |
|
|
|
|
a5 |
10 |
b1 |
|
|
|
|
Очевидно, что на каждую команду приходится по 9 тактов.
Чтобы интенсифицировать поток команд из памяти при выполнении серии несвязанных операций, была разработана конвейерная [pipeline] архитектура. Согласно этой архитектуре устройство управления выполняется в виде последовательности 5 независимо функционирующих устройств - каскадов, каждое из которых предназначено для выполнения определённой фазы команды.
Пример
Рассмотрим предыдущий пример. Тогда вычислительный процесс в конвейерной архитектуре будет иметь вид:
Такт |
|
|
|
|
|
1 |
a1 |
|
|
|
|
2 |
a2 |
a1 |
|
|
|
3 |
a3 |
a2 |
a1 |
|
|
4 |
a4 |
a3 |
a2 |
a1 |
|
5 |
a5 |
a4 |
a3 |
a2 |
a1 |
6 |
b1 |
a5 |
a4 |
a3 |
a2 |
7 |
b2 |
b1 |
a5 |
a4 |
a3 |
8 |
b3 |
b2 |
b1 |
a5 |
a4 |
9 |
b4 |
b3 |
b2 |
b1 |
a5 |
10 |
b5 |
b4 |
b3 |
b2 |
b1 |
Легко подсчитать, что на выполнение 4 команд потребуется 24 такта или по 6 тактов на команду. Если число команд станет бесконечным, то на каждую команду будет приходиться по 5 тактов.
Чтобы сократить время обработки данных, можно применить другой очевидный способ: совместить выполнение двух или более арифметических операций во времени. Для этого нужно просто иметь два или более арифметических устройств. Такая архитектура называется суперскалярной [superscalar].
Архитектура фон Неймана, конвейерная и суперскалярная архитектуры реализуются в рамках архитектуры SISD. Большинство современных ЭВМ построено по такому принципу.
Решение многих задач на ЭВМ связано обработкой данных векторного или матричного типа. В таких задачах будут присутствовать программные фрагменты типа:
for i=1 to N : a[i]=b[i]+c[i] : next i
Причём число N может быть очень велико (сотни тысяч и более). Использование ЭВМ архитектуры SISD становится неэффективным.
Для решения подобных задач применяются ЭВМ векторной [vector] архитектуры. В состав такой ЭВМ входят одно устройство управления и несколько арифметико-логических устройств, которые реализуются в составе одного векторного процессора [array (vector) processor].
Такая архитектура именуется также как архитектура SIMD [Single Instruction Multiple Data] (рис. 2.8).
Р
ис.
2.3 Архитектура SIMD
При такой организации вычислительного процесса дешифрованная устройством управления команда может использоваться одновременно несколькими арифметическими устройствами, но операнды одной и той же команды будут разными.
Пример
Рассмотрим программу, в составе которой имеется следующий код:
for i=1 to 64: a[i]=b[i]+c[i] : next i
Если в составе векторного процессора имеется 64 арифметических устройства, то для выполнения этой части программы потребуется столько же времени, как и для выполнения команды типа: a = b+c. То есть векторная ЭВМ с такого рода задачами будет работать в 64 раза быстрее, чем ЭВМ архитектуры SISD.
Архитектуры SISD и SIMD объединяются в класс однопроцессорных архитектур.
Если задача может быть подразделена на несколько независимых заданий, то логично использовать для её выполнения несколько самостоятельных устройств управления или несколько арифметических устройств, то есть многопроцессорную ЭВМ. Многопроцессорная обработка данных применяется для реализации самых верхних уровней параллелизма (рис. 2.7).
Класс многопроцессорных архитектур также может быть сведён к двум видам: MISD-архитектура и MIMD-архитектура.
В архитектуре MISD [Multiple Instruction Single Data] одни и те же данные обрабатываются большим числом параллельных процессов. Такой архитектуре соответствует обычная локальная сеть персональных ЭВМ, которая работает с общей базой данных. ЭВМ, которые соответствуют MISD-архитектуре, не существует.
Архитектура MIMD [Multiple Instruction Multiple Data] предполагает наличие нескольких устройств управления и нескольких арифметико-логических устройств и может выступать в зависимости от решаемой задачи также как SISD или SIMD архитектура.
