Постараюсь пояснить свои мысли максимально простым языком с применением вполне осязаемых сравнений, не вдаваясь в детали и частности.
На мой скромный взгляд концепция персональных компьютеров архитектуры IBM PC давно себя исчерпала по вполне очевидной причине — изначально ограниченной в пространстве модели построения её аппаратной части. IBM PC — это средневековый город, обнесённый крепкой стеной в виде корпуса самого компьютера. Материнская плата — сам город с улицами и домами. Ветреная или водяная мельница — это блок питания. Память компьютера — это городские склады и арсенал и т.д. Такая «средневековая» архитектура позволяет, разумеется, модернизировать компьютер: подключать новые жёсткие диски; увеличивать объём оперативной памяти; заменять центральный процессор на более производительный; можно добавлять в слоты на материнской плате новые карты различного назначения, но… неизбежно пределы модернизации при данной архитектуре вычислительного устройства исчерпаемы: заканчиваются слоты под карты оперативной памяти и специализированные карты; достигается предел по тактовой частоте процессора; все отведённые в корпусе компьютера места под жёсткие диски использованы и т.д. Остаётся уповать на внешние подключаемые к IBM PC устройства, но при этом мы уже уходим за пределы «городских стен» этого компьютерного «феодализма» равно как и за рамки архитектурного концепта.
Мобильные устройства (нетбуки, смартфоны, планшетные ПК) — это ещё более яркое проявление той же самой средневековой архитектуры построения вычислительных систем. Если продолжать строительную аналогию, то перед нами уже форт с минимальными возможностями что-то в нём перестроить.
Появление и стремительное развитие микрокомпьютеров (Arduino, Omega, Raspberry и т.п.) казалось бы должна была заставить инженеров пересмотреть всю архитектурную концепцию, избавить новые устройства от рудиментов «эпохи компьютерного феодализма». Однако, этого пока не случилось. Полюбуйтесь как выглядит вычислительный кластер, собранный из системных плат Raspberry:
![image](https://pp.userapi.com/c844720/v844720911/10aeb7/I-GytQ_Yrew.jpg)
М-да… Можно сколь угодно красочно подсвечивать сарай, но от этого он не станет дворцом. И все эти торчащие кабели и проводочки — это подпорки, которые удерживают изначально неправильно спроектированное многоэтажное здание от падения.
А между тем, решение проблемы лежит, как всегда, на поверхности…
Посмотрите на эти, с точки зрения природного зодчества и человеческого таланта, идеальные решения функционально-пространственных задач:
![image](http://asia-vietnam.ru/wp-content/uploads/2016/12/dsc00958-1482414263149.jpg)
![image](https://us.v-cdn.net/5015319/uploads/FileUpload/30/f8b8d071e30bcb8c57cd909f4e4c87.jpg)
![image](http://totalarch.com/files/gallery/gc_2016_12_04.jpg)
Просто, разумно, рационально.
Если бы компьютерные системы проектировали зодчие, то они, наряду с другими вопросами, озаботились бы поэтажными планами здания (определились бы с общими размерами и формой этажей и несущих конструкций), а в частности — договорились бы где и каких размеров расположить лифтовые, вентиляционные и коммуникационные шахты и лестничные пролёты — т.е. спроектировали то, что делает из отдельных этажей законченное здание.
Если бы разработчики компьютерных систем на мгновение стали мыслить как классические архитекторы — объёмно — то они бы:
- Определили габаритные размеры «этажей» — электронных плат проектируемых систем (ах, да, они это все-таки сделали!).
- Определили размеры, тип и место расположения на платах сквозных (типа «мама-папа») коммуникационных разъёмов информационной шины, связывающей платы между собой.
Определили размеры и место расположения шахты охлаждения плат и, в соответствии с этим располагали бы элементы схемы, требующие принудительного охлаждения в непосредственной близости или даже в контакте со стенками-радиаторами шахты. - Определили место расположения сквозной шины питания.
- Стандартизировали вышеизложенные пункты.
Таким образом, они бы получили архитектурное решение, позволяющее строить «многоэтажные здания любой высоты» простым присоединением новых этажей-плат на нижестоящие этажи-платы. Другими словами, в полной мере и без подпорок использовали Z-ось трёхмерного пространства.
Если бы компьютерные инженеры пошли дальше, то стандартизировали бы подобные разъёмы шины по осям X и Y. Тогда строить вычислительные кластеры можно было бы по всем осям пространства так же просто, как собирать из конструктора Lego всевозможные объёмные конструкции.
Очень важно, что наряду с процессорными платами в кластер могли бы легко встраиваться стандартизированные под 3D-шину узкоспециализированные платы: платы памяти, сетевые платы, коммуникационные платы Bluetooth и Wi-Fi, видеокарты и проч.
Такой мне видится унифицированная плата с 3D-шиной:
![image](https://pp.userapi.com/c846017/v846017466/1029f4/AcrckGYRPBY.jpg)
Вполне очевидно, что из таких плат можно строить вычислительные 3D-кластеры любой пространственной конфигурации, расширяя конструкцию по всем доступным осям.
Буду рад, если мои идеи кому-либо пригодятся и станут отправной точкой для более красивых, простых и надёжных конструктивных решений.
Комментарии (26)
Alexeyslav
10.10.2018 10:25+1Проблема остаётся всё в том же ограничении что и прежних систем. Всёравно пределы платы являются надёжными крепкими стенами и это продиктовано законами физики. Разъёмы в вашей идее это всего лишь узкие ворота в городских стенах, расширение очень условное и связано с многими ограничениями — например по времени и скорости передачи данных по длинным линиям. ОЗУ расположенное на «соседней плате» всегда будет медленней того что расположено локально — узким местом станут РАЗЪЁМЫ и физический размер(длина) необходимой шины. Этажерка в 3-4 платы УЖЕ ПОТЕНЦИАЛЬНО будет являться очень ненадёжной сборкой где гораздо чаще будут происходить сбои, особенно если через все эти разъёмы будет проложена шина данных к ОЗУ.
DrZlodberg
10.10.2018 11:00Да и собирать это будет не так просто. Воткнуть блок во внутренний угол, когда с 2х сторон у него жесткие разъёмы… А уж в 3х-мерный угол (кто собирал разломанный кубик-рубик из составляющих — поймёт).
Т.е. придётся городить сложные подвижные (и ненадёжные скорее всего) разъёмы или соединять всё это проводками. А проводками можно и сейчас.
PolYakov1968 Автор
10.10.2018 15:59Здесь я полностью разделяю озвученные вами проблемы.
Возможно, что здесь бы нашла применение высокоскоростная оптическая передача данных, описанная тут: habr.com/post/119803
Мне казалось важным сделать акцент на том, что шина перспективной вычислительной системы — это три вектора по осям x, у и z.
lelik363
10.10.2018 10:25Может вот это имелось ввиду?
А потом нужно иметь ввиду, что до бесконечности присоединять друг к другу различные компоненты нельзя. У всех интерфейсов есть ограничения, а у высокоскоростных эти ограничения довольно жесткие.
kolyan222
10.10.2018 10:27Архитектура обычного десктопного компьютера в итоге как раз к этому и пришла. С поправкой на компактность и то, что разным устройствам нужны шины с разной скоростью и пропускной способностью.
nafgne
10.10.2018 10:27И как всё это счастье охлаждать?
pda0
10.10.2018 11:44Никак. У нас классическая ситуация «дизайнер решил побыть инженером».
P.S. Похоже он не видел стоечные серверы и не знает, что это и есть то «3D», которое он хочет.PolYakov1968 Автор
10.10.2018 15:32Благодарю за отзыв.
Автор начинал свою трудовую деятельность на ЕС ЭВМ (там, кстати с архитектурой было всё гораздо продуманнее) и лишь конце 80-х пересел на IBM XT и выше.
Про охлаждение — выделил в статье отдельным пунктом и на схеме — отдельным элементом.pda0
10.10.2018 17:30А я не вижу схемы. Не загружаются. Утром с мобильного приложения видел — сейчас никак. Впрочем, судя по тому что видел, получается структуры а-ля «карточный домик». И как её обслуживать? Ну собрали вы такую конструкцию 100x100x100. ;-) В середине одна сгорела…
PolYakov1968 Автор
10.10.2018 18:14Хороший вопрос!.. И существенный минус конструкции.
Проводимость шины от выхода из строя одной или нескольких плат пострадать не должна, но ремонт, в связи со сложностью разборки конструкции, очевидно, усложнится.
SheolSatansfist
10.10.2018 15:26А вот детали и частности куда интереснее самой идеи. Подать такую идею — все равно что предложить «а давайте построим орбитальный лифт, и отправить что-то в космос будет почти ничего не стоить». С этим не поспоришь, только вот лифт построить так и не могут. То же самое про идею компа из равноценных модулей, связываемых по 6 направлениям. Постройте куб 3*3*3 и передайте информацию между противоположными углами. А теперь постройте куб 10*10*10 и прикиньте нагрузку на соединения и внутренние маршрутизаторы
Akon32
10.10.2018 16:03По сравнению с вашей схемой, проводными соединениями можно создавать более интересные топологии, гибко подстраиваясь под задачу.
PolYakov1968 Автор
10.10.2018 16:19А что нам мешает в рамках изложенной в статье архитектуры размещать платы с внешними интерфейсами на «фасаде здания», а не внутри?
Sun-ami
10.10.2018 20:49В статье есть рациональное зерно. Действительно, с переходом с параллельных шин на последовательные, классическая конструкция системного блока — материнская плата с множеством слотов, в которые устанавливаются платы расширения — во многом потеряла смысл — последовательные шины допускают бОльшую длину соединителей, и требуют гораздо меньших разъёмов, так что соединения между платами вполне можно выполнять специальными плоскими кабелями. При этом необходимость в большой материнской плате исчезает — системную плату можно делать размером с большую видеокарту. Таким образом можно получить более плотную упаковку, более оптимальное охлаждение, самые разнообразные формы корпусов и расположение интерфейсов. Вместе с тем, с замедлением устаревания компьютерных комплектующих, увеличивается смысл наращивать систему, добавляя не только память, но и вычислительные ядра и видеокарты вместо их замены. Так что потребность в неограниченно расширяемой архитектуре персонального домашнего кластера действительно есть. Но я вижу это собранным на проводах — у каждой системной платы должен быть как минимум 1 разъём для соединения с платой предыдущего поколения, и 1 разъём — для текущего поколения. И, конечно нужна ОС, которая будет это поддерживать.
Sheti
11.10.2018 06:59Современные ПК к этому движутся. Всё больше функций переносится в процессор. Люди уже не покупают кучу плат расширения. Типичная ситуация это одна плата — видеокарта. Даже звуковую карту берут редко. Да и множество устройств которые раньше вставлялись внутрь корпуса теперь прекрасно себя чувствуют на USB. Даже внешняя видеокарта не фантастика.
bugdesigner
11.10.2018 08:45Красивая идея, но! Современные серверы разрабатываются для надёжной, непрерывной работы. Для этого придуманы интерфейсы позволяющие производить "горячую" замену блоков (плат, дисков). Для этого серверы устанавливают в стандартные стойки, которые позволяют обслуживание "на ходу". Как Вы представляете себе ситуацию, когда в Вашей кубическо-сферической системе выйдет из строя плата в середине куба? Как её заменить, так, чтоб остальные части куба продолжали работать? Ответ очевиден — никак. Вывод — для серверных решений не подходит совсем. Где такое ненадёжное решение может найти применение?
Alexeyslav
11.10.2018 10:54Ну почему же, выходит из строя — просто отключаем, маршрут перенастраивается автоматически/полуавтомат, добавляем новый исправный блок где-то с периферии и мощность восстановлена. При очередном техобслуживании и/или наберётся ворох неработающих модулей — они удаляются а остальная часть переделывается в новую конфигурацию. Если модули будут поддерживать горячую замену с минимумом накладных расходов на возобновление работы — то это можно делать прямо во время работы переставляя модули таким образом чтобы оголить место неисправного и удалить его. Будет только проседать мощность вычислительного узла на некоторое время — можно спланировать это на время минимальной нагрузки и вообще автоматизировать его!
bugdesigner
11.10.2018 11:13Я себе представляю. Замена блока в середине куба — разобрать половину куба. Ещё веселее, когда модуль в самом низу, в середине. Или нужно куб подвешивать и лезть под это поделие, как автослесарь под машину. Кроме того, чтоб вытащить этот модуль, нужно освободить как минимум 5 разъемов с 5 сторон, то есть разбирать прийдётся основателно. Обслуживающий персонал Вас проклянёт. Если совать эти блоки как «3D-пятнашки», то нужно иметь как минимум место для ещё одного куба, который будет «ползать» по датацентру после каждого такого случая.
А что сейчас? Подойти к стойке, выташить модуль или диск, вставить новый. 5 минут. Скукота. За что инженерам ДЦ деньги платят? При Вашем подходе, эти бездельники будут отрабатывать свою зарплату полностью.Alexeyslav
11.10.2018 11:29Из-за одного модуля никто и шевелится не будет. Но если эта «жизнь» будет происходить под контролем автоматики то никому ползать не надо будет — максимум пополнять запасы модулей и утилизировать вышедшие из строя. И перевозить невостребованные между дата-центрами.
PolYakov1968 Автор
11.10.2018 12:34Да, согласен, техническое обслуживание таких кубических систем — серьезная проблема.
Но, с другой стороны, в трёх координатах можно строить не только кубы, а и более разряженные, полые конструкции.
safari2012
12.10.2018 23:15Узкое место практически любых современных систем — ввод/вывод. И нет никакой разницы, какой это интерконнект — разъем ли это на плате, Ethernet, SAS, FC или InfiniBand. Время доступа к блоку данных на порядки выше, чем между процессором и памятью.
А так да, те же полки с блейдами изобрели...
surVrus
13.10.2018 12:43Интересная идея! Но мне кажется, ее уже реализовали и достаточно эффективно.
По сути, компьютерные сети в том или ином виде и есть реализация еще одного измерения в такой системе. Элементами такой системы выступают разнородные элементы, соединенные на уровне слоев (протоколов) OSI. В этом случае ниже скорость коммуникации, но решены иные инженерные проблемы, затронутые в комментариях.
Можно проектировать и делать системы и по принципам строения кристаллической решетки. То есть пространственное соединение однотипных элементов в последовательно-параллельные слои. Что-то типа композитной структуры, или изотропной структуры.
Однако унификация и жесткая геометрическая структура могут приводить к «хрупкости» такой системы. При каком-то воздействии на такую систему она частично разрушается.
В природе, в реальности, сложные системы «антихрупкие», построены иначе. При каком-то воздействии на такую систему она улучшается, а не разрушается.
Пример: существо одного вида — смертное. Но генетический код этого вида — очень стабильный во времени. Стабильность системы обусловлена нестабильностью элемента.
Более подробно об этом есть у Насима Талеба «Антихрупкость» — рекомендую.
Если построить по идеям «антихрупкости» такие вычислительные системы, используя идею 3d, то можно получить интересный результат. Я пробую использовать идеи «антихрупкости» для построения кластеров для вычислений, но пока проект на этапе «идея» и «прототип». Однако уже вижу, что обычные сервера HP, Dell, Fujitsu и их методы объединения можно использовать только ограниченно. Там много не оптимальных решений, много странных «заскоков» чтобы заработать бабло в ущерб функциональности. Но часть решений можно использовать, как строительные элементы системы.
Valeratal
У IBM PC все достаточно стандартизировано
А как Вы будете городить системник, 3д или 4д — это зависит от фантазии и наличия проводов
На одной и то же архитектору IBM PC есть тонкие Сюрфейсы, квадратные баребоны и мусорки от Apple