Закат архитектуры фон Неймана, о котором вы еще не слышали и что будет дальше

Принципы Неймана-Лебедева

Каждая научная или техническая сфера имеет под собой определённые фундаментальные идеи и положения, которые предопределяют в течение многих лет её содержание или вектор развития. В компьютерных науках огромный вклад внесли принципы, которые были сформированы независимо друг от друга двумя известными учёными 20-го века: Джоном фон Нейманом и Сергеем Алексеевичем Лебедевым.

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

Принципы Неймана-Лебедева — это стандартные принципы формирования ЭВМ, которые были сформированы в середине 20-го века, не потерявшие свою актуальность и в современности.

Джон фон Нейман — это американский учёный, который сделал огромный вклад в развитие множества математических и физических сфер. В 1946-м году в процессе анализа преимуществ и недостатков ЭНИАКа, он вместе со своими коллегами сформулировал идею нового типа организации ЭВМ.

Сергей Александрович Лебедев — академик, основатель вычислительной техники в СССР, ведущий конструктор первой российской электронной вычислительной машины МЭСМ. Помимо всего перечисленного, автор проектов компьютерной серии БЭСМ (Большая Электронная Счётная Машина) и разработчик основных принципов суперкомпьютера «Эльбрус». В 1996-м году он был посмертно награждён медалью «Пионер компьютерной техники» — это самая престижная международная награда среди компьютерного сообщества.

Классическая архитектура фон Неймана

“Бутылочное горлышко” архитектуры фон Неймана.

Все классические компьютеры обладают так называемой архитектурой фон Неймана.

Рис. 1. The decline of von Neumanns architecture

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

3. Перспективные направления развития компьютеров

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

Это серверы в глобальной компьютерной сети, управляющие её работой и хранящие огромные объёмы информации.

Это многопроцессорные системы параллельной обработки данных, обеспечивающие:

• сокращение времени решения вычислительно сложных задач;
• сокращение времени обработки больших объёмов данных;
• решение задач реального времени;
• создание систем высокой надёжности.

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

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

Предыстория

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

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

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

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

Что такое архитектура фон Неймана?

Архитектура фон Неймана

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

  • Блок управления: В ответственность за этапы сбора и декодирования командного цикла.
  • Логико-арифметический блок или АЛУ: В ответственность за выполнение математических и логических операций, требуемых программами.
  • Память: Память, в которой хранится программа, известная как оперативная память.
  • Устройство ввода: С которого мы общаемся с компьютером.
  • Устройство вывода: С которой компьютер общается с нами.

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

Принцип построения и работы ЭВМ фон Неймана

Принципы построения и работы ЭВМ Джона фон Неймана

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

АЛУ отвечает за исполнение команды. Итог операции отправляется в память или на вывод. ВЗУ сходно с устройством вывода тем, что используется для недолгого хранения параметров. Только содержит информацию в непонятном для оператора формате. Исключительно для машины.

Если кратко, основной функцией АЛУ является поддержка незатейливых действий: арифметических, логических, перемещением данных. Еще анализируется результат. Решения по анализу принимаются УУ.

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

Содержание

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

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

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

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

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

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

Maniacs и Joniacs

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

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

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

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

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

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

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

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

Оцените статью
Fobosworld.ru
Добавить комментарий

Adblock
detector