Производительность ЭВМ

Внутренняя обработка данных

Логические основы ЭВМ

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

Основное понятие алгебры логики – это высказывание. Высказывание – это законченное предложение, о котором можно сказать, что его содержание истинно (равно 1), либо ложно (равно 0). Существует несколько логических операций, наиболее важные из которых: конъюнкция (логическое И), дизъюнкция (логическое ИЛИ), отрицание (логическое НЕ)
(табл. 2.3).

Таблица 2.3

Элементарные логические операции

x y ИЛИ И НЕ х
         
         
         
         

 

Значения 0 или 1 означают отсутствие или наличие электрического сигнала, соответственно. Электрические схемы, реализующие элементарные логические операции, называются логическимиэлементами и исполняются на полупроводниковых приборах (диоды, транзисторы и т.д.).

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

Функциональное строение ЭВМ

ЭВМ любой архитектуры состоит из следующих функциональных частей:

§ запоминающее устройство (ЗУ);

§ устройство управления (УУ);

§ арифметико-логическое устройство (АЛУ);

§ устройство ввода-вывода (УВВ).

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

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

Арифметико-логическое устройство обрабатывает алгоритмы, реализованные в виде программы.

Устройство управления и арифметико-логическое устройство в конкретных ЭВМ реализуются в виде центральногопроцессора (ЦП) [processor (CPU)].

Устройство ввода-вывода служит для передачи данных на внешние устройства.

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

Каждая машинная команда выполняется в 5 этапов:

§ считывание кода команды из памяти;

§ дешифрация кода команды;

§ считывание данных;

§ выполнение команды;

§ запись результатов в память.

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

Понятие программы

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

Программа [program, routine] – это последовательность команд, понятных ЭВМ, или машинных команд. Машинныекоманды [computer instruction] представляют собой целые числа, принимая которые, ЭВМ производит строго определённые действия. Набор этих команд зависит от конкретной ЭВМ и носит название машинногоязыка [computer (machine) language]. Машинные команды, как и данные, хранятся в файлах, однако, файлу с командами можно передать управление компьютером. Такие файлы также называют программами.

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

 

Пример

Пусть в некотором файле записана следующая последовательность чисел:

B8 05 03 BB-00 00 CD 16-CD 20

Очевидно, что размер файла – 10 байт. Если запустить этот файл на исполнение, то клавиатура будет работать быстрее. Всего в данной последовательности закодировано четыре машинных команды. Например, команда CD означает вызов специальной функции, а операнд 16 или 20 означает номер вызываемой функции.

g

Архитектура ЭВМ

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

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

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

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

Для представления вычислительного процесса используются понятия потока данных и потока команд, введённые в 1966 г. американским учёным М. Флинном. Поток команд представляет собой последовательность машинных команд, поступающих из ЗУ к УУ и далее после дешифрации к АЛУ. Поток данных представляет собой последовательность данных, которые обрабатываются АЛУ и считываются из ЗУ. В соответствии с этим вычислительный процесс архитектуры фон Неймана можно представить рис. 2.6.

Поскольку в такой архитектуре имеются только один поток команд и только один поток данных, то она получила название архитектуры SISD [Single Instruction Single Data].

Уже в 50-х гг. были начаты работы по разработке такой архитектуры ЭВМ, которая позволяла в той или иной мере оптимизировать вычислительный процесс.

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

Рис. 2.6

 
 

Архитектура SISD

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

Это несвязанность данных, обрабатываемых в одном потоке команд, и независимость потоков команд. В соответствии с этим можно выделить несколько так называемых уровней параллелизма (рис. 2.7), для каждого из которых будут применяться свои приёмы совмещения операций.

Рис. 2.7

 
 

Уровни параллелизма

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

Пример

Рассмотрим простую программу, состоящую из двух команд:

команда a: a=b+c

команда b:d=e+f

Эти команды используют несвязанные данные. Поэтому их можно было бы выполнять параллельно. Выполнение каждой команды осуществляется в течении 5 фаз, например для команды a: a1, a2, a3, a4, a5. Предположим, что каждая фаза операции выполняется за один такт. Тогда вычислительный процесс фон Неймана будет иметь вид:

 

Такт          
  a1        
  a2 a1      
  a3 a2 a1    
  a4 a3 a2 a1  
  a5 a4 a3 a2 a1
    a5 a4 a3 a2
      a5 a4 a3
        a5 a4
          a5
  b1        

 

Очевидно, что на каждую команду приходится по 9 тактов.

g

Чтобы интенсифицировать поток команд из памяти при выполнении серии несвязанных операций, была разработана конвейерная [pipeline] архитектура. Согласно этой архитектуре устройство управления выполняется в виде последовательности 5 независимо функционирующих устройств - каскадов, каждое из которых предназначено для выполнения определённой фазы команды.

Пример

Рассмотрим предыдущий пример. Тогда вычислительный процесс в конвейерной архитектуре будет иметь вид:

 

Такт          
  a1        
  a2 a1      
  a3 a2 a1    
  a4 a3 a2 a1  
  a5 a4 a3 a2 a1
  b1 a5 a4 a3 a2
  b2 b1 a5 a4 a3
  b3 b2 b1 a5 a4
  b4 b3 b2 b1 a5
  b5 b4 b3 b2 b1

 

Легко подсчитать, что на выполнение 4 команд потребуется 24 такта или по 6 тактов на команду. Если число команд станет бесконечным, то на каждую команду будет приходиться по 5 тактов.

g

Чтобы сократить время обработки данных, можно применить другой очевидный способ: совместить выполнение двух или более арифметических операций во времени. Для этого нужно просто иметь два или более арифметических устройств. Такая архитектура называется суперскалярной [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.8 Архитектура SIMD

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

 

Пример

Рассмотрим программу, в составе которой имеется следующий код:

for i=1 to 64: a[i]=b[i]+c[i]: next i

Если в составе векторного процессора имеется 64 арифметических устройства, то для выполнения этой части программы потребуется столько же времени, как и для выполнения команды типа: a = b+c. То есть векторная ЭВМ с такого рода задачами будет работать в 64 раза быстрее, чем ЭВМ архитектуры SISD.

g

Архитектуры SISD и SIMD объединяются в класс однопроцессорных архитектур.

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

Класс многопроцессорных архитектур также может быть сведён к двум видам: MISD-архитектура и MIMD-архитектура.

В архитектуре MISD [Multiple Instruction Single Data] одни и те же данные обрабатываются большим числом параллельных процессов. Такой архитектуре соответствует обычная локальная сеть персональных ЭВМ, которая работает с общей базой данных. ЭВМ, которые соответствуют MISD-архитектуре, не существует.

Архитектура MIMD [Multiple Instruction Multiple Data] предполагает наличие нескольких устройств управления и нескольких арифметико-логических устройств и может выступать в зависимости от решаемой задачи также как SISD или SIMD архитектура.

Производительность ЭВМ

Основа для сравнения ЭВМ различных типов – это производительность ЭВМ, то есть время, которое затрачивает ЭВМ на выполнение некоторого объёма работы.

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

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

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

Другой простой (и самой неточной) характеристикой производительности является число MIPS [Million Instructions Per Second], равное числу миллионов команд, выполняемых процессором за секунду. В общем случае MIPS определяется как отношение количества команд в программе ко времени её выполнения:

,

где - время такта, [микросек].

Пример

Рассмотрим ЭВМ RS/6000 фирмы IBM, которая состоит из четырёх параллельных устройств, одно из которых обеспечивает выполнение двух команд за такт, остальные выполняют одну команду за такт. Следовательно, в идеале эта ЭВМ будет выполнять за такт 5 команд, то есть CPI = 0,2. Тактовая частота составляет 30 МГц. Тогда

MIPS = 1 / (0,2 * 0,0333) = 150,15.

g

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

Для оценки производительности ЭВМ, предназначенных для решения научно-технических задач, в которых существенно используется плавающая арифметика, применяется оценка по числу MFLOPS [Million Floating Point Operations Per Second], равному числу миллионов плавающих операций, выполняемых за секунду. Эта оценка гораздо более точна, чем оценка по MIPS, но справедлива только для оценки возможностей ЭВМ при работе с плавающими числами.

Пример

Производительность современных суперЭВМ достигает десятков GFLOPS. Производительность ПЭВМ имеет порядок десятков MFLOPS.

g

Другие способы оценки производительности основаны на использовании специально подобранных тестовых задач. Наиболее известными и употребительными являются тесты SpecInt и SpecFp. Эти тесты предложены в 1988 г. организацией SPEC (Systems Performance Evaluation Cooperative), и представляют собой набор из 14-тестов для проверки быстродействия процессора. Быстродействие ЭВМ определяется числом SPECmark. За единицу приняты характеристики ранее широко распространённой ЭВМ VAX11/780. В других единицах производительность этой ЭВМ приблизительно оценивается в 1 MIPS. Поэтому можно сказать, что 1 SPECmark равен 1 MIPS. Тест SpecInt даёт оценку производительности на целочисленных операциях, а тест SpecFp на операциях с вещественными числами. Другой широко известный набор тестов - LINPACK служит для оценки эффективности процессора при обработке больших потоков вещественных чисел. Основу теста составляют программы из библиотеки, созданной на языке Fortran в 1976 г. для решения задач линейной алгебры. Результат измеряется в MFLOPS.



Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: