Конец архитектуры фон Неймана

Универсализация хранения данных и команд в одном адресном пространстве когда-то позволила сделать вычислительные системы тем универсальным инструментом, каким они являются сейчас. Такая архитектура получила наименование по имени Джона фон Неймана, который сформулировал ее во время работы над первым ламповым компьютером ЭНИАК в 1944 г. Архитектура эта предполагает наличие раздельных шин для адреса и данных − процессор запрашивает по шине адреса у блока памяти данные или команды, а память по шине данных передает процессору запрошенное. При этом шины были параллельными − множество проводников, на которых сигналы синхронизировались с помощью тактов генератора. Именно этот генератор и фиксировал ту самую тактовую частоту, которая долгое время определяла развитие процессов. А сейчас обнаружилось, что тактовая частота процессора имеет свои ограничения.

Точнее ограничивает дальнейшее пассивное увеличение тактовой частоты скорость света, которая определяет длину волны − расстояние между двумя пиками определенной частоты. При частоте 1 ГГц, на которой работают современные процессоры, длина волны составляет 30 см, при частоте 10 ГГц, для которой процессоров нет, − 3 см, а при частоте 200 ГГц, для которой проект сети «Ангара» собирается выпустить сетевую плату, длина волны составляет 1,5 мм. Проектировать системные платы компьютера с такой точностью невозможно, что исключает возможность использования параллельных шин для взаимодействия процессора и памяти, как это заложено в архитектуре фон Неймана.

Параллельные шины адреса и данных, такие удобные в начале развития вычислительной техники, оказались сейчас ограничением, поскольку они требуют синхронизации большого количества параллельных проводников. В то же время последовательные шины, не связанные требованиями синхронизации, развивались более стремительно, и теперь они уже самые высокоскоростные и распространенные. В результате тормозом дальнейшего развития сетей становится уже не шина PCI, не память, а сам процессор. Именно поэтому и говорят о конце «Закона Мура», который зачем-то был привязан, в частности, и к тактовой частоте процессов.

Что же делать, чтобы преодолеть ограничения скорости света и далее наращивать производительность вычислительных систем? Ответ напрашивается сам − отказаться от архитектуры фон Неймана и единого адресного пространства для всех команд и всех данных. Необходим другой принцип построения вычислительных систем, который предполагал бы обработку последовательных потоков данных, таких как в Ethernet и других вычислительных сетях. Принцип вычисления должен быть похож на современную IP-сеть, которая обрабатывает пакеты. Процессор, получив пакет с командами и данными (назовем его объектным), выполняет локальные операции с локальными данными и передает результат дальше. При этом команды в пакете должны относиться только к локальным данным в локальном адресном пространстве. Процессоров может быть несколько, и каждый из них либо сам обрабатывает данные, либо транслирует пакет своему ближайшему соседу − примерно так же, как это устроено в IP-сети.

К сожалению, для построения такой вычислительной системы придется поменять стиль программирования − единая программа, разрабатываемая под архитектуру фон Неймана, теперь должна делиться на относительно небольшие блоки (пакеты или объекты), каждый из которых будет обрабатываться независимо. Собственно, такой стиль программирования характерен для параллельных вычислений и технологии больших данных, которые работают сейчас уже фактически в потоковом режиме. Вполне возможно, что потоковые процессоры будут эффективнее работать с хорошо распараллеливаемыми задачами, такими как Map/Reduce и аналогичными из набора технологий больших данных.

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

Валерий Коржов

 

Следите за нашими новостями в Телеграм-канале Connect


Поделиться:



Следите за нашими новостями в
Телеграм-канале Connect

Спецпроект

Цифровой девелопмент

Подробнее
Спецпроект

Машиностроительные предприятия инвестируют в ПО

Подробнее


Подпишитесь
на нашу рассылку