ac писал(а):
Продолжаем сказку про белого бычка. FPGA - тоже не форт-процессор. Это FPGA. Можно говорить, что FPGA может реализовать форт-машину. А можно на FPGA реализовать ARM-процессор - он будет настоящим или нет? Более настоящим, чем тот ARM-процессор, который "из печки" выходит уже ARM-процессором, или менее?
А при чем тут тезис "FPGA - это форт-процессор?" Кто такое утверждение высказывал и где? FPGA - это способ исполнения цифровых схем, не более того. Есть кремний с металлическими соединениями, есть кремний с программируемыми ключами. Как они влияют на архитектуру реализуемого устройства? Ровным счетом никак. ARM - это тоже не процессор, если смотреть с этой точки зрения. Это какой-то техпроцесс, с каким-то числом слоев металлизации. Я могу заявить, что у него слоев металлизации маловато, поэтому он "ненастоящий процессор". И чего будет стоить это мое заявление, если программист видит процессор и программирует его как процессор? Еще раз: FPGA - это только аппаратная платформа для реализации цифровых схем. Оценка схемы происходит по RTL-представлению, которое можно уложить в FPGA "на коленке", и получить прототип. А можно то же RTL-представление пропустить через "кремниевый" синтезатор, и получить полигоны в разных слоях кристалла.
ac писал(а):
И в чем отличие аппаратных стековых вычислений от неаппаратных? (а на чем, если не на аппаратуре, они делаются?) Аппаратные - это те, которые за один такт? Или можно за два? У ARM-процессора PLL в 4 раза выше, чем частота команд - он весь не аппаратный? А пентиум (там вообще уже все x86 - это микрокод над другой архитектурой)?
Если очень хочется, можно что угодно считать чем угодно. Но если на одной и той же платформе одна архитектура исполняет команды Форта за N тактов, а другая - за N*10, и при этом прочие параметры сопоставимы, то первая будет более форт-процессором, чем вторая.
ac писал(а):
И сколько форт-команд должен реализовать "аппаратно", чтобы считаться форт-процессором? Если у него "+" и "LSHIFT" за один такт, а "*" за 100 - это форт-процессор или нет? А если у него OVER "аппаратный", а : 2DUP OVER OVER ; - это форт-процессор или нет?
В аппаратном форт-процессоре стек должен быть где? Во внутренних регистрах, во внутренней SRAM, или можно во внешнюю SDRAM расти (как в новом проекте Чепыженко)?
Вот это все уже можно обсуждать, рассматривая разные варианты. Понятие "сигнальный процессор" также не определено абсолютно строго, но в основном считается, что сигнальным можно называть процессор, у которого есть команда "умножение с накоплением". При желании можно раздергать в стороны и это определение, но никакие определения не заменят практику - на сигнальных процессорах должны получаться эффективные программы, занимающиеся цифровой обработкой сигналов. Если же мы говорим о процессорах, ориентированных на языки, то под "X-процессором" можно в первом приближении понимать процессор, который выполняет команды языка X с меньшими накладными расходами, чем команды других языков. Можно из упрямства пользоваться на ARM только Фортом. Однако это не отменит того факта, что программист на С окажется способным выжать из ARM больше, чем программист на Форте. Как бы фортер ни старался. А вот для форт-процессора должно быть справедливым утверждение, что максимальной эффективности на нем можно добиться, программируя на Форте. Это практическое следствие из определения.