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