Архитектура фон Неймана
Архитектура фон Неймана (англ. von Neumann architecture) — широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако, соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.
Наличие заданного набора исполняемых команд и программ было характерной чертой первых компьютерных систем. Сегодня подобный дизайн применяют с целью упрощения конструкции вычислительного устройства. Так, настольные калькуляторы, в принципе, являются устройствами с фиксированным набором выполняемых программ. Их можно использовать для математических расчётов, но невозможно применить для обработки текста и компьютерных игр, для просмотра графических изображений или видео. Изменение встроенной программы для такого рода устройств требует практически полной их переделки, и в большинстве случаев невозможно. Впрочем, перепрограммирование ранних компьютерных систем всё-таки выполнялось, однако требовало огромного объёма ручной работы по подготовке новой документации, перекоммутации и перестройки блоков и устройств и т. п. Всё изменила идея хранения компьютерных программ в общей памяти. Ко времени её появления использование архитектур, основанных на наборах исполняемых инструкций, и представление вычислительного процесса как процесса выполнения инструкций, записанных в программе, чрезвычайно увеличило гибкость вычислительных систем в плане обработки данных. Один и тот же подход к рассмотрению данных и инструкций сделал лёгкой задачу изменения самих программ.
В настоящее время фон-неймановской архитектурой называется организация ЭВМ, при которой вычислительная машина состоит из двух основных частей — линейно-адресуемой памяти, слова которой хранят команды и элементы данных, и процессора, выполняющего эти команды. В основе модели вычислений фон Неймана лежат принцип последовательной передачи управления (счётчик команд) и концепция переменной (идентификатор).
Концепция машины с хранимой в памяти программой
Исходя из целей данного раздела, введем новое определение термина «вычислительная машина» как совокупности технических средств, служащих для автоматизированной обработки дискретных данных по заданному алгоритму.
Алгоритм — одно из фундаментальных понятий математики и вычислительной техники. Международная организация стандартов (ISO) формулирует понятие алгоритм как «конечный набор предписаний, определяющий решение задачи посредством конечного количества операций» (ISO 2382/1-84). Помимо этой стандартизированной формулировки существуют и другие определения. Приведем наиболее распространенные из них. Итак, алгоритм — это:
— способ преобразования информации, задаваемый с помощью конечной системы правил;
— совокупность правил, определяющих эффективную процедуру решения любой задачи из некоторого заданного класса задач;
— точно определенное правило действий, для которого задано указание, как и в какой последовательности это правило необходимо применять к исходным данным задачи, чтобы получить ее решение.
Основными свойствами алгоритма являются: дискретность, определенность, массовость и результативность.
Дискретность выражается в том, что алгоритм описывает действия над дискретной информацией (например, числовой или символьной), причем сами эти действия также дискретны.
Свойство определенности означает, что в алгоритме указано все, что должно быть сделано, причем ни одно из действий не должно трактоваться двояко.
Массовость алгоритма подразумевает его применимость к множеству значений исходных данных, а не только к каким-то уникальным значениям.
Наконец, результативность алгоритма состоит в возможности получения результата за конечное число шагов.
Рассмотренные свойства алгоритмов предопределяют возможность их реализации на ВМ, при этом процесс, порождаемый алгоритмом, называют вычислительным процессом.
В основе архитектуры современных ВМ лежит представление алгоритма решения задачи в виде программы последовательных вычислений. Согласно стандарту 15О 2382/1-84, программа для ВМ — это «упорядоченная последовательность команд, подлежащая обработке».
ВМ, где определенным образом закодированные команды программы хранятся в памяти, известна под названием вычислительной машины с хранимой в памяти программой. Идея принадлежит создателям вычислителя ЕМ1 АС Эккерту, Моч-ли и фон Нейману. Еще до завершения работ над ЕМ1 АС они приступили к новому проекту — ЕВУАС, главной особенностью которого стала концепция хранимой в памяти программы, на долгие годы определившая базовые принципы построения последующих поколений вычислительных машин. Относительно авторства существует несколько версий, но поскольку в законченном виде идея впервые была изложена в 1945 году в статье фон Неймана 219, именно его фамилия фигурирует в обозначении архитектуры подобных машин, составляющих подавляющую часть современного парка ВМ и ВС.
Сущность фон-неймановской концепции вычислительной машины можно свести к четырем принципам:
Лекция 1 по архитектуре компьютеров. Концепция машины с хранимой в памяти программой
В основе архитектуры современных ВМ
лежит представление алгоритма решения
задачи в виде программы
последовательных вычислений.
Согласно стандарту
ISO 2382/1-84, программа для ВМ —это
«упорядоченная последовательность ко
манд, подлежащая обработке».
ВМ, где определенным образом
закодированные команды программы
хранятся в памяти, известна под
названием вычислительной машины с
хранимой в памяти программой.
Идея принадлежит создателям
вычислителя ENIAC Эккерту, Мочли и
фон Нейману.
Сущность фон-неймановской концепции
вычислительной машины можно свести к
четырем принципам:
– двоичного кодирования;
– программного управления;
– однородности памяти;
– адресности.
ПРИНЦИП ДВОИЧНОГО КОДИРОВАНИЯ
Вся информация, как данные, так и
команды, кодируются двоичными
цифрами 0 и 1.
ПРИНЦИП ПРОГРАММНОГО УПРАВЛЕНИЯ
Все вычисления должны быть представлены в
виде программы, состоящей из
последовательности управляющих слов – команд.
Команды программы хранятся в
последовательных ячейках памяти
вычислительной машины и выполняются в
естественной последовательности.
При необходимости, с помощью специальных
команд, эта последовательность может быть
изменена.
ПРИНЦИП ОДНОРОДНОСТИ ПАМЯТИ
Команды и данные хранятся в одной и той же
памяти и внешне в памяти неразличимы.
Распознать их можно только по способу
использования.
Принстонская архитектура – архитектура,
использующая единую память для хранения
команд и данных.
Гарвардская архитектура – архитектура,
использующая отдельную память команд и
отдельную память данных.
Долгие годы преобладающей была и остается
принстонская архитектура, хотя она порождает
проблемы пропускной способности тракта
«процессор-память». В последнее время в связи с
широким использованием кэш-памяти разработчики
ВМ все чаще обращаются к гарвардской
архитектуре.
ПРИНЦИП АДРЕСНОСТИ
Структурно основная память состоит из
пронумерованных ячеек, причем процессору в
произвольный момент доступна любая ячейка.
Двоичные коды команд и данных разделяются на
единицы информации, называемые словами, и
хранятся в ячейках памяти, а для доступа к ним
используются номера соответствующих ячеек—
адреса.
Порт –аппаратура сопряжения
периферийного устройства (ПУ) с ВМ и
управления им.
Устройство ввода/вывода (УВВ) или
модуль ввода/вывода ВМ(МВБ) –
совокупность портов ввода и вывода
Чтобы программа могла выполняться,
команды и данные должны располагаться в
основной памяти (ОП).
Доступ к любым запоминающего
устройства (ЗУ) основной памяти может
производиться в произвольной последовательности. Такой вид памяти известен как
память с произвольным доступом.
Размер ячейки ОП обычно принимается равным
байту. Для хранения больших чисел используются
2, 4 или 8 байтов, размещаемых в ячейках с
последовательными адресами.
Два подхода к адресации:
• адресация по младшему байту или метод
остроконечников (little endian addressing) – за
адрес числа принимается адрес его младшего
байта (Intel, DEC).
• адресация по старшему байту или метод
тупоконечников (big endian addressing) – по
меньшему из адресов располагается старший
байт (Motorola, большие ЭВМ фирмы IBM).
Для долговременного хранения больших
программ и массивов данных в ВМ обычно
имеется дополнительная память, известная
как вторичная.
Обязательным элементом в архитектуре фон Неймана является только основная
память.
Устройство управления (УУ) — часть ВМ, организующая
автоматическое выполнение программ и обеспечивающая
функционирование ВМ как единой системы.
УУ ВМ можно рассматривать как совокупность элементов,
между которыми происходит пересылка информации, в ходе
которой эта информация может подвергаться определенным
видам обработки. Пересылка информации между любыми
элементами ВМ инициируется своим сигналом управления
(СУ), то есть управление вычислительным процессом сводится
к выдаче нужного набора СУ в нужной временной
последовательности.
Основная функция УУ – формирование управляющих сигналов,
отвечающих за извлечение команд из памяти в порядке,
определяемом программой, и последующее исполнение этих
команд. Кроме того, УУ формирует СУ для синхронизации и
координации внутренних и внешних устройств ВМ
Арифметико-логическое устройство (АЛУ) обеспечивает
арифметическую и логическую обработку двух входных
переменных, в результате которой формируется выходная
переменная.
Помимо результата операции АЛУ формирует ряд признаков
результата (флагов), характеризующих полученный результат и
события, произошедшие в процессе его получения (равенство
нулю, знак, четность, перенос, переполнение и т.д.).
Компьютер это машина с хранимой
+7 (499) 444-90-36 Отдел заботы о пользователях
Москва, Ленинский проспект, дом 6, строение 20
- Участник Skolkovo
- Премии Рунета 2018, 2019, 2020
Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies
Компьютер это машина с хранимой
Если в выполняемой процессором команде не указан адрес следующей команды программы, то процессор выбирает эту команду —
из следующей по порядку ячейки памяти |
из ячейки памяти, адрес которой находится на вершине стека |
из ячейки памяти, адрес которой находится в регистре состояния процессора |
из ячейки памяти, адрес которой находится в регистре-указателе стека |
из ячейки памяти, адрес которой находится в регистре команд процессора |
из ячейки памяти, адрес которой находится в регистре-счетчике команд процессора |
выбирая адрес этой команды из регистра-счетчика команд процессора |
анализируя соответствующие разряды содержимого ячеек памяти |
получая адрес команды из порта внешнего запоминающего устройства |
выбирая адрес этой команды из регистра команд процессора |
получая адрес этой команды из вектора прерывания |
получая адрес команды из регистра состояния процессора |
выбирая адрес этой команды из вершины стека |
В виде символов какого-либо алфавита |
В виде шестнадцатеричного кода |
Разные типы данных представляются в разных форматах |
В виде двоичного кода |
Вид определяется программистом |
В виде восьмеричного кода |
В виде символьного обозначения |
В виде шестнадцатеричного кода |
В виде символьного обозначения |
В виде восьмеричного кода |
В виде ключевых слов языка программирования |
В виде двоичного кода |
В виде мнемонического обозначения |
Для того, чтобы правильно находить команды выполняемой программы в оперативной памяти, не путая их с данными, в фон-неймановском компьютере
Архитектура вычислительных машин
Различают Принстонскую и Гарвардскую архитектуру вычислительных машин. Эти архитектурные варианты были предложены в конце 40-х годов специалистами, соответственно, Принстонского и Гарвардского университетов США для разрабатываемых ими моделей компьютеров.
Принстонская архитектура
Принстонская архитектура , которая часто называется архитектурой фон Неймана , характеризуется использованием общей оперативной памяти для хранения программ, данных, а также для организации стека. Для обращения к этой памяти используется общая системная шина, по которой в процессор поступают и команды, и данные.
Архитектура современных персональных компьютеров основана на
магистрально-модульном принципе .
Любую вычислительную машину образуют три основные компонента:
- процессор,
- память,
- устройства ввода-вывода (УВВ).
Информационная связь между устройствами компьютера осуществляется через системную шину (системную магистраль).
Шина – это кабель, состоящий из множества проводников. Количество проводников, входящих в состав шины, является
максимальной разрядностью шины .
Системная шина, в свою очередь, представляет собой совокупность
- шины данных, служащей для переноса информации;
- шины адреса, которая определяет, куда переносить информацию;
- шины управления, которая определяет правила для передачи информации;
- шины питания, подводящей электропитание ко всем узлам вычислительной машины.
Системная шина характеризуется тактовой частотой и разрядностью. Количество одновременно передаваемых по шине бит называется
разрядностью шины .
Тактовая частота характеризует число элементарных операций по передаче данных в 1 секунду. Разрядность шины измеряется в битах, тактовая частота – в мегагерцах.
Устройство управления (УУ) формирует адрес команды, которая должна быть выполнена в данном цикле, и выдает управляющий сигнал на чтение содержимого соответствующей ячейки запоминающего устройства (ЗУ). Считанная команда передается в УУ. По информации, содержащейся в адресных полях команды, УУ формирует адреса операндов и управляющие сигналы для их чтения из ЗУ и передачи в арифметико-логическое устройство (АЛУ). После считывания операндов устройство управления по коду операции, содержащемуся в команде, выдает в АЛУ сигналы на выполнение операции. Полученный результат записывается в ЗУ по адресу приемника результата под управлением сигналов записи. Признаки результата (знак, наличие переполнения, признак нуля и так далее) поступают в устройство управления, где записываются в специальный регистр признаков. Эта информация может использоваться при выполнении следующих команд программы, например команд условного перехода.
Устройство ввода позволяет ввести программу решения задачи и исходные данные в ЭВМ и поместить их в оперативную память. В зависимости от типа устройства ввода исходные данные для решения задачи вводятся непосредственно с клавиатуры, либо они должны быть предварительно помещены на какой-либо носитель (дисковый накопитель).
Устройство вывода служит для вывода из ЭВМ результатов обработки исходной информации. Чаще всего это символьная информация, которая выводится с помощью печатающих устройств или на экран дисплея.
Запоминающее устройство или память – это совокупность ячеек, предназначенных для хранения некоторого кода. Каждой из ячеек присвоен свой номер, называемый адресом . Информацией, записанной в ячейке, могут быть как команды в машинном виде, так и данные.
Обработка данных и команд осуществляется посредством арифметико-логического устройства (АЛУ), предназначенного для непосредственного выполнения машинных команд под действием устройства управления. АЛУ и УУ совместно образуют центральное процессорное устройство (ЦПУ). Результаты обработки передаются в память.
Основные принципы построения вычислительных машин с архитектурой фон Неймана
- Принцип двоичности. Для представления данных и команд используется двоичная система счисления.
- Принцип программного управления. Программа состоит из набора команд, которые выполняются процессором друг за другом в определённой последовательности.
- Принцип однородности памяти. Как программы (команды), так и данные хранятся в одной и той же памяти (и кодируются в одной и той же системе счисления, чаще всего – двоичной). Над командами можно выполнять такие же действия, как и над данными.
- Принцип адресуемости памяти. Структурно основная память состоит из пронумерованных ячеек, процессору в произвольный момент времени доступна любая ячейка.
- Принцип последовательного программного управления. Все команды располагаются в памяти и выполняются последовательно, одна после завершения другой.
- Принцип условного перехода. Команды из программы не всегда выполняются одна за другой. Возможно присутствие в программе команд условного перехода (а также команд вызова функций и обработки прерываний), которые изменяют последовательность выполнения команд в зависимости от значений данных. Этот принцип был сформулирован задолго до фон Неймана Адой Лавлейс и Чарльзом Бэббиджем, однако был логически включен в указанный набор как дополняющий предыдущий принцип.
Архитектура фон Неймана имеет ряд важных достоинств.
- Наличие общей памяти позволяет оперативно перераспределять ее объем для хранения отдельных массивов команд, данных и реализации стека в зависимости от решаемых задач. Таким образом, обеспечивается возможность более эффективного использования имеющегося объема оперативной памяти в каждом конкретном случае применения.
- Использование общей шины для передачи команд и данных значительно упрощает отладку, тестирование и текущий контроль функционирования системы, повышает ее надежность.
Поэтому Принстонская архитектура в течение долгого времени доминировала в вычислительной технике.
Однако ей присущи и существенные недостатки. Основным из них является необходимость последовательной выборки команд и обрабатываемых данных по общей системной шине. При этом общая шина становится «узким местом» (bottleneck – «бутылочное горло»), которое ограничивает производительность цифровой системы.
Гарвардская архитектура
Гарвардская архитектура была разработана Говардом Эйкеном в конце 1930-х годов в Гарвардском университете с целью увеличить скорость выполнения вычислительных операций и оптимизировать работу памяти. Она характеризуется физическим разделением памяти команд (программ) и памяти данных. В ее оригинальном варианте использовался также отдельный стек для хранения содержимого программного счетчика, который обеспечивал возможности выполнения вложенных подпрограмм. Каждая память соединяется с процессором отдельной шиной, что позволяет одновременно с чтением-записью данных при выполнении текущей команды производить выборку и декодирование следующей команды. Благодаря такому разделению потоков команд и данных и совмещению операций их выборки реализуется более высокая производительность, чем при использовании Принстонской архитектуры.
Недостатки Гарвардской архитектуры связаны с необходимостью проведения большего числа шин, а также с фиксированным объемом памяти, выделенной для команд и данных, назначение которой не может оперативно перераспределяться в соответствии с требованиями решаемой задачи. Поэтому приходится использовать память большего объема, коэффициент использования которой при решении разнообразных задач оказывается более низким, чем в системах с Принстонской архитектурой. Однако развитие микроэлектронной технологии позволило в значительной степени преодолеть указанные недостатки, поэтому Гарвардская архитектура широко применяется во внутренней структуре современных высокопроизводительных микропроцессоров, где используется отдельная кэш-память для хранения команд и данных. В то же время во внешней структуре большинства микропроцессорных систем реализуются принципы Принстонской архитектуры.