Перейти к содержанию
    

Минималистичный Форт компьютер на TTL логике (дискретный CPU) c реализацией Forth 2012 Standart

В 31.03.2023 в 10:13, KPG сказал:

My4th - Minimalistic FORTH computer with discrete CPU.

Ну чего, круто)) Осталось видеомодуль приделать и будет клон спектрума, элементная база из того же поколения)))))))

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

1 час назад, mantech сказал:

Осталось видеомодуль приделать и будет клон спектрума, элементная база из того же поколения)))))))

Спектрум делался на готовом микропроцессоре. А тут процессор на рассыпухе.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Как то жто всё мне напоминает одного товарища (из Новосибирска кажется) который мне лет 5 назад писал -

Quote

Я познакомился с проектом ATM Turbo, это такая классная машина! Хотел обратится к вам как к одному из разработчиков, давайте развивать его дальше, там такой потенциал!

Я ему ответил конечно, приблизительно 'где же вы последние 25 лет были?'

FORTH из той же оперы (только лет там побольше будет)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/10/2023 at 3:37 PM, artemkad said:

Спектрум делался на готовом микропроцессоре. А тут процессор на рассыпухе.

 

Опубликована статья по сабжу на Хабр (попала и в дневной топ статей)
 
 
Желающие высказать какие то мысли - добро пожаловать в тред обсуждения и статьи.
On 4/10/2023 at 8:27 PM, xvr said:

FORTH из той же оперы (только лет там побольше будет)

Ну да, лет 50, но  находит своё применение и не только в Фан проектах для познания Дзен. 🙂

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 4/2/2023 at 8:26 AM, tonyk_av said:

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

А вот вы удивитесь, но управляющая программа под винды для установки экспонирования печатных плат полностью написана на Форт автором.

https://radiokot.ru/forum/viewtopic.php?f=8&t=119089&sid=4b547f9892acf28490eff35caaecdc6e

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/8/2023 at 9:33 PM, Stepanov said:

А вот вы удивитесь, но управляющая программа под винды для установки экспонирования печатных плат полностью написана на Форт автором.

https://radiokot.ru/forum/viewtopic.php?f=8&t=119089&sid=4b547f9892acf28490eff35caaecdc6e

Да, на собственной версии Форт-системы для ПК. Правда в контроллере автор этого проекта применил Cи,

но сейчас есть и другие программы для ПК для этой установки на С#.

P.S. Программа http://nncron.ru на Forth (SPF3.75) или такая http://xfmap.ru/ (SPF4)

На местном форуме Форт не прижился. 🙂

На roboforum есть такой топик Форт-система

На gamedev.ru Язык Forth - зачем нужен, что можно делать на нём? https://gamedev.ru/flame/forum/?id=263400

Интересно, что автор Collapse OS работает над проектом https://duskos.org/ DuskOS для ПК.

 

Изменено пользователем KPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

О какая милота для изучения студентами принципа работы процессора.

И никакого лоббизма корпораций.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это подождите, щас приедет вам префетч, предвыполнение инструкций, miss/hit-ratio cache, etc etc etc как нагрузят что выгребсти не сможете

нет, я конечно за. но удаленно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, krux said:

это подождите, щас приедет вам префетч, предвыполнение инструкций, miss/hit-ratio cache, etc etc etc как нагрузят что выгребсти не сможете

нет, я конечно за. но удаленно

Интересно, а что в MISC архитектуре это как то по особенному нужно делать?

 

P.S. Тут вот даже провели исследование как можно ускорить Си код в Российском контроллере поддерживающем Форт в своей архитектуре ( К1894 линейка)

Разработка компилятора для стековой процессорной архитектуры TF16 на основе LLVM

(Труды ИСП РАН, том 33, вып. 5, 2021 г. // Trudy ISP RAN/Proc. ISP RAS, vol. 33, issue 5, 2021)

Quote

В первой версии компилятора архитектура TF16 рассматривалась как классическая регистровая архитектура, и сгенерированный код не использовал стековые возможности.
Эта версия была относительно проста в разработке и служила точкой сравнения для второй версии компилятора.
Во второй версии компилятора был разработан и реализован платформонезависимый алгоритм планирования команд c учётом особенностей стековых архитектур.

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

 

P.S. В Минско Интеграле есть или был ещё  1881ВЕ2Т  (из линейки Дофин) DSP контроллер тоже с возможностью поддержки Форт аппаратно, но Х.З. какая его сейчас судьба (может кто знает?)

http://www.enet.ru/win/cherezov/forthcpu/misc.html  MISC против RISC против CISC
Philip J. Koopman, Jr. "Стековые компьютеры, новая волна" (1989)

MuP21

Quote

MISC (компьютер с минимальным набором команд, Minimal Instruction Set Computer) — архитектура для проектирования процессора, которая отличается наилучшей эффективностью и простотой в сравнении с CISC и RISC. Может содержать в себе блок RISC, обрабатывающий в себе от 10 базовых команд (+, —, /, *, if, else & etc), из которых формируются более сложные операции над значениями, методом ветвления полученных результатов в ПЗУ. С точки зрения быстродействия, время выполнения инструкции, скорость записи и передачи данных в память, сократилось бы в разы, так как не нужно было бы ожидать, пока заполнится и очистится конвейер, а выполнять всё «потоково» без задержек.

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

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

Первая вариация данного процессора под названием MuP21 (1995г)

, имеет вычислительную способность 100 MIPS, при техпроцессе 1.2 мкм (!), энергопотребление 50 мВт. Работа процессорa на 100 мГц и количество транзисторов равно 7000 штук (!).
Впечатляет. У Pentium 1 (60 МГц) с 3.1 млн. транзисторов, 0,8 мкм и до 15 ватт энергопотреблением, вычислительные возможности были примерно на том же уровне.


144-ядерный процессор Чарльза Мура поступил в продажу по $20

Лекция Чарльза Мура, создателя Forth: 144-ядерный процессор, зачем? Сложно ли запрограммировать 144 вычислительных ядра?


GA144: русские спецификации процессоров

MISC легко имплантируется в FPGA решения.

Прагматичные процессоры  (статья от 2001г)

Quote

...
В отличие и от самых эффективных эмуляторов Java-машины, и от лучших JIT-компиляторов
(осуществляющих трансляцию Java-кодов в коды целевой платформы в ходе загрузки
задачи), аппаратные стековые машины привлекательны не только (и не столько) очень
высокой производительностью, хотя их быстродействие впечатляет. Так, при потреблении
в 5 раз (!) меньшей мощности они уверенно — почти в 2 раза — обходят своих далеко
не самых медленных конкурентов из регистрового мира RISC: классическая стековая
машина "выдает" на тестах CM (CaffeineMark) 1900 единиц против 1000
единиц очень удачного процессора ARM7TDMI при тактовой частоте 100 MHz (для сравнения,
этот показатель соответствует уровню производительности процессора Intel Pentium
150 MHz или даже Pentium Pro 200 MHz — в зависимости от качества реализации виртуальной
машины Java). При этом следует учесть, что тесты CM комплексные, и полученная
оценка является интегрированной, включающей и интенсивные вычисления с плавающей
точкой, которые обычно производителями стековых машин аппаратно не поддерживаются!
Но все же главная привлекательность безадресных архитектур кроется в исключительно
высоких показателях скорости переключения между задачами/потоками в многозадачных/поточных
программных системах. Каноническим регистровым машинам в таких случаях надо сохранить
текущий контекст в стеке, размещающемся в некоторой области оперативной памяти.
Так как контекст современных процессоров достаточно объемен (обычно у них много
регистров), а операции записи во внешнюю память относительно медленны, то и время
переключения получается (в терминах процессора) очень продолжительным. Стековым
машинам такие операции не нужны — их контекст уже хранится в стеке, поэтому переключение
обычно осуществляется за один такт. Чтобы понять порядок величин, следует привести
такой пример: переключение между потоками даже в весьма неплохих ОС реального
времени, написанных на компилируемых языках и тщательно оптимизированных, отнимает
одну-две миллисекунды процессорного времени. Для процессора aJ-100 и программы,
написанной на Java, переключение между двумя потоками занимает строго 1 микросекунду.
Такая разница (на три порядка!) означает, что процессору легче "справляться"
со множеством разных задач, что исключительно важно уже не только для "настольных"
машин, но и для самых разнообразных персональных устройств.
..

В истории стековых процессоров (2000e года) был ptsc1000 (от Patriot Scintific)
так вот он участвовал в тестах от EMBC и показывал приличные результаты.
Х.З. почему его убрали с рынка и кто этому поспособствовал.

Тот же TF-16 (К1894 реализованный ещё на FPGA) сравнивался в тестах с 486DX в серии статей журнала "Компоненты и Технологии" в 2003-2004г (Стековые процессоры, или новое — это хорошо забытое новое)

т.е. стековые (MISC) процессоры почему то никак не представлены в нише МК, а теже Форт системы делаются и запускаются в рамках регистровой архитектуры.
У Atmel был 4-ёх битный стековый контроллер Marc4 (в автомобильном исполнении ), но его не развивали и не выводили особо на рынок возможно в угоду AVR.

Возможно XMOS (чем то близок MISC) более менее удачно зашёл на рынок некоторого индустриального применения.

Изменено пользователем KPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

3 hours ago, KPG said:

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

Бред. Был комерческий стековый процессор - PicoJAVA. Провалился с треском и был отправлен в public domain. 

Стековая архитектура хорошо подходит для викроконтролеров и подобных. Для высокопроизводительных процессоров она не подходит - на неё не ложится OOO. Все команды оказываются зависимыми (через стек), и никакого распараллеливания на уровне комманд не происходит.

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

12 hours ago, xvr said:

Бред. Был комерческий стековый процессор - PicoJAVA. Провалился с треском и был отправлен в public domain. 

Стековая архитектура хорошо подходит для викроконтролеров и подобных. Для высокопроизводительных процессоров она не подходит - на неё не ложится OOO. Все команды оказываются зависимыми (через стек), и никакого распараллеливания на уровне комманд не происходит.

 

Может не вышел на рынок, что опыта у инженеров Intel, AMD по ускорению кода для куцой x86 CISC оказалось больше?

как и раньше когда они обогнали Мотороловские, Spark, Alpha ... процессоры или у них тоже были  проблемы с ООО?

 

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

Даже не очень обременительная техника по макрооптимизации Форт кода в SPF4  при перекладки его в x86 регистры приводит к существенному его ускорению. При этом реализованные Форт системы на Си не показывают выдающиеся скорости работы кода.

 

Изменено пользователем KPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

насколько я понимаю - все вылилось в написание компиляторов которые проблемы не решают примерно никак

ИИИИИИИ здравствуйте.  

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

15 hours ago, KPG said:

Может не вышел на рынок, что опыта у инженеров Intel, AMD по ускорению кода для куцой x86 CISC оказалось больше?

Он проиграл SPARC'у, который разрабатывали теже самые инжинеры и компилятор писали теже самые програмисты. Так что увы, мимо кассы

15 hours ago, KPG said:

как и раньше когда они обогнали Мотороловские, Spark, Alpha ... процессоры или у них тоже были  проблемы с ООО?

 

OOO тогда ещё не появилось. а когда оно появилось Моторола И Alpha уже почили в бозе. Sparc немного потрепыхался, и даже OOO успел себе привить, но увы, не выплыл.

15 hours ago, KPG said:

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

 

В x86 аппаратный стек (на push/pop) почти не используется - во первых сами команды push/pop не эффективны, а во вторых как раз из за OOO. Компиляторы используют регистр sp для отслеживания позиции в стеке, а обращение туда делается командами mov по sp+смещение. Если не верите - посмотрите ассемблерные листинги от компилятора. push может быть останется при вызове функции, но и то не факт.

15 hours ago, KPG said:

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

Т.е. стек приводит к замедлению, я правильно понял?

15 hours ago, KPG said:

При этом реализованные Форт системы на Си не показывают выдающиеся скорости работы кода.

А это следут понимать как 'не выпендривайтесь, и пишите сразу на С', я правильно понял?

4 hours ago, krux said:

насколько я понимаю - все вылилось в написание компиляторов которые проблемы не решают примерно никак

В PicoJAVA были попытки исправить ситуацию. SUN добавил в Java VM команды для прямой работы с аналогами регистров и попытались сделать JIT оптимизатор, что бы их использовать. Не помогло - компилятор не справился 😞

Так что изначально неэффективное аппаратное решение никакие компиляторы не вытянут 😞

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

Восторженные статьи на тему 'наш Форт порвал 386 процессор как тузик грелку - давайте массово делать Форт процессоры, пока Intel не опомнился' у мало мальски осведомлённых в архитекрурах CPU инжинерах вызывает только гомерический хохот.

Forth хорошь в микроконтролерах, но и там у него есть проблемы - он оказывается слишком сложным, как это не странно. Стек это аппаратура, построенная поверх регистров, и без неё можно обойтись.

По поводу статей, мне особенно запомнился один перл (от какого то нашего Forth процессора) - 'у нас настолько быстрый процессор и такая компактная кодировка, что нам кэши не нужны'. Соственно после этого пассажа очень сложно воспринимать всё остальное всерьёз 😞

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

On 6/18/2023 at 12:19 AM, xvr said:

Forth хорошь в микроконтролерах, но и там у него есть проблемы - он оказывается слишком сложным, как это не странно. Стек это аппаратура, построенная поверх регистров, и без неё можно обойтись.

Если он хорошь для микроконтроллеров, то почему нет микрконтроллеров на масс рынке и почему?

(то, что можно обойтись нет никаких сомнений, но иметь хорошую альтернативу RISC, CISC в виде MISC тоже хотелось бы)

P.S. Chlorophyll Language and Compiler

etherforth

Изменено пользователем KPG

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2 часа назад, KPG сказал:

Если он хорошь для микроконтроллеров, то почему нет микрконтроллеров на масс рынке и почему?

Дак он вроде и написал, потому, что сложно осваивать. Честно говоря, глянув на программирование этого 144-ядерный процессор-а, я подумал, что мне предложили изучить некий инопланетный язык программирования)))

Изменено пользователем mantech

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...