Что называют архитектурой фон неймана. Появление эвм, принципы фон неймана. Джон фон Нейман. Биография

Принцип двоичного кодирования

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

Принцип однородности памяти

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

Принцип адресуемости памяти

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

Принцип последовательного программного управления

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

Принцип жесткости архитектуры

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

Компьютеры, построенные на этих принципах, относят к типу фон-неймановских.

Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.

Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.

18.Архитектура и алгоритм работы эвм фон Неймана.

Архитектура фон Неймана (англ. von Neumann architecture) - широко известный принцип совместного хранения программ и данных в памяти компьютера. Вычислительные системы такого рода часто обозначают термином «машина фон Неймана», однако соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают физическое отделение процессорного модуля от устройств хранения программ и данных.

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

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

Машина фон Неймана состоит из запоминающего устройства (памяти) - ЗУ, арифметико-логического устройства - АЛУ, устройства управления – УУ, а также устройств ввода и вывода.

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

Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).

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

Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.

УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство - «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

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

"

· Принцип двоичного кодирования

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

· Принцип однородности памяти

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

· Принцип адресуемости памяти

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

· Принцип последовательного программного управления

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

· Принцип жесткости архитектуры

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

· Компьютеры, построенные на этих принципах, относят к типу фон-неймановских.

· Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.

· Для сравнения, программа компьютера 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) - множественный поток команд и одиночный поток данных. Определение подразумевает наличие в архитектуре многих процессоров, обрабатывающих один и тот же поток данных. Однако ни Флинн, ни другие специалисты в области архитектуры компьютеров до сих пор не смогли представить убедительный пример реально существующей вычислительной системы, построенной на данном принципе. Ряд исследователей относят конвейерные машины к данному

Также известная как модель фон Неймана, или Принстонская архитектура, основана на методике, описанной в 1945 году математиком и физиком Джоном фон Нейманом в рамках доклада «Первый проект» о вычислительной машине EDVAC.

Схема архитектуры

В докладе фон Неймана описывалась схема архитектуры для электронной цифровой вычислительной машины с частями, состоящими из блоков обработки, которая содержит:

  • арифметико-логическое устройство;
  • процессор регистров;
  • блок управления, содержащий регистр команд и счетчик команд;
  • запоминающее устройство для хранения данных;
  • внешнее запоминающее устройство;
  • входные и выходные механизмы.

Смысл разработки состоял в том, чтобы любая хранимая на компьютере информация могла использоваться программой, в которой выбранные данные операции не могут воспроизводиться одновременно, потому что они разделяют общую шину. Это упоминается в «Первом проекте», который описывает мысли ученого о том, какой должна быть архитектура. Фон Нейман называл такую ситуацию «узким местом», которое часто ограничивает производительность системы.

Цифровой компьютер - это ЭВМ, хранящая программу, которая содержит программные инструкции, данные для чтения, записи, а также включает в себя память с произвольным доступом (RAM). Принципы архитектуры Джона фон Неймана изложены также в его труде «Первый проект». Согласно ему, компьютеры с хранимой в памяти программой были усовершенствованием по сравнению с управлением компьютеров, таких как ENIAC. Последний был запрограммирован с помощью установки переключателей и вставки патча, приводящего к маршрутизации данных и сигналам управления между различными функциональными блоками. В подавляющем большинстве современных компьютеров память также используется подобным образом. При этом фон Неймана отличается, например, от Гарвардской, тем, что она использует не основную, а кэш-память.

Предыстория

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

Новая идея

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

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

По большому счету, способность относиться к инструкции как к данным - это то, что делает ассемблеры, компиляторы, сборщики, погрузчики и другие инструменты с возможными объектами автоматизированного программирования. Так сказать, писать программы, которые пишут программы. В меньшем масштабе повторяющиеся интенсивные операции ввода и вывода, такие как BitBlt-манипуляции с изображением примитивных или пиксельных и вершинных шейдеров в современной 3D-графике, были признаны неэффективными для работы без пользовательского оборудования.

Разработка концепции хранимой в памяти программы

Математик который испытывал интерес к проблеме математической логики после лекции Макса Ньюмана в Кембриджском университете, написал статью в 1936 году, она была опубликована в издании Лондонского математического общества. В ней он описал гипотетическую машину, которую назвал «универсальной вычислительной машиной», и которая теперь известна как универсальная машина Тьюринга. Она имела бесконечное хранилище (в современной терминологии - память), которое содержало как инструкции, так и данные, для чего и создавалась данная архитектура. Фон Нейман познакомился с Тьюрингом в то время, когда он был приглашенным профессором в Кембридже в 1935 году, а также в ходе защиты докторской диссертации Тьюринга в Институте перспективных исследований в Принстоне (штат Нью-Джерси) в 1936-1937 годах.

Независимо друг от друга Джи Преспер Эккерт и Джон Мочли, которые разрабатывали ENIAC в школе электротехники в Университете штата Пенсильвания, писали о концепции машины, хранящей программу в памяти в декабре 1943 года. При планировании новой машины, EDVAC, Эккерт писал в январе 1944 года, что она будут хранить данные и программы в новом устройстве с адресацией памяти с помощью задержки металлической ртути. Это был первый раз, когда было предложено строительство на практике машины, хранящей программу в памяти. В то же время он и Мочли не были осведомлены о работе Тьюринга (фото ниже).

Архитектура компьютера: принцип фон Неймана

Фон Нейман был вовлечен в «Проект Манхэттен» в Национальной лаборатории в Лос-Аламосе, который требовал огромного количества вычислений. Это привлекло его к проекту ENIAC летом 1944 года. Там он вступил в дискуссии по разработке компьютера EDVAC. В рамках этой группы он написал работу под названием «Первый проект доклада о EDVAC», основанную на работе Эккерта и Мочли. Она была незавершенной, когда его коллега Гольдштейн распространил проект с именем фон Неймана (к слову, Эккерт и Мочли были ошарашены такой новостью). Этот документ был прочитан десятками коллег фон Неймана в Америке и Европе и оказал серьезное влияние на следующий этап компьютерных разработок.

Основные принципы архитектуры фон Неймана, изложенные в «Первом проекте», набирали широкую известность, в то время как Тьюринг освещал свой доклад об электронном калькуляторе, который был подробно описан в технике и программировании. В нем было изложено и представление автора о машине, которая называлась Automatic Computing Engine (ACE). Он представил его исполнительному комитету британской Национальной физической лаборатории в 1946 году. Спустя некоторое время даже были произведены различные успешные реализации конструкции ACE.

Начало реализации проектов

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

В 1945 году профессор Нейман, который тогда работал в инженерной школе в Филадельфии, где и был построен первый ENIAC, выпустил от имени группы своих коллег доклад о логическом проектировании цифровых вычислительных машин. В докладе содержится довольно подробное предложение по конструкции машины, которая с тех пор стала известна как EDVAC. Она тогда только недавно была создана в Америке, но доклад вдохновил фон Неймана на создание EDSAC.

Maniacs и Joniacs

В 1947 году Беркс, Гольдштейн и фон Нейман опубликовали еще один доклад, в котором освещалась конструкция другого типа машины (на этот раз параллельная), которая должна была стать чрезвычайно быстрой, способной, возможно, осуществлять до 20 000 операций в секунду. Они отметили, что нерешенной проблемой при построении ее была разработка подходящей памяти, все содержимое которой должно быть мгновенно доступно. Сначала они предложили использовать специальную вакуумную трубку, называемую Selectron, которая была изобретена в Принстонской лаборатории. Такие трубки были дорогими, и сделать их очень трудно, особенно если используется данная архитектура. Фон Нейман впоследствии решил построить машину, основанную на памяти Williams. Эта машина, которая была завершена в июне 1952 года в Принстоне, стала широко известна MANIAC (или просто Maniacs). Ее дизайн вдохновил создателей на конструирование полудюжины или более аналогичных приборов, которые сейчас строятся в Америке и называются шуточно Johniacs.

Принципы создания

Один из самых современных цифровых компьютеров, воплощавших разработки и усовершенствования в технике автоматического электронного вычисления, был продемонстрирован в Национальной физической лаборатории в Теддингтоне, где он был спроектирован и построен небольшой группой математиков, электронщиков и инженеров-исследователей, при содействии ряда производственных инженеров из английской Electric Company Ltd. Оборудование до сих пор находится в лаборатории, но только как опытный образец гораздо большей установки, которая известна как Automatic Computing Engine. Но, несмотря на сравнительно небольшую массу и содержание только 800 термоионных клапанов, он является чрезвычайно быстрой и универсальной счетной машиной.

Основные понятия и абстрактные принципы расчета с помощью машины были сформулированы доктором Тьюрингом на базе все того же Лондонского математического общества еще в 1936 году, но работа над такими машинами в Великобритании была задержана войной. В 1945 году рассмотрение проблем создания таких устройств продолжилось в Национальной физической лаборатории доктором Вормсли, суперинтендантом лаборатории Отделения математики. Он присоединился к Тьюрингу со своим небольшим штатом специалистов, а к 1947 году предварительное планирование было достаточно продвинуто, чтобы оправдать создание специальной группы.

Первые компьютеры на архитектуре фон Неймана

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

Классическая архитектура фон Неймана была воплощена в Манчестерской малой экспериментальной машине (SSEM) по прозвищу Baby из университета Манчестера, которая совершила свой первый успешный запуск как устройство, хранящее программу в памяти, 21 июня 1948 года.

EDSAC из Кембриджского университета, первый практический электронный компьютер такого типа, был запущен первый раз успешно в мае 1949 года.

Развитие созданных моделей

IBM SSEC имел возможность рассматривать инструкции как данные и был публично продемонстрирован 27 января 1948 года. Эта способность утверждалась в патенте США. Однако это была частично электромеханическая машина, а не полностью электронная. На практике инструкции были прочитаны с бумажной ленты из-за его ограниченной памяти.

Baby был первым полностью электронным компьютером для запуска сохраненных программ. Он запускал программу факторинга в течение 52 минут 21 июня 1948 года после запуска простого вычисления деления и расчета, который показывает, что два числа являются взаимно простыми.

ENIAC был изменен, чтобы работать в качестве примитивной ЭВМ только для чтения, но по той же архитектуре, и был продемонстрирован 16 сентября 1948 года, а запуск программы Адель Гольдштейн организовала с помощью фон Неймана.

BINAC провел несколько тестовых программ в феврале, марте и апреле 1949 года, хотя и не был завершен до сентября 1949 года. Кроме того, осуществлялись тестовые запуски (некоторые успешные) других электронно-вычислительных машин, для которых свойственна данная архитектура. Фон Нейман, к слову, продолжал работу и над проектом "Манхеттен". Вот такой универсальный человек.

Эволюция шинной системы архитектуры

Через десятилетия, уже в 60-е и 70-е годы, компьютеры в целом стали меньше и быстрее, что привело к некоторым эволюциям, которые претерпела архитектура ЭВМ по фон Нейману. Например, отображение в памяти ввода и вывода позволяет соответствующим устройствам, данные и инструкции по интеграции в систему которых будут обрабатываться, оставаться в памяти. Одна шинная система может быть использована для обеспечения модульной системы с меньшими. Это иногда называют «рационализацией» архитектуры. В последующие десятилетия простые микроконтроллеры иногда не используют некоторые черты типичной модели, чтобы снизить стоимость и размер. А вот большие компьютеры следуют установленной архитектуре, так как в них добавлены функции для повышения производительности.

Такого рода часто обозначают термином «машина фон Неймана», однако соответствие этих понятий не всегда однозначно. В общем случае, когда говорят об архитектуре фон Неймана, подразумевают принцип хранения данных и инструкций в одной памяти.

Энциклопедичный YouTube

  • 1 / 5

    Основы учения об архитектуре вычислительных машин заложил фон Нейман в 1944 году, когда подключился к созданию первого в мире лампового компьютера ЭНИАК . В процессе работы над ЭНИАКом в в Пенсильванском Университете во время многочисленных дискуссий со своими коллегами Джоном Уильямом Мокли , Джоном Экертом , Германом Голдстайном и Артуром Бёрксом, возникла идея более совершенной машины под названием EDVAC . Исследовательская работа над EDVAC продолжалась параллельно с конструированием ЭНИАКа.

    В марте 1945 года принципы логической архитектуры были оформлены в документе, который назывался «Первый проект отчёта о EDVAC » - отчет для Баллистической Лаборатории Армии США, на чьи деньги осуществлялась постройка ЭНИАКа и разработка EDVACа . Отчет, поскольку он являлся всего лишь наброском, не предназначался для публикации, а только для распространения внутри группы, однако Герман Голдстайн - куратор проекта со стороны Армии США - размножил эту научную работу и разослал её широкому кругу ученых для ознакомления. Так как на первой странице документа стояло только имя фон Неймана , у читавших документ сложилось ложное впечатление, что автором всех идей, изложенных в работе, является именно он. Документ давал достаточно информации для того, чтобы читавшие его могли построить свои компьютеры, подобные EDVACу на тех же принципах и с той же архитектурой, которая в результате стала называться «архитектурой фон Неймана».

    После завершения Второй Мировой войны и окончания работ над ЭНИАКом в феврале 1946 года команда инженеров и ученых распалась, Джон Мокли , Джон Экерт решили обратиться в бизнес и создавать компьютеры на коммерческой основе. Фон Нейман, Голдстайн и Бёркс перешли в , где решили создать свой компьютер «IAS-машина », подобный EDVACу , и использовать его для научно-исследовательской работы. В июне 1946 года они изложили свои принципы построения вычислительных машин в ставшей классической статье «Предварительное рассмотрение логической конструкции электронно-вычислительного устройства» . С тех пор прошло более полувека, но выдвинутые в ней положения сохраняют свою актуальность и сегодня. В статье убедительно обосновывается использование двоичной системы для представления чисел, а ведь ранее все вычислительные машины хранили обрабатываемые числа в десятичном виде. Авторы продемонстрировали преимущества двоичной системы для технической реализации, удобство и простоту выполнения в ней арифметических и логических операций. В дальнейшем ЭВМ стали обрабатывать и нечисловые виды информации - текстовую, графическую, звуковую и другие, но двоичное кодирование данных по-прежнему составляет информационную основу любого современного компьютера.

    Помимо машин, работавших с двоичным кодом, существовали и существуют троичные машины . Троичные компьютеры имеют ряд преимуществ и недостатков перед двоичными. Среди преимуществ можно выделить быстродействие (операции сложения выполняются примерно в полтора раза быстрее), наличие двоичной и троичной логики, симметричное представление целых чисел со знаком (в двоичной логике либо будут иметь место два нуля (положительный и отрицательный), либо будет иметь место число, которому нет пары с противоположным знаком). К недостаткам - более сложная реализация по сравнению с двоичными машинами.

    Ещё одной революционной идеей, значение которой трудно переоценить, является принцип «хранимой программы». Первоначально программа задавалась путём установки перемычек на специальной коммутационной панели. Это было весьма трудоемким занятием: например, для изменения программы машины ЭНИАК требовалось несколько дней, в то время как собственно расчет не мог продолжаться более нескольких минут - выходили из строя лампы, которых было огромное количество. Однако программа может также храниться в виде набора нулей и единиц, причём в той же самой памяти, что и обрабатываемые ею числа. Отсутствие принципиальной разницы между программой и данными дало возможность ЭВМ самой формировать для себя программу в соответствии с результатами вычислений.

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

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

    Принципы фон Неймана

    Принцип однородности памяти Принципиальное отличие архитектуры "фон Неймана" (принстонской) от "Гарвардской ". Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции - перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины. Принцип адресности Структурно основная память состоит из пронумерованных ячеек, причём процессору в произвольный момент доступна любая ячейка. Двоичные коды команд и данных разделяются на единицы информации, называемые словами, и хранятся в ячейках памяти, а для доступа к ним используются номера соответствующих ячеек - адреса. Принцип программного управления Все вычисления, предусмотренные алгоритмом решения задачи, должны быть представлены в виде программы, состоящей из последовательности управляющих слов - команд. Каждая команда предписывает некоторую операцию из набора операций, реализуемых вычислительной машиной. Команды программы хранятся в последовательных ячейках памяти вычислительной машины и выполняются в естественной последовательности, то есть в порядке их положения в программе. При необходимости, с помощью специальных команд, эта последовательность может быть изменена. Решение об изменении порядка выполнения команд программы принимается либо на основании анализа результатов предшествующих вычислений, либо безусловно. Принцип двоичного кодирования Согласно этому принципу, вся информация, как данные, так и команды, кодируются двоичными цифрами 0 и 1. Каждый тип информации представляется двоичной последовательностью и имеет свой формат. Последовательность битов в формате, имеющая определенный смысл, называется полем. В числовой информации обычно выделяют поле знака и поле значащих разрядов. В формате команды в простейшем случае можно выделить два поля: поле кода операции и поле адресов.

    Компьютеры, построенные на принципах фон Неймана

    По плану, первым компьютером, построенным по архитектуре фон Неймана, должен был стать EDVAC (Electronic Discrete Variable Automatic Computer) - одна из первых электронных вычислительных машин. В отличие от своего предшественника ЭНИАКа, это был компьютер на двоичной, а не десятичной основе. Как и ЭНИАК, EDVAC был разработан в Институте Мура Пенсильванского Университета для Лаборатории баллистических исследований (англ.) Армии США командой инженеров и учёных во главе с Джоном Преспером Экертом (англ.) и Джоном Уильямом Мокли при активной помощи математика], однако до 1951 года EDVAC не был запущен из-за технических трудностей в создании надёжной компьютерной памяти и разногласий в группе разработчиков. Другие научно-исследовательские институты, ознакомившись с ЭНИАКом и проектом EDVAC, сумели решить эти проблемы гораздо раньше. Первыми компьютерами, в которых были реализованы основные особенности архитектуры фон Неймана, были:

    1. прототип - Манчестерская малая экспериментальная машина - Манчестерский университет , Великобритания, 21 июня 1948 года;
    2. EDSAC - Кембриджский университет , Великобритания, 6 мая 1949 года;
    3. Манчестерский Марк I - Манчестерский университет , Великобритания, 1949 год;
    4. BINAC - США, апрель или август 1949 года;
    5. CSIR Mk 1
    6. EDVAC - США, август 1949 года - фактически запущен в 1952 году;
    7. CSIRAC - Австралия, ноябрь 1949 года;
    8. SEAC - США, 9 мая 1950 года;
    9. ORDVAC - США, ноябрь 1951 года;
    10. IAS-машина - США, 10 июня 1952 года;
    11. MANIAC I - США, март 1952 года;
    12. AVIDAC - США, 28 января 1953 года;
    13. ORACLE - США, конец 1953 года;
    14. WEIZAC - Израиль, 1955 год;
    15. SILLIAC - Австралия, 4 июля 1956 года.

    В СССР первой полностью электронной вычислительной машиной, близкой к принципам фон Неймана, стала МЭСМ , построенная Лебедевым (на базе киевского Института электротехники АН УССР), прошедшая государственные приемочные испытания в декабре 1951 года.

    Узкое место архитектуры фон Неймана

    Совместное использование шины для памяти программ и памяти данных приводит к узкому месту архитектуры фон Неймана, а именно ограничению пропускной способности между процессором и памятью по сравнению с объёмом памяти. Из-за того, что память программ и память данных не могут быть доступны в одно и то же время, пропускная способность канала "процессор-память" и скорость работы памяти существенно ограничивают скорость работы процессора - гораздо сильнее, чем если бы программы и данные хранились в разных местах. Так как скорость процессора и объём памяти увеличивались гораздо быстрее, чем пропускная способность между ними, узкое место стало большой проблемой, серьёзность которой возрастает с каждым новым поколением процессоров [ ] ; данная проблема решается совершенствованием систем кэширования, а это порождает множество новых проблем [каких? ] .

    Термин «узкое место архитектуры фон Неймана» ввел Джон Бэкус в 1977 в своей лекции «Можно ли освободить программирование от стиля фон Неймана?», которую он прочитал при вручении ему Премии Тьюринга

    Ученые из США и Италии в 2015 заявили о создании прототипа мем-процессора (английское memprocessor) с отличной от фон-неймановской архитектурой и возможности его использования для решения -полных задач .

    См. также

    Литература

    • Herman H. Goldstine. The Computer from Pascal to von Neumann . - Princeton University Press, 1980. - 365 p. - ISBN 9780691023670 . (англ.)
    • William Aspray. John von Neumann and the Origins of Modern Computing . - MIT Press, 1990. - 394 p. - ISBN 0262011212 . (англ.)
    • Scott McCartney. ENIAC: The Triumphs and Tragedies of the World"s First Computer . - Berkley Books, 2001. - 262 p. -

    Принципы фон Неймана (Архитектура фон Неймана)

      Архитектура компьютера

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

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

    Принципы фон Неймана

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

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

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

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

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

    Самым главным следствием этих принципов можно назвать то, что теперь программа уже не была постоянной частью машины (как например, у калькулятора). Программу стало возможно легко изменить. А вот аппаратура, конечно же, остается неизменной, и очень простой.

    Для сравнения, программа компьютера ENIAC (где не было хранимой в памяти программы) определялась специальными перемычками на панели. Чтобы перепрограммировать машину (установить перемычки по-другому) мог потребоваться далеко не один день. И хотя программы для современных компьютеров могут писаться годы, однако они работают на миллионах компьютеров после несколько минутной установки на жесткий диск.

    Как работает машина фон Неймана

    Машина фон Неймана состоит из запоминающего устройства (памяти) - ЗУ, арифметико-логического устройства - АЛУ, устройства управления – УУ, а также устройств ввода и вывода.

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

    Команда состоит из указания, какую операцию следует выполнить (из возможных операций на данном «железе») и адресов ячеек памяти, где хранятся данные, над которыми следует выполнить указанную операцию, а также адреса ячейки, куда следует записать результат (если его требуется сохранить в ЗУ).

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

    Из арифметико-логического устройства результаты выводятся в память или устройство вывода. Принципиальное различие между ЗУ и устройством вывода заключается в том, что в ЗУ данные хранятся в виде, удобном для обработки компьютером, а на устройства вывода (принтер, монитор и др.) поступают так, как удобно человеку.

    УУ управляет всеми частями компьютера. От управляющего устройства на другие устройства поступают сигналы «что делать», а от других устройств УУ получает информацию об их состоянии.

    Управляющее устройство содержит специальный регистр (ячейку), который называется «счетчик команд». После загрузки программы и данных в память в счетчик команд записывается адрес первой команды программы. УУ считывает из памяти содержимое ячейки памяти, адрес которой находится в счетчике команд, и помещает его в специальное устройство - «Регистр команд». УУ определяет операцию команды, «отмечает» в памяти данные, адреса которых указаны в команде, и контролирует выполнение команды. Операцию выполняет АЛУ или аппаратные средства компьютера.

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

    Принципы фон Неймана[править | править исходный текст]

    Принцип однородности памяти

    Команды и данные хранятся в одной и той же памяти и внешне в памяти неразличимы. Распознать их можно только по способу использования; то есть одно и то же значение в ячейке памяти может использоваться и как данные, и как команда, и как адрес в зависимости лишь от способа обращения к нему. Это позволяет производить над командами те же операции, что и над числами, и, соответственно, открывает ряд возможностей. Так, циклически изменяя адресную часть команды, можно обеспечить обращение к последовательным элементам массива данных. Такой прием носит название модификации команд и с позиций современного программирования не приветствуется. Более полезным является другое следствие принципа однородности, когда команды одной программы могут быть получены как результат исполнения другой программы. Эта возможность лежит в основе трансляции - перевода текста программы с языка высокого уровня на язык конкретной вычислительной машины.

    Принцип адресности

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

    Принцип программного управления

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

    Принцип двоичного кодирования

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

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

    Фон Нейман не только выдвинул основополагающие принципы логического устройства ЭВМ, но и предложил ее структуру, которая воспроизводилась в течение первых двух поколений ЭВМ. Основными блоками по Нейману являются устройство управления (УУ) и арифметико-логическое устройство (АЛУ) (обычно объединяемые в центральный процессор), память, внешняя память, устройства ввода и вывода. Схема устройства такой ЭВМ представлена на рис. 1. Следует отметить, что внешняя память отличается от устройств ввода и вывода тем, что данные в нее заносятся в виде, удобном компьютеру, но недоступном для непосредственного восприятия человеком. Так, накопитель на магнитных дисках относится к внешней памяти, а клавиатура – устройство ввода, дисплей и печать – устройства вывода.

    Рис. 1. Архитектура ЭВМ, построенной на принципах фон Неймана. Сплошные линии со стрелками указывают направление потоков информации, пунктирные – управляющих сигналов от процессора к остальными узлам ЭВМ

    Устройство управления и арифметико-логическое устройство в современных компьютерах объединены в один блок – процессор, являющийся преобразователем информации, поступающей из памяти и внешних устройств (сюда относятся выборка команд из памяти, кодирование и декодирование, выполнение различных, в том числе и арифметических, операций, согласование работы узлов компьютера). Более детально функции процессора будут обсуждаться ниже.

    Память (ЗУ) хранит информацию (данные) и программы. Запоминающее устройство у современных компьютеров “многоярусно” и включает оперативное запоминающее устройство (ОЗУ), хранящее ту информацию, с которой компьютер работает непосредственно в данное время (исполняемая программа, часть необходимых для нее данных, некоторые управляющие программы), и внешние запоминающие устройства (ВЗУ) гораздо большей емкости, чем ОЗУ. но с существенно более медленным доступом (и значительно меньшей стоимостью в расчете на 1 байт хранимой информации). На ОЗУ и ВЗУ классификация устройств памяти не заканчивается – определенные функции выполняют и СОЗУ (сверхоперативное запоминающее устройство), и ПЗУ (постоянное запоминающее устройство), и другие подвиды компьютерной памяти.

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

    Разработанные фон Нейманом основы архитектуры вычислительных устройств оказались настолько фундаментальными, что получили в литературе название “фон-неймановской архитектуры”. Подавляющее большинство вычислительных машин на сегодняшний день – фон-неймановские машины. Исключение составляют лишь отдельные разновидности систем для параллельных вычислений, в которых отсутствует счетчик команд, не реализована классическая концепция переменной и имеются другие существенные принципиальные отличия от классической модели (примерами могут служить потоковая и редукционная вычислительные машины).

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

    .