Принципы фон Неймана (Архитектура фон Неймана)
В 1946 году Д. фон Нейман, Г. Голдстайн и А. Беркс в своей совместной статье изложили новые принципы построения и функционирования ЭВМ. В последствие на основе этих принципов производились первые два поколения компьютеров. В более поздних поколениях происходили некоторые изменения, хотя принципы Неймана актуальны и сегодня.
По сути, Нейману удалось обобщить научные разработки и открытия многих других ученых и сформулировать на их основе принципиально новое.
Принципы фон Неймана
- Использование двоичной системы счисления в вычислительных машинах. Преимущество перед десятичной системой счисления заключается в том, что устройства можно делать достаточно простыми, арифметические и логические операции в двоичной системе счисления также выполняются достаточно просто.
- Программное управление ЭВМ. Работа ЭВМ контролируется программой, состоящей из набора команд. Команды выполняются последовательно друг за другом. Созданием машины с хранимой в памяти программой было положено начало тому, что мы сегодня называем программированием.
- Память компьютера используется не только для хранения данных, но и программ. При этом и команды программы и данные кодируются в двоичной системе счисления, т.е. их способ записи одинаков. Поэтому в определенных ситуациях над командами можно выполнять те же действия, что и над данными.
- Ячейки памяти ЭВМ имеют адреса, которые последовательно пронумерованы. В любой момент можно обратиться к любой ячейке памяти по ее адресу. Этот принцип открыл возможность использовать переменные в программировании.
- Возможность условного перехода в процессе выполнения программы. Не смотря на то, что команды выполняются последовательно, в программах можно реализовать возможность перехода к любому участку кода.
Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.
Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.
Как работает машина фон Неймана
Машина фон Неймана состоит из запоминающего устройства (памяти) — ЗУ, арифметико-логического устройства — АЛУ, устройства управления – УУ, а также устройств ввода и вывода.
Программы и данные вводятся в память из устройства ввода через арифметико-логическое устройство. Все команды программы записываются в соседние ячейки памяти, а данные для обработки могут содержаться в произвольных ячейках. У любой программы последняя команда должна быть командой завершения работы.
Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).
Арифметико-логическое устройство выполняет указанные командами операции над указанными данными.
Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.
УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.
Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление.
Какому принципу не соответствует архитектура фон Неймана? Как работает машина фон Неймана?
Сегодня трудно поверить, но компьютеры, без которых многие уже не могут представить свою жизнь, появились всего каких-то 70 лет назад. Одним из тех, кто сделал решающий вклад в их создание, был американский ученый Джон фон Нейман. Он предложил принципы, на которых и по сей день работает большинство ЭВМ. Рассмотрим, как работает машина фон Неймана.
Краткая биографическая справка
Янош Нейман родился в 1930 году в Будапеште, в очень состоятельной еврейской семье, которой впоследствии удалось получить дворянский титул. Он с детства отличался выдающимися способностями во всех областях. В 23 года Нейман уже защитил кандидатскую диссертацию в области экспериментальной физики и химии. В 1930-м молодого ученого пригласили на работу в США, в Принстонский университет. Одновременно с этим Нейман стал одним из первых сотрудников Института перспективных исследований, где проработал профессором до конца жизни. Научные интересы Неймана были довольно обширны. В частности, он является одним из создателей матаппарата квантовой механики и концепции клеточных автоматов.
Вклад в информатику
Прежде чем выяснить, какому принципу не соответствует архитектура фон Неймана, будет интересно узнать о том, как ученый пришел к идее создания вычислительной машины современного типа.
Будучи экспертом в области математики взрывов и ударных волн, в начале 1940-х фон Нейман являлся научным консультантом в одной из лабораторий Управления боеприпасов Армии Соединенных Штатов. Осенью 1943 года он прибыл в Лос-Аламос для участия в разработке Манхеттэнского проекта по личному приглашению его руководителя Роберта Оппенгеймера. Перед ним была поставлена задача рассчитать силу имплозийного сжатия заряда атомной бомбы до критической массы. Для ее решения требовались большие вычисления, которые на первых порах осуществлялись на ручных калькуляторах, а позже на механических табуляторах фирмы IBM, с использованием перфокарт.
Фон Нейман познакомился с информацией о ходе создания электронно-механических и полностью электронных компьютеров. Вскоре его привлекли к разработке компьютеров EDVAC и ENIAC, в результате чего он начал писать работу «Первый проект отчета о EDVAC», оставшуюся неоконченной, в которой представил научному сообществу совершенно новую идею о том, какой должна быть компьютерная архитектура.
Принципы фон Неймана
Информатика как наука к 1945 году зашла в тупик, так как все вычислительные машины хранили в своей памяти обрабатываемые числа в 10-м виде, а программы для совершения операций задавались посредством установки перемычек на коммутационной панели.
Это значительно ограничивало возможности компьютеров. Настоящим прорывом стали принципы фон Неймана. Кратко их можно выразить одним предложением: переход к двоичной системе счисления и принцип хранимой программы.
Анализ
Рассмотрим, на каких принципах основана классическая структура машины фон Неймана, более подробно:
1. Переход к двоичной системе от десятиричной
Этот принцип неймановской архитектуры позволяет использовать достаточно простые логические устройства.
2. Программное управление электронной вычислительной машиной
Работа ЭВМ контролируется набором команд, выполняемых последовательно друг за другом. Разработка первых машины с программой, хранимой в памяти, положила начало современному программированию.
3. Данные и программы в памяти компьютера хранятся совместно
При этом и данные, и команды программы имеют одинаковый способ записи в двоичной системе счисления, поэтому в определенных ситуациях над ними возможно выполнение тех же действий, что и над данными.
Следствия
Кроме того, архитектура Фоннеймановской машины обладает следующими особенностями:
1. Ячейки памяти имеют адреса, которые пронумерованы последовательно
Благодаря применению этого принципа стало возможным использование переменных в программировании. В частности, в любой момент можно обратиться к той или иной ячейке памяти по ее адресу.
2. Возможность условного перехода в ходе выполнения программы
Как уже было сказано, команды в программах должны выполняться последовательно. Однако предусмотрена возможность совершить переход к любому участку кода.
Как работает машина фон Неймана
Такая математическая модель состоит из запоминающего (ЗУ), арифметико-логического устройства (АЛУ), управляющего, а также устройств ввода и вывода. Все команды программы записываются в ячейках памяти, расположенных по соседству, а данные для их обработки — в произвольных ячейках.
Любая команда должна состоять из:
- указания, какая операция должна быть выполнена;
- адресов ячеек памяти, в которых хранятся исходные данные, затрагиваемые указанной операцией;
- адресов ячеек, в которые следует записать результат.
Указанные командами операции над конкретными исходными данными выполняются АЛУ, а результаты записываются в ячейках памяти, т. е. сохраняются в виде, удобном для последующей машинной обработки, либо передаются на устройство вывода (монитор, принтер и пр.) и становятся доступны человеку.
УУ управляет всеми частями ЭВМ. От него на остальные устройства поступают сигналы-приказы «что делать», а от других устройств оно получает информацию о то, в каком состоянии они находятся.
У управляющего устройства есть специальный регистр, называемый «счетчиком команд» СК. После загрузки исходных данных и программы в память, СК записывается адрес ее 1-й команды. УУ считывает из памяти ЭВМ содержимое ячейки, адрес которой находится в СК, и помещает его в «Регистр команд». Управляющее устройство определяет операцию, соответствующую конкретной команде, и «отмечает» в памяти компьютера данные, адреса которых в ней указаны. Далее АЛУ или аппаратные средства ЭВМ приступают к выполнению операции, по завершении которой содержимое СК изменяется на единицу, т. е. указывает на следующую команду.
Критика
Недостатки и современные перспективы архитектуры фон Неймана продолжают оставаться предметом дискуссий. То, что машины, созданные на принципах, выдвинутых этим выдающимся ученым, не совершенны, было замечено еще очень давно.
Поэтому в экзаменационных билетах по информатике нередко можно встретить вопрос «какому принципу не соответствует архитектура фон Неймана и какие недостатки у нее есть».
При ответе на его вторую часть обязательно следует указать:
- на наличие семантического разрыва между языками программирования высокого уровня и системой команд;
- на проблему согласования ОП и пропускной способности процессора;
- на намечающийся кризис программного обеспечения, вызванный тем, что расходы на его создание являются намного ниже стоимости разработки аппаратных средств, и нет возможности полного тестирования программы;
- отсутствие перспектив с точки зрения быстродействия, так как уже достигнут его теоретический предел.
Что касается того, какому принципу не соответствует архитектура фон Неймана, то речь идет о параллельности организации большого числа потоков данных и команд, свойственной многопроцессорной архитектуре.
Заключение
Теперь вам известно, какому принципу не соответствует архитектура фон Неймана. Очевидно, что наука и технологии не стоят на месте, и, возможно, очень скоро в каждом доме появятся компьютеры совершенно нового типа, благодаря которым человечество выйдет на новый уровень своего развития. Кстати, подготовиться к экзамену поможет программа-тренажер «Архитектура фон Неймана». Такие цифровые образовательные ресурсы облегчают усвоение материала и дают возможность оценить свои знания.
Принципы фон Неймана построения электронно-вычислительной машины.
· Принцип двоичного кодирования
· Согласно этому принципу, вся информация, поступающая в ЭВМ, кодируется с помощью двоичных сигналов (двоичных цифр, битов) и разделяется на единицы, называемые словами.
· Принцип однородности памяти
· Программы и данные хранятся в одной и той же памяти. Поэтому ЭВМ не различает, что хранится в данной ячейке памяти — число, текст или команда. Над командами можно выполнять такие же действия, как и над данными.
· Принцип адресуемости памяти
· Структурно основная память состоит из пронумерованных ячеек; процессору в произвольный момент времени доступна любая ячейка. Отсюда следует возможность давать имена областям памяти, так, чтобы к хранящимся в них значениям можно было бы впоследствии обращаться или менять их в процессе выполнения программы с использованием присвоенных имен.
· Принцип последовательного программного управления
· Предполагает, что программа состоит из набора команд, которые выполняются процессором автоматически друг за другом в определенной последовательности.
· Принцип жесткости архитектуры
· Неизменяемость в процессе работы топологии, архитектуры, списка команд.
· Компьютеры, построенные на этих принципах, относят к типу фон-неймановских.
· Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.
· Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.
·
·
· Машина фон Неймана состоит из запоминающего устройства (памяти) — ЗУ, арифметико-логического устройства — АЛУ, устройства управления – УУ, а также устройств ввода и вывода.
· Программы и данные вводятся в память из устройства ввода через арифметико-логическое устройство. Все команды программы записываются в соседние ячейки памяти, а данные для обработки могут содержаться в произвольных ячейках. У любой программы последняя команда должна быть командой завершения работы.
· Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).
· Арифметико-логическое устройство выполняет указанные командами операции над указанными данными.
· Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.
· УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.
· Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство — «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.
· В результате выполнения любой команды счетчик команд изменяется на единицу и, следовательно, указывает на следующую команду программы. Когда требуется выполнить команду, не следующую по порядку за текущей, а отстоящую от данной на какое-то количество адресов, то специальная команда перехода содержит адрес ячейки, куда требуется передать управление.
16)Структура и архитектура вычислительной системы
Система (от греческого systema — целое, составленное из частей соединение) — это совокупность элементов, взаимодействующих друг с другом, образующих определенную целостность, единство.
Вычислительная система — это совокупность одного или нескольких компьютеров или процессоров, программного обеспечения и периферийного оборудования, организованная для совместного выполнения информационно-вычислительных процессов.
Отличительной особенностью ВС по отношению к ЭВМ является наличие в них нескольких вычислителей, реализующих параллельную обработку.
Основные принципы построения, закладываемые при создании ВС:
• возможность работы в разных режимах;
• модульность структуры технических и программных средств, что позволяет совершенствовать и модернизировать вычислительные системы без коренных их переделок;
• унификация и стандартизация технических и программных решений;
• иерархия в организации управления процессами;
• способность систем к адаптации, самонастройке и самоорганизации;
• обеспечение необходимым сервисом пользователей при выполнении вычислений
По назначению ВС делят на
• универсальные,
• проблемно-ориентированные
• специализированные.
Универсальные предназначаются для решения широкого класса задач. Проблемно-ориентированные используются для решения определенного круга задач в сравнительно узкой сфере. Специализированные ориентированы на решение узкого класса задач
По типу ВС различаются на
• многомашинные
• многопроцессорные.
Вычислительная система может строиться на базе либо целых компьютеров (многомашинная ВС), либо на базе отдельных процессоров (многопроцессорная ВС).
По типу ЭВМ или процессоров различают
• однородные – строятся на базе однотипных компьютеров или процессоров.
• неоднородные системы – включает в свой состав различные типы компьютеров или процессоров.
Территориально ВС делятся на:
• сосредоточенные (все компоненты располагаются в непосредственной близости друг от друга);
• распределенные (компоненты могут располагаться на значительном расстоянии, например, вычислительные сети);
По методам управления элементами ВС различают
• централизованные,
• децентрализованные
• со смешанным управлением.
По режиму работы ВС различают системы, работающие в
• оперативном
• неоперативном временных режимах.
Кроме этого, ВС могут быть структурно
• одноуровневыми (имеется лишь один общий уровень обработки данных);
• Многоуровневыми (иерархическими) структурами. В иерархических ВС машины или процессоры распределены по разным уровням обработки информации, некоторые машины (процессоры) могут специализироваться на выполнении определенных функций.
Структура вычислительной системы.
Структура ВС — это совокупность комплексируемых элементов и их связей. В качестве элементов ВС выступают отдельные ЭВМ и процессоры.
В описанной многоуровневой структуре реализуется классическая фон- неймановская организация ВС и предполагает последовательную обработку информации по заранее составленной программе.
Архитектура вычислительных систем. Классификация архитектур вычислительных систем.
Архитектура системы – совокупность свойств системы, существенных для пользования.
Архитектурой компьютера называется его описание на некотором общем уровне, включающее описание пользовательских возможностей программирования, системы команд, системы адресации, организации памяти и т.д.
Классическая архитектура (архитектура фон Неймана) — одно арифметико-логическое устройство (АЛУ), через которое проходит поток данных, и одно устройство управления (УУ), через которое проходит поток команд — программа. Это однопроцессорный компьютер.
Многомашинная вычислительная система. Здесь несколько процессоров, входящих в вычислительную систему, не имеют общей оперативной памяти, а имеют каждый свою (локальную). Каждый компьютер в многомашинной системе имеет классическую архитектуру, и такая система применяется достаточно широко.
Самой ранней и наиболее известной является классификация архитектур вычислительных систем, предложенная в 1966 году М.Флинном.
· Классификация базируется на понятии потока, под которым понимается последовательность элементов, команд или данных, обрабатываемая процессором. На основе числа потоков команд и потоков данных Флинн выделяет четыре класса архитектур: SISD,MISD,SIMD,MIMD.
SISD (single instruction stream / single data stream) — одиночный поток команд и одиночный поток данных. К этому классу относятся, прежде всего, классические последовательные машины, или иначе, машины фон-неймановского типа, например, PDP-11 или VAX 11/780. В таких машинах есть только один поток команд, все команды обрабатываются последовательно друг за другом и каждая команда инициирует одну операцию с одним потоком данных. Не имеет значения тот факт, что для увеличения скорости обработки команд и скорости выполнения арифметических операций может применяться конвейерная обработка — как машина CDC 6600 со скалярными функциональными устройствами, так и CDC 7600 с конвейерными попадают в этот класс.
SIMD (single instruction stream / multiple data stream) — одиночный поток команд и множественный поток данных. В архитектурах подобного рода сохраняется один поток команд, включающий, в отличие от предыдущего класса, векторные команды. Это позволяет выполнять одну арифметическую операцию сразу над многими данными — элементами вектора. Способ выполнения векторных операций не оговаривается, поэтому обработка элементов вектора может производится либо процессорной матрицей, как в ILLIAC IV, либо с помощью конвейера, как, например, в машине CRAY-1.
MISD (multiple instruction stream / single data stream) — множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят конвейерные машины к данному