Публикуется в качестве технической идеи.

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

На мой скромный взгляд концепция персональных компьютеров архитектуры IBM PC давно себя исчерпала по вполне очевидной причине — изначально ограниченной в пространстве модели построения её аппаратной части. IBM PC — это средневековый город, обнесённый крепкой стеной в виде корпуса самого компьютера. Материнская плата — сам город с улицами и домами. Ветреная или водяная мельница — это блок питания. Память компьютера — это городские склады и арсенал и т.д. Такая «средневековая» архитектура позволяет, разумеется, модернизировать компьютер: подключать новые жёсткие диски; увеличивать объём оперативной памяти; заменять центральный процессор на более производительный; можно добавлять в слоты на материнской плате новые карты различного назначения, но… неизбежно пределы модернизации при данной архитектуре вычислительного устройства исчерпаемы: заканчиваются слоты под карты оперативной памяти и специализированные карты; достигается предел по тактовой частоте процессора; все отведённые в корпусе компьютера места под жёсткие диски использованы и т.д. Остаётся уповать на внешние подключаемые к IBM PC устройства, но при этом мы уже уходим за пределы «городских стен» этого компьютерного «феодализма» равно как и за рамки архитектурного концепта.

Мобильные устройства (нетбуки, смартфоны, планшетные ПК) — это ещё более яркое проявление той же самой средневековой архитектуры построения вычислительных систем. Если продолжать строительную аналогию, то перед нами уже форт с минимальными возможностями что-то в нём перестроить.

Появление и стремительное развитие микрокомпьютеров (Arduino, Omega, Raspberry и т.п.) казалось бы должна была заставить инженеров пересмотреть всю архитектурную концепцию, избавить новые устройства от рудиментов «эпохи компьютерного феодализма». Однако, этого пока не случилось. Полюбуйтесь как выглядит вычислительный кластер, собранный из системных плат Raspberry:

image

М-да… Можно сколь угодно красочно подсвечивать сарай, но от этого он не станет дворцом. И все эти торчащие кабели и проводочки — это подпорки, которые удерживают изначально неправильно спроектированное многоэтажное здание от падения.

А между тем, решение проблемы лежит, как всегда, на поверхности…

Посмотрите на эти, с точки зрения природного зодчества и человеческого таланта, идеальные решения функционально-пространственных задач:

image

image

image

Просто, разумно, рационально.

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

Если бы разработчики компьютерных систем на мгновение стали мыслить как классические архитекторы — объёмно — то они бы:

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

Таким образом, они бы получили архитектурное решение, позволяющее строить «многоэтажные здания любой высоты» простым присоединением новых этажей-плат на нижестоящие этажи-платы. Другими словами, в полной мере и без подпорок использовали Z-ось трёхмерного пространства.
Если бы компьютерные инженеры пошли дальше, то стандартизировали бы подобные разъёмы шины по осям X и Y. Тогда строить вычислительные кластеры можно было бы по всем осям пространства так же просто, как собирать из конструктора Lego всевозможные объёмные конструкции.

Очень важно, что наряду с процессорными платами в кластер могли бы легко встраиваться стандартизированные под 3D-шину узкоспециализированные платы: платы памяти, сетевые платы, коммуникационные платы Bluetooth и Wi-Fi, видеокарты и проч.

Такой мне видится унифицированная плата с 3D-шиной:

image

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

Комментарии (26)


  1. Valeratal
    10.10.2018 10:06

    У IBM PC все достаточно стандартизировано
    А как Вы будете городить системник, 3д или 4д — это зависит от фантазии и наличия проводов
    На одной и то же архитектору IBM PC есть тонкие Сюрфейсы, квадратные баребоны и мусорки от Apple


  1. Alexeyslav
    10.10.2018 10:25
    +1

    Проблема остаётся всё в том же ограничении что и прежних систем. Всёравно пределы платы являются надёжными крепкими стенами и это продиктовано законами физики. Разъёмы в вашей идее это всего лишь узкие ворота в городских стенах, расширение очень условное и связано с многими ограничениями — например по времени и скорости передачи данных по длинным линиям. ОЗУ расположенное на «соседней плате» всегда будет медленней того что расположено локально — узким местом станут РАЗЪЁМЫ и физический размер(длина) необходимой шины. Этажерка в 3-4 платы УЖЕ ПОТЕНЦИАЛЬНО будет являться очень ненадёжной сборкой где гораздо чаще будут происходить сбои, особенно если через все эти разъёмы будет проложена шина данных к ОЗУ.


    1. DrZlodberg
      10.10.2018 11:00

      Да и собирать это будет не так просто. Воткнуть блок во внутренний угол, когда с 2х сторон у него жесткие разъёмы… А уж в 3х-мерный угол (кто собирал разломанный кубик-рубик из составляющих — поймёт).
      Т.е. придётся городить сложные подвижные (и ненадёжные скорее всего) разъёмы или соединять всё это проводками. А проводками можно и сейчас.


    1. PolYakov1968 Автор
      10.10.2018 15:59

      Здесь я полностью разделяю озвученные вами проблемы.
      Возможно, что здесь бы нашла применение высокоскоростная оптическая передача данных, описанная тут: habr.com/post/119803
      Мне казалось важным сделать акцент на том, что шина перспективной вычислительной системы — это три вектора по осям x, у и z.


  1. lelik363
    10.10.2018 10:25

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


    1. PolYakov1968 Автор
      10.10.2018 15:39

      У PC/104 задействована только Z-ось, если не ошибаюсь.


  1. kolyan222
    10.10.2018 10:27

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


  1. nafgne
    10.10.2018 10:27

    И как всё это счастье охлаждать?


    1. pda0
      10.10.2018 11:44

      Никак. У нас классическая ситуация «дизайнер решил побыть инженером».
      P.S. Похоже он не видел стоечные серверы и не знает, что это и есть то «3D», которое он хочет.


      1. PolYakov1968 Автор
        10.10.2018 15:32

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


        1. pda0
          10.10.2018 17:30

          А я не вижу схемы. Не загружаются. Утром с мобильного приложения видел — сейчас никак. Впрочем, судя по тому что видел, получается структуры а-ля «карточный домик». И как её обслуживать? Ну собрали вы такую конструкцию 100x100x100. ;-) В середине одна сгорела…


          1. PolYakov1968 Автор
            10.10.2018 18:14

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


  1. SheolSatansfist
    10.10.2018 15:26

    А вот детали и частности куда интереснее самой идеи. Подать такую идею — все равно что предложить «а давайте построим орбитальный лифт, и отправить что-то в космос будет почти ничего не стоить». С этим не поспоришь, только вот лифт построить так и не могут. То же самое про идею компа из равноценных модулей, связываемых по 6 направлениям. Постройте куб 3*3*3 и передайте информацию между противоположными углами. А теперь постройте куб 10*10*10 и прикиньте нагрузку на соединения и внутренние маршрутизаторы


  1. Akon32
    10.10.2018 16:03

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


    1. PolYakov1968 Автор
      10.10.2018 16:19

      А что нам мешает в рамках изложенной в статье архитектуры размещать платы с внешними интерфейсами на «фасаде здания», а не внутри?


  1. Sun-ami
    10.10.2018 20:49

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


    1. Sheti
      11.10.2018 06:59

      Современные ПК к этому движутся. Всё больше функций переносится в процессор. Люди уже не покупают кучу плат расширения. Типичная ситуация это одна плата — видеокарта. Даже звуковую карту берут редко. Да и множество устройств которые раньше вставлялись внутрь корпуса теперь прекрасно себя чувствуют на USB. Даже внешняя видеокарта не фантастика.


  1. bugdesigner
    11.10.2018 08:45

    Красивая идея, но! Современные серверы разрабатываются для надёжной, непрерывной работы. Для этого придуманы интерфейсы позволяющие производить "горячую" замену блоков (плат, дисков). Для этого серверы устанавливают в стандартные стойки, которые позволяют обслуживание "на ходу". Как Вы представляете себе ситуацию, когда в Вашей кубическо-сферической системе выйдет из строя плата в середине куба? Как её заменить, так, чтоб остальные части куба продолжали работать? Ответ очевиден — никак. Вывод — для серверных решений не подходит совсем. Где такое ненадёжное решение может найти применение?


    1. Alexeyslav
      11.10.2018 10:54

      Ну почему же, выходит из строя — просто отключаем, маршрут перенастраивается автоматически/полуавтомат, добавляем новый исправный блок где-то с периферии и мощность восстановлена. При очередном техобслуживании и/или наберётся ворох неработающих модулей — они удаляются а остальная часть переделывается в новую конфигурацию. Если модули будут поддерживать горячую замену с минимумом накладных расходов на возобновление работы — то это можно делать прямо во время работы переставляя модули таким образом чтобы оголить место неисправного и удалить его. Будет только проседать мощность вычислительного узла на некоторое время — можно спланировать это на время минимальной нагрузки и вообще автоматизировать его!


      1. bugdesigner
        11.10.2018 11:13

        Я себе представляю. Замена блока в середине куба — разобрать половину куба. Ещё веселее, когда модуль в самом низу, в середине. Или нужно куб подвешивать и лезть под это поделие, как автослесарь под машину. Кроме того, чтоб вытащить этот модуль, нужно освободить как минимум 5 разъемов с 5 сторон, то есть разбирать прийдётся основателно. Обслуживающий персонал Вас проклянёт. Если совать эти блоки как «3D-пятнашки», то нужно иметь как минимум место для ещё одного куба, который будет «ползать» по датацентру после каждого такого случая.
        А что сейчас? Подойти к стойке, выташить модуль или диск, вставить новый. 5 минут. Скукота. За что инженерам ДЦ деньги платят? При Вашем подходе, эти бездельники будут отрабатывать свою зарплату полностью.


        1. Alexeyslav
          11.10.2018 11:29

          Из-за одного модуля никто и шевелится не будет. Но если эта «жизнь» будет происходить под контролем автоматики то никому ползать не надо будет — максимум пополнять запасы модулей и утилизировать вышедшие из строя. И перевозить невостребованные между дата-центрами.


          1. bugdesigner
            11.10.2018 11:36

            Боюсь, у админов ДЦ совсем другое мнение.


            1. Alexeyslav
              11.10.2018 13:24
              +1

              Это у них пока ещё другое мнение. Потом и админов не будет…


        1. PolYakov1968 Автор
          11.10.2018 12:34

          Да, согласен, техническое обслуживание таких кубических систем — серьезная проблема.
          Но, с другой стороны, в трёх координатах можно строить не только кубы, а и более разряженные, полые конструкции.


  1. safari2012
    12.10.2018 23:15

    Узкое место практически любых современных систем — ввод/вывод. И нет никакой разницы, какой это интерконнект — разъем ли это на плате, Ethernet, SAS, FC или InfiniBand. Время доступа к блоку данных на порядки выше, чем между процессором и памятью.
    А так да, те же полки с блейдами изобрели...


  1. surVrus
    13.10.2018 12:43

    Интересная идея! Но мне кажется, ее уже реализовали и достаточно эффективно.
    По сути, компьютерные сети в том или ином виде и есть реализация еще одного измерения в такой системе. Элементами такой системы выступают разнородные элементы, соединенные на уровне слоев (протоколов) OSI. В этом случае ниже скорость коммуникации, но решены иные инженерные проблемы, затронутые в комментариях.
    Можно проектировать и делать системы и по принципам строения кристаллической решетки. То есть пространственное соединение однотипных элементов в последовательно-параллельные слои. Что-то типа композитной структуры, или изотропной структуры.
    Однако унификация и жесткая геометрическая структура могут приводить к «хрупкости» такой системы. При каком-то воздействии на такую систему она частично разрушается.
    В природе, в реальности, сложные системы «антихрупкие», построены иначе. При каком-то воздействии на такую систему она улучшается, а не разрушается.
    Пример: существо одного вида — смертное. Но генетический код этого вида — очень стабильный во времени. Стабильность системы обусловлена нестабильностью элемента.
    Более подробно об этом есть у Насима Талеба «Антихрупкость» — рекомендую.
    Если построить по идеям «антихрупкости» такие вычислительные системы, используя идею 3d, то можно получить интересный результат. Я пробую использовать идеи «антихрупкости» для построения кластеров для вычислений, но пока проект на этапе «идея» и «прототип». Однако уже вижу, что обычные сервера HP, Dell, Fujitsu и их методы объединения можно использовать только ограниченно. Там много не оптимальных решений, много странных «заскоков» чтобы заработать бабло в ущерб функциональности. Но часть решений можно использовать, как строительные элементы системы.