Архитектура фон Неймана
Существующая архитектура и основанные на ней подходы к развитию аппаратного и программного обеспечения, очевидно, устарели. Это приводит к очень низкому КПД используемых ресурсов и неоправданно большим затратам на единицу полезного действия. Большую часть времени современные компьютеры решают искусственно созданные проблемы, порожденные, в частности, привязкой к принципам построения вычислительных машин времен середины прошлого века.
«Искусственная» сложность ПО
Из-за огромной сложности прикладного программирования большинство пользователей находятся в зависимости от разработчиков программного обеспечения (ПО). При этом разрыв в требуемой квалификации программиста и пользователя компьютера постоянно увеличивается. Изначально компьютер предназначен для решения задач, поставленных напрямую пользователем, и необходимо дать пользователю возможность делать это самостоятельно.
Технологические ограничения
Развитие вычислительной техники, уже много лет ведущееся экстенсивным путем, уперлось в технологические ограничения: невозможно бесконечно уменьшать и ускорять компоненты компьютера. В то же время вычислительная мощность даже самых дешевых бытовых компьютеров, если пересчитать ее в миллиарды операций за единицу времени, многократно превосходит любые потенциальные нужды их пользователей. Просто используется эта мощность крайне неэффективно.
Сама собой напрашивается разработка абсолютно новой архитектуры и операционной системы вычислительных машин для массового использования.
Идея
Объединить данные, процессоры и программы в единое масштабируемое поле, моделируя в нем реальные объекты с их свойствами и поведением. То есть, вместо последовательной обработки цепочки команд одним процессором следует создавать модели, самостоятельно работающие в рамках поставленной задачи. Операционная система при этом только координирует процессы, а прикладное программирование сводится к описанию задач простейшим наглядным способом.
Закон Мура
Согласно Закону Мура, количество транзисторов в процессорах удваивается каждые полтора-два года, при этом заметного роста производительности его ядер мы больше не наблюдаем.
Рост производительности при кратном увеличении сложности устройств составляет единицы процентов и продолжает снижаться с годами.
Пришло время в корне пересмотреть архитектуру компьютеров и построить принципиально иное решение, способное кратно масштабироваться с сохранением линейной зависимости сложность/производительность.
Промежуточный (переходный) вариант
Идеологию программирования под новую платформу возможно применять и совершенствовать в уже существующих средах разработки. Главная её задача успешно решается уже сейчас — сделать возможным прикладное программирование силами пользователя, а не профессионального программиста, используя существующее системное ПО и средства разработки.
Современные технологии позволяют создавать достаточно недорогие и мощные устройства, как в виде прототипов, так и серийно. В силу этого бюджет первой фазы проекта (подтверждение концепции, создание прототипа) сравнительно невелик.
Что мы имеем сейчас
Современный процессор содержит миллиарды транзисторов, причем полезную работу в каждый момент времени делает лишь микроскопическая часть из них: за каждый такт процессора выполняется всего несколько команд, обрабатывая десятки байтов информации.
А теперь представьте, что вся эта полупроводниковая «рабочая сила» трудится одновременно в полном составе над всем множеством задач: вместо 2-8 ядер процессора вся вычислительная мощность поделена на участки, автономно делающие свою маленькую работу.
Первый процессор больше полувека назад содержал 2300 транзисторов. Микропроцессоры 80-х годов уже были способны решать сегодняшние задачи (вычисления в таблицах Excel и любая бизнес-логика) и состояли из 20-30 тысяч транзисторов.
Устаревший процессор Intel Core i7 из 2008 года содержит 1.3 млрд транзисторов, а Intel Core i9 из 2022 года – уже 12 млрд транзисторов. Узким местом в них являются ядра – несколько независимых вычислителей, выполняющих всего несколько операций за 1 такт процессора.
Получается несколько миллиардов операций с плавающей запятой в секунду. Это не много, с учетом десятков тысяч потоков выполнения и миллионов байт, которые обрабатываются процессором. При этом самая простая операция, требующая, например, увеличения двузначного числа на единицу, ждет своей очереди и занимает полноценный такт мощнейшего процессора.
Подробнее об архитектуре
Транзисторы, из которых состоит современный процессор, позволяют коммутировать миллионы вычислительных участков, делающих полезную работу одновременно, занимая ресурсы пропорционально сложности задачи – вычисления одно-, двух-, четырех- или восьмибайтовых значений.
Даже при стократных накладных расходах на коммутацию примитивных вычислителей и уменьшении частоты их работы, такая архитектура позволит делать в десятки тысяч раз больше операций в секунду. Что особенно важно, этот подход вернет возможность масштабирования вычислительной мощности.
Общая производительность системы из миллионов простых и быстрых устройств должна вырасти на несколько порядков, даже несмотря на значительные накладные расходы на динамическое выделение вычислительных участков, доставку задачи к ним и прием результатов вычислений.
Это сравнение сильно упрощенное, но оно отражает суть: один мощный универсальный вычислитель менее эффективен, чем комплекс из десятков тысяч простейших устройств.
Главная задача, которую надо будет решить при разработке новой архитектуры, – это многомерная структура вычислительного поля с динамическим выделением вычислительных участков и передачей задач и результатов.
Например, компоновка вычислителей и транспортной части может быть как псевдо-многомерная, выполненная в виде плоской схемы, так и трехмерная – как делаются многослойные платы. Второй вариант пока выглядит спорно и требует принципиально нового решения.
Разрабатываемая архитектура, возможно, похожа на устройство мозга человека, в котором несколько управляющих структур содержат многие миллиарды взаимодействующих между собой элементов, работающих одновременно и независимо.
Разумеется, нашу задачу невозможно выполнить, просто перекоммутировав существующую сейчас элементную базу, а необходимо полностью переработать подход к построению вычислительных машин и создать совершенно новые составляющие будущего компьютера. Разработку придется вести с нуля – коммутируя транзисторы.
О прикладном программировании
Подход к программированию приложений, уже реализованный и работающий, описан в статье Квинтет как базовая сущность для описания предметной области.
Этот подход универсален и продумывался с прицелом на использование аппаратной части обсуждаемой здесь архитектуры.
Перспективы
Все научные и производственные задачи лучше решать таким инструментом, который наиболее полно может охватить суть их объектов. Предлагаемый подход подразумевает стопроцентную точность моделирования предметной области.
Если когда-нибудь человечество изобретет способ запрограммировать настоящий искусственный интеллект, то полученная программа сможет функционировать только в такой среде, о которой рассказывается здесь.
В мозге есть участки, отвечающие за разное, они поделены на участки, которые выполняют функции, те в свою очередь поделены на группы исполнителей, которые состоят из чего-то ещё и в конце концов всё сделано из нейронов и синапсов – элементарных блоков хранения и реагирования.
В нашей стране много талантливых и работоспособных людей. Необходимо найти их, разъяснить идею и вовлечь в проект, позволив им внести посильный вклад и получая дополнительные идеи по конкретным реализациям стратегии. И всё получится!