KPU — Украинский Национальный Процессор

Я начинаю инициативу по разработке Украинского Национального Процессора.

Кодовое название KPU — Kozak Processing Unit.

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

Процессор будет разработан основываясь на «state of the art» методологиях дизайна процессоров, а также инновационном подходе.

Пока ставлю следующие требования к MVP:
* Поддержка 32-битных операндов
* Как минимум 8 ячеек данных (регистров) общего назначения
* Как минимум два Арифметически-Логических устройств
* Поддержка оперативной памяти (синхронной с процессором, пока не решил)
* Как минимум один 32-битный порт ввода-вывода
* Поддержка как минимум 16КБ оперативной памяти
* Процессор должен уметь выполнять несколько операций параллельно за один такт.

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

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

Архитектура процессора будет максимально модульная, будут возможны форки с разными конфигурациями «обвеса», их можно будет сделать, даже не являясь экспертом в области разработки процессоров.

Процессор будет разработан в рамках программы Open Source (с открытым исходным кодом), будет аппаратная реализация в ASIC и FPGA, а также эмуляторы, котоыре могут выполняться на x86 и Javascript (например, в браузере). Любое частное или коммерческое лицо на территории Украины сможет использовать и модифицировать исходный код и архитектуру для изготовления процессоров, без уплаты лицензионных отчислений (плюс по сравнению с ARM).

Прошу поделиться пожеланиями и идеями. Проект открыт для всех желающих присоединиться (можете отписываться в комментариях к этому топику)

//для троллей:
Цель проекта не «импортозамещение», попил денег. Главная цель — предоставление рынку конкурентоспособного продукта, который будет использоваться в Украине и за ее пределами и позволит заявить об Украине на мировом рынке как об одном из лидеров в области микроэлектроники, наряду с такими странами как США, Южная Корея и Япония.

👍ПодобаєтьсяСподобалось3
До обраногоВ обраному2
LinkedIn

Найкращі коментарі пропустити

когда пишет Artyom, то зачастую непонятно где стёб, а где нет.

Кодовое название KPU — Kozak Processing Unit.

Не знаю по злому умыслу или нет, но Kozak Processing Unit ассоциируется у всех англоязычных с «устройством по переработке козаков».

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

Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Схоже невдача спіткала радянського спортсмена.

Я б пиляв це на fpga, повно статей в інеті аля «пишемо свій проц на AHDL/Verilog». Заодно не треба возитись з усіма цими дротами і можна подивитись на готові рішення на сайті opencores. Єдине що, я не сильно вірю, що він комусь потрібен. Сучасний тренд — ліцензуй арм і допиляй перефирію.

Та і всі ці асіки це сотні тисяч доларів, якщо брати по мінімуму. Хіба що дійсно брати якусь машину Кузьміна, яка стане якимось кардинально іншим проривом. Але туди в’їхати важко. У ельбруса було цікавих ідей трохи, не треба недооцінювати ворога, але він живий виключно, бо партія вважає що він треба.

Технологічно виробляти СУЧАСНІ мікросхеми в рамках однієї країни майже неможливо. Обладнання для літографії робить лише кілька компаній в світі і то сучасні, лише одна ASML — далі використовує це обладнання трохи більше компаній, але теж не так багато TSMC, Intel може ще якісь. Звичайно десь можна відрити залишки радянської мікрометрової промисловості, Китай потроху осилює сотні нанометрів самостійно.

Як науковий проект ідея цікава, але навряд чи він виросте у щось навіть теоретично. Можна написати якусь дисертацію навіть. Єдина проблема — ця школа ПЛІС досить вузька, малопотрібна комерційному ринку, зазвичай це досить специфічні задачі по обробці сигналів, тому вчитись прийдеть по англомовним матеріалам, трохи є там нюансів і поняття програмування має трохи інше значення ніж усі звикли. Хоча код дещо по синтаксису і схожий, але працює він геть по іншому.

Доброго дня! Чи можемо ми зв’язатись з ціллю проведення інтерв’ю та популяризації проєкту?

Вот это правильно. Заодно передайте что уже готова новая архитектура и язык. Пусть свяжется

Если ваш процессор обойдёт байкал)))

Як ідуть успіхи проекту?
Чи є спільнота та ресурси для ознайомлення з прогресом?

Апдейтов не много. У меня был примитивный прототип, работающий в Logisim, который я потерял.

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

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

А я ж предлагал архитектуру. Можно реальную бомбу сделать. Посмотри на мой вариант. Сделал и систему и транслятор для недетерминированной архитектуры.

Коментар порушує правила спільноти і видалений модераторами.

озу типа ддр9 бандура ))) Шевченко дртХ 15.9 видео адаптер брычка70гб озу 2076бит ))) и блок питания типа Борщ 3 50киловат жосткий диск нового поколения Вареник 7 до 700Тб инфы ))))

дерзай,удачи.а где ты его будешь делать,дома?

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

Хорошо, подумаю. Какое название вы предлагаете?

Видео в тему: www.youtube.com/watch?v=VTaD99NnerI

С докладчиком знакомы лично

Как-то не сходится 2+2. Студенты создали клон Денди, денди документирована и т.п. Денди нихрена не документирована. Это частично совместимый клон NES. По-ходу они взяли один из многих существующих готовых проектов NES на FPGA.

Ну со студентами я не знаком. Возможно ты прав. Лично я изучал тему по книгам. Но мне показалось что начинающим тот ролик подскажет направление куда копать.

Отлично, но это просто клон существующего процессора.

Нужен отдельный сайт для публикации продвижения на пути.

Я давно с HTML не работал, кто-то может помочь?

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

Откуда инфа что это девушка а не бородатый дядька в свитере с оленем?

Хз

Готов выделить свободное время, для создания сайта и адаптации под Ghost CMS, и предоставить хостинг.

будь-який робочий процесор, створений в Україні — вже круто!

Сильно сомневаюсь что со всей Украины можно собрать команду способную на создание нового процессора. Даже при наличии денег. Что тоже фантастика.

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

Проект и результат несколько разные вещи.

Наконецто на ДОУ сообразительный тролль.

Ну в таком случае расклад следующий: если к тебе не присоединится хотябы десяток гуру в микроэлектронике, то максимум что ты получиш это прокачанные скилы «VHDL» и «FPGA». Для "

предоставление рынку конкурентоспособного продукта

" в разумные сроки тебе потребуется хотябы сотня гуру и скорее всего восьмизначные суммы зелени. Как пример можешь взять Трансмету. Я думаю что Mike и Artem знают больше.

PS: У меня была мысль разработать ЭВМ на совершенно новых идеях, но разбилась о реалии жизни. А хотелось бы ...

Давай идеи. Как минимум обсудим. Я делаю..

Цель проекта не «импортозамещение», попил денег.

Наоборот, мне кажется, это отличная идея для распила госбюджета. Выглядит солиднее, чем закупка валидаторов в общественный транспорт Киева, на которую выделили полмиллиарда гривен.

p.s. А Go будет работать на KPU?

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

Як буде із підтримкою Хаскеля? Чи буде апаратне прискорення SK-комбінаторів?

А вот всё таки интересно, Intel тянет на себе legacy 45 лет. Если дать им возможность сделать с нолика, игнорим проблемы софта, ОС, насколько оно эффективней будет?

Вопрос интересный

Мое мнение:
Если дать интелу возможность игнорить проблемы софта и ОС, то получится офигенно быстрая молотилка чисел, непригодная для решение каких-либо задач кроме выполнение бенчмарка.

Можно ли пойти другим путем? В каждом процессоре выделять часть кристалла под FPGA. Приложение может загрузить в FPGA программу и получить ускорение определенных операций. То есть фактически — application-specific architecture, которая не несет на себе тяжесть легаси x86. Можно этот FPGA как-то даже интегрировать с внутренними компонентами процессора, типа с регистрами и т.п.

Я подумаю о том, чтоб в KPU был отдельный application-specific ускоритель, основанный на FPGA.

Можно ли пойти другим путем? В каждом процессоре выделять часть кристалла под FPGA.

www.altera.com/...​atix-10-soc/overview.html

Не сильно. Основные энергозатраты идут от самих операций, от кэшей и тому подобного. Декодер последних поколений уже достаточно эффективен, чтобы затраты на него не были заметны. Проблемы реализации операций внутреннего языка тоже достаточно неплохо решены. Время работы больше зависит от тормозов по памяти, чем от внутрипроцессорных эффектов.
Я видел оценки, что перекройкой системы команд можно получить сокращение длины программы в 1.3-1.5 раза. Это может быть полезно, но совсем не принципиально.

Малышки в песочнице не знают, что все сейчас патентовано и требует денежек? В том числе и хитрые реализации аппаратных решений в процессорах. А что касается с нуля — так посмотрите за развитием ARM процессоров. Немного получше энергоэффективность, получше парралелизация, но не более того. Кстати уточню для перманентно забаненных в гугле. Между AMD и Интел действует крослицензионное соглашение, без которого они тупо не в состоянии выпустить железки, не нарушив патенты один одного. Патенты Моторолы, позволявшие выпускать неплохие процы, сейчас у китайцев. Ну и тот же Интел — один из учасников консорциума разработки ARM процессоров (кстати и Apple тоже там, Джом в свое время инвестировал на ARM немало) и имеет право на патенты. Таким образом, любая подобная инициатива в Украине — это 100500% распил бабла. Каждый хочет быть Остапом Бендером...

Главная цель — предоставление рынку конкурентоспособного продукта, который будет использоваться в Украине и за ее пределами

Зачем? На рынке мало продуктов? Какую проблему решит новый процессор? В какой нише он будет применяться? У автора еть бизнес-план? У автора есть команда с опытом подобной разработки?

позволит заявить об Украине на мировом рынке как об одном из лидеров в области микроэлектроники, наряду с такими странами как США

Вот это блджад слоганы как раз для распила и «импортозамещения». Автор, тебе в Роснано, склоковские гранты обналичивать.

Зачем? На рынке мало продуктов?

Странный вопрос. А зачем изобретают новые лекарства, например?

Вот это блджад слоганы как раз для распила и «импортозамещения». Автор, тебе в Роснано, склоковские гранты обналичивать.

Артем, вы что-то попутали. Я ни у кого не прошу денег и не подаюсь ни на какие гранты. Проект с открытым исходным кодом. Почему вы меня подозреваете в меркантильных целях? Какие у вас для этого основания?

Яким «відкритим кодом» ? Процесори з чого робити будеш ? Купи хоч машину піску (продам недорого).

Яким «відкритим кодом» ?

Погуглите «open source CPU», откройте для себя новый мир

Процесори з чого робити будеш ?

Из транзисторов.
FPGA для начала, потом ASIC

Купи хоч машину піску (продам недорого).

Куплю, если вы бесплатную доставку до дверей организуете.

потом ASIC

Ты же ж понимаешь что само понимание ASIC противоречит самому пониманию general purpose CPU? ))

Это не противоречит моей идеологии, и позволит улучшить «time to market». Что в этом плохого?

А зачем изобретают новые лекарства, например?

Затем что они (новые лекарства) делают что-то новое или лучше или дешевле. А вовсе не для того, чтобы

заявить об Украине на мировом рынке как об одном из лидеров в области микроэлектроники, наряду с такими странами как США

Ответил здесь dou.ua/...​rums/topic/22832/#1270249

Более того, принципиальные преимущества по сравнению с аналогами описал здесь неоднократно, потрудитесь, пожалуйста, почитать.

Я это делаю для того, чтоб компании вроде Е*** получили возможность переквалифицироваться с продажи жопочасов на продажу готовой продукции с огромной добавленной стоимостью, и избавились от ярлыков «галер» и «конюшень». И чтоб про них писали на CES а не на ебаном айти.

*чуть не уронил весло*
Это сразу меняет дело! Очевидно, с таким дифференциатором мировая общественность должна быть заинтересована в скорейшей разработке KPU!

Я это делаю для того, чтоб компании вроде Е*** получили возможность переквалифицироваться с продажи жопочасов на продажу готовой продукции с огромной добавленной стоимостью, и избавились от ярлыков «галер» и «конюшень». И чтоб про них писали на CES а не на ебаном айти.

Проект которым движит комплекс меньшвартости? Это точно не для CES. ;)

Забыли спросить мнение у тролля с вчерашней регистрацией

Коментар порушує правила спільноти і видалений модераторами.

Нужен совет (возможно, кто знает)

Я хочу сделать аппаратное ускорение интернета в KPU. То есть, будет отдельно 32 пина на процессоре, к которым напрямую будут подключены четыре Ethernet порта (8*4 = 32). Эти пины будут идти в модуль ускорения интернета, и потом — программы смогут обращаться к данным.

Вопрос в том, как реализовать высокоскоростные каналы связи? Допустим, есть 25Gbit ethernet. То есть 25’000’000’000 бит в секунду. Как процессор может оперировать таким большим объемом данных? Если решать «в лоб» то потребуется процессор на частоте 25 гигагерц. Я подозреваю, что есть какой-то способ это обойти и решить более низкой частотой, но не могу понять как...

Задача именно как считать данные из пина с высокой частотой. Что дальше делать — программист решит сам.

Так делают, если хотят получить скорости порядка 150-200Кб/с по эзернету. Для больших скоростей процессор исключают вообще и отдают задачу NIC контроллеру, который будет класть данные напрямую в память. Вторая стадия — сделать поддерку scatter-gather DMA из разрозненных кусочков памяти в NIC контроллере, чтобы класть данные напрямую в память процесса, там, где их ждут и не копировать их из драйвера. По другому никак ты высоких скоростей не достигнешь.

Хорошо, зайду с другой стороны. Если я хочу сделать NIC-контроллер, то столкнусь с той же проблемой — сам контроллер будет медленным. Что мне сделать чтоб он мог распознать данные которые приходят с такой высокой частотой?

то столкнусь с той же проблемой — сам контроллер будет медленным.

Значит нужно сделать его быстрым и использовать стандартные решения.
en.wikipedia.org/...​dia-independent_interface

А вообще национальному процессору нужны национальные каналы передачи данных с использованием национальных решений. Большинство хацапетовок до сих пор обладают выделенной линией типа медная (иногда ляминевая) пара с сотней закруток ручной работы с пропускной способностью 1200 бод (я сужу по каналам железной дороги), поэтому твои опасения напрасны. Твоей текущей частоты хватит с головой!

Почитал. То есть параллельно данные передаются по 4 разным проводам. Значит требуемую частоту можно делить на 4, уже экономия (6.25 гигагерца вместо 25). Я думаю что до 6 гигагерц KPU не будте разгоняться, неэфективно с точки зрения энергопотребления. Поэтому будет ограничен интерфейсом в 10Gbps (частота 1.25 гигагерца). За счет того, что будет аппаратное ускорение сразу для четырех портов, то суммарная скорость будет 40 Gbps в обе стороны.

Почитал. То есть параллельно данные передаются по 4 разным проводам. Значит требуемую частоту можно делить на 4

На 2, если речь о чём-то длиннее пары ладоней: на таких скоростях работать без помех будет только дифференциальная передача (это когда на паре проводов всегда на одном +x, а на втором -x относительно сигнальной земли).

Допустим, есть 25Gbit ethernet.

Вроде без оптики такое ещё не делают. И даже на оптике без WDM неподъёмно дорого.

Очень просто. Большая частота не нужна. Нужен большой грузовик с сиди дисками. :))

Убей с разбегу себя об стену. Дважды. Потом сходи к мамке и спроси, почему тебя не разбанивают в Гугле. Современные процы напрямую прикручены к овердофига линиям PCI Express. За использование этой шины вроде нет отчислений (во всяком случае небольшие). Надо только поддерживать спецификацию. Если вы не поддерживаете эту шину, то тупо никакое высокоскоростное периферийное оборудование из современного вы не сможете подключить.
Современные карточки например подрублены через 16 линий стандарта 3.0 — скорость 15.8 Гбайт/с (не бит а байт!). А вообще, почитайте про современные сетевые карты. Те, которые рекомендованы для систем виртуализации, поддерживают кучу дополнительных фишек. А прямой заброс данных в оперативку в обход процессора -это DMA появился за царя гороха.. Сразу видно, что вы живете в таком забитом селе, что последние 20 лет только в туалете литературу читали.

ru.wikipedia.org/wiki/PCI_Express
ru.wikipedia.org/...​/Аппаратная_виртуализация
ru.wikipedia.org/wiki/IOMMU
ru.wikipedia.org/...​ki/Прямой_доступ_к_памяти

Спасибо за ссылки, почитаю на досуге.

PCI Express, к сожалению, использовать нет возможности в данный момент.

Это безальтернативно. Тогда проще об стенку. Милосердная эвтаназия.

Смешно. Как же куча компьютеров работали и работают без PCI Express, даже не представляю!

У них или очень специальная область применения (всякий embedded), где не нужно тех скоростей, или свой аналог по скорости за в 20 раз бо́льшие деньги (как в zSeries).
Увы, но при выходе за пределы лабораторного прототипа придётся обвешаться Той Самой Стандартной Шиной. К счастью, для этого есть десятки готовых разработок, которые надо только подключить.

К счастью, для этого есть десятки готовых разработок, которые надо только подключить.

Спасибо. Можно пример?

За скорость могу сказать отнюдь. Все продумано. До выхода на обработку события после прерывания 4 ассемблерных команды. Для общего случая есть проблемы со скоростью по причине анализа одного бита на наличие подписки. По хорошему нужен спецпроцессор. Разбор и адресации и команды хорошо распараллеливается. Да и сама система предназначена для многопроцессорной работы с динамическим распределением шин доступа к памяти. Причем количество шин важнее чем количества процессоров. Обычно основная нагрузка идет на адресацию и ветвление. Тогда система легко вставит классическую архитектуру. Кроме задач где чисто вычисления нужны.

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

А скольки канальный у тебя контроллер памяти и какая организация памяти, что ты увеличиваешь количество шин, а производительность растёт?

В реальности STM. Cortex. Только это ж не отменяет возможности на перспективу. На текущей архитектуре для выбора команд и данных разные шины. К сожалению.

Я претендую на управление шинами. Было б очень удачно.. Фактически каждая шина это отдельная ветвь.

Автор, главное отойти от классики жанра. Эксперименты с шиной, кешами, регистрами, разрядностью, ты будешь на поле где косят траву уже пол века. Забей. Попробуй переиграть абсолютно все, напр. подумай на счёт акторной модели, сделай проц под нейро сеть, научи проц тотально собирать статистику и постоянно переигрывать выполнение. Главное избавится от этой зашоренности, все эти процы что сделали до тебя прямые наследники ленты Тьюринга, доколе !

доколе

пока кубит не стабилизируют

Есть и такая идея. И уже реализовываю. Не Тьюринга и не алгоритмы. Только здесь тоже интереса не вызывает. Хохотунчики одни

Я задал вам вопрос по теме вашего изобретения но вы не ответили

dou.ua/...​rums/topic/21154/#1252016

Здоров. По скайпу разговаривали. Я даже сказал что есть тема. И даже предложил поработать.

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

А ты сказал что у тебя куча работы и ты не можешь..

Я был занят когда вы звонили, не мог отвлекаться.

Вопрос прямой — вы можете описать идею детально, зачем она и какие преимущества дает? У вас есть тема на DOU где вы можете это объяснить.

Я не могу никакую информацию секретно по частным каналам обсуждать, потому что KPU это открытый проект, open source. Если вы не хотите публичности для вашей идеи, то будет неэтично если я, контрибьютер публичного конкурирующего проекта, буду о ней знать, согласны?

Идеи автора популярным языком: Автор переизобрел реактивное программирование, но не понимает что эта концепция не эффективна на процессорах с фон-Неймановской архитектурой и аналогичными. До FPGA кажется еще не дорос. Обьяснятся исторической терминологией.

Вообще-то я начала разработку раньше чем появились первые работы и такой термин.. Лет 25 назад.. Во-вторых, я продвинулся гораздо дальше чем то, что предлагается под этим термином. Вот додумался до того что убрал определение событий вообще.. И у меня нет необходимости в булевых типах.. И архитектура совсем не похожа на фон-Неймановскую. Вообще сильно отличается от классики и технология программирования другая.. Я когда начинал, то не было операционок на мобильных.. Вот хотел для них влепить.. Система получается очень компактной.. Внедряю на микроконтроллерах.. И работает.. Да, денег нет. Я ж не виноват что страна жлобов и дебилов. Одни задрочки. Никто даже не вникнул. Вот за 20 лет никто и гривны не вложил.. А я работаю. А вот не вижу причин для тебя хвастаться FPGA. Не ты это придумал и не ты это сделал. А я вот делаю.. Уже хрен его знает какая версия)) Думаю через пару месяцев будет работающий транслятор.. Отпишусь как будет что показать. Жаль что не с кем даже пообщаться.. Может какие фишки современные вставить. Отстал, конечно, от современных технологий. Посматриваю. Есть интересные фичи. Ну, сори.. Что успеваю, то и делаю.
По поводу эффективности так у меня нормалек работает на контроллерах.. Выход на обработку события 4 ассемблерных команды. Учитывая, что убирается много чего по пути, так очень даже ничего.. А так да.. Было б хорошо на многоядерных процах.. Распараллеливается все прекрасно. Что-то я много болтаю.. Удачи.. Я работать.. Кто хочет пообщаться плиз в скайп.. Или почту..

мой пост был для тех кто владеет современной терминологией. Вы его не поняли.

Вообще-то я начала разработку раньше чем появились первые работы и такой термин.. Лет 25 назад..

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

Ты не обратил внимание что не знаешь ничего о моем проекте, кроме слова «событие»? Потому говорить о близости идей немного нагловато. Тем более, я ж где-то писал что в результате работы пришел к выводу что событий, как их определяют в природе не существует.. От слова вообще. Это придумка)). Вот представь эти слова произносит человек который 20 лет занимается "придумыванием реактивного программирования.)). И вообще события это только часть проекта.. Основной задачей стоит упрощение. Вся система строится на 5 базовых понятиях. Всего-то!!! Вот это главное что я сделал. Т.е. можно взять часть памяти, с помощью этих понятий построить отдельную систему и взаимодействовать с ней. Потом превратить во что-то другое.. Очень годится для квантовых компьютеров.. Вычисления (собственно, процессор) второстепенная деталь. Основную роль для ххх (не знаю как это назвать) выполняет адресация и шины.. По ним гуляют данные (они же команды) и организовывают ветвления.. Как этот процесс называется я еще не придумал.. Да мне и не важно. Но это не совсем алгоритмы.. Все может выполняться (назовем это так) в любой области памяти и параллельно. Была бы свободная шина, в случае порождения еще одной ветви. Повторюсь, процессор это вспомогательная штука, если понадобится вычислять выражения. Формат данных и команд единый.. Потому назвал концептами.. Можно назвать и объектами.. Это чисто что б отличать принцип..

А вот это уже клиника. Сложный случай для написания пару диссертаций и докторских по психиатрии. Меня умиляю люди, которые до сих пор считают, что земля плоская.
Да не возможно в принципе отказатся от булевских типов. Это можна сравнить с попыткой обойти закон сохранения энергии.
Поскольку математически (без привязки к какому либо железу или фон-Неймановским машинам) теория информации доказывает, что наиболее ЕМКИЕ системы хранения (и соответственно, энергоэффективные) можно построить, используя ТРОИЧНУЮ логику. То есть для самых одаренных, перефразирую — Ложь, Истина, Незнаю. И кстати, нейроны в мозге по такой схеме шуршат (внезапно, да...). После нее идет ДВОИЧНАЯ логика (бинарные состояния ЛОЖЬ/ИСТИНА), она значительно менее емкая, но на практике в кремнии ее воплотить оказалось проще. Все остальные системы счисления это производные от этих двух вместе или раздельно. И конечно же, не такие информационно выгодные.
Вот опровергните эти математические выкладки — Нобелевка у вас, и сможете приступать к разработке вечного двигателя.

А касательно примитивов, которые распаралеливаются — так вперед.. Любая видеокарточка, 2000 шейдеров... Нужно под свой алгоритм — пилите ASIC узкоспециализироанный. Есть компании, которые уже руку на этом набили, shop.bitmain.com — 7 разных алгоритмов в железе.

Все таки тяжко жить, когда в гугле забанили перманентно.
И кстати еще рекомендую посмотреть на инфраструктуру Arduino и Raspberry Pi — по факту процессор сейчас ценен не какой то сверхбыстростью, а универсальностью, и наличием хорошей шины, на которую можно вешать кучу датчиков и обрабатывать сообщения от них.
И софтом, который позволяет адекватно писать продуктивный код даже новичкам.

Радует только то, что никто не живет вечно и поколения меняются.

Ты даже не представляешь себе как ты не прав. Дело в том, что булевский тип вообще искусственное понятие. Почитай как его определяют математики. Слегка намекну, что я прекрасно обхожусь без булевских типов. У меня нет оператора If ( о необходимости наличия которого утверждает современная теории императивной парадигмы) и я прекрасно обхожусь событиями, которые несут в себе реальную семантическую нагрузку и даже являются аксиоматическими понятиями (их всего 16) для логического разбора в духе Пролога. Ветвление в моей системе возможно множественное на несколько ветвей. А не только Then/Else. Короче моя система гораздо перспективней чем все что есть до сих пор. Но, для этого надо малость мозгов коих здесь большая редкость. Кстати, события и, как следствие, ветвление программ порождают данные, а не только команды. Потому выполнение всего этого чуда происходит не только там где выполняется команда, но и там где адресуются данные.. Хотя у меня и данные и команды одного формата.....Торможу.. Как за что-то зацеплюсь так приходится много писать.. А кому?

16 — это степень двойки, не более того, значит вы просто не видите избыточности. Состояния ветвления не равновероятны и в соответсвий с энтропией Шеннона вы изначально не оптимально разпоряжаетесь возможным битовым кодированием этих состояний. И булевский тип это не искусственное понятие. Это минимально возможное хранение состояния системы. Еще раз рекомендую серьезнее отнестись к теории информации. Огромное количество работ. Еще с докомпьютерной эпохи. Абсолютно все сводиться к двоичной и троичной логике.

Какая каша в голове. Даже не знаю как комментировать. Эти фразы как-то связаны между собой? Начнем по порядку.. 16 степень двойки это точно. Как раз в 4 бита помещается. Никакой избыточности. Тютелька в тютельку.. «Состояния ветвления» это что такое? Допустим речь идет о будущих переходах по подписке.. И что из того, что переходы разновероятны их не надо предусматривать? На чем предполагается экономия? И причем тут энтропия Шеннона? Ты предлагаешь кодировать разной длиной? 4 бита? Ты себе представляешь реализацию своего предложения? Булевский тип таки искусственное понятие.. Поищи определение в научной литературе.. Будешь приятно удивлен. Когда это будет звучать как «вот это...» обозначим буквой «f», а в противном случае буквой «t». За хранение состояния вообще вопрос что такое «Состояние» и где сказано что его надо хранить? Может как раз хранить нельзя? Ибо «состояние» то может поменяться за время хранения. Или об чем здесь? Какую из наук ты называешь «Теорией информации»? Я тебе давал пример одной очень любопытной системы счисления основанной на числах фиббоначи. Кстати, украинский ученый разработал даже процессор и правила арифметических операций.. Получилось довольно круто. Но это не двоичная и не троичная логика..И со своими плюсами.. Как раз с точки зрения избыточности.. Общее впечатление от твоих постов что ты понемногу много прочитал.. Осталось сложить все что нахватался.. В единую систему.. Не торопись.. Так же много читай и работай.. Лет через 30 сложится все что прочитал..

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

Я так понял у вас техническое образование. Вам повезло у меня есть немного времени и попрошу внимательно читать далее. Нет такой штуки как «Теория информатики». Для начала разберемся с термином теория. Я нашел здесь.. ru.wikipedia.org/wiki/Теория для технического образования это годится. Но это не правильно. Вот здесь ближе к истине.. ru.wikipedia.org/wiki/Теория_(логика.
Прочитайте оба определения а я расскажу своими словами. Теория это набор аксиом и множество высказываний получаемых из них логическим выводом (замкнутых относительно логики первого порядка). То, что у вас называется «Теория информатики» это набор сведений собранных более менее в один курс по признакам известным конкретному преподавателю или принятым на кафедре. Наука — это точная штука и требует аккуратного применения терминологии.

Теория информатики — это один из разделов математики. Все, точка. Чтобы хорошо в ней разбираться, нужно знать математический аппарат, применяемый в статистике, в теории множеств и математической логики. Вот как раз математическая логика и есть базовым каркамом для построения терий и их доказательств. А у вас каша в голове, и очень незначительный уровень усвоения материала еще с периода до 1980 года. Теорией информатики еще Глушков занимался. Многие его работы то и стали основопологающими.

Михаил очередной раз запутался в терминологии а ты повелся ...

Правильная аргументация это либо указать в чем я запутался (хотя я привел аж две ссылки из википедии), либо привести пример правильного, с вашей точки зрения, определения теории. Советую прочитать работы Панкаре «О науке» Там очень толково и детально на эту тему.. Пока вы демонстрируете невежество и весьма агрессивно. Ну, и Илья тоже. Научитесь думать. Полезное качество.

Попробуйте перечитать пост Ильи внимательней.

Когда то и в языке С не было двоичного типа. Процессор не имеет «логического типа», он работает только с байтами и кратным им, поэтому логический тип не имел смысла в то время, поскольку он не давал преимущества (зачем использовать тип, когда вы можете только проверить «0» или «не равно нулю» ). Но с точки зрения логических преобразований этот формальный тип очень удобный. Ну и если бы это было экономически оправдано, накрутили бы однобайтовые регистры. Но ой, даже в твердотельной памяти отказались от ячеек, которые хранят только одно сотояние. А в оперативной уже давно оаботают как по переднему, так и по заднему фронту сигнала. Но это все нюансы практической реализации, а логически всеравно TRUE/FALSE

За историю языков и процессоров, лучше спросите у меня. Я начинал еще в эпоху ассемблеров, алгола и фортана. То, что вы написали я даже комментировать не возьмусь. Наведите порядок у себя в голове. Это настоятельная просьба. Может хороший программист выйдет. При мудром наставнике..

Я написал о фактах текущей реальности. Тот же Фортран когда то не имел строкового типа. Все развивается, но кто то так и остается с базовыми знаниями первых версий.

Тут вы сказали не подумав ...

Сначала перечитай рекомендованную литературу, потом будем конкретнее.. Кури работы, там, кажется 4 книги, А. Пуанкаре «О науке».

То есть ваш базиз даже не на 1980 году звфиксировался, а на дореволюционном минимуме. Печалька. Пуанкаре — это вообще-то школьный базис в современной системе образования.

Это реально великий человек. Я уверен что ты ничего не читал из его работ, и написал это только для того что б оправдать собственное невежество. Ты почитай. Глупее точно не станешь.

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

Ты Евклида освоил? А это 2000 лет назад. Я тебе посоветовал работы умного человека почитать. Сказал бы спасибо. Или дурнем хочешь остаться? Это из последних универсалов ученый. Философ-математик и физик. Кстати, теория относительности это его работа. И Лоренца. Эйнштейн знал об их переписке и единственная его заслуга что он первый ее напечатал. Кстати, не сославшись ни на Пуанкаре ни на Лоренца. А труды о принципах науки и ее месте очень полезны. Собственно по этой причине я их и посоветовал прочитать. Напряги мозги. И не пиши мне пока не освоишь.. Ибо, вынужден повториться, у тебя с этой темой большой пробел..

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

Ты напрасно тратишь усилия натягивая сову на глобус. Речь идет об общей теории относительности суть которой в инвариантности уравнений Лоренца и об чем Пуанкаре и переписывался с Лоренцом, договариваясь о совместной статье. Эйнштейн был в курсе их переписки и в мае 1905 года вышла его работа по их материалам но без ссылок на авторов. Именно за эту подлость его долго не приглашали на конференции физиков как пидараса. Займись чем-то полезным, а не поискам говна.. Задолбал же..

Эфир переименовали в темную материю

Кстати, за пирамиду. Мусора много.. Фундаментальных работ очень мало. Понятию Алгоритм-более тысячи лет. Работам Тьюринга под сотню.. После Тьюринга практически нет ничего фундаментального в компьютерах. Архитектура компа тоже не меняется лет 60. Машине Бэббиджа больше 200 лет. Скромнее себя веди.. Твоих знаний еще на понимание определений не хватает.

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

Ну вот и доказательсво профанства. В науке за последние 30 лет сделано больше, чем за предыдущие несколько сотен.

Это в прикладной сфере. А фундаментальные исследования с развалом СССР наверное свернулись по всему миру. Михаил говорил о фундаментальных ...

В фундаментальной. Просто надо понимать, что сейчас исследования в фундаментальной зачастую требуют значительных вложений в оборудование. Которое всякие бедные страны типа совка (воровавшего прикладные результаты со всего мира) не потянут. И это я не про Большой Адронный Коллайдер... Из последних фундаментальных — по сути прорыв в изучении черных дыр и темной материи. Из последних прикладных достижений напомню проект по расшифровке генома человека. 2008-2015 года. А вообще разбаньтесь в гугле.
Ну и несомненно, что сократилось время, между тем как фундаментальные исследования превращаются в практические результаты. Когда то когерентное излучение только на бумаге описывали, а сейчас лазерные лучики несут по оптоволокну информационный шум от не обученных читать.
Интересно сделать стартап, который позволит девочкам очень быстро определять уровень разумности своего избранника. Чтобы от забаненных в гугле не беременели, а только получали удовольствие.

С телефона неудобно писать, и править потом недолго можно. Там и не такие ошибки есть.

Все нормальные вещи в области Computer Science были придуманы в 70-х годах.

Нормальные чему?

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

У Тьюринга были ошибки? Назови хоть одну. Очень любопытствую))

16 — это степень двойки

Не тратьтесь.
16 разных вариантов совсем не обязательно значит, что они независимы, но мы этого всё равно не узнаем.
Пока что мы от него имеем только «У-у-у, какие я штуки придумал! Но я вам им не покажу».
Я ставлю 1% (да, оптимист) на то, что там есть что-то полезное, но его надо как-то оформить так, чтобы было понятно остальным, и 99% на то, что реально вообще нифига. В любом случае ему лучше было бы залезть в какой-нибудь стартап-инкубатор и не вылазить оттуда ближайшие 5 лет вместо флейма на dou.

Странное замечание насчет независимости. Если есть событие =0, >0 и < 0 это зависимые варианты? Очевидно что да.. Но, по любому разные и все нужны. А на DOU я общаюсь.. Вопросы стартапа мне не интересны.

А понял что-то из написанного? Боюсь, что нет. Такую фамилию позоришь.

Все остальные системы счисления это производные от этих двух вместе или раздельно. И конечно же, не такие информационно выгодные.

За систему исчисления фиббоначи не слышал? А она в каком-то смысле эффективней и совсем не производная тех двух. Если вообще термин «система счисления» правильно применяешь.

Она идеально в бинарном виде считается через нолики и еденички. Даже легче, чем через десятичную систему. Частное производное от двоичной. Ну нестепенная, ну и что?

Причем тут двоичная? Ты применяешь термины не понимая содержания. Двоичная или десятичная означает значение основание в степени зависящей от номера позиции, а не знаки которыми идет обозначение значений в каждой из позиций. В счислении Фибоначчи единичка в позиции n это значение n-го числа Фибоначчи. Я не знаю в каких единицах измерения ты применяешь слова легче-тяжелее, но проблемы с арифметическими операциями есть. Как минимум неоднозначное представление значения, потому необходима нормализация.

Вы могли бы продолжить обсуждение в этом топике?
dou.ua/forums/topic/21154

В твоем проекте есть н6есколько существенных недостатков:
1. не

Украинский Национальный Процессор

а Мегакрутий Український Національний Процесор (саме українською)
2.

Пока ставлю следующие требования к MVP:

у вимогах нема сумісності із салом, галушками та горілкою.
3.

Процессор будет разработан в рамках программы Open Source (с открытым исходным кодом), будет аппаратная реализация в ASIC и FPGA, а также эмуляторы, котоыре могут выполняться на x86 и Javascript (например, в браузере). Любое частное или коммерческое лицо на территории Украины

Любое частное или коммерческое лицо, имеющее Украинское гражданство (украинское происхождение — вслучае юрлица).
4.

Цель проекта не «импортозамещение», попил денег.

не «попил денег» (зачем же так палиться?), а «во славу Украины». ;)

Короче, проект надо еще дорабатывать и дорабатывать. :)

Было бы гораздо проще, если тс был бы всем известный на международном уровне любитель макбуков, а тут гадай троллинг- не троллинг, троллинг-не троллинг... троллинг... но хотя... :)

Иногда аккаунт Артема взламывает пьяный Артем, и происходит такое...

пьяный Артем

К сожалению, не пьяный...

Он на колёсах, их с алкоголем мешать нельзя %)

ему уже кто то рекомендовал, что девушку для сожительсва ему надо? И все идеи о процессоре как рукой снимет.

Девушку не так просто найти, как вы думаете.

он вылазит и находит...пока действует лекарство все отлично...

а потом начинается — шоколадный король! порохоботы! куда вы меня тащите, порохоботы! аааа!

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

Это ясно, с чего вообще начать? Просто подойти к девушке на улице или как? Вроде как неудобно, она может быть занята или спешить куда-то...

даже не знаю, что хуже: идти на кладбище или обсуждать УНП

Ну а выгуливать мне ее нравилось на московском кладбище

Вже бачу другу історію в інеті, як цвинтар об`єднує людей. В першій історії були люди нетрадиційної орієнтації. Чекаєм нових історій?

потом мердж коммит (доу всетаки): как кладбище объединяет людей нетрадиционной ориентации

Кстати, а что ты ищешь, если не секрет? И где? Если чисто кастрюлями на кухне командовать и детей няньчить, то да — это не проблема.

ну не процессор же совместно разарабатывать

Чтоб немного пояснить идею, выкладываю схему прототипа (версию 0.0). К сожалению, я забыл сохранить финальный вариант, поэтому некоторые функции отсутствуют, но сама идея должна быть ясна.

raw.githubusercontent.com/...​ster/designs/KPU v0.0.png

Вверху находится панель отладки, которая позволяет понять как работает система инструкций. Инструкции 4-байтные, фиксированной длины.

Буду благодарен за комментарии/замечания по схеме (это мой первый опыт, поэтому, возможно, есть недочеты)

С педагогической точки зрения вы ляпнули глупость.

С педагогической я бы рекомендовал написание собственного симулятора железа, как это делается в курсе SICP (глава 5). А с практической — verilog. VHDL это даже не Паскаль, а ада — чисто комитетов подход.

а где собственно бранчевание? Адрес увеличивается всегда на 1.

Спасибо за интерес к прототипу.

Процессор имеет команду для безусловного перехода по адресу. Чтоб ею воспользовться, нужно передать на порт R2 абсолютный адрес перехода (устанавливать флаг записи в регистр при этом не требуется), и установить флаг JMP.

Используя эту команду и ALU, можно реализовать необходимый тип бранчевания типа if (R1 > 0) then goto X

Я не реализовал более сложные инструкции перехода, ибо это был прототип.

R2 регистр шарит порт с принудительным адресом перехода по причине того, что не хватило отдельного порта (JMP добавлял в последнюю очередь). Было 3 варианта:
1. Не реализовывать JMP
2. Отказаться от регистра R2 и использовать освободившийся порт для JMP
3. Перегрузить канал регистром R2 и адресом JMP (что и было сделано).

При разрабокте процессора нужно делать много tradeoff чтоб балансировать стоимость, функции, производительность и т.п.

В финальной версии будет больше портов и этой конкретно проблемы не будеть.

Ты б вышел для пообщаться в скайп. Я б тебе кучу интересной информации дал по переходам.

Што ж ты делаешь, тут такой бизнес проект, а ты ссылки на лурк постишь! XD
УДОЛИ!

НИМАГУ!!!111!!!1

А ще національну операційну систему ГопакОС, з дідьками замість демонів та ватніками замість зомбі.

В процесорі/ОС ще десь має бути Khabar Management Subsystem: скажімо, якийсь процес може перерахувати нанобіткойн в спеціальний регістр процесора і отримати за це додатковий процесорний час.

Я думаю сделать более продвинутую многопоточность тендерного типа. Допустим, на процессоре естб 8 ядер, и запущен какой-то процесс. Процесс может открыть тендер, например, «нужно сложить 10 чисел». Каждое ядро выставляет свою «цену» за эту операцию, чтоб принять участие в тендере. Тендер закрытого типа, то есть ядра не знают какую цену ставят другие ядра. После этого все цены озвучиваются и выбирается наименьшая — это ядро должно выполнить задачу и оно получит поощрение в виде биткоинов, остальные ядра останутся ни с чем.

Соответственно, так же ядра должны тратить биткоины за «аренду» сокета, и за электроэнергию, которую они потребляют.

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

думаю название,это не самое главное.главное продукт сделать

Нафиг за это никто у нас не заплатит.

Автор тролль, инфа 146%.
Но такие темы нужны, не всё же по-сеньйорски занудствовать в соседней теме про гранаты как средство от грабежа.
Но я притворюсь сурьёзным и вот что пришло на ум от прочитанного веселья в комментах:

1. Многие хорошие идеи похерятся реальностью в готовом чипе: взаимными электрическими наводками, взаимным нагревом соседних элементов, электротехническими законами коммутации, резонансами в цепях, внезапными стоячими волнами в проводниках.
2. Господство именно двоичной логики во многом обусловлено не только простой схемотехникой, но и помехоустойчивостью. Пример N-ичной логики с хорошо известными проблемами — матрицы мониторов, где переходной процесс Gray-Gray протекает за иное время, чем Black-White, в процессоре с N-ичной логикой это означало бы, что переключение выхода из состояния 0 в N-1 произошло бы быстрее, чем из состояния N-4 в N-5 — см. законы коммутации и эл.основы «разгона».
3. Проводить разводку линий надо не просто, чтоб уместить в кристалл ХХ см на ХХ см, но с учётом п.1 и п.2, иначе вылезет локальный перегрев, паразитные индуктивные и емкостные наводки, например, между линиями часто используемых регистров, быстрый саморазряд ячеек RAM из-за того же перегрева. И решения таких проблем в свете стремления к определенному результату по производительности могут быть взаимоисключающие.

Автор тролль, инфа 146%.

К сожалению, не тролль

1. Многие хорошие идеи похерятся реальностью в готовом чипе: взаимными электрическими наводками, взаимным нагревом соседних элементов, электротехническими законами коммутации, резонансами в цепях, внезапными стоячими волнами в проводниках.

Есть общий подход к тому, чтоб хотя бы знать где эти проблемы могут появиться? Не хотелось бы сделать схему, реализовать ее на кристалле а потом чтоб выяснилось что где-то внутри логический элемент делает И вместо ИЛИ и годы работы коту под хвост.

Снижение частоты как-то может помочь ситуации?

К сожалению, не тролль

/Голосом Подервянского/ Гагага (регоче)!

Когда я был молод и мне нужны были деньги, я на заказ накатал статейку на Ферре.ру
www.ferra.ru/ru/system/s27009
Там, в частности, почему отказались от PCI и IDE, почему внутри процессоров так же появились последовательные шины и почему это не стыдно.
А вообще всё начиналось задолго до! О причинах появления синхронных триггеров, счётчиков и регистров написано, наверное, в каждом учебнике цифровой схемотехники.

Почитал. Интересная технология. Ради интереса сделал в Logisim передачу 4-байтного значения по одному каналу за один такт — работает! Подозреваю что нужно будет добавить канал синхронизации чтоб наводки не мешали, но мне эта идея очень понравилась! Это сильно упростит разводку линий по плате и позволит увеличить пропускную способность каналов данных

Ви хочете розробляти свій процесор і говорите про

Logisim

, а це те саме що збиратись проектувати будівлю, і все робити в Lego :) Хоча як для тролінгу це ок)

Я использовал Logisim потому что увидел его в одном туториале на youtube и мне понравилось что там все легко и логично, и сразу видно результат работы, не нужно догадываться что происходит под капотом (типа как искать ошибку в прогармме без отладчика)

Можете посоветовать хороший инструмент для разработки процессора?

Я посмотрел VHDL но ничего не понял. Там, как я понимаю, просто пишешь код, отдаешь на фабрику и они делают процессор? Странный подход, ведь Архитектор процессора не сможет видеть схему и расставлять логические элементы. Может быть процессор и будет работать, но у него не будет души, индивидуальности (это то ради чего я затеял проект).

Есть какой-то инструмент, где можно расставлять логические элементы и соединять их так как они потом будут сделаны на кристалле кремния?

Есть что-то на английском? Техническую информацию на украинском не могу воспринимтаь на слух

Останній лінк на аглійській мові, там всі відео на анг.

Техническую информацию на украинском не могу воспринимтаь на слух

краще промовчу....

Есть какой-то инструмент, где можно расставлять логические элементы и соединять их так как они потом будут сделаны на кристалле кремния?

www.youtube.com/watch?v=xK5ziR4llac

То что нужно! Я правильно понимаю, что в этой программе можно моделировать npn переходы и делать настоящие транзисторы? По-моему это более подходящий вариант, так как дизайн можно будет сразу отдавать «в печать» на завод, или самому освоить (хотя бы 250нм) процес.

предлагаю для начала намоделировать регистр на 8 бит

Я посмотрел VHDL но ничего не понял.

Без VHDL у вас скорее всего вообще ничего не получится.

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

Тем не менее это единственный путь приводящий к результату.

Такое дежавю от вашей манеры письма. Почему-то вспомнился noname373.livejournal.com

К сожалению, не тролль

Троллище!

откуда Вы знаете, может у автора действительно настолько много времени и денег. А, ну и знаний :)

він сам про це говорить:

«я не говорю что я эксперт, я не изучал ни схемотехнику ни архитектуру процессоров.»

«Я опасаюсь, что если начну читать учебник, то мой мозг ментально перепрограммируется на то, чтоб использовать готовые решения вместо того, чтоб искать инновационные. Например, когда я приступал, я ничего не знал из теории, поэтому и решил делать продвинутый dataplane, в котором устрйоства могут общаться с другими устройствами. »

«За пределами процессора есть устройство, которое генерирует квадратную волну. Когда волна идет вверх, блок управления настраивает все устройства для выполнения следующей операции. Когда волна идет вниз — все операции выполнляются и результаты записываются куда нужно. Это такт.»

Так що тролінг. Не хочу нікого образити, але якщо не тролінг, то приклад Ефекту Даннінга-Крюґера:

«Люди із недостатньою кваліфікаційною підготовкою не мають здібностей для того, щоб зрозуміти: рішення, які вони приймають, — помилкові, а талантів, якими вони себе наділяють, у них немає. Ось чому вони вважають, що мають рацію у всіх своїх діях і краще за інших розуміють ситуацію.»

Есть системы, где тактовая — частота питания. У нас — 50 гц (не ггц, не мгц, не кгц, а просто гц)

У автора какая-то слишком уж больная фантазия...

ну ок) прощу конечно все кроме отказа от кэша)

Почему? кеш это инструмент и далеко не самый хороший (Spectre и Meltdown атаковали как раз через кеш). В KPU будет инструмент для повышения производительности, который позволит решать аналогичные задачи, но немного быстрее, и не будет иметь непредсказуемого поведения, которое использовал Meltdown. Пока не думал об этом, но основная идея — отдельный небольшой блок памяти прямо на кремнии, с честной адресацией, из которого можно за раз читать/записывать несколько значений. По моим подсчетам, будет работать так же быстро как и регистры общего назначения.

кеш это инструмент и далеко не самый хороший

Але краще за нього ще нічого не вигадали.

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

Тобто кеш...

Нет, это не кеш.

Представьте себе, что в процессоре не 8 регистров общего назначения, а 65 тысяч. Но в рамках одного такта вы можете использовать только несколько из них (скажем, только 4). И вы как программист можете обратиться к любому из них в нужный момент, и данные всегда будут там лежать. Не будет никаких «промахов».

Кто-то может использовать эту область процессора как кеш, я не отрицаю. Но это не обязательно. Кто-то может просто использовать это как обычную оперативную память, и не обращаться к медленной «настоящей» оперативной памяти. Если сможет оптмизировать алгоритм так, чтоб 65 тысяч регистров хватило.

Кеш современны процессоров — это совсем другое решение, которое имеет много недостатков (промахи, непонятная потеря данных, разные дырки типа Meltdown и т.п.). Кто захочет покупать процессор, в котором половина кристалла занята кешем, который непонятно как работает? Лучше взять процессор, в котором эта площадь отдана полезному блоку данных, который легко использовать.

Представьте себе, что в процессоре не 8 регистров общего назначения, а 65 тысяч. Но в рамках одного такта вы можете использовать только несколько из них (скажем, только 4).

Уже придумали до тебя, см. Register File.

Спасибо, Интересная идея. Немного отличается от моей, но дает похожие преимущества.

Если это не стеб, то это же ужасно. Почему бы с начала не прочитать хотя бы пару книжек?

Tightly coupled memory (closely coupled memory), используется часто

Уже придумали до тебя, см. Register File.

Гмм, а мне Dec Alpha 21064 вспомнилась. С ее 128 регистрами...

Явно путаете. У Альфы 32 архитектурных регистра (0-30 реальные; номер 31 пустой). 128 это у Титаника (1 пустой, 31 постоянных и 96 на роторе).

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

Та нікуди вони не дінуться. Банальна задача, вам знадобився новий шматок даних, якого немає зараз в ваших регістрах. Все, полізли в пам’ять (в кращому випадку). Плюс, якщо таких ядер буде два, то обмінюватися даними вони будуть виключно через повільну пам’ять. А це пенальті в ~200 тактів мінімум, замість ~40.

Кто захочет покупать процессор, в котором половина кристалла занята кешем, который непонятно как работает?

Та все він зрозуміло працює. Тупі примітивні алгоритми, ніякої магії.

1. Я еще не думал,будет ли отдельный канал для загрузки из внешней оперативной памяти во внутреннюю.
2. Я не хочу вводить многоядерный дизайн. Но если прийдется — между ядрами будет несколько каналов передачи данных, можно будет передать данные из одного ядра в другой в рамках одного такта. То есть так же можно будет принять значение из одного ядра, сделать над ним операцию, или несколько операций, и передать в другое ядро (не обязательно в то же самое). Все это выполняется в рамках одного такта процессора.

1. Тоді відосік з ютюба подивитися не вийде. Він банально не влізе в регістри.
2. Читаємо що таке кеш-когерентність та шини передачі даних. Один такт — недосяжна мрія багатьох виробників процесорів. Плюс не забувати, що кристал має фізичні розміри, а це вносить затримки в процес розповсюдження сигналу.

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

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

Ютюб — це лише приклад. Комп’ютер, який може оперувати не більш ніж 64кб пам’яті в сучасному світі нікому не потрібен.
Без шини ви не побудуєте передачу даних в/з процесора.

более сложная топология

т.е. прямая адресация к девайсам?

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

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

Вот допустим...

В регистре лежит адрес памяти. Вы хотите прибавить к этому адресу 10, считать значение из памяти по этому адресу, сделать по нему XOR с константой и отправить результат в порт вывода.

Несколько устройств задействано в этой операции:

1) Регистр
2) 2 константы (константы это логически тоже устройства со своими портами)
3) АЛУ которое делает сложение
4) АЛУ которое делает XOR
5) Память
6) Порт вывода.

Вот про связь этих устройств в одну цепочку я и говорю.

Для справки — стоимость Cache Miss в L1 кеше — больше 10 тактов! Я не говорю про cahce miss в кешах более высокого уровня, где это исчисляется тысячами тактов. Какой смысл покупать процессор, в котором на один такт полезных действий приходится 1000 тактов борьбы с кешем?

В KPU все просто. Можно считать значение из памяти, выполнить с ним операцию и записать обратно. Это все за один такт. И это можно сделать одновременно с 4 разными ячейками (я также думаю о том чтоб чтение/запись могли идти по разным каналам, т.е. реально вы можете работать с 8 ячейками, половина на чтение, половина на запись) . Cache miss отсутствуют в дизайне.

Какой смысл покупать процессор, в котором на один такт полезных действий приходится 1000 тактов борьбы с кешем?

Немає там 1000 тактів, латентність обмежується максимально повільним елементом системи — пам’яттю. А там тактів 100. Читаємо про кеш-когерентність та різні алгоритми.

Можно считать значение из памяти, выполнить с ним операцию и записать обратно. Это все за один такт.

Це три такти.

Cache miss отсутствуют в дизайне.

Ні, бо якщо ви працюєте з обмеженою кількістю «пам’яті», завжди є задачі, які в неї не поміщаються. Наприклад, провести пошук елемента в базі даних на 10TB.

Це три такти.

В моем прототипе это делалось за один такт. Внезапно, да?

Ні, бо якщо ви працюєте з обмеженою кількістю «пам’яті», завжди є задачі, які в неї не поміщаються. Наприклад, провести пошук елемента в базі даних на 10TB.

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

В моем прототипе это делалось за один такт. Внезапно, да?

А що є такт?

Если ячейка памяти не работает как кеш, в ней невозможен cache miss

Дивлячись що саме називати кешом. Кеш — це логічна сутність в першу чергу. Може бути виконана як на фізичному рівні, так й на логічному.

А що є такт?

Странный вопрос, не знаю как ответить. За пределами процессора есть устройство, которое генерирует квадратную волну. Когда волна идет вверх, блок управления настраивает все устройства для выполнения следующей операции. Когда волна идет вниз — все операции выполнляются и результаты записываются куда нужно. Это такт.

Дивлячись що саме називати кешом. Кеш — це логічна сутність в першу чергу. Може бути виконана як на фізичному рівні, так й на логічному.

В KPU будет большой внутренний блок памяти, работающий на частоте процессора. точка. Про кеш — это вы придумали.

Странный вопрос, не знаю как ответить.

Не дивний, абсолютно нормальний. Тактування йде у синхронізаційному сигналі по одному з фронтів, а не по всіх одразу. Інакше у вас в одному такті мусить бути три сигнали.

Про кеш — это вы придумали.

Що саме я вигадав? Що таке кеш? Дайте ваше визначення, щоб не плутатися в дефініціях.

Інакше у вас в одному такті мусить бути три сигнали.

Что значит «три сигнала»? Дайте определение сигнала

Що саме я вигадав? Що таке кеш? Дайте ваше визначення, щоб не плутатися в дефініціях.

1) На кристалле процессора есть блок памяти на X килобайт (мегабайт).
2) Блок памяти поддерживает random access к любой ячейке по определенному адресу.
3) Одновременно можно обращаться к нескольким ячейкам для выполнения чтения или записи.
4) Все операции чтения и записи будут выполнены в рамках одного такта

Я понимаю, что концепцию сложно понять, и еще сложене принять, так как современные процессоры (не буду приводить названия) такое делать не позволяют.

Современные процессоры такое делают, многие из них. Например arm

Дайте определение сигнала

Це оцей ваш прямокутний імпульс синхронізації. _П_

Я понимаю, что концепцию сложно понять, и еще сложене принять, так как современные процессоры (не буду приводить названия) такое делать не позволяют.

Угу.
Тільки от кеш — це система, яка обслуговує процес. Процес пришвидшення отримання даних, коли дані переносяться ближче до системи обробки. Неважливо, це кеш програми чи процесора, чи бази даних.

Вы мыслите не в том направлении.

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

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

Ну в твоём случае это будет тот же ж кеш только «прямо управляемый процессором» )) когда у него закончится кусок программы/данных которые поместились в кеш либо понадобится что-то из «внешней памяти» то про это решит сам процессор и соотв. будет делать «cache miss вручную» при этом правда возникают вопросы например переключения контекстов исполнения получается либо переключать нельзя (кооперативная многозадачность?) либо при переключении «внутренний блок памяти» всё равно куда-то сливать и заливать в него заново другой из другого потока исполнения. Правда при кооперативной делать то же ж самое только «вручную» так что вопрос многопоточности всё равно остаётся а иначе разные потоки и соотв. разные процессы могут и получить доступ к данным остающимся в «внутренних ячейках памяти проца» после исполнения «чужого».

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

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

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

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

Так как хороший пример сегодня модные сетевые чипы могут такое под названием RDMA в результате чего кусок данных из другой ноды чисто сетевой «волшебным образом» оказывается на ноде другой и сама «принципиальная схема сети» уже перестаёт «выглядеть логически» как «ряд последовательных каналов» которыми раньне приходилось бы б заниматься процессору «вручную напрямую».

Туда же ж можно отнести даже чисто технический «преобразователь последовательного канала» ровно ничего не мешает сделать его «вручную» (что собственно и было в частности на реализации моей собственной на 580А потому как других микросхем (больших) в «обвязке» просто не было) а сегодня любой SoC имеет пакован последовательных интерфейсом прямо готовых прямо «внутре» (к) (тм)

С твоей «внутренней памятью» ровно та же ж история.

Как вариант просто поставь ему (основному ядру исполнения) рядом «сопроцессор кеша» ))

сегодня любой SoC имеет пакован последовательных интерфейсом прямо готовых прямо «внутре» (к)

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

Нет невозможно )) разве что ты будешь говорить «один такт» а на самом деле там внутре «вот это всё происходит внутре» что собственно мы и имеем уже с уже имеющимися багами проецируемыми на систему защиты.

snag.gy/CU97p3.jpg

Я сделал POC передачу 4-биттового значения по двум каналам за один такт (теоритически пропускная способность не ограничена,). Может быть я что-то не понимаю почему невозможно?

Ой ну серьёзно...

разве что ты будешь говорить «один такт» а на самом деле там внутре «вот это всё происходит внутре»

Ты ведь затевая эту затею имеешь какие-то представления вообще такие чисто логически основные вот скажем в данном простейшем случае один такт полагает одну смену состояний сколько смен состояний одновременно могуть быть представлены двумя линиями?

Я даже сразу отвечу да до бесконечности! Конечно если ты с одной стороны можешь точно на одном конце выложить уровень чисто по значению чисто аналоговому а на другом конце этот выложенный уровень поймать именно таким каким он был задуман и ещё с учётом потерь как на передачу чисто по линии так и на сами переходные процессы как по линии так и вообще.

Так сколько состояний ты передаёшь за один такт-переход? Осцилограмму с таймингами нарисовать сможешь? Я помню я осцилограф доставал чтобы генератор на 5 мегагерц всего настроить (там было точнее «до» потому что официально оно было всего 2).

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

Посмотрите схему.
Все 4 линии стекают в одну. Но младший бит стекает сразу без задержки. Следующий бит будет стекать с небольшой задержкой (микросекунды, но этого достаточно, чтоб приемник мог различить отдельные биты и собрать их обратно в многобитное значение). По сравнению с этими микро-задержками, такт процессора — это бесконечность.

По сравнению с этими микро-задержками, такт процессора — это бесконечность.

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

Это как если бы б у твоего и вообще «абстрактного процессора» тактовый генератор вообще убрать а оставить только скорость работы на уровне самих переходных процессов так сказать «оверклокинг до предела» но это ничего не даёт ну хотя бы просто потому что там на граничных режимах достаточной стабильности нет.

По сравнению с этими микро-задержками, такт процессора — это бесконечность.

И всё там вполне конечно как я уже писал давным давно но таки было вполне конкретно сам «кремний» по своим заводским спекам (гарантировано) работал на 2 МГц но скорость переключения теоретически обеспечивалась до 5 МГц и можно было поднять частоту тактового генератора где-то до таких пределов оставаясь при этом «стабильно чтобы различать отдельные биты» но гарантии там нет.

Карочи ты просто внутри своего «такта» квантуешь время и всё и по сути у тебя линия передачи «тактуется» по-другому. ))

Я правильно понимаю, что увеличением тактовой частоты мне удастся добиться появления квантовых эфектов?

ЗЫ: я тебе сразу предложил нарисовать осцилограмму с таймингами и на ней как раз всё прекрасно было бы б видно в т.ч. даже если твоя «линия передачи» на самом деле успевает переключиться 4 раза за период «одного условного внешнего такта».

Этот процес невозможно представить в голове, так как это миллиарды электронов, которые идут по проводнику или блокируются для создания задержки. Я по крайней мере не могу представтиь.

наверное нужно реализовать в железе и попробовать зафиксировать то что происходит на плате осцилографом (хотя такие нано интервалы времени не факт что осцилограф схватит)

Ты странный )) но ты прав на этом можно и имеет смысл и закончить.

Но младший бит стекает сразу без задержки. Следующий бит будет стекать с небольшой задержкой

1) Не масштабируется. В реальном кристалле небольшое различие длин проводников способно сбить синхронизацию. А ещё есть проблемы размазывания фронтов, после которого будут смешиваться соседние биты.
2) «Микросекунды» это в сотни раз дольше такта даже дешёвой современной FPGA.

Я правильно понимаю, что это реально реализовать, но тогда нужно ставить большие задержки между битами, чтоб вся стабилизаци и помехи успокаивались за период задержки? И это в свою очередь потребует существенного снижения тактовой частоты, чтоб, скажем, все 32 бита успели передаться.

Тогда не вижу смысла в подобной последовательной передаче, если наоборот можно:

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

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

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

Можно просверлить в кристалле микро-каналы и по ним под давлением прогонять жидкий азот

Но там могли быть поленые данные.

Ну да полной зачисткой данных «автоматом» ты лишаешься возможности удобного и сверхбыстрого канал обмена между потоками/процесами через твою «внутреннюю память» ))

Читаємо про кеш-когерентність та різні алгоритми.

когерентность кешей это ну вообще из другой оперы.

Читати все одне треба. Тому що організовувати швидкі мультіядерні та мультисокетні системи буде доволі важко.

Для справки — стоимость Cache Miss в L1 кеше — больше 10 тактов!

Утверждение некорректно. Собственно проверка L1 miss — это 1 такт. Вытаскивание данных при hit — ещё такт. А сколько стоит пойти дальше по цепочке — зависит от цены доступа следующего уровня, а не свойств самого кэша.

Обычно говорят о цифрах типа: проверка и доступ при наличии для L1 — 2 такта, L2 — 6-10 тактов, L3 — 20-30 тактов, оперативная память — 100-300 тактов. Разумеется, всё зависит от скоростей (например, на DDR4 типовое закрытие текущей строки и открытие новой это 30-35нс, это уже успех; в это время входят операции указания адреса для нового доступа; при 3GHz процессоре это 90-105 его тактов). И задержки для дальних кэшей не потому, что они медленные, а потому, что неохота перегревать процессор ;)

Я не говорю про cahce miss в кешах более высокого уровня, где это исчисляется тысячами тактов.

Таких цифр нет. Как уже сказал, даже очень медленная память это, условно, до 300 тактов (можно было получить на P4, где он разгонялся, а память оставалась медленной; сейчас заметно ниже). Кэши быстрее по определению, иначе они не нужны :)
Межпроцессорный обмен на MOESI/аналогах это десятки тактов, обычно до 30-50.

Какой смысл покупать процессор, в котором на один такт полезных действий приходится 1000 тактов борьбы с кешем?

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

В KPU все просто. Cache miss отсутствуют в дизайне.

Значит, он будет или жутко дорогим в применении (требуя только SRAM), или единообразно медленным. Оба варианта не очень хороши.

Я делал исследование на эту тему и читал в интернете. Там фигурировали такие числа. Похоже что в новых версиях смогли немного оптимизировать чтоб кеш быстрее работал.

Таких цифр я не бачив років 15 як...

(Spectre и Meltdown атаковали как раз через кеш).

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

По моим подсчетам, будет работать так же быстро как и регистры общего назначения.

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

KPU не будет поддерживать спекулятивное выполнение

Пичалько но ты должен понимать что это было основным фишком прогресса который случился резкий с перехода с 486 на пентиум и дальнейшим усложнением командной системы и пайплайна внутренних данных до разных там AVX и в твоём случае в таком случае ни об какой реализации «подобных ай-7» не идёт от слова вообще а тогда имеет обратиться внимание к наращиванию некой «суперматричности» супротив «суперскалярности» и переходу к множественноядерной архитектуре RISC которых скажем в одном чипе могло бы б быть десятки и может сотни с тем чтобы программа или «система» исполнялась на них «множественными потоками» прямо привязанными к «малому вычислительному ядру» что кстати возвращает тебя к той схеме «как со специализированными сетевыми процессорами».

Но тут другая загвоздка что тебе понадобятся программисты с резко параллельными алгоритмами (хотя может и наоборот с другой стороны сегодня всё равно ... у моей винды сейчас видны 1080 потоков соотв. если взять 1080 «малоядер» и расбросать на них на всех убрав переключения контекста и оставив системное ядро также «постоянно-привязанным» и общающимся например исключительно через внутренние процессорные специальные «регистры для системного общения» что решает видимо автоматически сразу некоторые и возможно многие и все вопросы «уровней доступа» то...) потому как сегодня современная скорость современного ай-7 достигается именно суперпараллельной работой его блоков происходящей незаметно для конченого программиста которому всё это кажется «логически однопоточным» (включая кеширование памяти из общей в быструю).

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

Поскольку каждая команда в KPU выполняется за один такт, то нет риска racing condition или того, что процесс выйдет из под контроля.

Поскольку каждая команда в KPU выполняется за один такт

Как-то я сомневаюсь в возможности такой реализации уже с делением к.м.к. возникнут вопросы.

Та не тільки із діленням. В сучасних CPU дуже мало операцій, які виконуються із темпом в 1 інструкцію за такт. Є такі що й 3000 тактів вимагають.

надо срочно замутить ICO и выпустить KPUCoin

На ДОУ будет хотя бы одна тема в которой не будет про shit-коины?

Написал главный троль форума... а если серьезно то вы могли бы не кисло бабла поднять на этом проекте, по стандартной схеме

Кстати есть целый пакован интересных реализаций на тему.

youtu.be/e8DavnWmr1E

Я хочу начать с чего-то подобного. А почему он постоянно щелкает?

Эм... потому что он на электромагнитных реле? ))

У меня на клавиатуре нет украинских букв

Процесор це шматок кремнію без:
1. периферії з якою буде працювати процесор, чи ви плануєте розробляти для нього свою материнку.
2. Підтримки компіляторами хоча б GCC
3. Підтримки операційними системами.

Скептично відношусь до вашої ідеї, вона більше підходить для курсвої/дипломної роботи ніж для реального проекту. Цей проект далі реалізації в FPGA не піде. на жаль чи на щастя це вже інше питання.

без уплаты лицензионных отчислений (плюс по сравнению с ARM).

саме це робить його сумісним з існуючим hardware та software. Зараз всі розуміють що робити свої велосипеди не вигідно.

Главная цель — предоставление рынку конкурентоспособного продукта, который будет использоваться в Украине и за ее пределами и позволит заявить об Украине на мировом рынке как об одном из лидеров в области микроэлектроники, наряду с такими странами как США, Южная Корея и Япония.

ви запізнились на кілька десятків років.

1. периферії з якою буде працювати процесор

Суто технічно у давні часи «процесор» був просто мікросхемою яку цілком можна було запустити «автономно» потрібні були лише блок оперативної пам’яті та блок тактового генератора всьо у процесі роботи усе інше можна було підключати програмно хоча да не дуже бистро.

Сьогодні якщо розглядати «програмні» підключення то більшість періферії представлена промислового випуску чіпами які взаємодіють за апаратними шинами та програмними протоколами і відповідно можуть бути підключені до будь чого що би тільки могло реалізувати (та підтримувати) шину апаратно та встигати «помпувати» її програмно.

Доречі сама оперативна пам’ять туди також відноситься.

2. Підтримки компіляторами хоча б GCC

Суто технічно у давні часи був лише асемблер процесора потім прийшов «чистий сі» який трохи спрощував та абстрагував і на якому досі написаний зокрема лінукс «целіком» тож «підігнати сішечку» можна буде но тижнів зо два якщо звісно там архітектура не буде надто вже радикальна.

Підтримки операційними системами.

Суто технічно є проект нехай і суто лабораторний але ж за яким можна «з нуля» написати власну операційну систему мінімального рівня яка би могла би запускати програмні процеси там власне ядро плюс рівні захисту відповідно до архітектури процесора (або відсутність таких) та апішечка зокрема та же ж ДОС не складала нічого такого особливо складного а «тянула» навіть другий дум.

саме це робить його сумісним з існуючим hardware та software.

Єрунда пробачте повна сумісність хардову я вже написав на то є ціла купа даташитів більшість з них на сьогодні промислові стандарти сумісніть софта взагалі реалізується кожного разу випуском власного bsp а перекомпіляти той самий лінукс особливих складнощів не складе.

ви запізнились на кілька десятків років.

Ну чого ж питання досить цікаве за даними розвідки та газети Аль Джазіра російська база військово-космічних сил у Сирії вже цього року була атакована безпілотниками буквально «склеєними скотчем та ізолентою з фанери та пластикових пакетів» тож попит на те що може «незалежати від глобальних корпорацій» і разом з тим може бути зібране з навколішнього піску (ну ок просто замовлене на китайській фабриці за власними матрицями" то він цілком потенційно є.

Ну чого ж питання досить цікаве за даними розвідки та газети Аль Джазіра російська база військово-космічних сил у Сирії вже цього року була атакована безпілотниками буквально «склеєними скотчем та ізолентою з фанери та пластикових пакетів» тож попит на те що може «незалежати від глобальних корпорацій» і разом з тим може бути зібране з навколішнього піску (ну ок просто замовлене на китайській фабриці за власними матрицями" то він цілком потенційно є.

С этим согласен. Это непреемлимо когда для государственных органов и ключевых инфраструктурных объектов покупают заграничные процессоры. Кто знает какие там закладки могут оказаться? В итоге вся страна может оказаться взломана каким-то Петей. Мы должны уйти от этого в пользу наших собственных решений, которые не имеют бекдоров и прочих дырок.

Ну вообще-то лично я думаю что в этом отношении инфраструктурные решения должны быть автономны и строго функциональны и не IoT что соотв. решает и вопрос бекдоров и прочих дырок если «английский» замок можно вскрыть булавкой но при этом он чисто физически доступен только чисто физически то и сделать со всёй страной ничего нельзя будь он вообще просто проволокой прикручен как «наше собственное решение» ))

Завжди можна зробити Форт. Зразу український.

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

Не буду судить про подъёмность самой идеи, но топикстартеру надо точно приблизиться к реальности, для этого

1. Изучить базовые учебники по VHDL/Verilog/etc. — например, учебник Полякова (легко ищется в сети). Это как введение в методы разработки цифрового «железа» и их специфику.
Попытаться сформулировать свои идеи на актуальном языке. Например, для Verilog (классического) есть opensource симуляторы, на них можно отлаживать идеи. (UPD: увидел про Logisim, это уже шаг в нужную сторону, но не знаю, насколько последовательно проработан. Всё-таки последовательный учебник достаточно полезен.)

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

После этого можно искать инвесторов, если ещё будет желание.

учебник Полякова

Спасибо за совет. Можете подсказать хорошие аналоги на английском языке?

«Digital Design and Computer Architecture» (Harris+Harris), но там сильно более общее и без упора на языки симуляции и генерации. После такой книги можно уже спускаться до языков — а вот тут не подскажу.

Я опасаюсь, что если начну читать учебник, то мой мозг ментально перепрограммируется на то, чтоб использовать готовые решения вместо того, чтоб искать инновационные. Например, когда я приступал, я ничего не знал из теории, поэтому и решил делать продвинутый dataplane, в котором устрйоства могут общаться с другими устройствами. Аналогично как работают интернет-свичи. Это было сложно реализовать, но окупилось когда мне удалось заставить все работать.

Потом я начал читать, про вещи вроде en.wikipedia.org/wiki/Bus_(computing . Если бы я знал заранее про шину данных — то я бы все реализовал на ней, и в итоге никакой инновационности бы не было, мой процессор был бы таким же ограниченым в плане пропускной способности как и все современные аналоги на рынке.

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

У тебя плохой мозг )) обычно сперва изучают «что уже было украдено до нас» в ходе чего находится сразу куча велосипедов и костылей иначе «достигаемых» «собственными силами».

Аналогично как работают интернет-свичи.

Свичи (сетевые процессоры) просто делают чётко и узко специализированную работу доступную до а) массового распараллеливания б) полной реализации «в кремнии». Это всё никак не за «general processing unit».

как и все современные аналоги на рынке.

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

Если бы я знал заранее про шину данных — то я бы все реализовал на ней, и в итоге никакой инновационности бы не было, мой процессор был бы таким же ограниченым в плане пропускной способности как и все современные аналоги на рынке

Спалился, зелёный!

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

1. У Полякова нет никакого форсирования даже шины. У дабл-Харрис — есть, можете пока не читать ;)
2. Практика показывает, что что-то новое и ценное в большинстве случаев обычно изобретается не на ровном месте без знаний, а уже имея знания, но имея цель, которая не влезает в существующие подходы. Поэтому лучше учить лучшие решения проблемной области, а потом ТРИЗ, чтобы получить общий метод создания нового.

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

И снова — если ставите цель «уйти от ограничений по скорости», то... или у вас ничего не получается в принципе, или вы ищете, где «расшить» узкое место и устранить конфликт функциональности. Ну а методы этого «расшива» берутся из справочника методов того же ТРИЗ и адаптируются на целевую область.

Чак Мур робить процесори зразу з транзисторів

Что б придумать новое надо освоить фундаментальные знания, приобрести опыт. Тебе понравилась идея придуманная не тобой. Реально твое предложение это инженерное решение только одной даже не проблемы, а задачи. И ты даже знаешь у кого ты его содрал. . Весьма наивно считать что этого достаточно для построения чего-то серьезного. Но, кое где применить можно и нужно. Одобряю само стремление. Удачи!

Тебе понравилась идея придуманная не тобой. Реально твое предложение это инженерное решение только одной даже не проблемы, а задачи. И ты даже знаешь у кого ты его содрал.

Подробнее с этого момента — у кого я что содрал?

Выше я привел ссылку на мой оригинальный дизайн процессора. Логика сделана полностью с нуля. Если кто-то делал подобное — может быть совпадение, но я ни у кого ничего не сдирал!

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

Дмитрий, я не говорю что я эксперт, я не изучал ни схемотехнику ни архитектуру процессоров.

Это топик был создан после того как мне пришла в голову идея, можно сказать, озарение, и я ее опробовал на практике в упрощенном виде. Я смоделировал тьюринг-полный процессор, который работает по моему дизайну. В следующей конфигурации:

3 регистра общего назначения
1 АЛУ
Один порт ввода
Один порт вывода
Поддержка оперативной памяти (теоритически — до 64КБ)

Я использовал за основу архитектуру Фона Неймана.
Я не столкнулся ни с какими проблемами кроме двух:
1) Нереально долго разводить линии и легко ошибиться
2) Из-за первого пункта вытекает второй — я сделал только 8 независимых каналов данных, что сильно ограничило сколько устройств я могу подключить. Один из каналов пришлось даже перегрузить (он делится между регистром и адресом перехода). Это идет против моей идеи, и в следущюей версии я не буду идти на такой компромис и сделаю достаточное количество каналов данных для всех устройств.
Я попробовал увеличить кол-во каналов данных в 2 раза, но после нескольких попыток понял, что только что развести линии мне нужно будет несколько дней (об этом ниже). Поэтому пока что застрял на здесь.

Мой дизайн сразу показал преимущества по сравнению с конкурентами:
1) Он может выполнять несколько операций параллельно (в отличие от конкурентов, которые выполняют только одну операцию)
2) Он может одновременно загружать две константы (против одной у конкурентов)
3) Он может строить из разных операций каскад, таким образом выполняя сложные инструкции за один такт. У конкурентов на сложные инструкции тратится несколько тактов.
4) Он имеет только регистры общего назначения (в отличие от конкурентов, у которых ест ьрегистры специального назначения, что снижает гибкость процессора)

Как только я найду нормальное решение чтоб разводить линии (боюсь что вручную это делать нереально долго, а прогарммам я не доверяю, разве что свою написать), этот дизайн будет иметь очень большой прорыв.

1) Нереально долго разводить линии и легко ошибиться

открою секрет, никто линии руками не разводит

Откройте еще секрет, чем их разводят?

Выглядит нереально сложно. Нужно будет попробовать, но не факт что разберусь.

а разводить линии на миллионы транзисторов руками легче?

По-моему, он говорил о логике разделения функций линий, а не о геометрических путях на плате.

С логикой проблем нет, проблемы именно с геометрией. Может быть я использую плохой инструмент (сейчас пробую Logisim) и есть что-то проще?

Это уровень лабораторной работы по схемотехнике ))) ну, ладно, курсач )
Это не решение для рынка.

Как хоби — ок. Как разработка для рынка, вообще непонятно... уже на уровне постановки видно крайне слабое понимание рынка процессоров вообще. Лет 15 назад такая заявка уже была бы с натяжкой.

Пилите уже тогда уже троичный процессор. Или лямбда-инструкции. К чему этот конформизм.

Если можно поподробнее с этого места, интересно и про троичные инструкции и про лямбда инструкции, никогда про них не слышал.

Примерно такая идея и была (про 3-ичную логику), я хочу поднять ее до уровня 5-ричной

Розробка процессора починається не з схематики, а з Instruction Set Architecture (ISA)

С Instruction Set как раз все довольно понятно. Будут многобайтные инструкции (по моим подсчетам длина инструкции около 8 байт). Часть инструкции будет отвечать за программирование DataPlane, часть за активацию устройств на чипе, еще часть для инициации событий.

Треба чітко перелічити всі інструкції, тому що їх виконання буде вимагати наявність різних функціональних пристроїв в CPU. А ще треба не забувати про кеши різного рівня, передбачувач переходів, TLB etc.

Понял.
Поскольку архитектура будет модульной, то завязывать инструкции на устройства, которые внутри, нет смысла. У кого-то может быть форк процессора, в котором, например, банально не будет АЛУ, или они будут ограничены по функциональности. Будет только несколько базовых устройств, которые гарантированно присутствуют в процессоре (чтоб он был тьюринг полным), все остальное — это расширения. Поэтому набор инструкций сам по себе не скажет как реализовать в железе. Пока думаю над этим.

У кого-то может быть форк процессора, в котором, например, банально не будет АЛУ, или они будут ограничены по функциональности.

В таком случае к.м.к. тебе имеет смысл работать над «конструктором процессоров» из которого уже можно «собирать по потребностям допиливая частями по возможностям».

Кстати помнится у СССР была такая серия кажется это был К588 там «процессор» собирался из отдельных блоков вроде регистров алу управления памятью таймеров и прочих которые были представлены отдельными микросхемами и соотв. архитектура процессора не было «определённой» в т.ч. системы команд как таковой не было она должна была быть организована самостоятельно (микрокодом или ещё как) в т.ч. и разрядность я помню была расширяемой но к.м.к. это речь уже таки о другой серии (помнится та набиралась 4-разрядными блоками и соотв. мог быть 12-битный или там 24/48-битный проц).

Это хорошая идея. Возможно, даже прийдется придерживаться такого подхода, так как у меня пока нет возможности делать кремниевые пластины (сейчас смотрю руководство как в домашних условиях делать кремниевые пластины, но довольно сложно выглядит). А если процессор модульный, то можно собрать все компоненты модуля на плате, и вставить ее в слот или соединить шлейфом. И так много плат собираются большой вычислительный мозг, в единое целое.

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

Да ладно чувак есть же ж FPGA как то бишь оно по-нашему ПЛИС на них даже те самые сетевые процы об которых ты говорил делают ))

у СССР была такая серия кажется это был К588 там «процессор» собирался из отдельных блоков вроде регистров алу

Таких серий был чуть ли не десяток. 581, 583, 586, 588, 589, затем некоторые из 18xx...
На них было удобно строить реализации компактных целевых систем команд для всяких военных применений типа процессоров РЛС.

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

Прототип будет работать на уровне 386. Конечная Цель — сделать достойного конкурента для современных процессоров уровня i7.

сделать достойного конкурента для современных процессоров уровня i7.

Это практически малореально да и не вполне понятно нужно ли?

Современные мощности «рядового ай-7» тратятся в основном на многокилобитную графику и «раздвинутые булки UX» принципиальных изменений всё того же ж «текстового документа обычного» со времён печатной машинки так и не наступило.

К интернетам всяким это также ж относится.

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

Это как приходишь ты домой а зайти в дверь включить свет попить воды помыться и просто покакать никак нельзя потому что интернета нету а всё локальное «мозгами» исключительно там где-то далеко очень далеко ))

Мне кажется, на DOU нужно больше подобных тем. Даёшь легалайз сами-знаете-чего!

Не, нуачо? Где-то смешно, где-то серьезно, да и поговорили.

Очень много проблем, в частности связанны с тем, что все компоненты объеденины в топологию bus. Это накладывает большие ограничения на пропускную способность. В итоге много транзисторов завязаны на одну шину, и должны ждать пока она освободится. Представьте вы покупаете процессор (не буду называть имена) с миллиардом транзисторов, но из-за низкой пропускной шины внутри процессора половина транзисторов простаивает и ждет пока шина освободится. Вы заплатили $100, а получили производительности на $50. Я хочу избавиться от этой проблемы в KPU и дать возможность использовать все транзисторы на процессоре одновременно.

Я думаю что очень много инноваций в KPU будет связано с топологиями, которые обычно не используют в разработке процессоров. Я думаю позаимствовать кое-какие идеи из топологий интернет сетей, в частности partial mesh и clos. Я уже сделал некоторые эксперименты на базе топоолгии Clos и получил обнадеживающие результаты. Недостатки — сложность разводки линий (это пока самое слабое место) и сложность программирования элементов топологии. Первое можно решить увеличением пропускной способности каждой линии (описал ниже), второе — более умным блоком управления (над этим пока не думал)

Ну да, только вот будет «заплатили $10000 а получили производительности на $5». Еще раз рекомендую изучить российский опыт :)
Raspberry Pi они вроде как до сих пор ни в чём кроме цены не обогнали со своим VLIW

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

нанял Intel и перевез в штаты.

Не у него русских непосредственно территориально географически несколько офисов ну и еврейских ещё штуки 3 или 4.

Не хочу никого огорчать но у интела, который, якобы, «всех нанял», тоже ничего не вышло с VLIW. При чем как минимум дважды — с i860 в 1989м, когда оказалось что ни один компилятор не способен выжать с процессора больше чем 10-15% теоретической производительности, и даже на ассемблере то получалось не более 60% от пика. Хотя, говорят что винду NT писали изначально именно на эти процы — архитектура считалась очень невероятно перспективной. Но производительность так и не поправили и тема сдохла. Потом был Ithanium в 2001м — тоже очень невероятно перспективный проц (правда уже чуть менее VLIW — там достаточно всё хитро) и на нем даже винда работала (называлось ia64 в WinXP и Server 2008), но ВНЕЗАПНО оказалось что ни один компилятор не способен выжать с этого проца хорошую производительность (какой сюрприз, правда?) и тема опять сдохла, из винды поддержку убрали, другие вендоры тоже понемногу отказываются от поддержки, процы новые если и выходят то раз в 5 лет — в общем, консервация до лучших времен.
Так что там с Эльбрусом, говорите? Совпадение? :)

UPD: посмотрел что с итаниумом — в 2017м году выпустили новую модель в которой нет ничего нового кроме слегка поднятых частот (по идее — ради выполнения обязательств по контрактам) и объявили что это последний Itanium. Усё, RIP.

Не хочу никого огорчать но у интела, который, якобы, «всех нанял», тоже ничего не вышло с VLIW.

Смешно. У них все GPU построены на VLIW. Как и у AMD.

Так вроде ж разговор за general purpose а не «национальный украинский GPU», или я что-то пропустил? Да и с GPU у интела тоже, в общем-то, ничего не вышло — не зря же на новейшем мобильном проце от Intel красуется AMD Vega. Которая, кстати говоря, уже не VLIW (начиная с архитектуры GCN отказались).

Ну да, потому что 67% вообще не нуждаются в GPU как таковом, UI композить может да и ладно. Ах, да, и видео декодировать в HW. А предложить что-то получше для тех кто таки нуждается в GPU интел настолько не в состоянии что пришлось ставить решение от AMD на общей подложке.

Я и не говорил что им это ну очень нужно, речь о том что даже когда и нужно то интел не может.

Ну, «APU» это конечно грозный оппонент — там мобильные процы настолько херовые что интеловский Атом выглядит на их фоне самолетом (и я сейчас даже не особо шучу — мне вот буквально на днях пришлось притронуться к ноуту с AMD, проц хуже чем дешевый интел года этак 2007го, еще из «Core Duo» поколения). Так что существующие модели попросту дохлота, а сравнивать с новым поколением пока особо негде.
Да и с edram тоже хороший вопрос — в свежих моделях (Kaby Lake) в попугаемерках разница между «Iris» и «не Iris» где-то 20%, что хоть и не поражает воображение но позволяет догнать и обогнать мобильные видяхи года этак 2012го, тогда как тот самый проц с графикой AMD вроде как бодается с NVidia последнего поколения — т.е. там не 20% а раза так в 4 поднята производительность.

Да, райзен какбэ «есть» только его еще нету. Я перед тем как строчить коммент попробовал найти какие-то тесты с Vega 10 но увы.
Vega 8 вроде как слегка проигрывает разве что Iris Pro 580 и соответственно выигрывает у всех остальных интеловских GPU.

Так я больше о том что AMD мощно просрало рынок процессоров в феерических масштабах, что не очень хорошо сказывалось и на APU тоже. К примеру, все консоли на APU от AMD — графоний вроде ничотакой. С чего можно сделать вывод что технологии у них есть, просто не выкатываются на рынок десктопов.

А предложить что-то получше для тех кто таки нуждается в GPU интел настолько не в состоянии что пришлось ставить решение от AMD на общей подложке.

AMD GPU проигрывает интеловским по производительности, но выигрывает по соотношению производительность — потребление.

Так наоборот же:

ark.intel.com/...​s-8M-Cache-up-to-4_20-GHz
ark.intel.com/...​r-8M-Cache-up-to-4_20-GHz

У проца с GPU от AMD TDP 100W, с GPU Intel — 10-25W в зависимости от конфигурации.
А по производительности там и сравнивать особо нечего — Intel заявляет что новая интеграшка уделывает GTX1060
www.engadget.com/...​1/07/intel-amd-rx-vega-m

Или я что-то пропустил и вместо GTX1080 за многоденег мне нужно было пользоваться интеграшкой от Intel? :)

Так наоборот же:
ark.intel.com/...​s-8M-Cache-up-to-4_20-GHz
ark.intel.com/...​r-8M-Cache-up-to-4_20-GHz

Что ты с чем сравниваешь? То, что у дохлого Intel® UHD Graphics 620 25W, ну да, только разговор был за Iris HD, это другой класс.

Или я что-то пропустил и вместо GTX1080 за многоденег мне нужно было пользоваться интеграшкой от Intel? :)

Ты какой-то странный. Чего ты прыгаешь от чипа к чипу, сравниваешь разные классы? Вот реальная позиция Radeon RX Vega M-GH:

www.techpowerup.com/...​/3056/radeon-rx-vega-m-gh

Ещё вопросы?

Что ты с чем сравниваешь?

Сравниваю один и тот же проц с интеграшкой от интела и интеграшкой от AMD.
Если посмотреть что там у GT4e
ark.intel.com/products/93335
ark.intel.com/products/88959

То отличие в TDP между HD Graphics 530 и Iris Pro 580 целых 0 (прописью: ноль) ватт. Вне всякого сомнения в реальности ирис жрет больше, но не настолько больше чтобы поднимать ради него тепловой пакет сборки.

Чего ты прыгаешь от чипа к чипу, сравниваешь разные классы?

Прозвучали странные заявки на тему того что GPU у интела якобы невероятно крутые и вообще рвут всё что движется. Или я что-то недопонял :)

реальная позиция Radeon RX Vega M-GH

Ну, глянем где у нас самый наитоповейший

Iris HD

В форме Skylake GT4e
www.techpowerup.com/...​788/iris-pro-graphics-580
«Реальной позиции» для интеграшек на техповерапе правда нету, но если смотреть на производительность в вычислениях то разница где-то раза в 3.

Еще можно глянуть на игровые результаты ближайшего соседа по «реальной позиции» — GTX950 — там разница с Iris Pro в 4 раза не в пользу интела:
www.futuremark.com/...​s Pro Graphics 580/review
www.futuremark.com/...​IA GeForce GTX 950/review

То отличие в TDP между HD Graphics 530 и Iris Pro 580 целых 0 (прописью: ноль) ватт. Вне всякого сомнения в реальности ирис жрет больше, но не настолько больше чтобы поднимать ради него тепловой пакет сборки.

Там у Iris пониженная частота, ну и TDP — это максимальное потребление, а не среднее. Потолок у двух процессоров по потреблению одинаковый, а вот среднее потребление очень даже разное.

Прозвучали странные заявки на тему того что GPU у интела якобы невероятно крутые и вообще рвут всё что движется. Или я что-то недопонял :)

Именно так, в своём классе они очень быстрые.

«Реальной позиции» для интеграшек на техповерапе правда нету, но если смотреть на производительность в вычислениях то разница где-то раза в 3.

В каких вычислениях?

1170 GFLOPS of the 950M GTX
1152 GFLOPS of Iris pro 580 GT4e.

DP — это максимальное потребление, а не среднее

Это я понимаю, как и то что на 100% загрузить и процессор и видео в модели с Iris скорее всего не получится (будет троттлить).
Там начиналось все с того что у АМД якобы энергоэффективность выше :)

Именно так, в своём классе они очень быстрые.

Если сравнивать с PowerVR — то да, это бесспорно.

В каких вычислениях?

В вашем пруфлинке, в общем-то, с AMDшной интеграшкой сравнивается десктопный GTX950 а не эмка, у которого 1,825 GFLOPS.

Опять-таки, «реальное положение» там меряется по играм а не GPGPU — а в играх GTX950 уходит далеко вперед не взирая на сравнимые флопсы.

Но давайте вспомним с чего эта вся дисскуссия началась — с утверждения о том что у Intel все плохо с энергоэффективностью и поэтому там доклеили чип от AMD.
Получается что «почти бесплатное» видео от Intel на ~1.1 TFLOPS жрет 45 ватт вместе с процом, тогда как сравнимый новый чип от Nvidia (GeForce MX150) жрет 25 ватт сам по себе, а старый (15й год, и тоже сравнимый в GPGPU) 950М — все 55 ватт. У AMD Radeon
R9 M470 жрет вообще 75 ватт. У Веги должно быть получше за счет HBM памяти (но, в случае с RX Vega M-GH там и терафлопсов целых 3.5), хотя все равно похуже чем у Nvidia.
Получается, все хорошо у интеля с энергоэффективностью в GPGPU. Может, у PowerVR все еще лучше, но на десктопно-ноутбучном рынке едва ли не наилучший результат.

А вот конкретно производительность игровая у интела так себе:
www.futuremark.com/...​IDIA GeForce MX150/review
www.futuremark.com/...​VIDIA GeForce 950M/review
И самая простая NVidia, и 950М показывают значительно лучший результат не взирая на одинаковую производительность в GPGPU.

Впринципе, именно исходя из этого я и писал выше что у интела с GPU не очень получается. В GPGPU расклады могут сильно отличаться, но опять-таки — топовый интел это entry level по меркам других GPU и нарастить производительность они не могут (я так подозреваю не в последнюю очередь из-за того что шина памяти общая у процессора и GPU).

Там начиналось все с того что у АМД якобы энергоэффективность выше :)

начиналось с того, что у AMD выше соотношение производительность на энергопотребление. Поднять из сна процессор, выполнить инструкции и погрузить в спячку. Грубо говоря для отрисовки одного фрейма у AMD нужно затратить 2ms при потреблении 60W, у Intel 5 ms при потреблении в 30W.

Процессоры у АМД пожизненно были шлаком. АМД всегда завлекала покупателей только более низкой ценой.

Брехня. Фанатська маячня. Атлон 64 був суперським процом. Атлони FX коштували 1 кілобакс та розліталися як гарячі пиріжки. А от 2066, так званий HEDT від інтеля, зараз реальний шлак.

Все еще позволю себе не согласиться — соотношение FLOPS/W скорее всего даже при сравнении свежего AMD с несвежим Intel будет в пользу последнего — чипы AMD (включая GPU Vega) славятся очень высоким энергопотреблением и нагревом.
Т.е. это размен эффективности на максимальную скорость, а не повышение эффективности системы в сборе.

Т.е. это размен эффективности на максимальную скорость, а не повышение эффективности системы в сборе.

Они встроили вегу именно в ультра-лоц-пауэр серию. Как раз для этого.

Так вроде ж разговор за general purpose а не «национальный украинский GPU», или я что-то пропустил?

Пропустил. У них GP (general purpose) GPU.

Да и с GPU у интела тоже, в общем-то, ничего не вышло

Меня всегда улыбают такие аналитики. Что не вышло?

не зря же на новейшем мобильном проце от Intel красуется AMD Vega

А до этого они использовали PowerVR графику на ULP процессорах и что? Там где нужна скорость наравне с низким потреблением, они используют свои GPU. Там где нужно максимальное время от батареи — они предпочли AMD. Например, в automotive их GPU по производительности на уровне не самых топовых Intel Iris HD девятого поколения. Могу зашарить код raytracerа на шейдерах, в автомобиле он выдаёт 105 FPS в разрешении 1920×1080. Самые топовые embedded GPU от других производителей не дотягивают и до 20 FPS.

technical.city/...​-vs-Iris-Pro-Graphics-580

У них GP (general purpose) GPU

Впринципе, все GPU уже GP :). Что характерно — переход на GP совпадает с отказом от VLIW (вроде как у NVidia тоже когда-то был VLIW). Если и в самом деле «Graphics Device Driver Developer» то я думаю можно не рассказывать какие раньше были ограничения в шейдерах и почему оно было хорошо для VLIW.

Что не вышло?

Мощное видео.

Самые топовые embedded GPU от других производителей не дотягивают и до 20 FPS.

Т.е. интеграшка от Intel уверенно нагибает карточки Nvidia? :)
А там точно именно HD Graphics а не какой-нибудь Xeon Phi? :)

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

Если и в самом деле «Graphics Device Driver Developer» то я думаю можно не рассказывать какие раньше были ограничения в шейдерах и почему оно было хорошо для VLIW.

Рассказывай, я открыт для всякой дичи.

Т.е. интеграшка от Intel уверенно нагибает карточки Nvidia? :)

Facepalm. Причём тут карточки от nVidia?

Рассказывай, я открыт для всякой дичи.

Господин разработчик драйверов не в курсе что в старых шейдерных моделях не было ветвлений? :)

причём тут карточки от nVidia?

Так вроде они же больше всех штампуют процы под automotive? Я, правда, особо не интересовался, но свои автомобильные платы они показывают чаще чем видеокарты последние пару лет.

Господин разработчик драйверов не в курсе что в старых шейдерных моделях не было ветвлений? :)

Насколько старых? The OpenGL Shading Langugage 1.1, revision 59, 2004 уже есть.

Так вроде они же больше всех штампуют процы под automotive? Я, правда, особо не интересовался, но свои автомобильные платы они показывают чаще чем видеокарты последние пару лет.

Бугага. Рынком владеет Imagination Technologies со свом PowerVR и Rogue. Интел и nVidia пытаются их выбить с переменным успехом, несмотря на превосходство. Ибо выигрывает не столько GPU, сколько весь SoC в сборке.

The OpenGL Shading Langugage 1.1

Так то ж язык высокого уровня? Или господин разработчик драйверов не знает как тогда if/else компилировался? :)

Шутки в сторону — в массовых приложениях всякие костыли с lerp были актуальны даже во времена DirectX11 в 2012м году (кстати говоря самый грустный случай был этот самый Intel с PowerVR). То что оно «поддерживается» еще не значит «работает быстро». В лучшем случае успешно выоптимизируется компилятором либо полностью либо в lerp.

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

Рынком владеет Imagination Technologies

Хм, не знал. Впрочем, в нынешний автомотив я внутрь не лажу — самое свежее что мне попадалось в автомобиле это интеловский i960 (удивился я тогда знатно).

Так то ж язык высокого уровня? Или господин разработчик драйверов не знает как тогда if/else компилировался? :)

Во времена ARB Assembly компилировался в conditional set. Только во времена ARB Assembly там были такие ограничения на размер кода, что if/else там был просто не нужен, держали целую пачку программ на всякий случай.

Шутки в сторону — в массовых приложениях всякие костыли с lerp были актуальны даже во времена DirectX11 в 2012м году

Какие костыли с линейной интерполяцией?

держали целую пачку программ на всякий случай

В 2012м году на массовом железе было все то же самое — куча #ifdef, компиляция всех возможных (или, когда их слишком много, всех нужных) комбинаций, выбор шейдера в рантайме.

Какие костыли с линейной интерполяцией?

Считаем обе ветки, потом выбираем нужный результат. Обычно — комбинацией step/lerp
Т.е. код вида

if(x>0.15){
    x = funcA();
}else{
    x = funcB();
}
ловким движением руки превращается в:
branchA = funcA();

branchB = funcB();

x = lerp(branchA, branchB, step(x, 0.15));

И никаких ветвлений :)

ловким движением руки превращается в:
branchA = funcA(); branchB = funcB(); x = lerp(branchA, branchB, step(x, 0.15));

Прикольно. Я во времена ARB Assembly видел подобное с умножением на 0 или 1 и conditional move в конце:

TEMP temp = {0.15};
SGE A, temp, B

Всё равно считались две ветки. Это уже похоже на профессиональную деформацию :) Недавно просто поправив подобный код у одного кренделя получил 300 FPS вместо 200 FPS. То, что раньше было жизненно необходимо, сейчас уже тормоза.

Умножение на ноль — это обычно когда нужно что-то вида
if(x > 0){ x += funcA(); }
считаем значение, если добавлять его не надо — умножаем на ноль.

Это уже похоже на профессиональную деформацию :)

Не-не, не подумай, меня пещерный программист не кусал :)
Приезжал баг вида «а ваше приложение на ГовнПЦ654 лагает». Ну а дальше выяснялось что хоть GPU там «поддерживает» и «совместим» но в реальности применение ветвлений вызывает просадку в несколько раз. Увы.

Возвращаясь к первоначальной дискуссии — о VLIW — есть подозрение что такой вот код с lerp-костылями очень хорошо на этот VLIW ложился. Программа-то всегда исполняется одинаково и предсказуемо и компилятор может со 100% точностью предсказать как оно будет распределяться по блокам.

То, что раньше было жизненно необходимо, сейчас уже тормоза.

Сейчас уже везде нормальные динамические шедулеры (ибо GPGPU тоже требует) которые умеют запускать новые задачи на ядрах которые взяли быструю ветку — раньше даже с этим были приколы. Такие ядра все равно могли ждать на «медленные» для того чтобы получить новую задачу всем скопом (у nvidia с этим даже на 9й серии есть нюансы, правда, уже только в случае если смешивается GPGPU и 3D нагрузка).
Да и раньше оно тоже не всегда классно работало, но когда нужно было выбирать между просадкой с 300 до 200 фпс на топовых машинах (а по факту — неизменно 60 ибо VSYNC, просто график загрузки GPU слегка шевелился) и поднятием с 10 до 30 на каком-то относительно массовом говне выбирали обычно последнее. Ну или плодить #ifdef и выбирать реализацию в рантайме по черным/белым спискам что тоже не всегда удобно.

К сожалению я не в курсе что там сейчас — шейдера я уже почти не пишу (а для проектов на сотни миллионов пользователей — совсем не пишу), поэтому изменилась ли ситуация за 5 лет (а если да — то насколько) сказать не могу.

Кстати, можно пруфлинк по поводу VLIW в GPU от Intel?

Спасибо, мне спеки на GPU как-то не попадались

Кстати, а где там о VLIW?
Я вот читаю доки по Kaby Lake и там есть EU Array с кучей SIMD модулей и Shared functions которые управляются при помощи message dispatch (в рантайме).
При этом у EU „Execution is multi-issue per clock” — суперскаляр, видимо. Или там статический multi-issue с маркерами в compile-time?
Хотя, в Volume 7 есть следующее:
„The EU provides parallelism at two levels: thread and data element. Multiple threads can execute on the EU; the number executing concurrently depends on the processor and is transparent to EU code.”
Т.е. „хардварные” потоки там есть но из софта это не видно.
„The EU is not required to execute steps in its internal pipeline sequentially or in order, so long as it produces correct results.” — суперскаляр все-таки?
„EU native instructions are 128 bits (16 bytes) wide” — инструкции большие, но это еще не VLIW — статического ILP там нету. В инструкции есть куча префиксов/постфиксов — Predication/Masking/Regioning/Swizzling и т.д. и т.п. но запихнуть несколько опкодов сразу нельзя.

Или я что-то не то смотрю?

Смотри ISA, оно там есть для более ранних процессоров, для самых последних нет, но оно одинаковое, только минорные изменения. Там есть три режима работы SIMD8, SIMD16, SIMD32, самый распространенный SIMD16, где EU захватывает до 4 совместимых комманд сразу для параллельного выполнения, если команда несовместима с VLIW, вставляется NOP и тред EU отдаётся другим задачам. Задача компилятора паковать комманды по 4 в группу. Там нет статического ILP, он динамический.

add (16) g32<1>F g14<8,8,1>F −0.0627451F { compr align1 };
mul (16) g32<1>F g32<8,8,1>F g2.16<0,1,0>f { compr align1 };
add (16) g32<1>F g32<8,8,1>F g2.20<0,1,0>f { compr align1 };
add (16) g14<1>F g32<8,8,1>F 0.0627451F { compr align1 };

или

mul (16) g30<1>F g42<8,8,1>F g6.0<0,1,0>F { compr align1 };
mul (16) g28<1>F g44<8,8,1>F g6.4<0,1,0>F { compr align1 };
add (16) g30<1>F g30<8,8,1>F g28<8,8,1>F { compr align1 };
add (16) m2<1>F g30<8,8,1>F g6.12<0,1,0>F { compr align1 };

Упакуются в одну VLIW команду.

Режимов вроде как больше (еще есть несколько AOS режимов), но интересно другое:
After scheduling the next instruction from the currently executing thread, if any of the four units are free, the EU tries to fill them from instructions from other threads (processed in oldest to newest order).
Плюс во многих местах я видел предупреждения о том что инструкции не выровнены по времени исполнения — т.е. такой блок из четырех инструкций может быть исполнен не одновременно (как мне представляется — особенно в случае сатурации по памяти или cache thrashing, что приехало то и посчиталось).

нет статического ILP

Давайте уточним терминологию :)
VLIW это в общем случае и есть статический ILP. Если нет ILP в статике — значит это не VLIW.
Даже вот с пипедии: «VLIW method depends on the programs providing all the decisions regarding which instructions to execute simultaneously».

Более того, execution ports есть и в современных x86 процессоров (и под это тоже можно оптимизировать порядок инструкций), но это не делает x86 VLIW архитектурой т.к. финальные решения что, как и в каком порядке исполнять принимает процессор а не компилятор.
Чтобы не кидаться отсылками в мануалы вот кусочек обзора Haswell со сравнением других интеловских архитектур:
www.anandtech.com/...​ls-haswell-architecture/8

У AMD в общем-то всё то же самое:
www.anandtech.com/...​uctionlevel-parallelism/4

И даже у ARM на примере ядра Cortex A57 есть несколько пайплайнов (на этот раз ссылка в мануал):
infocenter.arm.com/...​oc.ddi0488c/CJHFJJFC.html

Так что динамический ILP это сейчас скорее норма для любого high performance ядра.

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

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

VLIW это в общем случае и есть статический ILP. Если нет ILP в статике — значит это не VLIW.

Кто сказал? Или это из серии, если усилитель не ламповый, то это не усилитель?

www.google.ca/...​9k1j0i131k1.0.0IfgJaCCvRg

если усилитель не ламповый, то это не усилитель

Если ламповый усилитель без ламп то он не ламповый, эмуляция ламп на полевиках за лампы не считается.

Можно глянуть в abstract оригинальной статьи которая представила термин «VLIW»: dl.acm.org/...​on.cfm?doid=800046.801649
Или даже перейти по вашей же ссылке в гугл и открыть первый результат:
www.hpl.hp.com/...​hreports/93/HPL-93-52.pdf
(у меня это статья от HP на тему "Dynamic Scheduling Techniques for VLIW Processors), и прочесть там какое же свойство определяет VLIW:
The ability to specify multiple, independent operations in each instruction.
Чего ни у GPU Intel, ни у x86, ни у ARM нету.

Если ламповый усилитель без ламп то он не ламповый, эмуляция ламп на полевиках за лампы не считается.

Но вот ты и ответил, что VLIW никоим образом не подразумевает статический ILP, так было просто в первой реализации, только и всего.

The ability to specify multiple, independent operations in each instruction.

Да есть всё у intel GPU, там различными масками и dependency control можно превратить всё в старый горбатый классический VLIW, вопрос только зачем?

у x86

Там это совсем не VLIW, ибо куча ограничений, а интеловский GPGPU можно заставить работать именно во VLIW режиме.

Да есть всё у intel GPU, там различными масками и dependency control можно превратить всё в старый горбатый классический VLIW, вопрос только зачем?

Ну хоть прочтите-то цитату дальше чем слово «operations» — там есть еще «in each instruction» чего как раз и не хватает.
А если добавить этот самый «in each instruction» функционал то получается статический ILP.
В том же документе от HP, кстати, есть еще одно определяющее свойство:
The requirement for static, compile-time operation scheduling taking into account operation latencies and resource availability.

А это вообще прямым текстом статический ILP который одно из свойств VLIW. Внезапненько.
В общем, требую другой пруфлинк с другим определением VLIW :)

Там это совсем не VLIW, ибо куча ограничений

Почему же — точно так же как и с GPU можно выбрать одну конкретную микроархитектуру и делать под нее микрооптимизацию с учетом какие там execution ports и какие инструкции как могут исполниться.

PS:
Еще один линк из вашего же запроса в гугл:
home.deib.polimi.it/...​ano/FilePDF/AAC/VLIW1.pdf
Тут как раз слайды из лекции где обьясняется что такое VLIW — посмотрите пожалуйста.

В общем, требую другой пруфлинк с другим определением VLIW :)

Честно сказать? Ты занимаешься никому не нужным мозгоебством. Можно ли называть процессор всё ещё RISC, если у него есть команда conditional move? Можно ли Pentium называть x86 процессором, если у него появился параллелизм команд? Можно ли называть процессор VLIW’ом, если компилятор задаёт общую канву выполнения, а процессор лишь старается ей следовать?

Если бы ты открыл Фишера, то увидел бы:

More formally, VLIW architectures have the following properties:
— There is one central control unit issuing a single long instruction per cycle.
— Each long instruction consists of many tightly coupled independent operations.
— Each operation requires a small, statically predictable number of cycles to execute.
— Operations can be pipelined.

Последний пункт — шах и мат. Ни слова про статический ILP. OPERATIONS_CAN_BE_PIPELINED. И всё это есть у интеловского GPU.

Ну хоть можно было прочитать перед тем как постить. Или чукча не читатель, чукча писатель?
У Фишера все то же самое что и везде:

issuing a SINGLE long instruction per cycle

SINGLE
SINGLE
на общепонятном — ОДНА инструкция на цикл, не 4 расположенные определенным образом :)

Each long instruction consists of many tightly coupled independent operations.

Тоже нету — операция в каждой инструкции одна (или 2 для compressed режима, но даже тогда они строго зависимы — ни «many» ни «independent» нету).

Each operation requires a small, statically predictable number of cycles to execute.

Тоже нету — в мануале как раз пишет что тайминги не гарантируются

Operations can be pipelined.

Это серьезно или издеваешься? Суперскалярность и пайплайнинг вообще никак не связаны.
Хотя, да, согласен — пайплайнинг у Intel GPU есть. Теперь все процессоры с пайплайнингом VLIW? :)

SINGLE
на общепонятном — ОДНА инструкция на цикл, не 4 расположенные определенным образом :)

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

Тоже нету — в мануале как раз пишет что тайминги не гарантируются

Где? Не гарантируется время выполнения большой команды, из-за недоступности внутренних блоков. Точно также как в первом VLIW процессоре не гарантировалась из-за шэринга ALU, который надо было переключать в разные режимы. Сейчас ты будешь топить, что наличие кешей для данных полностью конфликтует с идеологией VLIW, т.к. убирает предсказуемость выполнения команд, так?

Тоже нету — операция в каждой инструкции одна (или 2 для compressed режима, но даже тогда они строго зависимы — ни «many» ни «independent» нету).

Если бы ты занялся ретроспективой, то увидел бы, что первое, что ввели во VLIW процессоры после первых неудачных моделей — это было произвольное количество команд на операцию.

Это серьезно или издеваешься? Суперскалярность и пайплайнинг вообще никак не связаны.

Где я написал хоть слово про суперскалярность? Впрочем уже не важно.

Меня просто очень удивляет неспособность вроде бы грамотного человека понять что же такое VLIW — а именно, перенос планировщика из процессора в компилятор для экономии транзисторов, при чем одним конкретным способом — кодированием операций для всех блоков процессора прямо в одной инструкции.
Т.е. VLIW — это всего-лишь частный случай static ILP.
И этот весь спор на тему является ли ядро с multi-issue dynamic ILP у которого есть и планировщик (ради удаления которого VLIW и затевался), и OOE и все прелести частным случаем static ILP — это просто сюр какой-то.

понять что же такое VLIW

Я ещё по прошлым дискуссиям заметил, что он смешивает VLIW с EPIC. Впрочем, Вы тоже, похоже, смешиваете. В последнем действительно static ILP по определению.

Так EPIC это же вроде как старая назва Itanium (ну или по крайней мере разработки HP/Intel в начале 90х на тему VLIW)?
Насколько я понимаю там главное над чем велась работа — это вытекающая из определения (например от Фишера которое процитировано чуть выше по треду) фундаментальная несовместимость даже очень похожих VLIW процессоров между собой (новая модель процессора — уплыли тайминги — бинарники несовместимы, или добавился новый блок — тоже несовместимы), собственно концепт «длинной инструкции» был убран и добавили группировку инструкций.
Получается статический ILP и там и там — у VLIW мы напрямую во время компиляции задаем какой блок процессора что делает (если есть хотя бы 2 одинаковых блока — имеем паралельное исполнение, в оригинальном документе предлагалось делать несколько десятков универсальных модулей), в EPIC же статический ILP на уровне инструкций — делаем пометки «эти инструкции можно исполнять паралельно», и в зависимости от того какие модули в конкретного процессора есть в наличии они выставляются на исполнение.
Или я что-то недопонимаю?

собственно концепт «длинной инструкции» был убран и добавили группировку инструкций.

У Itanium и то, и то — между блоками, которые могут перекрываться по результатам, надо ставить явную пометку сериализации (в ассемблере это «;;»)

EPIC без длинных базовых команд это, например, Эльбрус-4 (тот самый российский), там пачка достаточно длинного размера, за которой идёт «commit» (то же «;;» по сути). И там тоже сплошные ограничения типа «не больше 4 команд одновременно на АЛУ-операции 1-го типа».

в EPIC же статический ILP на уровне инструкций

В общем EPIC и VLIW не противоречат друг другу, но явный VLIW без EPIC имеет мало смысла. Неявный же есть сейчас почти везде (в x86 рекомендация выравнивать точки перехода на границу 16 байт является неплохим приближением к нему).

Неявный же есть сейчас почти везде

Но тут есть нюанс в том что VLIW и EPIC — это свойства системы комманд, тогда как «неявные» похожести в x86 (или тех же Intel GPU из-за которых весь этот срач) это «особенности реализации» конкретной модели (или семейства) процессоров, в основном вытекающие из особенностей реализации dynamic ILP в ядрах (очевидно что код который максимально разжеван компилятором под эти особенности будет быстрее чем просто рандомный код).
Поэтому назвать x86 (или что-то другое с «неявностями») EPIC или VLIW не корректно — система комманд нам ничего не гарантирует и ничего не требует (хоть есть процессоры, например, Intel Atom который без OOE, которые очень сильно зависят от этих неявностей).
Главное это то, что это учитывать не требуется от слова «совсем» — код будет работать корректно, просто медленнее.

хоть есть процессоры, например, Intel Atom который без OOE

Какой без OOE? Это было лет 10 назад.

Все которые до Silvermont например? Который, кстати, вышел осенью 13го года, а реальные девайсы на нем и того позже, так что я успел насладиться in-order вариантами сполна.

«особенности реализации» конкретной модели (или семейства) процессоров, в основном вытекающие из особенностей реализации dynamic ILP в ядрах

С этим полностью согласен.

Поэтому назвать x86 (или что-то другое с «неявностями») EPIC или VLIW не корректно

EPIC тут немного ни при чём, а про VLIW я говорил именно что оно реализуется (во всём с OoO) схожим образом. А может и не реализовываться — да, те же Атомы, Эдисоны и прочая мелкая шушера.

Но основной посыл остаётся — явный VLIW нафиг не нужен без EPIC (поэтому их и смешивают чуть менее, чем везде) или спец. архитектур типа DSP (о которых тут не говорим), а EPIC полезен только там, где нет проблем типа «а вот тут мы попали на тотальный cache miss и все сидят курят 150 тактов, хотя могли бы сделать ещё 50 команд вперёд данной». Судя по просачивающимся данным типа «KabyLake может выполнять цепочки до 97 команд от первой незакоммиченной» (97, Карл!), проблема задержек отдельных команд настолько серьёзна, что любую форму EPIC на архитектуре с DRAM и кэшами можно только обсмеивать.

Косвенно это подтверждают рассказы про «Эльбрус» — если снять верхний слой фантастической лакировки, окажется, что он вырывается вперёд на SIMD алгоритмах (которые легко вылизать с грамотной расстановкой prefetchʼей), но проваливается на невекторизуемых задачах общего назначения.

97 команд от первой незакоммиченной

Видел сегодня инфу по будущему самсунговскому Exynos — там reorder queue depth увеличили до 226 (видимо, ну очень хотят догнать Apple в single thread). И execution ports там тоже дофигища — 5 integer, 3 FP, плюс отдельный branching и еще-что-то-там.

Судя по просачивающимся данным типа «KabyLake может выполнять цепочки до 97 команд от первой незакоммиченной» (97, Карл!)

SkyLake: en.wikichip.org/...​)#.C2.B5OP-Fusion_.26_LSD

Спасибо за ссылку, что-то мне не нагуглилось. Надо весь сайт в закладки занести (пока как-то не было необходимости). 97 на шедулер и 224 на reorder buffer — ещё радикальнее, чем думал.

Информацию, что там, нужно хорошо фильтровать, ибо вот эти веселые картинки обычно идут с инженерными образцами и часто не являются истиной для масс-маркета. Часто инженерные образцы — это топовые процессоры, младшие модели, как и экстрим могут сильно отличаться. Иногда инженерный образец не доживает до масс-маркета вообще, как было с последним атомом, с ревизии B на С они дропнули 4 предпологаемых модельных ряда и оставили только 2 — low power и топовый, документацию никто не обновлял и что там внутри поменялось — хз, но процессор на той же частоте стал на 20% быстрее, техническую документацию уже никто не обновляет. Даже со вторым поколением атомов они выделывали подобную штуку, несмотря на декларируемую базовую архитектуру они якобы «модернизируют» текущую архитектуру и добавляют одну букву и 20 млн транзисторов и обкатывают.

The ability to specify multiple, independent operations in each instruction.

KPU будет поддерживать эту функцию, в зависимости от типа инструкций можно будет выполнить одновременно до 64 инструкций за такт. Получается что он сможет выступать и в роли GPU или GPGPU

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

(может быть напутал что такое операции и инструкции, я не совсем разбираюсь в терминологии)

Да-да, KPU это VLIW. И «выстраивать цепочку» там в некоторых классических вариантах тоже можно (когда между операциями в одной инструкции есть зависимости), хоть и с некоторыми ограничениями и ущербом для производительности. Тоже советую посмотреть слайды по ссылке
home.deib.polimi.it/...​ano/FilePDF/AAC/VLIW1.pdf

Если и так, то они не используют то, где VLIW могло бы иметь преимущества.

Например, где?

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

То есть, программист сам должен понять как использовать эти возможности. Или же компилятор это должен сделать за программиста.

В 90-х эту проблему не смогли решить по понятным причинам.
В начале 00-х — потому что с другой стороны поджимал AMD и им пришлось воевать на два фронта (на x86 и ia64), конец предсказуем.

Сейчас ситуация другая, так как я не пытаюсь конкурировать с x86.
Что касается компилятора — сегодня технологии шагнули далеко вперед, при использовании нейронных сетей и deep learning компилятор сможет самоообучиться и понять как нужным образом распараллелить код, чтоб он использовал все доступные устройства на процессоре одновременно, а не тупо выполнял команды одна за другой.

В современном процессоре под модуль управления это несколько тысяч транзисторов — этого не достаточно чтоб сделать хорошие предсказания. С умным компилятором можно, например, арендовать сто серверов в облаке, запустить там нейросеть и она сделает такую оптимизацию кода, что все ресурсы KPU будут использованы на 100%

Даже тот факт, core i7 стал умным затормозил развитие компиляторов. С KPU наоборот будет рассвет новых инноваций в компилировании и оптимизации.

Совпадение? :)

Не думаю

нейронных сетей и deep learning

вот это уже лучше, с такими ключевыми словами может и инвесторы найдутся

Пойнятно. Тобто ти ще і Український Національний Компілятор будеш писати. Ай, молодець !

По ходу автор сам тролль.
Для начала, чем фришный MIPS не угодил? Или любая другая открытая архитектура? Недостаточно прорывисто?)
Далее, «640кб хватит всем» в 1981 году. На фоне этого амбитная цель в 16кб на 202х год очень амбитная (так, к слову — такой процессор даже у меня есть, за 2 дня на коленке собрал, память прямо в FPGA запек поэтому с объемом негусто)
Еще дальше, идея с «много всего в ядре» называется VLIW (российский Эльбрус, Intel Itanium, Intel 960). Если коротко — не взлетело, даже интел обосрался с компиляторами.
На фоне этого всего всего-навсего 32 бита даже как-то несолидно выглядит. 128 минимум. Ну или 131 шоб боялись.
За целый один порт пожалуй даже вспоминать не буду.
Так вот, главный вопрос — что на таком проце запустить можно будет такого что не запускается на киевском КР580ВМ80А?

Спасибо за комментарий Александр. По пунктам:

1. Не тролль, просто немного волновался и сумбурно описал идею
2. Открытая архитектура ограничена традиционными идеями, и нет место для инновационности. Поэтому решение идти на разработку новой архитектуры с нуля и искать возможности для инновации, котоыре еще не исследовали другие.
3. Про объем памяти я сильно не беспокоюсь. Когда будет рабочий прототип, объем памяти может быть любым, просот добавляй больше планок. Поэтому я и написал, что это требования для MVP — чтоб доказать что концепт может работать. На 16КБ можно запустить полноценную операционную систему с демонстрационной программой.
4. Возможно, концепция немного схожа с Itanium (я не смотрел что там внутри). Цель — сформировать идею и довести ее до ума, а не бросать на пол пути.
5. Пока идея — оставить кол-во битов/линий фиксированным и не доводить до абсурдных значений (иначе только разводка линий займет месяца). Повышение пропускной способности за счет того что каждая линия может передавать больше двух состояний (двумя постами ниже описал подробнее). Т.е. даже на 32 линиях или даже на 16 можно будет получить пропускную способность больше, чем на классической шине с 64 линиями в современных процессорах типа Intel Core i7
6. Про порт ввода вывода — опять же это MVP. Чтоб доказать что концепция работает. Я хочу разработать архитектуру таким образом, что масштабирование от MVP до промышленного образца, который превосходит i7 — это неделя работы накидать больше блоков в схему и соединить их. Можно будет даже сделать скрипт, которому задаешь параметры — «сделай мне процессор с 50 регистрами, 3 блока внутренней памяти по 32КБ, 100 портов, 5 сумматоров, и т.п.». На выходе — схема, которую можно сразу отдавать на производство.
7. Я не читал про КР580ВМ80А. Он тьюринг полный? Если да, то любую задачу, которую можно было на нем решить, можно будет решить на KPU, только быстрее. Плюс некоторые инновационные возможности, как размытая логика, которую я описал постом ниже, которые не доступны на традиционных процессорах.

Ну, допустим, автор не троль и не стебется. Я даже отвечу серьезно.
2. Только вот ограничения там не просто так появились (включая ограничение на однобитные линии). С этого, в общем, начинаются книги о разработке процессоров. Рекомендую почитать.
3. Нюанс в том что поддержка нормальной оперативной памяти — это не «16кб на частоте ядра». 16кб на частоте ядра — это вообще кэш называется а не оперативка. ОС в 16кб с прикладным софтом тоже не особо впихивается (ну, можно конечно иметь отдельную «память программ» а-ля Гарвард и тогда да). Автор по ходу еще ни один процессор не реализовал — память это боль (и, заодно, главный ограничитель скорости работы, а не количество ALU), поэтому сказать «потом как-то доштрихуется» это некорректно.
4. Концепция не «возможно похожа», а очень даже называется «VLIW», я гарантирую это. Рекомендую почитать, особенно ту часть где описывается почему это хорошо только на бумаге и почему в реальности оно не заработает. Более того, рекомендую почитать Intel Optimization Manual на что-то свежее (Haswell какой-нибудь), особенно разделы об OOE (и особенно ту часть где процессор исполняет больше чем одну инструкцию за один такт). Это так, чтобы оценить пропасть между стареньким i7 и прогрессивными идеями автора (в пользу i7).
5. А что, на дворе 1950й год и разводят отдельно линии а не сразу шину? :) Советую обновить софт хотя бы до уровня 80х, там таких проблем нет. Без шуток, шины наше всё.
6. Ладно, хрен с ним с портом. Но вот блоки куда-то динамично втыкать — это утопия какая-то. Новая архитектура, новый софт, новое всё. И в асики так не выйдет — там с разводкой жопа, куча работы, миллионы баксов.
7. Он Intel 8080. А до «быстрее» еще дорасти надо. Сложные ядра без оптимизированного софта очень медленные — советую почитать о национальном российском проце «Эльбрус».

2. Только вот ограничения там не просто так появились (включая ограничение на однобитные линии). С этого, в общем, начинаются книги о разработке процессоров. Рекомендую почитать.

Буду благодарен за ссылки. Я не имею большого опыта, поэтому было бы очень интересно почитать.

3. Нюанс в том что поддержка нормальной оперативной памяти — это не «16кб на частоте ядра». 16кб на частоте ядра — это вообще кэш называется а не оперативка. ОС в 16кб с прикладным софтом тоже не особо впихивается (ну, можно конечно иметь отдельную «память программ» а-ля Гарвард и тогда да). Автор по ходу еще ни один процессор не реализовал — память это боль (и, заодно, главный ограничитель скорости работы, а не количество ALU), поэтому сказать «потом как-то доштрихуется» это некорректно.

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

4. Концепция не «возможно похожа», а очень даже называется «VLIW», я гарантирую это. Рекомендую почитать, особенно ту часть где описывается почему это хорошо только на бумаге и почему в реальности оно не заработает.

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

6. Ладно, хрен с ним с портом. Но вот блоки куда-то динамично втыкать — это утопия какая-то. Новая архитектура, новый софт, новое всё. И в асики так не выйдет — там с разводкой жопа, куча работы, миллионы баксов.

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

память это боль (и, заодно, главный ограничитель скорости работы, а не количество ALU)

Это не ограничитель на первом этапе или вообще в идеологии; SRAM производится на заметные размеры, и её скорость очень неплоха, ну а что цена в 10 раз выше — для многих применений всё равно используется (например, таблицы правил в больших раутерах). И тем более не ограничит MVP.
А вот что дальше будет — да, может быть вопросом, когда потребуется хотя бы теоретически «догнать и перегнать».

сделать скрипт, которому задаешь параметры — «сделай мне процессор с 50 регистрами, 3 блока внутренней памяти по 32КБ, 100 портов, 5 сумматоров, и т.п.». На выходе — схема, которую можно сразу отдавать на производство.

а вроде писали о deep learning и прочем... Почему бы тогда не взять исходники, скормить их «скрипту» и сказать что-то типа: «Хочу наивысшую возможную скорость при наименьшем энергопотреблении, скорость в приоритете» и уже тогда получить схему?

Для начала, чем фришный MIPS не угодил? Или любая другая открытая архитектура?

MIPS не свободный, а вот RISC-V сейчас очень хорошо подходит по всем критериям.

На фоне этого амбитная цель в 16кб на 202х год очень амбитная (так, к слову — такой процессор даже у меня есть, за 2 дня на коленке собрал, память прямо в FPGA запек поэтому с объемом негусто)

Угу — студенты поверх дешёвых FPGA ваяют больше и быстрее.

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

Сейчас много задач связаны не с бинарной логикой (черное/белое, да/нет), а с размытой логикой. Поэтому будет интересно сделать аппаратное ускорение для алгоритмов, основанных на fuzzy logic. Будет модуль, который, скажем, может принимать два числа, сравнивать их, и выдавать ответ, который размытый (отдельный канал для задачи степени размытости).

И ещё модуль женской логики!

Там все на рандоме построено.

Это так только кажется! Там третичная логика «да, нет, можетбыть», причём можетбыть может приравниваться как к да, так и к нет, а после определённых операций значения да и нет инвертировано. Никакого рандома. Л — Логика! %)

Садись, два!

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

Но количество линий можно сильно сократить если отказаться от двоичной кодировки в пользу более эффективной.

Вот небольшой рассчет.
двоичная кодировка: 32 линий
троичная кодирвка: 21 линия
четвиричная кодировка: 16 линий
пятиричная кодировка: 14 линий
(дальше смысл от усложнения кодировки падает)

Я думаю остановиться на четвиричной или пятиричной, это позволит сократить количество линий и площадь кристалла за счет незначительного усложнения логики транзисторов.

Кто-то пробовал сделать 5-ричную логику на элементарных элементах? Я подозреваю что, например, AND на 5-ричных входах будет нетривиальным, кто-нибудь может скормить ее какой-то нейросети чтоб она рассчитала хотя бы таблицу истинностои? (я не эксперт в области машинного обучения)

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

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

А насчёт AND на пятиричном выходе — ты сначала функцию определи. Она ж бинарная? Или должна возвращать значение от 0 до 32? Да и потом, всё это исторически уже пытались делать при первых попытках уйти от аналоговых машин. Оказалось, что гораздо дешевле добавить миллион полевых транзисторов, чем городить многоуровневые источники питания, которые ещё и от тока пляшут, и помехи ловят.

Простой вопрос — нужно поменять значение в линии с 19 на 1. В случае двоичной логики, достаточно просто коротнуть на землю или на линию питания, и там и там стоит приличная ёмкость и шина по току. А вот с многоуровневой — придётся таки потрахаться, чтобы предсказать текущий заряд этой дряни, и приложить ток в аккурат такой, что скомпенсировать ёмкость перехода. Возможно, в квантовых компьютерах и разберутся, как это делать — например, стравливая лишние фотоны.

А насчёт AND на пятиричном выходе — ты сначала функцию определи. Она ж бинарная? Или должна возвращать значение от 0 до 32?

В том-то и загвоздка что нет, пятиричная линия.
На вход идет две линии, каждая из которых может передавать одно из 5 значений (логические 0, 1, 2, 3, 4). На выходе — тоже одно значение.

Я думаю о том, чтоб взять стандартную булевую алгебру, и сделать нейросеть, которая для 5-ричной логики создаст таблицу соответствия. Пока что с этим небольшая загвоздка, не могу всем сразу заняться.

Это у вас будет не пятеричная логика а мультиплексированная двоичная. ьезпереспективно

Когда я начал делать прототип в Logism

Logisim, наверно? Исхожу далее из того, что тут опечатка.

Но количество линий можно сильно сократить если отказаться от двоичной кодировки в пользу более эффективной.

На сейчас нереально, забудьте. Что-то отличающееся от двоичной используется только в модуляции на каналах связи.

Кто-то пробовал сделать 5-ричную логику на элементарных элементах? Я подозреваю что, например, AND на 5-ричных входах будет нетривиальным

Да. Загвоздка в первую очередь в построении логических функций, чтобы были приемлемы всем. А потом реализация, которая внутри станет такой же двоичной. В общем, шансов пока нет.
Они будут, если найдёте вселенную хотя бы с тремя разными цветами электронов :)

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

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

5-ричную логику

уже не пятница — завязывайте :-)

Так никто ж не опроверг той теоремы, что если цена представления каждой цифры в k-ичной системе пропорциональна k, то оптимум для k равен e.
Что она не реализуется в наших условиях, и представление для 3 в более чем в 2 раза дороже, чем для 2, а дальше ещё дороже — ну это уже чистая практика. А пока были надежды сделать дешевле — были и мысли про троичную систему.

Ну так ты повторил, что я сказал.

Здесь что-то на эльфийском написано

Исключительно из информации Шенона.

Кнута, Фаулера, ...

Вспомнилось, как на черчении в школе учитель задал вопрос, стул со сколькими ножками самый устойчивый. Никто не догадался про 3 ножки, т.к. уравнения плоскостей ещё не проходили.

Теорема рыбацкого стульчика: трём ножкам не нужен ровный пол.

То есть пользоваться шиной в logism мы не умеем, но уже строим космические планы? ))

Открою вам секрет, на кристалле никаких шин нет, там однобитные линии.

В цель Because We Can не найдется желающих инвестировать деньги :)

цель — не просить денег на реализацию. цель — довести проект до уровня, когда инвесторы из Украины и всего мира выстроятся в очередь чтоб дать денег, но вместо этого их будем отправлять и говорить — хотите инвестировать? Сделайте завод по производству или наймите команду, которая будет параллельно с нами контрибьютить, вот так и инвестируйте.

Сделайте завод по производству

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

Вопрос скорее «а что именно?»

Я начинаю инициативу по разработке Украинского Национального Процессора.

Навіть 5% зробленої роботи не буде?

Кодовое название KPU — Kozak Processing Unit

В пріоритеті для назви проца присутність української ідентичності/асоціації? А назва самої фірми така сама має бути?
P. S. Якщо це вброс, то жорстокий як для п’ятниці...

В пріоритеті для назви проца присутність української ідентичності/асоціації? А назва самої фірми така сама має бути?

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

Ну, есть вариант не принять лекарства.

Тогда не будет процессора.

Якщо придумувати назву, то хоча б конкретно визначитися з характерними особливостями процесора (зараз виглядить розмито). І назва чогось сильно асоціюється з КПІ

Не принимайте больше эти лекарства.

ночью после того как принял лекарства

ах вот оно что...

танунафиг... Интел — наше всё. :)

Кодовое название KPU — Kozak Processing Unit.

это типа руцкава эльбруса)?

Раз уже заговорили за горы, то предлагаю PiPU — Pip Ivan Processing Unit

RISC-V/OpenRISC
А вообще смешно, да

Кодовое название KPU — Kozak Processing Unit.

Не знаю по злому умыслу или нет, но Kozak Processing Unit ассоциируется у всех англоязычных с «устройством по переработке козаков».

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

Верно подмечено. Я думаю стоит переименовать в Kozak’s Processing Unit, или Dnipro Processing Unit (принимаются варианты)

If I say ‘pro’ two more times
That’s twenty six ‘pro’s in this propped up rhyme.

О, да, кстати! Очень подходящий пост для того, чтобы поделиться прекрасным.

Специально для тех, кому очень хочется сделать свой собственный простой процессор, я оставлю здесь вот эту ссылочку:
www.bigmessowires.com/nibbler

На фотках — просто ппц какое спагетти. Один проводок не так подключишь и все коту под хвост. Именно от этого я хочу уйти.

Хорошо, что сегодня пятница, а не завтра, как вчера.

P.S.: если серьёзно, то почему бы вам не взять за основу Niagara / UltraSPARC T1 (дизайн полностью открыт, лицензия GNU GPL) и не добавить туда все свои идеи и пожелания?

У меня была мысль сделать на базе готовой архитектуры. Но есть недостатки. Во-первых, это будет просто пародия, копипаст. Ничего национального в этом нет.

Во-вторых, таким обрмом мы можем упустить возможности для инноваций. Сейчас основным идеи придуманы и люди копируют их друг у друга. Чтоб придумать новые идеи, нужно вернуться к белой доске и посмотреть на проблему заново, с нуля. Это я и предлагаю.

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

Карбованец можно будет майнить на нем?

Только печатать.

Более полно — я негативно отношусь к майнерам, поэтому не хочу чтоб они использовали KPU в этих целях. Если речь идет о веб-серверах, или каких-то вычислениях в области биохимии, которые позволят создать новые лекарства — пожалуйста, но просто гонять пустой цикл подсчета хешей — пусть тратят деньги на платные архитектуры.

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

В противном случае лицензионное соглашение будет запрещать использование процессора для майнинга с криминальной ответственностью за его нарушение.

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

Та ну, нынче без слова «блокчейн» никто денех не даст.

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

Плюсую. Даже некоторые знакомые, которые были адекватны... у них крыша поехала от блокчейна. Когда спрашиваешь — практичекое применение? Начинают как секстанты говорить про информационную революцию будущего.

Всё то же самое, что и с нанотехнологиями. А возможно и ноги растут у этого хайпа из одной и той же *опы.

Система документооборота как раз таки с блокчейном будет что надо. Вот только сам блокчейн на документооборот не натянешь, его можно применить только к транзакциям, а никак не к их отражению. Другими словамии, блок-чейн и документооборот — системы раздельные, хорошо подходят друг другу, но только совмещаются, а не пересекаются.

Скачиваем shkolomips, добавляем нескучных обоев и блогенос пардон , kpu готов.

За отказ от кеш памяти отдельно плюс потому что улыбнуло

гАспадин рАгозИн перелагИнтесь :)

Черт, а я и забыла, что сегодня пятница

Будет ли проц поддерживать русский язык?

Планирую сделать модули для аппаратного ускорения работы с буквами:
* KOI8-U (максимальное аппаратное ускорение для 8-битных украинских букв) — в варианте для продажи в Украине. Один буквенный модуль может обрабатывать до четырех букв (если 32-битная архитектура). Может использоваться для создания инновационных приложений в области обработки естественных языков. Например, чат ботов, которые говорят на украинском языке
* UTF8 (небольшое ускорение для многобайтных международных кодирков) — для международного рынка.

Все остальные языки будут идти по общему принципу без ускорения, не хотелось бы никого отдельно дискриминировать. Независимые разработчики и интеграторы смогут, например, сделать модуль для аппаратного ускорения KOI8-R, но я это это не поощряю и не осуждаю.

Независимые разработчики и интеграторы смогут, например, сделать модуль для аппаратного ускорения KOI8-R, но я это это не поощряю и не осуждаю.

Предлагаю внести модуль аппаратного замедления для работы с KOI8-R, чтобы кляті москалі не похитили разработку!

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

Кто не помнит прошлого не имеет будущего! _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ _демагогия_ еще _демагогия_ , и Ленинов вернуть!

Это как вариант. Можно сделать 7-битную украинскую кодировку. Текущие кодировки перегружены мусором в 0...128. Если избавиться от мусора, то можно будет без потерь все нужные символы поместить в 7 бит. Или даже в 8, но прийдется немного пожертвовать.

А уж если слова захардкодить... го китайский учить!

Неее. Каждую букву выравняем по границе 4 байт, у нас же 32битность в планах, тогда можно будет и каждому слову из толкового словаря присвоить по коду! Ускорение вангую охрененное!

Это хорошая мысль. В украинском алфавите 33 буквы. Ґ и Ї можно выбросить, появится место для пробела. Но это 5 бит. Как вы предлагаете в 4 бита вместить?

Он вообще-то про 4 байта говорил :)

Не могу понять идею. 4 байта — это 4 буквы тогда? Но что если слово длиннее 4 букв? разве что делать как в юникоде, специальный бит показывает, что слово длиннее 4 букв и нужно читать буквы дальше в памяти.

Наскільки я розумію, всі букви будуть закодовані в першому байті. Але всі слова будуть кодуватися починаючи з другого байта, а всього їх буде 7 на слова.

Так, бо я тупанув.
Мався на увазі не байт а чанк з 4 біт.
0000 0000 0000 0000 0000 0000 0000 | 0000
В перших 4 бітах кодувати букву, в решті — слова. Проблема тільки одна — розмір пам’яті для зберігання словника

В украинском языке не так много слов. Не могу одного понять — зачем первые 4 байта отдавать резервировать для буквы? Что мешает весь объем отдать для кодирования слова?

Я так понимаю, смысл такой

0000 0000 0000 0000 0000 0000 0000 0001 — кiт
0000 0000 0000 0000 0000 0000 0000 0010 — кiшка
0000 0000 0000 0000 0000 0000 0000 0011 — пiвень

Как тогда падежи кодировать? Отельный флаг зарезервировать для падежа

По-перше, всі нові вигадані слова можна буде все ж таки описати хоч якось. По-друге, можна буде індексувати слова. Сортувати вже не вийде. Втретє, кодуються всі слова цілком, всі відмінки, всі варіанти використання.
Насправді ідея трохи утопічна :)

Проблема в том, что таким способом не получится закодировать больше половины текстов мытця. Это будет hard blocker для запуска украинской кодирвоки

Надо вставлять пробел прям между битами, тогда останется место для Ї.

— Вещество состоит из атомов, атомы из ядра, вокруг которого вращаются электроны. Военрук показывает на красиво нарисованном плакате строение атома.
— Вот ядро, а вот электроны на своих орбитах.
Вопрос из зала: — Товарищ военрук, а что находится в пространстве между ядром атома и электронами?
Военрук: — Ну, точно не знаю. Воздух, наверное.

Можно избавиться от всех букв русского алфавита и тогда все оставшиеся можно вместить в 3

Да! Всегда мечтал про модуль для аппер-кейса!

Если можно будет грабить корованы — я в деле!

Есть Днепр. Можно грабить баржи с арбузами.

И есть места не столь отдалённые. С блок-чейнами :)

Можно будет майнить романы и повести. DontsovaCoin, таке інше..

Как насчет эффективности майнинга на таком процессоре, будут ли доп блоки оптимизированые для таких расчетов? :-)
Ты ведь понимаешь, что новые технологие без блокчейн, хадуп, диплернинг слабо привлекают инвесторов.

Архитектура процессора будет максимально модульная, будут возможны форки с разными конфигурациями «обвеса», их можно будет сделать, даже не являясь экспертом в области разработки процессоров.

Нужно сразу добавить это в описание! У компаний, которые в свое название добавляют блокчейн, диплернинг и прочие базворды, акции продают в трое или пятеро дороже.
Нужно писать что в Украине планируют создать революциооный процессор для диплернинг, блокчейн, биг дата IoT с эффективностью до 90%.

Скажу честно — я не сторонник майнинга, поэтому были мысли о том, чтоб в mainline сделать дефолтным отдельный блок, который наоборот замедляет майнинг, чтоб хотя бы в mainline не было всей этой чепухи с биткоинами и ICO. Но ниже правильно ответили — желающие смогут этот модуль удалить из схемы и добавить вместо него модули для ускорения майнинга.

Как вариант — прописать в лицензиионно соглашении что вы обязуетесь не использовать порцессор для майнинга (а если используете — то тогда должны платить лицензионные отчисления, чтоб хотя бы какая-то польза от майнеров была)

Скажу честно — я не сторонник майнинга, поэтому были мысли о том, чтоб в mainline сделать дефолтным отдельный блок, который наоборот замедляет майнинг, чтоб хотя бы в mainline не было всей этой чепухи с биткоинами и ICO.

Так вы же недавно серьёзно вложились в битки, в чём дело?

Элементарно, schwarzlichtbezirk! Чем меньше битков, тем выше цена.

Я вложился когда они были 18500 а продал когда были 9000.

То есть по факту вы приняли участие в азартной игре, в которой от вас ничего абсолютно не зависит. Ну и в чём принципиальная разница с казино и биржей форекс? Разве только что участвуете в качестве игрока. А еслиб вы своевременно разработали проц и плату для майнинга, это был бы более целесообразный проект.

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

Ну и почему же задроты у себя на дачах и в хрущёвках не собирают фермы из видиокарт для распределённых вычислений для исследований в области биохимии, нет такой технологической возможности? Скорее финансового интереса в этом нет. А именно он движет развитием.

Нифига не смешно // я в деле

А вообще грустно.
Не в смысле «какуюстранупатиряли»
А в смысле того, что потеряли предприятия, которые могли бы деньги приносить.
У нас в городе был мощный завод по производству СВЧ. Остатки его видели все, кто ездил из Киева в Харьков через Полтаву — здоровенный скелет здания стоял сразу за полтавским макдональдсом.

Чтобы предприятия приносили деньги — надо, чтобы это кому-то было выгодно. А выгодно было взять себе, что плохо лежало. И оно продолжает быть выгодно)

Нет, некоторые олигархи даже имея полноценный завод с нормальным оборудованием, не могут сделать ничего полезного-выгодного, потому что навыков нет (АвтоЗАЗ яркий пример).

А посему заводы им проще пустить на металлолом, а площади сдать.

Жто невыгодно, потому что кто угодно может поехать на Тайвань и там заказать свой процессор, только предоставить им описание в специальном формате. Это будет намного дешевле и эффективней, чем делать эот в стране, которая по большому счету никогда это делать не умела (и я готов спорить, что не умела). Кстати, на сколько я знаю, Россия именно так и производит свой Эльбрус.

Делать- в наше время это не производить. Это придумать и разработать.

И то и другое. Параллельно

они и разводку эльбруса тоже не сами делали, то есть информацией о наличии и типе закладок в данном CPU — не владеют :-)

Сейчас выглядит как стеб, а тем не менее ещё лет 15 назад в одном только Киеве было несколько больших предприятий с полным циклом производства процессоров.

И с выращиванием кремния?

Да. Кремний ростили на заводе Квазар, компания Пиллар в печах работающих 24/7. Сырьё поставлял вроде Светлодарск, тоже в Украине производство. Тамже слитки нарезали на пластины, для солнечных батарей и производства микропроцессоров.

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

вроде Китай опять впереди планеты всей

Вика говорит что это не совсем так en.wikipedia.org/...​ductor_fabrication_plants

Наши делали упор на качество, минимум углерода и кислорода в слитках, минимум брака.

Бгг... Совки в 80-х спиливали послойно западные 286, чтобы скопировать. Спиливали при помощи трофейных (вывезенных из Германии после войны) станков — т.к. своих станков такого же качества, как германские довоенные у совков просто не было.

Но когда появились 386, произошёл облом. Слишком плотная компоновка, германские станки её не брали (точности не хватало) — оттого, «совковых» 386 так и не появилось... :)

П.С. Но оно и хорошо так. Зачем стране агрессивных даунов, продвинутая техника?

П.П.С. Хм... даунов я, пожалуй, напрасно оскорбил — назвав ими совков.

Зачем спиливать, там же вроде травить можно

Какой процент отбраковки кристаллов был? Сколько нанометров в технологии производства поддерживалось?

Сколько нанометров в технологии производства поддерживалось?

:-)
мкм

Кремний был из Светловодска, Кировоградской области, возле Кременчуга. Только тут такое дело. Кремний тут последний раз выпускали в 2000м году, тоесть это уже 18 лет, а не 15. zn.ua/...​s_chistymi_metallami.html

В Северодонецке выпускали свои компьютеры и со своими процессорами. Между прочим весьма продвинутыми по своему времени. И ОС была своя..И многопроцессорные системы делали.. Серия ПС-2000 и т.д..

И ОС была своя.

И называлась она DOC АСПО (Агрегированная система программного обеспечения). Славилась тем что в ней был макро-язык которым можно было собрать ОС нужной конфигурации. Задолго до Линуксов и прочей чешуи.

Там же был очень приличный Pascal компилятор и очень приличный текстовый редактор который позволял редактировать большие файлы в 64kb ОЗУ. У меня была ЕС-1634 которую я использовал как персональный компьютер — поэтому всё это знал руками.

Sic transit gloria mundi...

Кстати, макросов вот такого типа как препроцессор, больше нигде не встречал. А ведь очень полезная штука.

вот только уже 25+ лет тому назад, те процессоры что они могли произвести, уже практически никому не были нужны, поэтому и стали клепать в лучшем случае солнечные панели

Если серьезный вопрос, то есть такое предложение...

Ах, сегодня же пятница.

А уязвимости Meltdown и Spectre там будут ?

Нет, но обязательно должна быть новая, согласованная с СБУ.

Ааа, ну тогда нормально ! Она будет называться : «RoshenDown»

когда пишет Artyom, то зачастую непонятно где стёб, а где нет.

Хороший комплимент автору, присоединяюсь.

хороший стеб, не лень же писать было

было бы круто, если бы это был бы не стеб и люди с руками занимались разработками, имели бы инвестиции, делали действующие девайсы...

Підписатись на коментарі