Pull to refresh

Comments 135

Хмм, а что если его поставить примочкой к Raspberry Pi?
Это будет шикарная бомба ©
Для любого, связанного с большим объёмом однотипных вычислений.
В быту это кодирование\декодирование\обработка\анализ видео\аудио.
А так же архивация, хеширование и его производные.
кодеки там есть железные
Есть такой крохотный Forth-процессор — J1 Так его сопроцессором в Gameduino добавляли, для ускорения работы с видео (split-screen, отрисовка примитивов типа линий, треугольников, и др.)
Не удивлюсь если в определенном будущем оно будет выполнять роль какого-нить «сопроцессора».
Ну что, все ярые поклонники Линукса, кричащие «linux в массы», ждали такой возможности. Если процессор окажется лучше обычных и для планшетов и для десктопов(а вполне возможно, что окажется) и линукс будет первой осью для него, то вот оно первое место на десктопах, мобильниках итп.
Интересно Гугл возьмется допилить ядро для него? Был бы отличный маркетинговый ход с 144 ядрами
Это не general-purpopse процессор. Linux на нем, скорее всего, запустить даже и не получится; а если и получится — то толку ноль.
Linux на нем, скорее всего, запустить даже и не получится;
Добавить сюда какой-нибудь арм и выполнять большинство инструкций на GA144, не?
Я понимаю почему этого не сделали на GPU, но GA144 вроде лишен проблемы, что все ядра должны выполнять одну и ту же инструкцию.

P.S. Впрочем мои наблюдения показывают, что дискуссии не получится и минусуют меня уже эффектом толпы.
Как сопроцессор — возможно… Но слабоват, нет?

P.S.: Не имею ничего против дискуссии. Не минусовал.
Смотря что понимать под сопроцессором. Для меня это процессор, который выполняет только определенный и узкий класс задач. Здесь же ядра вроде могут выполнять произвольные инструкции.
Впрочем, я не вчитывался в спецификацию и возможно что-то упустил.
Насчет того, что слабоват: ничуть не слабоват. Уж помощнее CPU будет. Другой вопрос, что встает тот же вопрос, что и с GPU: эффективное использование памяти.
Ну как «по-мощнее». Он ведь не SMP, а другой совсем, а ядра линукса максимум умеют SMP (я не ошибаюсь?), так что мне кажется то этой многоядерности в обычных условиях мало толку.
Форт сам по себе весьма специфичный язык, на котором можно организовать многостековыю архитекруту и наворотить компиляторов компилатора компилируемой программы =)
Запустить линукс на форт-процессоре, наверное, можно, но это не то применение под которое он заточен.
Вот! И я об этом, только не смог мысль грамотно изложить.
На сколько я понимаю, SMP — это для автоматического раскидывания нормальных процессов/потоков любых программ по ядрам. Здесь же другое: такой проц не может встать «ещё одним ядром» в системе, но при наличии специального интерфейса его можно интегрировать в систему как внешнее устройство со своими входами и выходами. Для PC думаю вполне логичным будет появление PCIe-плат с GA144 и драйверов/API к ним, а вообще эта штука, на сколько я понимаю, позиционируется как логическое-вычислительное ядро для несколько иначе (нежели PC и тому подобное) устроенных машин.
Чудесная вещь для нейронных сетей. Если бы появилась такая штука в обвязке PCIe и хорошего API, то как академическая вещь пошла бы за милую душу. Думаю по прошествии некоторого времени платка стала бы стандартом де-факто, как видео-плата.
Хотя конечно нужно тестить производительность. Возможно что не все так радужно :-(
Это же первый выпуск. Поэтому и слабоват. Хотя опять же, чем мерять будем?
да у арма шины жирной нет, чтобы с этими 100500 ядрами общаться на норм скорости
Всмысле, не хочу показаться скептиком, но на мой взгляд 0 очередная херня, аля пропеллер.

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

Имхо — просто интересное ответвление, типа propeller, не более того :=/
Линукс делает любой процессор лучше! (копирастед by PennyBlossum)
Хм… А есть шанс на форте сделать эмулятор какой-нибудь процессорной архитектуры? Тогда хоть Linux, хоть… Хотя думаю в этом смысл будет только Just for fun.
Не ранее, чем Linux будет переписан на Forth.
Язык странный Forth есть да ;)
Мур вно продвигает свой colorForth этим процессором. Но ничего в нем странного нет, в нем таже база, которая лежит в основе практически всех виртуальных машин, современных языков (java, .net). Ничего страшного в стековой архитектуре нет.

ЗЫЖ но конечно линукс переписывать под него не будут :)
Зачем переписывать? Компиляторы отменили?

Скорее смущает отсутствие всяких возможностей для IPC и узкая шина к памяти.
UFO just landed and posted this here
Я удивлюсь если таких ещё нет.
UFO just landed and posted this here
Из того, что лежит на поверхности: GWT, всевозможные компиляторы из питона, перла, хаскела и т.д. в си, ну и т.д. Не говоря уже о том, что половина всех интерпретируемых языков включает компилятор из собственно языка в язык виртуальной машины, который по уровню не сильно отличается от форта.
UFO just landed and posted this here
Для всех предыдущих форт-процессоров были компиляторы Си. Но для этого нового вряд ли будет. Для него и стандартного (ANS) транслятора Форта нет. Очень-очень специфическая штука.
Я поражаюсь таким новостям! Казалось бы, микропроцессоры — удел «больших» корпорации, у которых есть серьезные средства на R&D. А тут компания, которой и трех лет от роду, уже перешла к производству рабочих образцов.
Никакой ракетной науки в этом нет. Вполне себе прикладная область. Опять же сильно зависит от того что это за процессор. Этот довольно простой :)
UFO just landed and posted this here
И даже не абстрактно «высшая математика», а конкретно «матан».
При чем тут ИТ-культура? «Rocket science» — это идиоматическое выражение из общеупотребительного английского языка, а не ИТшного сленга.
Речь как раз о том, что идиомы переводить «в лоб» нельзя, нужно подыскивать эквиваленты.
ох, не говорите, а то придется вспомнить средний восток и негры vs кавказцы :)
Очень часто идиомы переводят дословно просто «для веселья». Это такой своего рода юмор последних лет. В интернете, в связи с очивидными обстоятельствами, таких фраз много. Например: «Вы сделали мой день».

Или вы услышав такую фразу тоже будете поправлять собеседника?

В данном случае фраза «Никакой высшей математики в этом нет» звучала бы привычнее, но оригинальная фраза забавнее. Другой вопрос, если человек говорит это без юмора.
UFO just landed and posted this here
Это вот этот?

— Сэр, на вам муха сидит!
— Не на вам, а на вас!
— На мнюююю?
— Не на мню, а на мне.
— Дык я ж говорю, на вам муха сидит.


А англоязычный исходник есть? Или это целиком русское творчество?

вот тут про «мну» забавные версии — otvet.mail.ru/question/41847752/
а вот тут под эпиграфом с этим «мну» ещё интересно про перевод I was given — letusthinkenglish.blogspot.com/2010/03/blog-post.html
«ракетной науки»

супруга ( переводчик, лингвист ) называет таких «надмозги», я же просто предлагаю запустить нац. программу по строительству биореакторов.
А я то думал откуда выражение grammar-nazi. Теперь мне стало понятнее :]

PS Если к примеру оценивать действия любого человека с точки зрения верности, то кидать в реакторы придется всех.
UFO just landed and posted this here
Где бы она не заказывала производство, экспериментальный цех с соответствующей линией (в данном случае 180nm) должен быть под рукой.
UFO just landed and posted this here
Тот же Xilinx предоставляет (за нехилые деньги, понятное дело) свою фабрику по производству кристаллов. Причем суть в том, что отладив некоторый проект на ПЛИС его можно передать инженерам Xilinx. Которые, в свою очередь, разработают для него топологию и реальный прототип. После этого чип можно пускать в серию.

Насколько я помню они говорили о сроках порядка 2 недель.
UFO just landed and posted this here
Ну реально проектирование — это обычные исходники на HDL языках, типа SystemC, VHDL или Verilog. Потом это дело можно отладить «в железе» на ПЛИСах (см. википедию или хабр).

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

Короче говоря, сделать процессор сейчас можно на коленке. И он будет работать (в плис). Если же хочется пустить в серию — тут уже конечно надо делать все.
UFO just landed and posted this here
Эээ, там в большинстве случаев «разводка» осуществляется автоматом, её можно пытаться оптимизировать руками и сохранять как блок, для «авторазводилы»…
Где «там»? Понятно что в случае Xilinx-а в заявленные сроки можно сделать только шаблонные вещи, но все же.

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

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

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

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

И вы правы, я именно про всякие там Самсунги, которые охотно покупают интересующие их модули на VHDL даже если показатели производительности моделей в руках разработчиков не предполагают реального практического применения.
А у всяких интеллов, на тонких производствах всё ещё круче, там фрагмент схемы получается работоспособным лишь с некоторой вероятностью, и с этой точки зрения даже 45нм была весьма стрёмной, а уж 32нм и подавно. Попробуйте представить, какими схемотехническими решениям обеспечивается работоспособность у них!
Решать какие либо задачи в таких условиях разуму одного человека не посильно,
по этому кто то пишет на VHDL, кто то придумывает как оно потом будет разрастаться да бы обеспечить резервирование, а кто-то сфокусирован на физических процессах происходящих с кристаллах и погрешностях вносимых техпроцессом, что бы оптимизировать маски.
А ещё туева хуча жутко специального и талантливого народа нужно что бы создать фаб который будет по этим маскам камушки обрабатывать.
Это действительно сотни стадий — бесконечные окисления и отжиги, нанесение фоторезиста и легирование, напыление дорожек в несколько слоёв и т.д. Всё происходит в «чистых комнатах», из материалов высокой чистоты. Производство — это конвейер, на входе загружаешь барабан с кремниевыми пластинами, на выходе получаешь микросхемы в корпусе. В экспериментальном цехе ты можешь отлаживать какую-нибудь конкретную стадию, ведь моделирование в каком-нибудь TCAD не даёт стопроцентную уверенность, что на практике получится точь-в-точь, как в расчётах.
Это все выносится на аутсорц. Сейчас многие фабрики предоставляют свои мощности для клепания процов, только чертежи подгоняй.
Создал язык программирования, создал инструмент для разработки процессора, разработал процессор.
Надо полагать и со сборкой процессора в гараже у него проблем нет ))
Этот процессор класса MISC, конкретней Forth-процессор. Легко реализеутся на любой ПЛИС.
Здесь только снабдили каждый такой процессор 64 словами памяти, стеком данных на 10 слов и стеком возврата на 9. плюс добавили несколько регистров для общения с соседними процессорами.
Мур характеризует свои процессоры как «brutally simple». Причем чем дальше, тем еще брутальнее проще — каждый процессор проще, но к-во их растёт. Соответственно, чтобы под них программировать, нужны шибко брутальные программеры, не боящиеся вывихнуть мозги…

Основная сложность — крайне ограниченная собственная память каждого процессора в матрице (как у калькуляторов 80х гг), поэтому большая часть процессоров вынуждена заниматься исключительно «налаживанием потоков данных». И вообще на коммуникацию ядер уходит львиная доля их работы. Наверное так и задумано :) Но я к тому, что сложно это, очень непривычно.
Какие еще три года от роду? Чак Мур — древний пенсионер, он фортами занимается 50 лет, а собственными форт-процессорами наверное 35.
Виноват, не 35, но больше 25. В общем, давно занимается. Первые его форт-процессоры успели скопировать еще в СССРные времена!
Компания GreenArrays основана в феврале 2009 года.
Ну и что. Главное, когда «основан» Мур. Основатели Intel'а ушли из HP (?) и сходу начали выпускать новые продукты. Потому что не с пустыми головами ушли. Да и клиентура была готовая, и связи наработанные.

До GreenArrays процессоры Мура выпускали другие. Например www.ultratechnology.com/ultra.html
Я не путаю :) Я просто пример привёл, что технологии в головах, а не в конторах. В 2009м году Чарльзу Муру был 71 год. Он эти процессоры с закрытыми глазами уже разрабатывать может :)
До GreenArrays процессоры Мура выпускали другие.

Другие компании выпускали другие форт-процессоры. И да основатели GreenArrays, естественно, опытные люди, незнакомые с темой вообще бы этим не занимались. Может такая скорость развития и нормальна для Америки, но я всё сопоставляю с нашими местными реалиями. Хотя кого я обманываю — сопоставлять не с чем.
Другие компании выпускали другие форт-процессоры того же самого Чарльза Мура. См. раздел chips на www.colorforth.com/bio.html
Вот я не могу понять в чем разница с обычными х86, ARM процессорами. Дешивизна? Энергопотребление? Скорость?
В списке задач с которыми он должен хорошо справлятся я не заметил ничего общего.
Но в общем интересно когда люди предлагают альтернативные решения для чего либо.
Набор инструкций и принципы их обработки.
Архитектура ARM (Advanced RISC Machine, Acorn RISC Machine).
Видите знакомое слово RISC?
Оно, в общем случае значит что у процессора короткий конвейер и хорошая скорость выполнения команд(идеально — одно за такт)
Простите, но из вашего комментария я так и не понял в чем основная разница. Ради чего стоило произврдить этот процессор и ради чего его следует применять разработчикам, вместо уже существующих.
Архитектуры процессоров различаются, как это не странно, набором команд. RISC имеют меньшее колличество команд процессора нежели x86, за счет чего выигрывают в производительности. опять же с развитием архитектуры появляются рудименты, которые вынуждают разработчиков придумывать новые архитектуры… (может быть в чем-то я не прав, просто я себе это так представляю).
Да, в Форт-процессорах команд обычно еще на порядок меньше чем в RISC. В итоге несколько команд помещаются в машинное слово, и часто их можно выполнять одновременно (я не конкретно о GA144, а о типичном форт-процессоре, коих легион, даже в СССР/России было несколько). Чем-то похоже на VLIW, но собственно VL (very long) к нему не относится, т.к. IW короткое — 16-21, реже 32 бит, но и в этом слове умещается 4-5 команд.
Он совершенно не приспособлен для применения «вместо». Виндоус или линукс вы туда не поставите.
А вот многие вычислительные задачи он может выполнять куда эффективнее чем «обычный x86» из-за относительной дешевизны и энергоэффективности.
Дешевизна у него пока не проглядывает. Он стоит вдвое-втрое дороже типичного микроконтроллера. 20 баксов — это на уровне среднего телефонного или планшетного ARM'а (Cortex-A8). Хотя при таких тиражах, как у ARM'ов (миллиарды чипов) GA144 стоил бы дешевле, конечно… Но т.к. миллиардов, да и миллионов, не будет, то сильные подвижки в цене в будущем сомнительны.

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

> Ради чего стоило произврдить этот процессор и ради чего его следует применять разработчикам

Для Мура это дело всей его жизни, т.е. он сделал бы его, даже если бы не нашел никаких применений вообще ;). Считайте это особым хобби. Применять этот процессор смогут только фортеры (требуется особый склад ума ;). Сторонний разработчик вряд ли найдет для себя какие-то выгоды этого процессора в сравнении с другими процессорами за ту же цену. А фортеры купят по 10шт (если меньше не дают), чтоб поупражняться в паянии (ссылки на фото самодельных плат тут приводили) или готовые тестовые платы «на побаловаться», как другие программеры покупают Arduino.

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

ума склад особый требуется ;-)

PS. Вспоминается старая шутка про магистра Йоду.
Нет, особый склад ума в сравнении с традиционным программированием. А синтаксически он как раз ближе к естественным языкам, чем другие языки программирования. Никаких там лишних скобок и т.п. И подлежащие-сказуемые идут в традиционном порядке, а не как у Йоды.
Теперь осталось найти дешевое питание для таких процов
Учитывая энергопотребление, вполне может сгодится для работы в автономных датчиках. Например сейсмодатчиках, которые должны в текущий момент обрабатывать лишь малое количество данных, а в случае землетрясения, работать на полную мощность.
100 нановатт = 0,1 мкВт, не могу видеть уже эти нано…


Надоели эти приставки. :)
вообще как-то странно видеть в одном описании и ватты и джоули — надо бы унифицировать
Ватты и джоули — разные величины. В джоулях мерят энергию, а в ваттах скорость ее потребления. Число джоулей на инструкцию умножаем на частоту выполнения инструкций — получаем заветные ватты.
Ох и правда, ватты это же мощность, что-то я затупил :(
Спасибо.
А sha2 эта железка считать быстро своими ядрами сможет?
Сможет. Но она 18-битная, и данные извне может брать только через I/O-порты, поэтому этот sha будет сделать с fuck-ом :)
UFO just landed and posted this here
UFO just landed and posted this here
Там в PDF-ках у него 96 GIntOPS, вещественной арифметики там нет, нужно эмулировать. Ну и сами операции над 18-битными данными.
Похоже, там и нет floating point operations.
А вообще, самое интересное здесь — это асинхронность процессоров. Как они борятся с нестабильностями? Всё равно там же есть какие-то регистры, ибо нарисован конвейер.
Тоже не понимаю… А как вообще состояния триггеров переключаются? В обычныъ процессорах тактовая частота — что-то типа команды сверху «считать входы!», а тут как?
SUN вела такие разработки. Там Strobe посылался через схему синхронизации вдоль пути вычисления. Если путь короткий, то Strobe тоже приходит быстро. Но у них не получилось, потому что не вышло сделать арбитров на такой логике.

Может быть, тут за счёт примитивизма в архитектуре удалось такое сделать… Но. Вызывает подозрения. Там же есть связь между ядрами, они могут друг другу данные пересылать, а для этого нужны арбитры.

Да и вообще, товарищ Мур любит себе авансы громкие выдавать. Может там вся асинхронность гораздо более скромная.
> Там же есть связь между ядрами, они могут друг другу данные пересылать, а для этого нужны арбитры.

На первый взгляд между ядрами нечто похожее на двухпортовую память.
Да, насчет архитектуры не спорю, просто мне совершенно не понятно как они умудряются обходится без тактовой частоты (по крайней мере как заявлено). Даже у простейшего RS-триггера на входе сигнал обязан присутсвовать некоторое время (да собственно в этом весь смысл дискретности), а значит должен присутствовать генератор, который бы позволял это время отследить (т.е. создавал бы эту самую тактовую частоту).
Карочи что-то либо недоговаривают, либо подменяют понятия.
При записи данных в порт может следом идти сигнал «данные готовы», который и является «тактом» для того ядра, кому эти данные предназначены. Приемник выполняет действие и «сдвигает» такт следующему (или самому себе на следующее действие). Т.е. локальное тактирование («триггерирование» :), конечно, есть, но глобального распределения clock не требуется. Соответственно ядро, у которого следующего такта не оказалось, спит до следующих входных данных (в межьядерном порту или на внешней ноге). Как-то так.
— 144 независимых ядра, которые активируются только при поступлении инструкции, то есть у этого процессора нет такой характеристики как «тактовая частота»;
Причем тут одно к другому?
Смотрим на автора новости, делаем выводы, не задаём глупых вопросов.
Автор не сам это придумал, очевидно, а вычитал в спеках.
> Специалисты пытаются понять, каковы целевые области применения GA144.

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

Попытался найти информацию о том, сколько же у каждого процессора памяти. Нашел pdf'ку www.greenarraychips.com/home/documents/greg/DB001-110412-F18A.pdf, в которой указано, что памяти там 64 слова (слова там 18-битные).
Даже не знаю, что можно с этим сделать. Если только простейшую обработку сигнала и передачу его следующему процессору. И получится что все 144 процессора реализуют один единственный фильтр, который можно без проблем сделать на каком нибудь ARM9. Правда GA144 данные через себя будет гнать быстрее.
Я так понимаю что идеально как железная замена сложным VST-синтезаторам и эффектам, например.
они давно 24-битовые, а хорошие — 64-битовые. и это вопрос уже не динамического диапазона, а точности представления данных. на процессоре с 18-битовыми словами их реализация превратится в тоску. не говоря уже о том, что вычисления с плавающей точкой там нужны повсеместно.
Я бы сказал, что это такой особый вариант FPGA — с меньшим количеством, но более функциональных ячеек.
Моделирование, распознавание, может быть сопроцессор для видеокарт, контроллеры.
Обожаю форт. Спасибо, порадовали.
Для моделирования и распознавания у него памяти недостаточно. Да и в видеокарте он зачем?
Наверное имеется в виду форт-процессор внутри видеоконтроллера для Arduino, тут упоминали.
Добавили бы в пост картинку мат.платы и цену на нее 450$/штука…
На мат.плате 3 usb и 1 sd/mmc имеются.
Процессор этот на Йоды языке программируется
За будущее мира спокоен теперь я
Почитал пдф-ки. Забавно.

Каждая ячейка представляет собой независимый компьютер и состоит из 64 слов ОЗУ с программой, 64 слов ПЗУ с программой, стек возврата глубиной 9, стек данных глубиной 10, АЛУ, до 4 паралельных портов ввода-вывода (для обмена с соседями), GPIO, ADC/DAC, SerDes. SPI.

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

В ПЗУ у разных ячеек также разная прошивка. В некоторых находятся дравера пенриферии, в других только загрузочный код, который откуда-то берёт программу для записи в ОЗУ.

В общем, очень похоже на FPGA/CPLD, только ячейки пожирнее и поумнее.
Вот и что делать с таким малым количеством памяти? Да еще и разрядность 18 бит.
Система комманд всего лишь 5 битная. И даже несмотря на то, что это Forth, большую программу туда на засунешь. А заниматься оптимизацией сложной задачи под такой процессор чувствую, будет то еще удовольствие. Остается использовать компиляторы, подобные VLIW, чтобы осуществлять декомпозицию программы еще на уровне компиляции.
Не во всех задачах критическим понятием является сложность. Если говорить, например, об автомобильной индустрии, сейчас довольно остро стоит задача уменьшения количества автономных процессоров, которых в современных автомобилях уже больше сотни с целью уменьшения энергопотреблерия. Для многих задач, решаемых такими процесорами, критичным является выполнение относительно простых задач в реальном времени, с четкими спецификациями времени выполнения для каждой операции. Из-за необходимости постоянного переключения задач в процессорах общего назначения они не так хорошо подходят для задач разработки в системах рельного времени, а этому чипу планировщик практически и не нужен.
Для сложных задач (с большим размером кода) оно видимо и не расчитано. Делить алгоритм на кусочки сложно, но можно, если уж надо.

Я бы сказал, что этот процессор подойдёт для некоторых (для котрых не нужно много ОЗУ) задач DSP. Причём по заявленым характеристикам и цене он вполне может обойти классические DSP.
Хых, по описанию принципов построения чем-то напомнило PropellerChip. Там правда всего 8 ядер, но они тоже могут выполнять разные функции, в зависимости от задачи, в том числе, реализовать разную периферию.

Только мне вот непонятно, как в 128 слов можно запихнуть более-мене сложную программу. Да хотя бы драйвер периферии.
CORE0:
1000 INPORT 5 * 1001 OUTPORT

CORE1:
1001 INPORT 10 + 1002 OUTPORT

(прошу не принимать всерьез :)
Никак, но можно разбить программу на небольшие подпрограммы, длиной не более 64 операции уже сами отдельные подпрограммы потом собрать на более высоком уровне в большую программу, благо концепция Forth это позволяет.

Как пример. Простейшая программа на Forth. Пусть надо решить 2*2 + 4*2
1. решение в лоб

2 dub * 4 dub * + .

2. решение через вызов подпрограмм
: kvadrat dub *;
2 kvadrat 4 kvadrat +.

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

PS. Forth забросил лет 15 назад. Программы могут быть не рабочими :)
«Стек возвратов — 8 адрессов. Стек данных — 8 слов» ;)
Там есть ещё три регистра с текущими операндами. Стек возвратов — 9 адресов, Стек данных — 10 слов.
Слова словам (в контексте использования фортом) рознь. Слово как подпрограмма и слово как набор бит… Не запутались бы мы с этими понятиями в процессе беседы ;)

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

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

Ещё они предлагают такой вариант использования: 3-5 ячеек реализуют интерфейс к SDRAM, ещё две ячейки — интерпретатор языка arrayForth. Таким образом в SDRAM может находиться большая управляющая программа. А остальные ячейки будут как сопроцессоры. А если нужно — то можно сделать не один интерпретатор arrayForth, а несколько, сколько надо/влезет. А возможно, на него нормально ляжет интепретатор JVM.

Получается такой себе конструктор.

Кстати, 18-битность наводит на мысль об обработке видео (999).
[sarcasm]
Внимательно не читал, но осуждаю :)
Интересно, как они собираются разруливать взаимные блокировки в случае, когда первый процессор будет ждать второй, второй будет ждать третий, а уже третий будет ждать первый?
[/sarcasm]

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

Использование же данного процессора для работы с мелкими програмками (пусть даже обработки медиа-контента) может оказаться дороже использования любой средней FPGA. В общем, неоднозначный процессор, хотя свою нишу он может занять.
Да, кстати. Они могут паковать в одно 18-битное слово от 1 до 4 инструкций. (команды переходов шире, чем команды без операндов)
давно жду ось на erlang'е
Полностью ляжет, с его-то любовью копировать сообщения между процессами.
Круто, просто круто. Читал его рассказ про эту архитектуру в «Пионерах программирования» и думал, что просто фанатазии. А ведь хватило упорства воплотить в железе. Аж захотелось купить и попрограммировать.
10x10 мм — это же наверняка не самый маленький формат для подобных процессоров. Если тема пойдет, они матчасть еще уменьшат так, что и в нанороботов можно будет помещать.
Размер современных чипов диктуется в основном к-вом «ноговыводов». Сам кристалл намного меньше, чем 10х10мм.
Интересно, насколько он подойдёт для Bitcoin.
Sign up to leave a comment.

Articles