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


Рис 1. Кремниевая пластина процессоров R1

1. История создания

    Компания Мультиклет была основана в 2010 году. С учетом наработок по проекту синпьютер Уральской архитектурной лаборатории, которые велись с 2001 года под руководством Н.В.Стрельцова, был сделан шаг по созданию первого процессора с новой российской архитектурой. И все усилия вылились в первого представителя универсальной мультиклеточной архитектуры – процессор Мультиклет P1. Буква “P” означает нацеленный на производительность (Performance). После выпуска процессора были изготовлены две версии отладочных комплектов, а затем — несколько серийных устройств, в том числе фольгиратор, устройство защиты информации Key_P1. Имела место активная работа пользователей, тех, кому было интересно попробовать что-то новое. Результатом этой деятельности явились примеры работы с тачскрином, управление асинхронными двигателями, высотомер, анализатор трехосевого датчика и другое.
Но, несомненно, было необходимым подняться на новую ступень. И в 2014 году появился на свет процессор с динамической реконфигурацией под названием R1-1. По результатам испытаний данная ревизия ушла в опытные образцы, и следом в декабре 2014 был выпущен процессор R1, доступный в пластиковом корпусе с марта 2015 г. Именно об этом процессоре и пойдет речь в данной статье.
Добавлю, что мультиклеточные процессоры разрабатываются в г. Екатеринбург, кристалл выпекается в Малайзии на фабрике SilTerra.


Рис 2. Процессор R1

2. Краткие основы архитектуры

    Процессор R1, как и первый представитель мультиклеточной архитектуры, состоит из четырех клеток. В архитектуру заложены следующие основные принципы:
  • клетки независимы и идентичны
  • никто и ничто не управляет клетками, нет центрального блока управления
  • клетки могут быть объединены в любую конфигурацию в любом количестве
  • прямая связность инструкций по данным (в качестве аргумента инструкции напрямую указывается инструкция, результат которой нам необходим)
  • одна и та же программа может быть выполнена на любом количестве клеток
  • работаем тогда, когда есть работа (т.е. когда данных нет, инструкции, от них зависящие, не выполняются)
  • все команды готовые к выполнению, выполняются одновременно (в каждом такте могут быть выполнены по 1 команде из каждого блока ALU_INTEGER, ALU_FLOAT, DMS и так в каждой клетке)
  • динамическое распределение ресурсов

Рассмотрим состав процессорного блока – клетки. Клетка процессора R1 в своем составе имеет блок выборки и распределения команд (IDU), блок управления и декодер команд (CU), буферное устройство (BUF), коммутационное устройство (SU), мультиплексор результатов, контроллер прерываний (IC), отладочный блок (JTAG-GPR), блок регистров общего назначения (GPR), исполнительное устройство (EU), состоящее из арифметико-логического устройства (далее АЛУ) с плавающей запятой двойной точности (ALU_FLOAT), АЛУ для целых чисел (ALU_INTEGER) и блок доступа к памяти данных (DMS).

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

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


Рис 3. Иллюстрация поворота

Если кратко охватить преимущества архитектуры, то с небольшими коррекциями процитирую пользователя AlexDi с форума ixbt:
«Внеочередное выполнение до 4-х произвольных команд за такт, с глубиной внеочередности до 64 команд, предвычисление перехода задолго до самого перехода, преддекодинг команд после точки перехода, сохранение арифметических флагов для результатов всех инструкций».
В каждом такте на исполнение могут отправиться до 12-ти команд (4 клетки с тремя независимыми портами для ALU_FLOAT, ALU_INTEGER, DMS в каждой), но выход у них один, поэтому выдать результат в текущей реализации архитектуры могут до 4-х команд за такт. Производительность в Гигафлопсах получается в пике за счет темпа выполнения команд комплексного умножения двух аргументов (a + bi) * (c+di), в результате получаем 6 операций на клетку, умножаем на 4 клетки и получаем 24 операции за такт. Умножив количество операций за такт на частоту (для R1 это 100 МГц) получим 2,4 ГФлопса.
Подробнее ознакомиться с архитектурой можно в статье «Мультиклеточный процессор — это что?»

3. Что нового в процессоре R1

    Первоначально предполагалось немножко доработать процессор P1, но в процессе доработки у R1 получилось практически полностью новое ядро. Теперь память программ общая для всех клеток, соответственно изменился механизм выборки (в P1 у каждой клетке была своя память программ), изменился механизм распределения результатов. Появилась косвенная адресация, добавились команды прямого чтения и записи (минуя механизм очередности), улучшена работа с индексными регистрами. И самое главное, появилась реконфигурация (способность клеток объединяться в группы).
Увеличился ассортимент команд ассемблера, появился блок работы с памятью DTC. Для тактирования достаточно кварца на 8-12 МГц, появилась возможность работать с внешней памятью типа SRAM, SDRAM, PROM, I/O. USB теперь стандарта 2.0 device, RTC с календарем на борту. И важным шагом стала работа аналоговых блок, в процессоре R1 содержится 8 независимых каналов дельта-сигма АЦП 16 бит, 48 киловыборок в секунду и 1 канал ЦАП до 100 мегавыборок в секунду(работает на системной частоте). Первоначально планировалось, что будет два канала ЦАП, но получился один полностью работающий канал ЦАП.
Рассмотрим чуть подробнее несколько нововведений в процессоре R1. Но для начала напомню как выглядит пример параграфа на ассемблере (для P1 и R1 можно писать и на Си):

habr:
	getl 1 ;загружаем число 1 в коммутатор
	getl 2 ;загружаем число 2 в коммутатор
	addl @1, @2 ;выполняем сложение 1 + 2
	getl 0x10000 ;загружаем число 0x10000 в коммутатор
	wrl @2, @1 ;записываем результат сложения в память по адресу 0x10000
	setl #0, @2 ;загружаем адрес памяти в нулевой регистр
	jmp habrahabr ;переходим на следующий параграф
complete

habrahabr:
	getl #0 ;получаем значение нулевого регистра
	rdl @1 ;считываем значение из памяти по адресу 0x10000
	getl  3 ;загружаем число 3 в коммутатор
	addl @1, @2 ;складываем 3 + 3
	wrl @1, 0x10000 ;записываем число 6 в память по адресу 0x10000	
	jmp next 
complete

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

Paragraph:
        getl 0x50
        wrl @1, 0x10
        getl 0x12345
        wrl @1, 0x50
        setl #0, 0x10
jmp Paragraph1 
complete

«БЕЗ косвенной адресации»
Paragraph1:
	rdl #0  ;результат 0x50
	rdl @1 ;результат 0x12345
complete

«C косвенной адресацией»
Paragraph1:
	rdl [#0] ;результат 0x12345
complete

В параграфе с косвенной адресацией сначала будет получено значение #0 равное 0x10, затем по данному адресу будет считано значение из памяти равное 0x50 и после этого выполнится чтение rdl по адресу 0x50, результатом которого будет число 0x12345. Без применения косвенной адресации в данном случае потребуется две команды.
В качестве значения в квадратных скобках результат выполнения какой-либо команды, выражение в виде суммы с константой, системный регистр, регистр общего назначения или индексный регистр.

Дополнительные команды
Система команд значительно расширилась в новой версии процессора, появились команды подсчета единиц, копирования флагов, различных сравнений и многое др. Продемонстрируем работу новых команд ge и lt для перехода по различным отрезкам.
Кратко поясним функции команд:
1) синтаксис: ge ARG1, ARG2 — проверка условия «больше или равно»
результат: «1» если ARG1 >= ARG2, иначе 0
2) синтаксис: lt ARG1, ARG2 — проверка условия «меньше»
результат: «1» если ARG1 < ARG2, иначе 0
Пусть у нас есть участки от 0 до 3, от 4 до 10, от 11 и более. При значениях переменной Х необходимо осуществить переход на соответствующий параграф, покажем на примере:

Paragraph_pie:
var := rdl X ;входной параметр
    ge @var, -1 ;больше -1, т.е. от 0 для целых чисел
    lt @var, 3 ;меньше либо равно 3
    and @1, @2 ; операция and
    jne @1, parag_0to3 ;переход если оба сравнения вернули «1»
    ge @var, 3
    lt @var, 10
    and @1, @2 ; операция and
    jne @1, parag_4to10 ;переход если оба сравнения вернули «1»
    ge @var, 10
    jne @1, parag_11over ;переход если сравнение вернуло «1» в результате
complete

Хотелось ещё показать пример работы даже не команды, а нового регистра DFADDR, который можем быть полезен, например, для оптимизации конструкции в Си switch-case. Пример кода на Си и аналогичного параграфа:

switch(Var)
{
case 1:
	func1();
	break;
case 2:
	func2();
	break;
case 3:
	func3();
	break;
default:
	go_to_default();
        break;

}

Switch_case0:
	   setl #DFADDR, go_to_default ;задаем параграф перехода, если не сработал ни один переход
p1:=    rdl Var
        subl @p1, 1
        je @1,  func1
        subl @p1, 2
        je @1,  func2
        subl @p1,3
        je @1,  func3
complete


4. Сравним процессоры P1 и R1

     Сравнение начнем с тактирования. Для процессора P1 был необходим генератор тактовой частоты на 80, 100 или 120 МГц. В R1 появился блок PLL и теперь достаточно кварца на 8-12 МГц.
Для работы программы в P1 нужна внешняя флешка, из которой программа перекачивается в оперативную память процессора. В R1 программа может быть также загружена из флешки, а благодаря появившемуся контроллеру внешней памяти возможно выполнение и работа с SRAM, SDRAM памятью и другими по интерфейсу I/O. Кроме того процессор R1 может быть закорпусирован со встроенной флешкой на борту.
Поскольку появился блок управления внешней памятью, то появилась необходимость в перекладывании данных, этим в R1 занимается блок DTC, который способен работать и с регистрами и по прерываниям и с периферией. В R1, в отличие от P1, работают все прерывания.
Количество памяти в R1 возросло до 512 Кбайт с полным доступом к памяти данных и программ и выполнением команд из любой области памяти. В P1 было 128 Кбайт памяти программ, доступа к которой на чтение и запись у пользователя не было и 128 Кбайт памяти данных.
По периферийным блокам подробная информация была приведена выше. Добавлю, что теперь операции с плавающей запятой в R1 двойной точности.
И самое главное, что появилось в R1 – это реконфигурация, т.е. способность клеток объединяться в группы без перезагрузки процессора и перераспределяться. Например, две клетки могут заниматься вычислением, одна клетка периферией и передачей информации, оставшаяся клетка анализом датчиков и если потребуется, то во время работы процессора «прямо на лету» возможно сделать так, чтобы 3 клетки стали заниматься вычислениями, а одна опросом датчиков и периферией. По реконфигурации будет отдельная статья с примерами, пока лишь скажу, что работать с реконфигурацией очень просто, на Си это будет просто вызов одной функции типа fork() с указанием сколько клеток от основного потока мы отделяем и куда, на ассемблере также просто, приведу пример ассемблерной вставки для выполнения трех независимых программ на Си:
Допустим у нас есть 3 программы на Си, в которых мы указываем вместо main():
main1(), main2(), main3(), далее сделаем следующую ассемблерную вставку:
pre_reconf: 
    getl #PSW
    getl 0x180 ; выставляем необходимые биты в PSW
    or @1, @2
    setl #PSW, @1
    jmp reconf
complete

reconf:
    getl 0x8
    patch @1, @1
    setq #ICR, @1 ; 1000 регистры ICR для клеток, указываем в какой группе они будут
    getl 0x1
    patch @1, @1
    setq #ICR, @1 ; 0001
    getl 0x6
    patch @1, @1
    setq #ICR, @1 ; 0110 
    getl 0x8
    getl main3;
    patch @2, @1
    setq #NEWADDR, @1 ; указываем адрес перехода для группы из 3-й клетки
    getl 0x1
    getl main2;
    patch @2, @1
    setq #NEWADDR, @1 ; указываем адрес перехода для группы из 0-й клетки 
    getl 0x6
    getl main1
    patch @2, @1
    setq #NEWADDR, @1 ; указываем адрес перехода для группы из 1-й и 2-й клетки
complete

Приведём сравнительную таблицу основных параметров P1 и R1:



*Энергопотребление приведено на смеси задач 75% DMAC + 25% ADD. Максимальное потребление для R1 на задаче FFT составит 1,05 Вт. Энергопотребление P1 не имеет больших изменений в зависимости от задачи.
В R1 уже реализован для некоторых блоков clock gating для снижения энергопотребления, при этом количество транзисторов в R1 в 1,5 раза больше чем в P1.

Для каждого процессора имеется возможность писать программы на ассемблере, Си, отлаживать их и выполнять на процессоре. В качестве среды разработки выбран простой редактор Geany.
Работать в среде можно под Windows и Linux. Обзор среды разработки и средств также будет выделен в отдельную статью.

5. Анонс

    Хочется поделиться тем, что процессор R1 работает, как и планировали, отладочные платы под него откорретированы и уже мы сами сделали прототип защищенного криптотелефона с использованием реконфигурации и встроенных АЦП, ЦАП. Примерный вид корпуса изображен на рисунке 4. Работающий макет на рисунке 5.


Рис 4. Прототип корпуса телефона


Рис 5. Работающий макет криптотелефона

    Сейчас у нас идёт активная фаза по внедрению наших процессоров в школы (в виде робототехнических занятий) и Вузы в виде создания лабораторий, поэтому важным шагом мы считаем снижение порога вхождения в работу с новыми мультиклеточными процессорами.
Для этого мы планируем сделать цикл обучающих статей на портале Хабрахабр, краткий анонс и очередность статей приведу ниже с целью получить отклик в плане порядка выпуска лекций и содержания:
Разделы новых статей
1) Мультиклеточная архитектура глазами программиста
2) Среда разработки для мультиклеточных процессоров – Geany
3) Обзор отладочного комплекта LDM-Systems для Мультиклет R1
4) Запуск первой программы на Мультиклет R1
5) Обзор ассемблера и Си компилятора для Мультиклет
6) Обзор отладчика и среды отладки Geany для Мультиклет
7) Реконфигурация в процессоре Мультиклет R1
8) Системные регистры и сторожевой таймер (Мультиклет R1)
9) Система тактирования (Мультиклет R1)
10) Система прерываний (Мультиклет R1)
11) Работа с памятью и блоком DTC (Мультиклет R1)
12) Работа с портами GPIO (Мультиклет R1)
13) Работа с UART, RS-232, RS-485 в примерах (Мультиклет R1)
14) Интерфейс I2C с разбором примера работы (Мультиклет R1)
15) Интерфейс SPI, особенности и примеры работы (Мультиклет R1)
16) PWM и его особенности (Мультиклет R1)
17) USB 2.0 на простом примере и анализ в Beagle (Мультиклет R1)
18) Ethernet: прием и передача пакетов (Мультиклет R1)
19) Интерфейс I2S на примере работы с аудио кодеком (Мультиклет R1)
20) АЦП и ЦАП с примером реализации диктофона (Мультиклет R1)
21) Математическая библиотека (Мультиклет R1)
22) Библиотека для работы со строковым дисплеем WH1602A (Мультиклет R1)
23) Библиотека для работы с тачскрином HY2B (Мультиклет R1)
24) Библиотека для работы с GSM модулем SIM800(Мультиклет R1)
25) Библиотека для работы с GLONASS/GPS модулем (Мультиклет R1)
26) Библиотека для работы с Ethernet (lwip) (Мультиклет R1)
27) Библиотека для работы с USB (Мультиклет R1)
28) Работа с ОС FreeRTOS (Мультиклет R1)
29) Работа с ОС uClinux (Мультиклет R1)

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

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


  1. dmitrmax
    07.05.2015 13:41
    +1

    объясните пожалуйста, чем ваша архитектура отличается от VLIW-архитектуры? например, аля семейство DSP-процессоров TMS320C64xx


    1. krufter Автор
      07.05.2015 13:46
      +5

      В статье «Мультиклеточный процессор — это что» есть очень подробное описание принципов построения нашей архитектуры habrahabr.ru/post/226773 также имеется документ «О принципиальном отличии архитектуры от других», можно скачать тут rghost.ru/7ZyVwdTvd (не могу давать ссылку на наш сайт к сожалению)


    1. GarryC
      07.05.2015 14:06
      -5

      Это VLIW с пропуском пустых полей. По крайней мере, предыдущий кристалл был именно таким.


    1. mikhanoid
      07.05.2015 14:28
      +10

      Если кратко, то всем.

      Более подробно. VLIW команды исполняются in-order, пачками, как раз этими самими очень длинными словами. Пока текущая пачка не выполнилась, следующая не выполняется. Понятно, что есть конвейеры, bypass-ы и всё не так примитивно. Но если одна пачка команд в VLIW задерживается, например, при доступе в память или делении, то все другие команды стоят и не выполняются. В конвейерах пузыри и вообще растрата времени.

      Поэтому у TMS320C64xx специальная архитектура памяти: есть медленная, есть быстрая, специальные методы выполнения долгих операций типа деления. И много других дополнительных особенностей. Например то, что формат пачки инструкций определяет количество и структуру исполнительных устройств.

      В нашей архитектуре, нет никаких пачек инструкций. И все инструкции исполняются out-of-order. Если какая-то инструкция задерживается с завершением, то она не мешает процессору исполнять остальные инструкции. Кроме того, наше представление программы не зависит от количества функциональных устройств.


      1. xiWera
        09.05.2015 01:09

        Если все инструкции исполняются OoO, то такой процессор нафиг не нужен никому будет. Делаешь операции с тремя регистрами и получаешь произвольный результат. Наверное вы имели ввиду что каждая клетка сама по себе выполняет команды независимо от других клеток?
        Из статьи же понятно, что фактически мультиклет это вывернутый vliw. И там и там паралелльность обеспечивается компилятором, который правильно расставляет (в случае vliw пакует в одну) комманды, чтобы они доставались клеткам(в случае vliw вычислительным блокам) оптимальным образом и они не стояли в простое. «Вывернутость» получается в том смысле. что во vliw внутренние вычислялки заточены на максимальную потоковую скорость, а в мультиклете максимальная скорость поменяна на более гибкую «упаковку» комманд.
        Ну и конечно пиковая производительность под большим вопросом. Вангую реальный specfp раз в 5-10 ниже.


        1. mikhanoid
          09.05.2015 07:19
          +3

          Сейчас поломаю Вам все гештальты, заранее прошу прощения за это, но все современные высокопроизводительные процессоры являются процессорами с внеочередным исполнением, то есть, с out-of-order execution engine. Если Вы утверждаете, что такие процессоры нафиг никому не нужны, то на какие средства живут AMD и Intel? Мы только что раскрыли с Вами всемирный заговор?

          В общем, ерунду Вы написали.

          В обычных процессорах порядок инструкций при OoOE контролируется кучей аппаратных механизмов, в Мультиклете этот порядок сразу задан связями инструкций через коммутатор. Каждая клетка может исполнять инструкции, загруженные в её буфер инструкций в порядке, задаваемом готовностью аргументов.

          Внутренние вычислялки, то есть, то, что на нормальном языке называется функциональные устройства (functiona units), везде заточены под максимальную скорость, они не принимают решения о том, какие инструкции они исполняют. Им на вход подаются инструкции, которые они должны выполнить. ФУ у Мультиклета довольно быстрые (не идеальные ещё, но быстрые), большинство операций исполняется за 1 такт.

          И вся разница между современными процессорами, в основном, заключается именно в том, как и когда инструкции и данные поступают на эти ФУ. Сами ФУ, в общем-то, хорошо изучены и являются почти стандартными для каждого требующегося диапазона рабочих частот процессора.


          1. xiWera
            17.05.2015 18:57
            -1

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

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

            Внутренние вычислялки в современных процессорах бывает даже меньше чем за один такт вычисляют. Впихнут ALU работающий на удвоеной частоте, а то и два. Но вот чтобы получить описаные 2.4ГФлопа на 100 мегагерц и четыре ядра(клетки), нужно обеспечить уж шибко большое количество float-умножалок, которые нигде в описаниях у них не отсвечивают. Вполе может это число взято из таблички о 64клеточном варианте и «случайно» тиражируется от поста к посту. Или флопы тут посчитаны относительно 16битных float. Или ещё какой казус. Но в 2.4ГФлопа верится с трудом.


            1. krufter Автор
              18.05.2015 08:02
              +1

              Внутренние вычислялки в современных процессорах бывает даже меньше чем за один такт вычисляют. Впихнут ALU работающий на удвоеной частоте, а то и два. Но вот чтобы получить описаные 2.4ГФлопа на 100 мегагерц и четыре ядра(клетки), нужно обеспечить уж шибко большое количество float-умножалок, которые нигде в описаниях у них не отсвечивают. Вполе может это число взято из таблички о 64клеточном варианте и «случайно» тиражируется от поста к посту. Или флопы тут посчитаны относительно 16битных float. Или ещё какой казус. Но в 2.4ГФлопа верится с трудом.

              Не нужно большое количество float умножалок, у нас есть блок ALU_FLOAT в каждой клетке.
              Как получаются 2.4 ГФлопса в статье расписано очень подробно на мой взгляд. Состав блоков процессора также показан в предыдущей статье, на которую приводится ссылка. Случайно у нас ничего не тиражируется в статьях.


              1. xiWera
                18.05.2015 15:56

                Вы про это:?
                <>
                В каждом такте на исполнение могут отправиться до 12-ти команд (4 клетки с тремя независимыми портами для ALU_FLOAT, ALU_INTEGER, DMS в каждой), но выход у них один, поэтому выдать результат в текущей реализации архитектуры могут до 4-х команд за такт. Производительность в Гигафлопсах получается в пике за счет темпа выполнения команд комплексного умножения двух аргументов (a + bi) * (c+di), в результате получаем 6 операций на клетку, умножаем на 4 клетки и получаем 24 операции за такт. Умножив количество операций за такт на частоту (для R1 это 100 МГц) получим 2,4 ГФлопса.
                <>

                Каким образом внезапно все три блока стали ALU_FLOAT и одинаково участвуют во FLOPs производительности? 4 клетки на 100МГц с одним независимым ALU_FLOAT (остальные два то не FLOAT), пусть будет даже одно умножение за такт. Получим 400MFLOPs. При этом, как я и говорил, в specfp, так как одним умножением сыт не будешь. Это опустится еще раза в два-три.


                1. krufter Автор
                  18.05.2015 16:09

                  У нас одно ALU_FLOAT каждый так выполняет одно комплексное умножение, а это 6 операций.
                  Проведем краткий экскурс в математику(раскроем скобки):
                  (a+bi)*(c+di) = (a*c — b*d) + i*(a*d+b*c)
                  Теперь считаем операции:
                  (для реальной части): умножение, вычитание, умножение — 3 операции
                  (для комплексной части): умножение, сложение, умножение — 3 операции
                  Итого в потоке пиковая производительность составит 6 операций за такт.


  1. amartology
    07.05.2015 14:00
    +2

    Я правильно понял, что R1 имеет в итоге меньшую производительность, чем было у P1 (из-за меньшей предельной тактовой частоты)?
    «Микрон» 180 нм не рассматриваете из-за стоимости, или есть какие-то еще причины?
    На более низкие проектные нормы планируете переходить?
    Топологию по-прежнему полностью аутсорсите, или собираетесь сами ей заниматься в какой-то перспективе?
    Питания 3.3 и 1.8 надо извне подавать на кристалл, или у вас встроенный преобразователь есть? Над динамическим изменением напряжения питания в различных режимах не думали?


    1. krufter Автор
      07.05.2015 14:11
      +6

      Мы в таблице и привели для 100 МГц производительность. В принципе да, P1 разгоняется до 120МГц, на R1 не было времени вытянуть на большую частоту, поэтому 100МГц, но зато с реконфигурацией и много чем еще, что позволяет R1 работать быстрее не в пиковой производительности а в целом и решать больший круг задач.
      Руководство рассматривало «Микрон», я только за попробовать сделать пластину на Микроне, надо у руководства уточнять выбор фабрики и причины.
      На более низкие топонормы планируем переходить в ближайшем будущем.
      Топологию «Цифровые решения» делали, в перспективе конечно хотелось бы всё самим.
      В текущей версии процессора надо извне подать 1.8 и 3.3, в следующих версиях будет одно питание 3.3 В, над динамическим изменением напряжения также думали, у нас очень много того, что мы хотим, но все за раз сложно сделать и отладить.


  1. SunSunSun
    07.05.2015 15:08
    +5

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


    1. krufter Автор
      07.05.2015 15:25

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


  1. Amomum
    07.05.2015 15:17
    +2

    А можно ли уже писать не на ассемблере под мультиклет? На С89 хотя бы?


    1. krufter Автор
      07.05.2015 15:28
      +1

      Да и для P1 и для R1 можно уже писать на Си89, компилятор Си99 оптимизирующий на подходе(была произведена ротация в команде разработчиков компилятора с целью его скорейшего выхода).


      1. Gorthauer87
        07.05.2015 16:22
        +5

        А для llvm бэкенд не планируете сделать?


        1. naum
          08.05.2015 07:30
          +5

          Скажем так, если был бы backend для llvm это бы решило проблемы активного продвижения в отрасль за счет хреновой тучи frontend'ов для оного. Потом нужно ставить вопрос не «планируете сделать», а кричать «вам обязательно нужно это сделать, черт побери!».


          1. stalkerg
            12.05.2015 11:45

            У llvm куча проблем с нестандартными архитектурами. Тот же VLIW в пример.


  1. Error1024
    07.05.2015 15:22
    +13

    Не обращайте внимание на слова «это не нужно», «страдаете фигней», и т.д. Вы делаете очень крутую работу!
    Можно ли будет в ближайшее время достать где-нибудь отладочную плату для себя?
    Очень хотелось бы поиграться :)


    1. krufter Автор
      07.05.2015 15:26
      +1

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


      1. Error1024
        07.05.2015 15:44
        +1

        Дороговато конечно,
        планируется ли плата подобная LDM-MCp0411100101-Q-208 Evolution, но с R1?


        1. krufter Автор
          07.05.2015 15:48
          +3

          Процессорная плата может работать отдельно от базовой, надо только питание на неё подать и JTAG приобрести или если есть PicoTap, то им воспользоваться. Намекну LDM-Systems, что нужен очень дешёвый аналог отладки как у STM32F4 discovery.


          1. Error1024
            07.05.2015 15:53
            +1

            Но как я понял LDM-MCp0411100101-Q-208 самодостаточна, т.е. купил подцепил к компьютеру и можно уже помигать светодиодом?


            1. krufter Автор
              07.05.2015 16:30
              +1

              Именно так.


              1. krufter Автор
                08.05.2015 09:16
                +1

                Хочу еще дополнить свой ответ, тем что процессорную плату можно запитать по USB проводу от ПК, т.е. минимально достаточным набором будет процессорная плата + программатор LDM Pico Prog


          1. HomoLuden
            08.05.2015 18:32
            +1

            Да! Еще как нужен.

            Аналог STM32F4 Discovery по формату: со встроенным отладчиком (да пусть даже без него, но внешний чтобы был недорогим), да еще бы конфигуратор/генератор кода вроде STM32CubeMX.
            Сигма-дельта АЦП 16 бит @ 48 кГц — очень вкусная фича. Мне бы хватило и 2 кГц.
            Параллельность и возможность запустить FreeRTOS — важно.
            512КБ памяти для приложения — мне хватит с запасом.
            ОЗУ 30 кБ — меньше нежелательно.

            Купил бы такой вариант уже сейчас за 2-3 тыр.


  1. valeriyk
    07.05.2015 15:58
    +2

    Интересно: на сайте ЦР написано, что вы им дали нетлист, а топологию они сделали сами под один из техпроцессов, который они поддерживают. Т.е. у них, видимо, куплены библиотеки стандартных ячеек под несколько техпроцессов (TSMC, Silterra, TowerJazz, Микрон). Библиотека (да и memory compiler) ведь нужна для синтеза — они вам ее дали, перепродали, или вы сами с фабрикой договаривались? На каком этапе разработки был выбран техпроцесс? Заранее, под какие-то рамки производительности, или сначала написали RTL, а потом выбирали, где произвести? (т.е. выбирали техпроцесс под частоту, или частоту под техпроцесс?)


    1. krufter Автор
      07.05.2015 16:15
      +3

      Точно не уверен, но насколько мне известно фабрики бесплатно предоставляют свои библиотеки. С фабрикой у нас есть прямые контакты. Для R1 до начала работ выбирался техпроцесс с учетом стоимости техпроцесса, рамок производительности и размером кристалла, сейчас у нас 12 на 12 мм кристалл на 180 нм. Главным аргументом выбора техпроцесса была стоимость выпуска первой партии и круг задач решаемых процессором. Клетке на самом деле не важно на каком техпроцессе она будет произведена, вопрос лишь в том, под какой техпроцесс у нас должна быть PLL, АЦП, ЦАП. В R1 мы главное, мы хотели попробовать очень много нового, частота для нас стояла на втором плане, в текущей ревизии мы не занимались вытаскиванием высокой частоты, главное было, чтобы все заработало так как задумали.


    1. amartology
      07.05.2015 16:16
      +1

      Обычные библиотеки стандартных элементов, как правило, не покупаются, а выдаются вместе с дизайн-китом бесплатно.


      1. valeriyk
        07.05.2015 16:25
        +1

        Ну просто я знаю, что наша контора продает свои собственные библиотеки для TSMC. То есть если я пойду прямо к TMSC и скажу, что хочу в их шаттл — они дадут либы бесплатно? Или нужно сначала кровью подписаться, что куплю контейнер пластин?

        Интересно, как фаблесс модель работает в реальной жизни.


        1. amartology
          07.05.2015 16:34
          +1

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


  1. Sergei2405
    07.05.2015 16:00
    +1

    В таблице характеристик для АЦП ЦАП не хватает разрядности, и для ЦАП нет ли «очепятки» в 100 Мвыб/сек.


    1. krufter Автор
      07.05.2015 16:19
      +1

      АЦП 16 бит, 8 независимых каналов, дельта-сигма, 48 киловыборок/с
      ЦАП 12 бит, 1 канал, и работает на системной частоте в 100 МГц, т.е. главное как быстро мы будем ему данные на вход подкладывать


  1. Sergei2405
    07.05.2015 16:09
    +1

    И судя по фотографии пластины это был не MPW шаттл. Рисковые вы парни :)


    1. krufter Автор
      07.05.2015 16:16
      +1

      Мы не делаем шаттлы и для P1 тоже не делали, дешевле выпустить 3-4 тысячи процессоров в кремнии.


      1. amartology
        07.05.2015 16:36
        +1

        То есть это что-то вроде Engineering run / MLM сразу? Тогда это действительно не смертельно дорого, можно и рискнуть, если сила воли есть.


        1. krufter Автор
          07.05.2015 16:40
          +1

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


  1. 4umak
    07.05.2015 16:17
    +1

    Does it run NetBSD? Есть ли уже под него линукс?:)


    1. krufter Автор
      07.05.2015 16:21
      +1

      Пока что с отладочной платой можно работать под Linux. На борт процессора ещё не успели uClinux портировать.


      1. 4umak
        07.05.2015 19:42
        +6

        Я в железной части сильно плаваю, поэтому следующий вопрос, наверное, покажется глупым, но насколько можно считать этот процессор «процессором общего назначения»? Т.е. я вижу там, судя по описанию, пучок привычных интерфейсов, типа usb, wifi, ethernet, sdram. Насколько возможно на базе данного процессора сделать что-то в стиле «малинки»?


        1. krufter Автор
          08.05.2015 09:20
          +1

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


          1. 4umak
            08.05.2015 09:55
            +1

            Ок, ждём, спасибо!


      1. HomoLuden
        08.05.2015 11:59
        +2

        А что насчет поддержки FreeRTOS?


        1. krufter Автор
          08.05.2015 12:04
          +3

          Да можно запускать FreeRTOS, вот мы сами запускали 2 года назад на P1 www.youtube.com/watch?v=PhJqBR1Yank


  1. mark_ablov
    07.05.2015 17:27
    +1

    Насколько я понимаю, многое зависит от качества компилятора.
    Помню какой это ад был с программированием ресурсоёмких приложений под Itanium. Я уже оставлял платформу, когда компилятор стал выдавать более-менее вменяемый код.
    Как у вас в этом направлении?


    1. vanxant
      07.05.2015 21:00
      +1

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


      1. mikhanoid
        08.05.2015 05:59
        +1

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

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


        1. amartology
          08.05.2015 10:29
          +6

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


          1. mikhanoid
            09.05.2015 07:20
            +1

            Угу. Надо написать. Но сначала надо закончить работу.


        1. MinasAbrahamyan
          09.05.2015 00:34
          +1

          А откуда программистская общественность узнает о вашем компиляторе,
          если даже о самом процессоре мультиклет с трудом можно узнать? На деле от вас нет ни одной ссылки на RSDN — на что вы рассчитываете? Гугл с трудом находит ваш форум — это он? multiclet.com/community/news/1


          1. mikhanoid
            09.05.2015 07:23

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


    1. mikhanoid
      08.05.2015 05:58
      +2

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

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

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

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

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

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


      1. Gorthauer87
        08.05.2015 10:15
        +4

        А что мешало сам LLVM взять? Он что-ли совсем неэффективен by design для данной архитектуры? Просто было бы круто иметь c++14, rust и прочие новомодные языки.


        1. Halt
          08.05.2015 12:02

          LLVM не может быть неэффективен для архитектуры, потому что архитектура является вторичной. Бо?льшая часть кода вообще не оперирует понятиями целевой архитектуры.

          Это ОЧЕНЬ сомнительное удовольствие писать свою библиотеку. Вместо того чтобы взять тонны отлаженного и документированного кода (не говоря уже о фрондендах языков).


          1. mikhanoid
            09.05.2015 07:52
            +3

            LLVM заточен на регистровые машины, то есть на те, в которых обмен данными между инструкциями осуществляется через регистры. Регистр, как абстракция, это такая именованная ячейка памяти. LLVM ожидает, что если в регистр с именем X записано некоторое значение, то потом оно и будет всегда читаться по этому имени X до следующей записи. Объяснить LLVM, что такое «ссылка на результат одной из предыдущих инструкций», и то, что одно и то же имя, например, "@1" может означать разные значения, не понятно как. Мы не разобрались сами. Но если кто-то нам подскажет, мы будем весьма рады и благодарны этому хорошему человеку.


            1. Halt
              09.05.2015 19:09

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

              На уровне кодогенератора мы берем SSA представление и последовательными проходами «опускаем» его до уровня железа. Регистры назначаются практически в самом конце. До того представление оперирует виртуальными регистрами vreg коих может быть много.

              Я так понимаю что разрешить регистровую связь можно как раз через vreg-и. Ну и разумеется написать свой умный регистровый аллокатор, который не просто растолкает vreg-и по реальным регистрам, но еще и сохранит эти отношения.


              1. mikhanoid
                09.05.2015 21:27
                +2

                На каком уровне вы пытаетесь это объяснить?

                Наша первая попытка была: взять стандартный интерфейс для описания целевой машины LLVM и реализовать его. На этом уровне не получилось.

                До того представление оперирует виртуальными регистрами vreg коих может быть много.

                Проблема не в количестве, а в том, что эти vreg-и являются именно регистрами, то есть, они хранят связанные с ними значения постоянно. LLVM считает, что vreg переживает ветвления. А у нас совсем не так.

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

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

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

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


                1. Halt
                  09.05.2015 21:41
                  +1

                  Спасибо, очень интересная информация!

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

                  Я правильно понимаю, что именно параграф ограничивает параллелизм и границы применимости данных? Кто решает где можно параллелить а где нет? На каком уровне разрешаются зависимости по данным?

                  P.S.: Я был бы очень признателен, если бы вы описали это дело в виде статьи. Тема очень интересная и нестандартная. С такими проблемами мало кто сталкивался.


        1. mikhanoid
          09.05.2015 07:47

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

          Ну и вот. Так получилось. Теперь, видимо, имеет смысл сделать LLVM одним из доступных для нашей системы front-end-ов. Но всё равно, мы получим более подходящее нам промежуточное представление, если будем описывать семантику C++ сразу в терминах нашей системы, а не обрабатывать код, в котором уже нет интересных для оптимизации подробностей.


  1. spanasik
    07.05.2015 19:52
    +5

    А вот это очень интересный процессор, кмк. По крайней мере, необычный.


    1. gigimon
      07.05.2015 22:46
      +6

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


      1. spanasik
        07.05.2015 22:50
        +11

        Главное, что без дикого количества пафоса. Сразу видно, люди что-то реальное пилят.


  1. amarao
    08.05.2015 00:02

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

    То есть, с позиций:

    Консьюмера
    Бизнеса, которому хочется попроще и получше всё то, что было
    Связистов
    IoT'а
    Любителей-монтажников

    ?


    1. vanxant
      08.05.2015 01:31
      +7

      proof of concept гибрида ужа и ежа (cpu и dsp).
      В перспективе, когда все отладят, ядра (клетки) можно будет напихивать сотнями как в gpu, но в отличие от, эти ядра а) универсальные, б) гибко обмениваются данными напрямую на уровне инструкций, а не как сейчас через всякие мьютексы в памяти.
      В более близкой перспективе — ну, будет просто быстрая универсальная числодробилка с очень низким энергопотреблением.


      1. VenomBlood
        08.05.2015 03:59
        +1

        «Ядра обмениваются данными» — это как? Сейчас эксклюзивно у ядра в большинстве ЦП есть L1/L2. Весь «обмен» данными — это просто писать в расшаренную память. Мьютексы используют не потому что архитектура кривая, а потому что необходимо синхронизировать потоки выполнения на разных ядрах (или под «мьютексом» тут понимался MESI?). Для того, чтобы подобный супер-многоядерный процессор выигрывал — он должен значительно выигрывать по показателю производительности на доллар, и при этом класс задач, который можно решать — это то, что очень сильно параллелится, но то что нельзя переложить на GPU в силу сложности логики каждого потока и то где необходим быстрый обмен данными. Если хоть одно из этих условий не выполняется то GPU или CPU будет быстрее (если, конечно, архитектуру самого ядра не добьют до уровня, конкурирующего с Intel, но вроде такой задачи не ставят). Даже если все выполняется — встает проблема переписывания кода и экономической обоснованности покупать железо под конкретную задачу (задачу завтра решат, а железо останется).


        1. mikhanoid
          08.05.2015 06:17
          +2

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

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

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

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


          1. VenomBlood
            08.05.2015 06:26
            +1

            Я знаю что такое MESI, но мьютексы и прочие примитивы синхронизации — это, еще раз повторю, не из-за особенности процессора, а из-за необходимости синхронизации алгоритма, запустить его хоть на камне — от этого мьютексы не исчезнут.
            «Мало клеток» не дадут прироста скорости линейным вычислениям. Т.е. есть у меня алгоритм, который не параллелится — и если я объединю хоть миллион небольших ядер/клеток/назовите как угодно — я не получу прироста производительности.

            Ответьте на три вопроса:
            1 — как вы предлагаете избавиться от примитивов синхронизации?
            2 — Зачем нескольким вычислительным модулям обмениваться быстро данными? Какая область применения, когда нужно такое постоянное взаимодействие? Если задача плохо параллелится, то все что вы можете сделать — это ILP, применимость ILP заметно ограничена контекстом, и получить выигрыш от большого количества ядер здесь тяжело, кроме того ILP есть и на обычных Intel процессорах, масштабировать его дальше не слишком далеко можно.
            3 — Как я получу прирост производительности в алгоритме с 2 потоками если у меня будет хоть 2000 «клеток»? Против, например, варианта с 10 клетками.


    1. Shablonarium
      08.05.2015 01:36
      +1

      Подпишусь. Пока не очень понятен стек задач.


    1. mikhanoid
      08.05.2015 06:10
      +7

      Консьюмер у нас, предположительно, трёх видов:

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

      2. Те, кому нужны высокопроизводительные системы. Поле клеток можно отконфигурировать под особенности задачи. Если алгоритм хорошо раскладывается на множество мелких нитей, как в GPU, то можно поле развалить на отдельные клетки и получить нечто вроде GPU. Если же есть участки с вычислениями сильно зависимыми по данным, то клетки можно объединить в группы и обрабатывать данные как традиционными out-of-order процессорами. При чём, это всё в динамике и в зависимости от текущих потребностей.

      3. Те, кому нужно гибко управлять энергопотреблением. Хочется работать в энергосберегающем режиме: просто отключаем часть клеток. Не нужно дробить программу на нити, управлять ими, синхронизировать, как в bit.LITTLE у ARM. Клетки отключать/включать можно даже прямо из приложения, сложная поддержка со стороны OS не требуется.

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

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


      1. areht
        08.05.2015 08:30
        -1

        > Консьюмер у нас, предположительно, трёх видов:

        Звучит так, как будто консюмера вживую пока никто не видел.

        Ну то есть вы придумали архитектуру, а заказчиков пытаетесь под эту архитектуру подогнать. Но существуют ли эти люди? Они в курсе, что им это надо?
        1) Ну, может быть, правда кому надо эту проблему давно решили без экзотических процессоров.
        2) «высокопроизводительные» — это очень теоретические мечты, вам до GPU лет 10. Только там понятно на какие деньги развитие было, а у вас — нет. Зачем мне конфигурировать CPU в GPU, если у меня в компе стоят оба?
        3) «отключать прямо из приложения» — это удобно, вирусописатели оценят. Но не очень понятно зачем. Ну может у вас это и лучше работает (без реальных тестов не понятно), но если это единственное преимущество для задачи — (почти)всегда можно батарейку побольше поставить.

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


        1. 4umak
          08.05.2015 08:59
          +3

          Ну то есть вы придумали архитектуру, а заказчиков пытаетесь под эту архитектуру подогнать. Но существуют ли эти люди? Они в курсе, что им это надо?

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

          Они решили эту проблему эффективно? Или, может, там настолько всё топорно, что есть непаханное поле для эволюции?
          Зачем мне конфигурировать CPU в GPU, если у меня в компе стоят оба?

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

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


          1. VenomBlood
            08.05.2015 09:20
            -2

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


            1. 4umak
              08.05.2015 09:35
              +2

              Пример с потолка — яндекс. Ребята делали поиск ради поиска и про интернет тогда думать не знали вообще. А оно оказалось.

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

              «Пусть расцветёт тысяча цветов». А там уже выживет полезнейший:)


              1. VenomBlood
                08.05.2015 09:39

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


                1. krufter Автор
                  08.05.2015 10:23
                  +1

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


                  1. VenomBlood
                    08.05.2015 20:16
                    -1

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

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


                    1. Chamie
                      12.05.2015 12:31

                      Эта фраза подразумевает что одна ваша «клетка» по производительности сравнима с ядром Intel
                      А почему именно Intel?


                      1. amartology
                        12.05.2015 13:46
                        +1

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


                1. 4umak
                  08.05.2015 10:51
                  +3

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


                  1. VenomBlood
                    08.05.2015 20:11

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


              1. areht
                08.05.2015 11:03
                +1

                Не «поиск ради поиска», а «поиск ради результата».

                Рынок планшетов недвусмысленно и безуспешно окучивал wintel с MID ещё года с 2002, прекрасно понимая потенциал. Если вы считали, что раз у вас есть ноутбук, то он есть у всех — это не проблема айпада.


            1. krufter Автор
              08.05.2015 10:17
              +1

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


              1. amartology
                08.05.2015 10:34
                +1

                FRAM вы где собрались взять себе на борт?


                1. krufter Автор
                  08.05.2015 11:32
                  +1

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


              1. VenomBlood
                08.05.2015 20:18
                +1

                Понятно. Т.е. по сути вы делаете ASIC'и, и теперь добавили немного стероидов и продвигаете.


          1. areht
            08.05.2015 10:54

            > Как и с любым действительно новым продуктом.

            Ну, что он «действительно новый» — это отдельный разговор.
            Радио изобреталось с понятными целями, это — «потому, что могу».

            > Они решили эту проблему эффективно? Или, может, там настолько всё топорно, что есть непаханное поле для эволюции?

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

            > Зачем вам два, если можно обойтись одним?

            Мне не 2, и не 1 — мне чтоб считало. Это называется «решить эффективно».


            1. 4umak
              08.05.2015 11:01
              +3

              Радио изобреталось с понятными целями, это — «потому, что могу».

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

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

              «Решить еффективно» — это максимум пользы при минимуме затрат. Вы уверены, что первое же полученное человечеством решение какой-то проблемы — единственно верное?


              1. krufter Автор
                08.05.2015 11:44
                +1

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


                1. 4umak
                  08.05.2015 11:47
                  +2

                  Вы веткой не промахнулись?:) Я то вас поддерживаю:)


                  1. krufter Автор
                    08.05.2015 11:59
                    +1

                    Да), я для пользователя areht написал.


                1. areht
                  08.05.2015 12:32
                  +1

                  Чего уж там, мне бы тоже хотелось поддержку государства, а не жить на одну зарплату.

                  Только пока вы претендуете на поддержку (да и получаете немало госзаказов) из моих налогов — позвольте вас не поддержать в этом стремлении.

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


              1. areht
                08.05.2015 12:22

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

                > «Решить еффективно» — это максимум пользы при минимуме затрат. Вы уверены, что первое же полученное человечеством решение какой-то проблемы — единственно верное?

                А вы уверены, что продукт, произведённый у нас — «единственно верный»? Я уверен, что нет, а вы разговариваете противоречащими параграфами.


                1. 4umak
                  08.05.2015 12:25
                  +2

                  А вы уверены, что продукт, произведённый у нас — «единственно верный»? Я уверен, что нет, а вы разговариваете противоречащими параграфами.

                  Нет, я не только в этом не уверен, более того, я об этом нигде не говорил. Вы просто читаете то, что вам удобно. Я уже выше писал:

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


                  1. areht
                    08.05.2015 12:44
                    -2

                    > Я ничего не путаю, я просто предлагаю дать ребятам сделать своё дело и посмотреть, что в итоге получится.

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

                    Если заинтересованных заказчиков не достаточно для развития этой технологии — вероятно люди страдают ерундой, а не эффективным решением задач.


                    1. FYR
                      08.05.2015 13:41
                      +4

                      Вот поэтому мы вместо полета к Марсу, исследования земных глубин и прочих «высоких целей» тратим деньги на разные шоу «Биланов», очередные iPhone c экранами побольше и феррари с колесами покруглее. Маркетолухи убедили что это как раз то что нужно «заинтересованному заказчику».

                      А ребята молодцы — действительно ищут что то новое, и я уверен найдут!


                      1. areht
                        08.05.2015 17:04
                        -2

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

                        Вообще, в 101 архитектуре процессора ничего общего с полётами к марсу. Это и есть кусок очередного айфона (даже на КДПВ топике — кусок айфона!)


                    1. krufter Автор
                      08.05.2015 13:48
                      +2

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

                      Если заинтересованных заказчиков не достаточно для развития этой технологии — вероятно люди страдают ерундой, а не эффективным решением задач.


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


                      1. areht
                        08.05.2015 17:09
                        -3

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


                        1. aperechnev
                          08.05.2015 17:43
                          +1

                          Вы прям в качестве вины какой-то это преподносите.


                          1. areht
                            08.05.2015 19:04
                            -3

                            Ну делать вид, что кормит не государство — скорее да.
                            Остальное — скорее к государству.


                            1. aperechnev
                              08.05.2015 19:09

                              Вы предлагаете свернуть оборонную промышленность в стране? Каково Ваше видение правильного расходования бюджетных средств?


                              1. areht
                                08.05.2015 19:20

                                Я предлагаю свернуть оборонную промышленность до адекватного состояния. Раза в 2-3.

                                У нас, по соотношению военных расходов к ВВП, третье место в мире. Больше, чем у США и остальных 260 стран в мире.


                                1. aperechnev
                                  08.05.2015 19:28

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


                                  1. areht
                                    08.05.2015 19:43

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

                                    Как и у остальных 260 стран


                                    1. aperechnev
                                      08.05.2015 19:45

                                      > Как и у остальных 260 стран

                                      Из которых треть — в блоке НАТО, треть подвергается агрессии со стороны блока НАТО, и оставшаяся треть просто не представляет интереса для блока НАТО.


                                      1. areht
                                        08.05.2015 19:51
                                        -1

                                        Но нам обязательно нужен особый путь. Опция «войти в НАТО» почему-то даже не рассматривается.


                                        1. aperechnev
                                          08.05.2015 19:56

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

                                          Из википедии: «Блок НАТО основан 4 апреля 1949 года в США, «чтобы защитить Европу от советского влияния»». Так что там насчёт опции «вступить в НАТО»?


                                          1. areht
                                            08.05.2015 20:00

                                            Я напомню, что на этот «особый путь» полюса в среднем с каждого гражданина РФ собирается лишних 50 000 рублей в год. Подозреваю, что вы зарабатываете больше среднего, умножте сами.

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


                                            1. aperechnev
                                              08.05.2015 20:03
                                              -1

                                              Я подозреваю, что Вы из разряда тех, кто помогает стране размахиванием флажков на митингах.


                                              1. areht
                                                08.05.2015 20:07

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


                                                1. aperechnev
                                                  08.05.2015 20:08
                                                  -2

                                                  Аргументы не кончились. Кончилась надежда на Вашу способность анализировать ситуацию.


                                                  1. areht
                                                    08.05.2015 20:17

                                                    Я так и понял


                                1. tundrawolf_kiba
                                  08.05.2015 22:59
                                  +1

                                  >Больше, чем у США и остальных 260 стран в мире.
                                  В процентном соотношении — может быть, вот только в абсолютных цифрах — их бюджет не оборонку и исследования на четверть больше чем бюджет России в принципе. А оборонку развивать тем не менее нужно, конечно в том случае, если есть желание вести независимую политику и отстаивать геополитические интересы. Si vis pacem, para bellum.


                                  1. areht
                                    09.05.2015 02:31

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

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


                                    1. tundrawolf_kiba
                                      09.05.2015 12:38

                                      Суть не в том, чтобы поиграть в войнушку с кем-то другим, а в том — чтобы ни у кого не возникало желания поиграть в нее с нами. А для этого приходится и заниматься НИОКР по все основным направлениям, не только по оружию, но и микроэлектроника, и космическая отрасль и прочее. В образование вкладываться нужно, согласен, даже скорее в повышение престижа качественного образования в первую очередь. Но при этом если сейчас не вкладываться в ОПК, чтобы поддерживать его на современном уровне, то через 30 лет может оказаться, что и процессоры производить будет уже некому.
                                      А отстаивание интересов — это не обязательно война. Например такая ситуация — есть 3 стороны переговоров, у одной из них есть преимущество в военном плане. Первые две стороны проводят, допусти переговоры на строительство АЭС, которая может принести выгоду обеим сторонам, но тут приходит третья и требует. чтобы та сторона которая собралась строить у себя электростанцию — строила у себя не АЭС, заказывая ее у первой стороны, а ТЭЦ, заказывая ее у третьей. И все с этим соглашаются, потому что никому не охота рисковать навлечь на себя недовольство превосходящей в военном плане страны. А вот если у страна предлагающая АЭС и предлагающая ТЭЦ примерно равны в военном плане — то вероятность прямого конфликта между ними стремится к 0, и тогда им придется достигать своих выгод более тонкими методами, чем прямое давление.


                                      1. areht
                                        09.05.2015 13:01
                                        +1

                                        > А вот если у страна предлагающая АЭС и предлагающая ТЭЦ примерно равны в военном плане — то вероятность прямого конфликта между ними стремится к 0

                                        А в какую цифру вы оцениваете вероятность прямого военного конфликта, между участниками ядерного клуба?

                                        Нас проще экономически уничтожить, чем воевать. И через 30 лет процессоры производить будет некому.

                                        Но навлечь недовольство превосходящих в экономическом плане стран почему-то никто не боится.


                                        1. tundrawolf_kiba
                                          09.05.2015 13:21

                                          >А в какую цифру вы оцениваете вероятность прямого военного конфликта, между участниками ядерного клуба?
                                          Для США, Россия, Китай — меньше процента, для остальных стран участниц — меньше 5.

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


                                          1. areht
                                            09.05.2015 13:48
                                            +1

                                            > Куба и Северная Корея долгие годы живут долгие годы в экономической изоляции

                                            И как у них дела с защитой геополитических интересов в плане постройки АЭС и ТЭЦ? Ну живут и живут, если бы северная корея не находилась рядом с южной — можно на их месте на карте пустыню нарисовать, мало что поменяется. Уничтожить как страну? Ну есть только одна проблема, как в анекдоте про неуловимого Джо.

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

                                            Простите мне продажу идеалов «отстаивания интересов», но я не хочу жить ни на Кубе, ни в Северной Корее. Мне такое отстаивание интересов страны совершенно не интересно.


                                            1. tundrawolf_kiba
                                              09.05.2015 14:31

                                              >И как у них дела с защитой геополитических интересов в плане постройки АЭС и ТЭЦ?
                                              У них никак, но ведь в последнем посте у нас шел разговор об экономическом уничтожении страны. А в посте про ТЭЦ и АЭС — высказывалась мысль, что без военной силы — продвижение экономических интересов может быть легко заблокировано теми, у кого эта сила есть. А насчет неуловимого Джо — я например думаю, что Южной Корее было бы спокойнее.

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


                                              1. areht
                                                09.05.2015 15:09
                                                +1

                                                > Просто пытаюсь объяснить, что без НИОКР в разрезе ВПК и современной армии

                                                Я не предлагал отказаться от НИОКР

                                                > сложно отстаивать любые свои интересы перед другими странами

                                                Нет, вы говорите, что нужна «сравнимая» армия. При чём тут НИОКР?
                                                Вооружение можно покупать.
                                                Армию можно в 2-3-5 раз уменьшить почти без потерь в отстаивании интересов — ядерный щит компенсирует.

                                                И я не предлагал распускать армию.
                                                Бразилия (коллега по БРИК) вон тратит в 3 раза меньше наc, и ничего, как страна не исчезает.

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


                                                1. tundrawolf_kiba
                                                  09.05.2015 16:15
                                                  +1

                                                  >Нет, вы говорите, что нужна «сравнимая» армия. При чём тут НИОКР?
                                                  >Вооружение можно покупать.
                                                  При том, что без НИОКР армия будет отставать на 1-2 поколения минимум, т.к. современное оружие нам никто не продаст, по двум причинам — опасения в копировании, и опасения применения против себя. Плюс разбирать каждый элемент техники, исследовать всю закупаемую технику на предмет закладок, чтобы техника не прекратила работать в неожиданный момент вся разом. Может их и не будет, но обязательность исследования на их наличие — это не отменяет.
                                                  >ядерный щит компенсирует.
                                                  Только от прямой военной интервенции, с применением ОМП. Например Грузию ЯО совершенно не взволновало, т.к. они понимали, что в локальной войне его никто не будет применять. И если бы они не тупили в Цхинвале, а обошли и прорвались к Рокскому тоннелю — та заварушка могла пойти совсем по-другому.
                                                  >Бразилия (коллега по БРИК) вон тратит в 3 раза меньше наc, и ничего, как страна не исчезает.
                                                  Ну так они и не глобальный игрок, а региональный, вот и необходимости меньше. Из стран БРИКС — глобальными игроками являемся только мы, да Китай, который тратит в 2 раза больше нас на оборонку.
                                                  >Отращивают армию
                                                  92 год — 2,8 млн
                                                  2001 год — 1,35 млн
                                                  2010 год — 1,1 млн
                                                  2014 год — 0,8 млн
                                                  Мы точно одинаково понимаем значение слова «отращивают»?
                                                  Хотя конечно целевой показатель — 1 млн человек, но вот как-то не видно его.


                                                  1. areht
                                                    09.05.2015 17:02

                                                    > При том, что без НИОКР армия будет отставать на 1-2 поколения минимум

                                                    И что? Остальные то живут.

                                                    > Например Грузию ЯО совершенно не взволновало

                                                    А Чеченцев и наши достижения в НИОКР не волнуют.
                                                    Китай вот будет волновать ЯО.

                                                    > Ну так они и не глобальный игрок, а региональный, вот и необходимости меньше.

                                                    А вам обязательно глобально, без центропупизма никак?

                                                    > Мы точно одинаково понимаем значение слова «отращивают»?

                                                    Видимо нет
                                                    1992 — 4070 млрд
                                                    2000 — 9228 млрд
                                                    2010 — 58720 млрд
                                                    2014 — 84500 млрд


                                                    1. areht
                                                      09.05.2015 17:18
                                                      -1

                                                      В конце опечатки, конечно. 84500 млн = 84.5 млрд


                                                    1. tundrawolf_kiba
                                                      09.05.2015 17:18

                                                      >И что? Остальные то живут
                                                      Являясь при этом максимум региональными игроками. Нам же в этом случае придется разделиться на 6-7 стран, потому что наши размеры будут пугать всегда.
                                                      >А Чеченцев и наши достижения в НИОКР не волнуют.
                                                      >Китай вот будет волновать ЯО.
                                                      Предлагаете в случае какого-либо конфликта сразу применять ЯО?

                                                      По поводу бюджета: вам не кажется — что если сравнить падение численности, с ростом бюджета — что большая часть денег идет не прокорм армии самой по себе, а именно на НИОКР и модернизацию техники? На мой взгляд это гораздо лучше, чем иметь армию в 2-3 млн человек, но вооруженную старым вооружением.


                                                      1. areht
                                                        09.05.2015 17:37

                                                        > Нам же в этом случае придется разделиться на 6-7 стран, потому что наши размеры будут пугать всегда.

                                                        Если вас размеры пугают — это к фрейду.
                                                        Делить нас никому не надо так же, как не надо Кубу уничтожать как страну.
                                                        Природные богатства мы и так отдадим.

                                                        > Предлагаете в случае какого-либо конфликта сразу применять ЯО?
                                                        Предлагаю не нарываться. Но в случае вторжения Китая у вас выбор то не большой, или ЯО или сдаваться. Или надо ещё раза в 2-4 отращивать бюджеты (но у нас пупок лопнет).

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

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

                                                        За эти деньги можно было без войн купить апл, гугл и микрософт. А у нас НИОКР и мультиклет.


                        1. mikhanoid
                          09.05.2015 07:34
                          +2

                          При чём тут государство? Просто, например, есть компания, которая делает станки с ЧПУ. Им просто тупо надо надёжного поставщика процессоров, который не попадёт под санкции, в случае чего, и оперативно исполнит все их хотелки. virshke.ru — никакого государства тут нет, чисто бизнес.


                          1. areht
                            09.05.2015 09:33
                            -1

                            То, что вашим конкурентным преимуществом стало «не попадёт под санкции», а не мультиклеточная архитектура — это бизнес, и государство тут ни при чём?

                            Я именно это и назвал «нерыночным заказом»


                            1. amartology
                              09.05.2015 12:01
                              +1

                              Это всё-таки рынок, хоть и фиговый.
                              Европейские поставщики электроники для космоса всегда озвучивают, что их продукция ITAR-free, и считают это важным рыночным преимуществом.


                              1. areht
                                09.05.2015 12:36

                                В отличии от ITAR-free тут есть один нюанс. ITAR защищает интересы страны вопреки интересам производителей оборудования. А у нас ровно наоборот.


                              1. areht
                                09.05.2015 12:47

                                Вообще, я же не спорю, что для них сейчас это преимущество.
                                Я считаю, что эксплуатировать текущую ситуацию не этичным, сродни продажи БАДов старикам под видом лекарств с десятикратной наценкой.


                                1. amartology
                                  09.05.2015 12:57
                                  +2

                                  Предлагаете отказывать тем, кто приходит и говорит «нам нужен именно отечественный процессор»?
                                  Разница с БАД старикам тут простая — никто никого не обманывает.
                                  Если ситуация, сама по себе паршивая, создала вам конкурентное преимущество — им надо пользоваться, чтобы создать себе задел на будущее, когда ситуация исчезнет.
                                  В этом принципиальная разница с теми, кто сразу и навсегда нацелен на госзаказ, в котором отечественность всегда была и будет необходима over everything.


                                  1. areht
                                    09.05.2015 13:17
                                    -4

                                    Предлагаете отказывать бабушке, которая приходит в аптеку и требует Омега Форте Эвалар?
                                    Я предлагаю «кто кого и как может обманывать» регулировать государству. Не запрещать импорт (равно как и нарываться на запрет импорта), а регулировать отрицательные девиации.

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

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


                                    1. FYR
                                      12.05.2015 10:15
                                      +1

                                      Странная однако у вас позиция. Дать комерции самой разобраться что к чему? Давали уже вон в 90 годы. В итоге ежу понятно что «купи там продай тут» в разы выгодней и надежнее.
                                      Теперь поди найди «бизнесмена» который занимается не перепродажей, а производством.
                                      Вас не напрягает что «кристалы растят» товарищи в Китае. И не потому что там дешевле (как это делают США) а потому что у нас вырастить кристалл да можно, но это сродни постройки если не самолета, то уж точно спорткара. А почему? А потому что «а зачем нам учиться растить кристаллы? в китае же вырастят дешевле в 10 раз».
                                      Благодяря 90-м 2000-м у нас нету элементной базы от слова «совсем». В советские то годы процентов 90 были клонами импортных аналогов. А сейчас даже резисторы покупать в китае приходиться и не потому что там дешевле, а потому что у нас их штучно делают.


                                      1. areht
                                        12.05.2015 15:57

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

                                        В 90-х проблема была с логистикой, поэтому «купи там продай тут» было выгодным. Сейчас Ашаны с X5 выжали палатки под ноль. И все, кому не лень занимаются продвижением СТМ, со своим контролем производства. А всякие TeXet и Redmond подбираются к разработке конечных устройств с нуля, а уж всякие не очень технологичные компании (одежда, обувь) давно имеют свои фабрики, но в Китае.

                                        Подождите ещё лет 30, купи-продай станет ещё более унылым бизнесом, никакого «в разы выгоднее и надежнее». Это называется конкуренция, все дееспособные коммерсы пойдут в производство (точнее в разработку под Китай, как Apple). Хотя под пристальным контролем государства — просто заберут деньги и уедут в более другие края.

                                        Впрочем, то, что у нас производство станет дешевле китайского — это необоснованная фантазия, не зависимо от того, что там в 90-х. Оно как в союзе было дороже, так и сейчас дороже. И дешевле не сделать, даже если начать нашим платить по 5 баксов в день — у нас даже тупо на обогрев больше уходит.


        1. mikhanoid
          08.05.2015 09:56
          +2

          Звучит так, как будто консюмера вживую пока никто не видел.

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

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

          Даже если батарейка больше, то есть разница: менять её раз в месяц, или раз в два месяца.


          1. areht
            08.05.2015 11:12
            -2

            Суть батарейки побольше в том, что её менять _тоже_ раз в 2 месяца.

            Если не секрет, какое соотношение поставок нашим заказчикам и иностранным (вне ссср)? Наверняка у иностранцев конкретных задач на 2 порядка больше?


            1. mikhanoid
              09.05.2015 07:54

              Лично я этой информацией не владею. Это всё коммерческая тайна и интрига. Это Вам к дирекции надо обращаться с запросами.


  1. fse
    13.05.2015 18:05

    image
    Дорогие друзья, я искренне поддерживаю исследования в предметной области. НО. Если мы уже заговорили об отечественном заказчике в лице оборонки и прочих стратегических областях… То: хватит предлагать изотерику и оригинальщину. Если кто-либо думает, что у разработчика на предприятии ВПК много свободного времени и желания для изучения «клеток процессора» и способов их настроить «на успех» — сильно ошибается. Дайте разработчикам процессоры «общего назначения», это то что нужно в 99% случаев. Научитесь копировать имеющееся, берите пример с Миландра в части аналогов STM и TS, что, действительно, востребовано. Хотите предложить высокий параллелизм вычислений? Дайте отечественный SoC с ARM-ом и FPGA на борту! Или просто FPGA.
    Я очень надеюсь что ошибаюсь, но на мой взгляд Мультиклет — это попытка на хромой козе объехать прогресс. А озвученные архитектурные идеи — скорее предмет исследований, чем коммерческое предложение.


    1. amartology
      13.05.2015 18:20

      Отечественному заказчику в лице оборонки и прочих стратегических областей «Мультиклет» не нужен, ему вполне хватает того десятка производителей, который уже есть (того же «Миландра» в их числе).


    1. krufter Автор
      14.05.2015 12:00

      Даже если копировать, то получается не всё так радужно. Мультиклет — это и есть прогресс, а не попытка продолжить копирование.
      Сразу замечу, что ошибки имеются и в наших процессорах и мы их исправляем, делаем пути обхода.Наши ошибки мы обычно указываем сразу в документации на процессор. Но я думаю в дальнейшем будет тоже отдельный документ(сейчас документацию приводим в полноценный вид по R1).
      Так вот приведу первые попавшиеся примеры errata на Миландр, чтобы не было ощущения, что скопировав Вы получите идеал:
      milandr.ru/uploads/doc_img/production/spec_seriya_1986BE9x_errata.pdf
      milandr.ru/uploads/doc_img/production/spec_1986BE3_errata.pdf

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

      P.S. Для того, чтобы начать работать с процессором R1 не нужно много всего изучать. Скоро будет процесс обучения нового поколения начиная со школы и продолжая Вузом. К Вам на предприятие придут специалисты уже обученные работать на отечественном процессоре.


      1. fse
        14.05.2015 13:27

        krufter, наличие ошибок (в особенности в первых ревизиях чипа) — это вполне естественная вещь. Очевидно, что этот факт не отменяет нужности того или иного чипа.
        Что касается Мультиклета. У меня 1 вопрос: какова ниша применения?
        Все вычислители я для удобства поделю на 3 вида:
        1. ЦОС.
        В области радиолокации и связи оборонкой широко и почти безальтернативно применяется DSP процессор TigerShark. Его система команд хорошо известна разработчикам, базирована на комплексной алгебре, и имеется груда кода под этот процессор. Бескровное импортозамещение, понятно, возможно только на аналог. Поэтому вне зависимости от перечня ошибок, оборонка будет использовать 1967ВЦ2Ф и 1967ВЦ3Т фирмы Миландр. Первые обкатки этих чипов уже успешно пройдены. Ниша занята.
        2. Микроконтроллеры
        Тут, пожалуй, мультиклет способен о себе заявить в части отказоустойчевых систем управления (радиационная стойкость?). Но будет сложно, т.к. разработчиков придётся заставить перебераться с полюбленных ARM-ов. К тому же в производстве уже есть отечественные аналоги STM и отладки для них. Так что ниша в 95% применения уже занята. Согласны?
        3. Производительные процессоры общего назначения (графика, мультимедиа)
        Тут только Эльбрус. Хоть его можно и недолюбливать из-за вполне объективных недостатков, но другого нет. К тому же для него портирован Linux и QNX. Мультиклет, очевидно, по производительности и развитости не претендует на эту нишу.
        По всему изложенному повторю вопрос: где мне следует встроить мультиклет и почему? Или так: в каких применениях мультиклет объективно выгоднее чем имеющиеся аналоги?


        1. krufter Автор
          14.05.2015 14:28

          Разработчики Миландр, разумеется, стараются и исправляют свои ошибки(никто не оспаривает их профессионализм), но часть ошибок связана и с покупным ядром, которые должны править разработчики ядра. Я хотел показать, что копирование — это не всегда признак стабильной работы и надо развиваться дальше, не только подражая тому, что есть.
          Разработчики полюбят и Мультиклет, только нам для этого нужно показать, что программировать под него, как и создавать новые устройства очень просто. Разработчики одной из компаний, которые выжимали максимум на процессорах фирмы TI, сказали нам, что наш ассемблер им очень понравился. В следующих статьях на Хабре я и мои коллеги постараемся показать, что программировать как на Си, так и на ассемблере, а также работать с отладочной платой легко и приятно. Как переносить свои текущие наработки без большого труда с STM32 на Мультиклет мы тоже покажем.
          Что касается области применения:
          1) В области радиолокации и обработки сигналов 2 процессора не занимают всю нишу. В каких-то проектах разработчики могут попробовать применить Мультиклет и мы вполне сможем соседствовать с Миландром.
          TigerShark в дальнейшем сможем подвинуть, это вопрос времени. Мы прислушиваемся к пожеланиям разработчиков и просто неравнодушных людей и рассматриваем их.
          2) В области под названием микроконтроллеры, а также отказоустойчивые системы сейчас сложно сказать, что ниша занята. Самое сложное — это сделать первый шаг и попробовать что-то написать на новом процессоре.
          Многое в том, какой процессор применить, будет зависеть от разработчиков и людей принимающих решения.
          3) Мы можем не конкурировать в дальнейшем с Эльбрусом, а наоборот сделать видеокарту или ускоритель для их компьютера. Но сначала надо привести в оптимальное состояние мультиклеточные процессоры текущего формата. Хотя сейчас как раз решается направление в которое мы идем дальше. Все зависит в большей степени от того, на что будут выделены средства.

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

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

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


          1. fse
            14.05.2015 18:32

            копирование — это не всегда признак стабильной работы и надо развиваться дальше

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

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

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

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

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


            1. krufter Автор
              15.05.2015 09:38

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

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

              Систему команд тайгера придумывали крупные специалисты ЦОС-а. Не ставя изначально себе цель побить ЦОС-гиганта, этого не сделать. Поэтому хочу вас предостеречь от ставок на этот счёт.

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

              Когда я пришел в Мультиклет, также заблуждался насчет распараллеливания. У нас не надо как-то сильно заморачиваться с распараллеливанием. На самом деле все просто, многое сводится к Ctrl+C и Ctrl+V(мы также думаем над дополнительными инструкциями чисто на программном уровне на ассемблере, чтобы и это упростить+в числе оптимизаций компилятора это будет). На самом деле этот вопрос очень интересный, написаны даже книги по этой области. И мы тоже сделаем статью по части примеров распараллеливания задачи и получения выйгрыша(сразу скажу, что распараллелить можно почти все в больших вычислениях). Но сначала на Хабре мы хотим сделать статьи простые, для того чтобы люди начали работать на Мультиклете и все моменты им были понятны и чтобы первый старт не занимал больше одного дня.
              У меня бывают такие же мечты: сделать не так как все, предложить альтернативное и непохожее решение, чем добиться невиданных свойств изящества и производительности. Но полезно признать, что окружающие не так уж глупы, а современные решения — во многом рациональны и сбалансированы. Поэтому искренне желаю вам трезвомыслия и, конечно, удачи в поиске!

              Мы пытаемся реализовать то, что планируем. Как у нас говорят: «Дорогу осилит идущий». Что касается архитектур типа АРМ и х86, тут надо понимать такой момент, что они являются заложниками своих предыдущих разработок, им нельзя просто взять все выкинуть и начать делать что-то новое, т.к. написано больше количество программного обеспечения и выбран путь разработки, на котором необходимо обходить все преграды. Система команд и концепция у многих архитектур разработаны достаточно давно и сложно сейчас что-то менять координально. Поэтому нельзя исключать возможности создания чего-то нового, что даст выйгрыш. Это как решение задач в школе, можно решить задачу строго по теме, которую ты проходишь, на основании того мат аппарата, который заложен как базовый. А можно применить ещё и логику и сделать решение задачи проще и быстрее, при этом конечно же потратить меньше мыслительных потугов и энергопотребления. Мы пытаемся мыслить трезво и идем к результату, на каких позициях мы окажемся покажет время.

              P.S. В R1 можно управлять частотой, напряжением питания пока нет, но все лучшее впереди)


        1. amartology
          14.05.2015 15:51

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


        1. OvO
          14.05.2015 17:19

          Можно я пофантазирую:
          1. Смартфоны — простое ядро позволяет снизить потребление пропорционально производительности и без всяких big+little;
          2. Предобработка видеопотока — при -60 пойдет во все уличные камеры и для полетов в стратосферу;
          3. Умная сигнализация на машину с распознаванием сетчатки глаза.
          4. Умный загородный домик на солнечном питании

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


          1. amartology
            14.05.2015 18:11

            1. Снижение потребления пропорционально производительности достигается при помощи адаптивного управления частотой и напряжением питания, которых в «Мультиклете» нет.
            2. Уличные камеры разрабатывает компания «Элвис-Неотек» на базе собственных процессоров. Какой им резон переходить на «Мультиклеты»?
            3. А хватит ему производительности для этого? Распознавание образов — это не самая простая задачка.
            4. А куда именно его там пихать, простите?


            1. OvO
              14.05.2015 18:59

              1. Как я понял там можно и умножителем управлять и клетки отключать в диапазоне от 1 Вт до 0,08Вт.
              2. А моя компания может быть будет разрабатывать уличные камеры на этих процессорах. Ну, когда я ее создам. В далеком будущем.
              3. Водитель может подождать, машина прогреться, но пока сетчатка не совпадет — с места не тронемся. И не такая она и сложная — я на 400mhz mips-е по камере препятствия почти все нахожу. А здесь кадров 10 обработать.
              4. В дом и пихать. в uart — модем, в usb — камеру, в ацп — датчики, все как обычно, только потреблять меньше чем rpi.