Выбери формат для чтения
Загружаем конспект в формате pdf
Это займет всего пару минут! А пока ты можешь прочитать работу в формате Word 👇
1.2 Понятие Фон-неймановской архитектуры
Джон фон Нейман (Янош 1903-1957) родился в Будапеште, а с 1930 г.
жил и работал в США. По профессии математик и физик. Предложил
принцип обработки данных и архитектуру программного автомата, который
получил название неймановской машины. Построение ЭВМ, основанной на
этом принципе, базируется на идее автоматизации вычислений под
управлением программы (последовательность инструкций) и использует две
фундаментальные мысли.
Первая из них состоит в том, что программа вводится через те же
внешние устройства и хранится в той же памяти, что и исходные данные. Это
обеспечивает оперативную перестройку машины с одной задачи на другую
без внесения каких0либо изменений в схему машины и еѐ коммутацию, делая
машину
универсальным
вычислительным
инструментом.
Термин
универсальная ЭВМ широко использовался в последующие годы.
Вторая состоит в том, что инструкции, составляющие программу
вычислений, закодированы в виде чисел и по форме ничем не отличаются от
тех чисел, с которыми оперирует машина. Это дает возможность при
выполнении некоторой инструкции прочесть другую или, в частном случае,
ту же инструкцию как число, переслать еѐ в арифметическое устройство,
произвести там с ней некоторые операции и вернуть на своѐ место в
запоминающем устройстве (памяти) в преобразованном виде. Когда в
следующий раз устройство управления обратится к данной ячейки памяти за
инструкцией, а не за операндом, то исполняться будет уже не исходная, а
преобразованная инструкция. Таким образом, при исполнении некоторой
программы может одновременно происходить еѐ преобразование, либо
формирование новой программы. Следовательно, можно сказать, что
неймановская машина по своей сути обладает элементами интеллектуальной
системы.
Прежде чем рассматривать последующие
усовершенствования
неймановской машины, напомним принципы еѐ действия. Основными
элементами базового варианта неймановской машины, представленного на
рис. 1.2, являются:
программный счѐтчик (ПС);
регистр команд (РК);
схема управления (СУ);
арифметико-логическое устройство (АЛУ);
аккумулятор (А);
схемы представления чисел в дополнительном коде с регистром сдвига
(СПЧ);
память инструкций (команд) и данных (П);
регистр адреса (РА);
регистр данных (РД);
10
Рис. 1.2 Базовый вариант неймановской машины
совокупность вентильных групп (В), на которые поступают
управляющие сигналы из СУ;
внутренняя машинная магистраль (М).
Процесс обработки данных в такой машине чисто последовательный и
выполнение каждой команды разбивается на строго определенный ряд
следующих друг за другом действий. Если за точку отсчѐта принять такое
состояние машины, при котором в ПС установлен адрес следующей
команды, то эти действия (шаги) следующие:
а). по адресу команды, находящемуся в ПС, происходит обращение к П
с использованием РА, после чего сама команда оказывается в РД;
b). код команды заносится из РД в РК;
c). в случае команды условного (безусловного) перехода, формирование
номера следующей команды и занесение его в ПС;
d). в случае исполнительной команды, обращение в память за операндом по
адресу, расположенному в коде команды или по адресу, вычисленному
специальной схемой;
e). занесение операнда из РД в АЛУ;
f). занесение операнда из А в АЛУ;
g). занесение результата операции из СПЧ в А.
11
1.3 Парадигмы Фон-неймановской архитектуры.
Существуют две парадигмы, на которых базируется так называемая
неймановская архитектура.
1) Входные данные и инструкции поступают по одному и тому же каналу и
хранятся в одной и той же памяти.
2)Управление выполнением последовательности команд осуществляется
программным счѐтчиком (ПС).
Сама команда, как это было отмечено выше, выполняется то же в виде
последовательности шагов, число которых в современных ЭВМ может
отличаться от приведѐнного примера, но суть их последовательности при
выполнении одной команды остаѐтся неизменной.
Следовательно, главное определение неймановской машины – это
последовательная машина.
1.4 Особенности Фон-неймановской архитектуры
Анализ особенностей функционирования неймановской архитектуры
показывает, что чисто последовательный характер обработки данных
приводит к тому, что в каждый момент времени (применительно к
процессору момент времени должен рассматриваться как машинный такт)
функционирует только определѐнная часть аппаратуры, выполняющая
соответствующие действия в рамках одного из шагов выполнения команды.
Остальная часть аппаратуры простаивает. Именно этот вывод и до сих пор
служит для широкого поля деятельности в совершенствовании технических
характеристик систем обработки данных. С другой стороны, анализируя
прикладные программы, созданные для реализации на ЭВМ, можно
согласиться с выводами ученых, например, Прангишвилли И. В., которые
утверждают, что любая программа содержит такую часть, которую можно
распараллелить. Именно в этом состоит основное зерно, лежащее в основе
усовершенствования неймановской архитектуры.
Рассматривая в целом такую СОД как ЭВМ с неймановской
архитектурой, можно привести такие основные еѐ проблемы. Здесь под
проблемами понимаются еѐ узкие места, не позволяющие эффективно
использовать аппаратно-программные средства ЭВМ.
1. Программные коды (команды) вместе с данными хранятся в одной
и той же памяти.
Это приводит к тому, что в процессе выполнения одной команды
необходимо несколько раз обратится последовательно к одной
памяти, что значительно замедляет процесс обработки данных.
2. Линейное
пространство
адресов,
которым
присваиваются
порядковые номера 0, 1, 2, 3... .
12
Это свойство ограничивает эффективность применения памяти с
модульной организацией.
3. Каждая программа выполняется последовательно, начиная с самой
первой команды, если нет специального указания (команды перехода).
Это свойство ограничивает возможности использования характера
параллельности выполняемых программ.
4. Последовательное
выполнение
обработки
в
неймановской
архитектуре приводит к последовательному изменению состояния
машины путѐм изменения содержимого памяти. Это явление носит
название побочного эффекта. Поскольку вычисления выполняются с
побочным эффектом, то результат операции нужно каждый раз
записывать в память.
5. Отсутствие различий в машинном представлении данных и команд.
В этом случае, в частности, возникают проблемы, усложняющие
разработку программного обеспечения. Наличие разрыва между
понятиями операций и их объектов на языке программирования
высокого уровня и понятиями операций и их объектов,
определяемыми архитектурой компьютера, называется семантическим
разрывом.
6. Отсутствие
различий
в
семантике
данных. Иначе
говоря, если на языке высокого уровня можно описать различные
типы данных, то в неймановской архитектуре разницы в представлении
типов данных нет. Поэтому каждый раз, когда необходимо выполнить
те или иные операции над данными нужно
либо программно, либо аппаратно проконтролировать их тип.
Какие существуют способы для "смягчения" влияния узких мест
рассматриваемой архитектуры на еѐ производительность?
Наиболее эффективный способ - это увеличение пропускной способности
тракта между процессором и памятью. Сюда входит введение многоуровневой памяти, в том числе КЭШ памяти и разделение еѐ на КЭШ-команд
и КЭШ-данных, применение многопортовой памяти, использование
принципа расслоения при модульной организации памяти, применение
механизмов реализации виртуальной памяти.
Что касается линейного адресного пространства, то его преобразование
в структурированное пространство памяти было предложено г. Илиффом в
1972 г. Его идея состоит в том, чтобы с помощью некоторого алгоритма
добавлять ко всем элементам памяти информацию, показывающую атрибут
этого элемента. Эта дополнительная информация получила название tag (тегпризнак). Машины, основанные на использовании этого признака,
называются теговыми машинами. В таких машинах различение типов
данных поддерживается аппаратно, так как каждый тип данных
характеризуется своим тегом. Это в свою очередь приводит к тому, что
однотипные команды, отличающиеся только типом операндов, никак не
13
различаются. Следовательно, число команд в системе команд таких машин
сокращается.
Примером машины со структурированной памятью является SWARDмашина, предложенная г. Майерсом. В SWARD-машине данные
представлены структурными элементами, называемыми ячейками, которые
состоят из поля тега и поля данных. Память разбита на 4-разрядные единицы.
Ниже на рис. 1.3 приведены различные типы ячеек.
Рис.1.3 Типы ячеек SWARD-машины
Таким образом, применение тегов в том числе устраняет "отсутствие
различий в семантике данных" на уровне их машинного представления.
Для улучшения производительности при использовании конвейера
вводится блок предсказания ветвлений. Данный блок аппаратно
подсчитывает число итераций для арифметических циклов и определяет
момент следующего перехода. В случае перехода по признаку возможно
лишь вероятностное предсказание. При этом собирается статистика
предыдущих переходов.
Устранение побочного эффекта более сложная проблема, решение
которой основано на создании архитектуры машины, реализующей так
называемый функциональный язык (ФЯ). ФЯ предполагает отсутствие
побочного эффекта (отсутствует оператор присваивания) и не влечѐт за собой
последовательное считывание и исполнение команды. Примерами ФЯ
являются языки LISP и SALS. Программа состоит из множества равенств,
14
определяющих функции и описаний приложений этих функций при вводе
данных. Например, в языке SALS функция fact, вычисляющая факториал,
определяется следующим образом:
fact n where fact 0 = 1
fact n = n*fact(n-1)
Следовательно, программа на ФЯ представляется некоторой функцией
F, а выполнение программы определяется как результат действия этой
функции (еѐ оценка) F(x) по отношению к входу x.