Найти тему
Робототехника

Что за модель фон Неймана, и почему говорят про её закат.

Начну статью пояснением имени - кто такой Джон фон Нейман.

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

Для тех, кто считает себя настоящим программистом, эта статья будет полезна как минимум для расширения кругозора.

Нам не интересны его теория игр и теория множеств, мы сегодня об его архитектуре (модели) и о её недостатках.

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

Для этого он сформулировал несколько принципов работы устройства.

  • Принцип однородности. В этом случае данные и команды хранятся в одной области памяти и могут изменяться в процессе работы программы. Это, с одной стороны, открывает возможности, особенно когда код программы может меняться в процессе выполнения команд, но делает сложным чтение и понимание программы. В целом, это не приветствуется среди программистов на языках низкого уровня.
  • Принцип адресности. Все команды и операторы этих команд хранятся по соответствующим адресам. Что позволяет быстро обратиться к любой части программы в короткий промежуток времени.
  • Принцип Программного управления. Идея принципа состоит в следующем: вся программа выполняется последовательно, и каждая последующая команда выполняется безусловно (по очереди) или по условию (Когда выполняется условие, то команда выполняется. Если условие не выполняется, то и команда пропускается.), в общем, есть ряд команд, которые позволяют перескакивать с одного места на другое или изменять содержание ячеек, но это не противоречит в целом данному принципу.

На картинке эта архитектура выглядит следующим образом:

-2

Это очень простая модель для современных систем, но она используется повсеместно в том или ином виде.

Как теперь это представить попроще.

Предположим, что у вас на столе лежат одновременно все инструменты и все материалы, если вы столяр. Взяли стол побольше и разложили на нем все вместе. Слева все стамески, рубанки, отвертки и так далее, а справа древесину, шурупы, клей, ткани. Далее, у вас есть чертеж, и вы по чертежу начинаете обрабатывать древесину. Если вы решили создать табурет, то сперва (к примеру) сделаете 4 ножки, затем сиденье, элементы жесткости и так далее. В любом случае ваши руки - это процессор, который ограничен в ресурсах и не может взять 30 инструментов и 20 материалов одновременно, поэтому он действует последовательно. В принципе, схема рабочая, и так оно и должно быть. Но вы же понимаете, что если у вас есть заказ на 500 табуреток и в кратчайшие сроки, то вы явно будете использовать другие методы для ускорения процесса. Вручную всё это можно собрать, но очень долго.

Так происходит и с современными системами обработки данных. Процессор (ваши руки) вынужден обращаться регулярно к разным участкам памяти (инструменты и материалы на столе), чтобы произвести простейшие манипуляции. Не сложно догадаться, что для создания большого числа табуреток необходим конвейер или просто другой способ изготовления. Так как табуреток может может быть не 500 и не 5000, а например 5 000 000, и сроки будут минимальными.

А если табуретки будут из разного дерева или разной высоты? Не сложно догадаться, что данная архитектура становится неэффективной.

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

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

У меня всё, благодарю за внимание.

👍👍 Буду признателен 👍👍

Кроме того, Вам могут быть полезны статьи:

🔹 Гид по электронике.

🔹 Гид по сетям и связи.

🔹 Словарь терминов электроники .

🌞 Группа ВК.

🌞 Телеграмм канал

🌞 YouTube канал.

👍👍 Буду признателен 👍👍

Наука
7 млн интересуются