Forth и другие саморасширяющиеся системы программирования Locations of visitors to this page
Текущее время: Пт апр 19, 2024 00:53

...
Google Search
Forth-FAQ Spy Grafic

Часовой пояс: UTC + 3 часа [ Летнее время ]




Ответить
Имя пользователя:
Заголовок:
Текст сообщения:
Введите текст вашего сообщения. Длина сообщения в символах не более: 60000

Размер шрифта:
Цвет шрифта
Настройки:
BBCode ВКЛЮЧЕН
[img] ВЫКЛЮЧЕН
[flash] ВЫКЛЮЧЕН
[url] ВКЛЮЧЕН
Смайлики ВЫКЛЮЧЕНЫ
Отключить в этом сообщении BBCode
Не преобразовывать адреса URL в ссылки
Вопрос
Теперь гостю придется вводить здесь пароль. Не от своей учетной записи, а ПАРОЛЬ ДЛЯ ГОСТЯ, получить который можно после регистрации на форуме через ЛС.:
Этот вопрос предназначен для выявления и предотвращения автоматических регистраций.
   

Обзор темы - Форт и Дельфи
Автор Сообщение
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
Неужели это заговор?
Не думаю.
WingLion писал(а):
или это фортеры мысль зажали и никому не дають?
Очень сомневаюсь. Тем более что самый успешный стековый процессор ничего общего с фортом не имел. :)
Сообщение Добавлено: Ср мар 19, 2008 23:30
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Однако почему то они упорно не рапространяются...

Неужели это заговор?
Интересно, чей?
Интеля против всего мира и фортеров?
или это фортеры мысль зажали и никому не дають? :))
Сообщение Добавлено: Ср мар 19, 2008 22:48
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
И какой же это Такой Глобальный Закон запретит мне прочитать одну и ту же переменную сразу одновременно в два канала?
Хорошо. Убедили. Я такого закона не знаю. :)
WingLion писал(а):
безусловно, для возможности широкого рспространения форт-процессоров существует принципиально-непреодолимое препятствие!
Ладно, пусть будет что его нет. Я не против. Однако почему то они упорно не рапространяются... :roll:
WingLion писал(а):
И его зовут Ктулху Фтагн.
Это врядли. :lol:
Сообщение Добавлено: Ср мар 19, 2008 22:40
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Этот конкретный пример невозможно паралелизовать на СТЕКОВОЙ машине, поскольку вторая копия A@ недоступна до завершения комманды C! . Поэтому повторю еще раз:

Припаять два провода к одной точке уже нельзя??? :shock:
Сообщение Добавлено: Ср мар 19, 2008 22:36
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Этот конкретный пример невозможно паралелизовать на СТЕКОВОЙ машине, поскольку вторая копия A@ недоступна до завершения комманды C!


Здравствуйте, я ваша тетя! И какой же это Такой Глобальный Закон запретит мне прочитать одну и ту же переменную сразу одновременно в два канала?

Forthware писал(а):
Поэтому повторю еще раз:

Вы полагаете, что от повторения чего-либо оно немедленно станет правдой?
Попробуйте поповторять: 2+2=5

Forthware писал(а):
не доказывают возможности широкого распространения форт-процессоров


безусловно, для возможности широкого рспространения форт-процессоров существует принципиально-непреодолимое препятствие! И его зовут Ктулху Фтагн. :))
Сообщение Добавлено: Ср мар 19, 2008 22:20
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
Совокупность индивидуальных наработок и определяет техническую область. А в более общем смысле - вообще технический прогресс.
Не спорю. Но мы тут не о техническом прогрессе говорили.
Хищник писал(а):
Эээ... в пятницу я смогу дать документальный ответ на этот вопрос (надеюсь)
Действительно? Ну тогда искренне желаю вам успеха! :D Честно говоря, такая новость была бы очень приятной для меня. :)
Сообщение Добавлено: Ср мар 19, 2008 22:06
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
То Хищник. Хорошо, если вы переводите разговор в русло индивидуальных наработок, мне нечего вам предоставить.

"А кому же еще американский президент должен чистить ботинки?" (с) Линкольн (?) Совокупность индивидуальных наработок и определяет техническую область. А в более общем смысле - вообще технический прогресс.
Forthware писал(а):
Однако ваши наработки никоим образом не доказывают возможности широкого распространения форт-процессоров. Верно?

Эээ... в пятницу я смогу дать документальный ответ на этот вопрос (надеюсь) :)
Сообщение Добавлено: Ср мар 19, 2008 21:49
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
Какая правильная теория, и как она потрясающе не соответствует конкретно приведенному примеру...
Этот конкретный пример невозможно паралелизовать на СТЕКОВОЙ машине, поскольку вторая копия A@ недоступна до завершения комманды C! . Поэтому повторю еще раз:
Forthware писал(а):
(теоретически это возможно, но результат будет регистровой архитектурой с оптимизирующим рантайм компилятором, который будет переводит код стековой машины).
Сообщение Добавлено: Ср мар 19, 2008 21:46
  Заголовок сообщения:   Ответить с цитатой
То Хищник. Хорошо, если вы переводите разговор в русло индивидуальных наработок, мне нечего вам предоставить. Однако ваши наработки никоим образом не доказывают возможности широкого распространения форт-процессоров. Верно?

Хищник писал(а):
Я понял - у меня глюки Прямо на столе лежат...
Нет это не глюки, а реализации совершенно нераспространенных процессоров, в отличии от Transputer.
Сообщение Добавлено: Ср мар 19, 2008 21:44
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
WingLion писал(а):
ежу видно, что такой код легко паралелится

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

Какая правильная теория, и как она потрясающе не соответствует конкретно приведенному примеру...
Сообщение Добавлено: Ср мар 19, 2008 21:41
  Заголовок сообщения:   Ответить с цитатой
WingLion писал(а):
ежу видно, что такой код легко паралелится

Forthware писал(а):
большинство комманд зависимы от предыдущих, и зависимость эту очень трудно устранить (теоретически это возможно, но результат будет регистровой архитектурой с оптимизирующим рантайм компилятором, который будет переводит код стековой машины).
Сообщение Добавлено: Ср мар 19, 2008 21:31
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Однако, Jazelle медленнее нативного кода ARM.

Jazelle быстрее выполняет код JVM, чем ARM, и это в данном случае главное.
Forthware писал(а):
Ну, кому как. И теория и практика показывают что таки следует.

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

Ого! Ну и где мы это "получаем"? Что за проект, сколько там команд? Что за "большее количество команд пересылки данных", и откуда они вообще взялись?
Forthware писал(а):
Вот именно. В стековом нуль операндном коде не может присутствовать потенциал для паралелизации.

Странно. А из моих работ следует, что он там вовсю присутствует. Правда, что такое рецензируемый журнал из ВАКовского списка по сравнению с мнением Forthware? :))
Forthware писал(а):
Нет? Тогда покажите стековый процессор более производительный за провальный NetBurst.

С NetBurst не сравнивал, но лучший CPI, чем в Pentium, вполне получал. Если посмотреть - так это в моей части отчета по проекту EUROPRACTICE, там все это подробно описано. ;)
Forthware писал(а):
Это, типа тот, который стек возвратов? Он тут не поможет, вы не можете использовать его непосредственно с АЛУ,

Интересное заявление. Если рядом стоят два триггера, то писать во второй по каким-то причинам нельзя, если идет запись в первый? Ну-ну...
Forthware писал(а):
Хищник писал(а):
Видно, те люди были единственными, кто умел и умеет делать стековые процессоры...
Возможно, раз у других ничего не получилось...

Я понял - у меня глюки :)) Прямо на столе лежат... :)
Сообщение Добавлено: Ср мар 19, 2008 21:02
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
Нуль операндный код практически невозможно паралелизовать,


возьмем кусок тупой программы для стековой архитектуры и на нем легко видим, что "практические невозможно" - это туфта на постном масле:
Код:
A@ DUP B@ + C! E@ *  D!


Мало того, что и ежу видно, что такой код легко паралелится,
на Форте этот параллелизм можно и явно задать:
Код:
1CPU: А@ B@ + C!
2CPU: A@ E@ * D!
3CPU: И-ТЫ ОТ-РАБОТЫ НЕ-ОТЛЫНИВАЙ ПАДЛА!
Сообщение Добавлено: Ср мар 19, 2008 20:23
  Заголовок сообщения:   Ответить с цитатой
Хищник писал(а):
В виде добавки Jazelle к ARM,
Это уже обратная сторона медали - как язык, имеющий большую распространенность, подтягивает за собой железо. Однако, Jazelle медленнее нативного кода ARM.
Хищник писал(а):
Это ниоткуда не следует!
Ну, кому как. :roll: И теория и практика показывают что таки следует.
Хищник писал(а):
Семантика у них не настолько проста, чтобы каждая команда 2- или 3-адресного ядра разворачивалась в пяток 0-адресных.
Конечно не настолько! :lol: В зависимости от кода, разница обычно в пределах 1.3-2 раза (по количеству комманд). Это если сравнивать с RISC. Если же взять CISC, то некоторые инструкции, со сложными методами адресации могут разложится на "пяток" и больше стековых. Но это не показатель, поскольку выполняются эти CISC комманды тоже значительно дольше (много такотов), либо преобразуются в последовательность из нескольких RISC комманд и потом исполняются. Так что я сравниваю непосредственно с RISC.
Хищник писал(а):
Нет индекса регистра - компактнее команда, и все.
Не все - в результате получаем большее количество комманд пересылки данных но меньший размер кода в байтах. Первое является принципиальным ограничением, второе легко компенсируется экстенсивным наращиванием системы (разрядность).
Хищник писал(а):
27 кб на PPC-подобной архитектуре против 12 кб на стековом процессоре.
По чем килограмм гвоздей? :lol: Как перевести эти числа в количество комманд?
Хищник писал(а):
Тут наоборот, чем короче конвейер, тем меньше "висячих" записей в нем могут сидеть.
Это верно, но чем длиннее конвейер тем выше тактовая частота. На практике видно, что обычный код регистровой архитектуры х86 может эффективно наполнить даже два конвейера более 10 ступеней каждый. Нульоперандный код не может эффективно наполнить один конвейер длиннее 2-3 ступеней. Правда конвейеры многооперандных машин содержат "лишние" ступени, которых просто нет в стековых. Поэтому прирост производительности надо оценивать не по общей длине конвейера, а по тому, какая длина такта нужна для его работы. У стековых, это, грубо говоря, задержка ALU. В регистровых ALU может состоять из нескольких стадий, соответственно задержка может быть в несколько раз меньше.
Хищник писал(а):
Для стека характерно то, что данные обычно сидят на его вершине, поэтому альтернативного варианта "записали туда, а в это время читаем из другого места" не просматривается.
Вот именно. В стековом нуль операндном коде не может присутствовать потенциал для паралелизации.
Хищник писал(а):
Но out-of-order и спекулятивные вычисления уже достигли своего апогея в Pentium-IV, дальше эта гонка за гигагерцами с разбиением конвейера на все более и более мелкие кусочки уже ведет в тупик.
Совершенно верно! Регистровые архитектуры тоже имеют принципиальные ограничения. И я уже говорил, что достигли они их где то после 2000 года. Или вы не внимательно читаете? :?
Хищник писал(а):
Только "возможно" от "реально встречается" отличается очень сильно.
Если бы реально не встречалось, тогда бы второй конвейер сушил весла, и 66МГц Пентиум был бы медленнее за 80МГц 486. А вот на третий, уже реально не хватает, что видно на примере Атлонов.
Хищник писал(а):
Вплоть до отказа от архитектуры NetBurst.
Да, это и есть тот предел о котором говорил я. Такие длииииинные конвейеры уже не получается наполнить используя машинный код х86. Для стековых машин, аналогом NetBurst был T-9000.
Хищник писал(а):
Ну и почему я такого эффекта ни разу не наблюдал?
Нет? Тогда покажите стековый процессор более производительный за провальный NetBurst.
Хищник писал(а):
Особенно мне понравилось про "в несколько раз" То есть ядро с гораздо более простой топологией и меньшим количеством сложных мультиплексоров априори имеет меньшую частоту?
Смотрите на NetBurst. Частоту можно наращивать тремя путями: технологиями, уменьшением задержки в схеме за счет ее упрощения, паралелизацией (конвейер). Первое для всех одинаково. Второе тоже - ALU проще не сделаешь. Третье ограничено возможностью паралелизации исходного кода. Нуль операндный код практически невозможно паралелизовать, регистровый в какой то степени можно, VLIW значительно лучше и т.д.
Хищник писал(а):
Эта... как его... у Форта-то как раз два стека.
Это, типа тот, который стек возвратов? :) Он тут не поможет, вы не можете использовать его непосредственно с АЛУ, поскольку в коммандах нет операнда задающего номер используемого стека, в противном случае, это уже будет однооперандная архитектура, которой форт процессоры не являются по определению. А так, что из него гонять данные на DS и обратно, что из памяти (через кэш естественно), особой разницы нет. К тому же, этот стек есть и у регистровых архитектур.
Хищник писал(а):
Видно, те люди были единственными, кто умел и умеет делать стековые процессоры...
Возможно, раз у других ничего не получилось... :roll:


WingLion писал(а):
Получается, что как бы я ни старался (непосредственно сейчас, на своей работе) у меня ничего не выйдет ведь "никакое усложнение конструкции не принесет вам нужный уровень"
Я уточнял что я имею ввиду. Исполнение одной программы представленной в виде кода стековой безоперандной машины ограничено одной коммандой на такт, как бы вы не усложняли реализацию. Это ограничение принципиально. Другой вопрос что в вашей работе оно может не играть никакой роли.
WingLion писал(а):
Тут дело уже вовсе не в Форте. Проблемы... они, знаете ли, в головах... (с) уж и не знаю чей
Ну, да, естественно. Если бы не эти "проблемы в головах", мы бы уже давно жили при коммунизме. :roll: :))
"Плохому процессору программист мешает..." (с) (говорили про i860)
WingLion писал(а):
Для начала, стек - не один! Стеков, как минимум, два помножить на количество форт-процессоров в одном кристалле. 3 штуки - это знаете ли, на микросхеме, которая уже сейчас устарела, в ту, на которойе работаю - сейчас и 30 штук войдет, и не запищит, як корова, лезущая в улей.
Еще раз, возможность построения многопроцессорных систем тут ни при чем. Я уверен что вы получите нужную вам производительность и сможете запрограммировать нужное вам колличество процессоров. И их архитектура в данном случае роли не играет. Я не знаю особых ограничений стековой архитектуры в плане построения многопроцессорных систем.
WingLion писал(а):
т.е. Вы утверждаете, что люди пишут задачи под архитектуры, а не архитектуры под задачи делают?
Нет, я утверждаю что любой алгоритм представленный в виде кода нульоперандной машины практически не возможно паралелизовать.
Хотя, насчет "архитектуры под задачи делают" можно сильно усомниться, зная какая архитектура у нас самая распространенная (на рынке РС). :roll:
WingLion писал(а):
Это и означает, что интель форт-процессору (у которого одна команда за такт выполняется) в такой задаче просто сольет...
Ну да. В сферическом вакууме. А на практике такого не бывает.
Сообщение Добавлено: Ср мар 19, 2008 18:15
  Заголовок сообщения:   Ответить с цитатой
Forthware писал(а):
то никакое усложнение конструкции не принесет вам нужный уровень производительности.


однако, у Вас и шуточки... :shock:
Получается, что как бы я ни старался (непосредственно сейчас, на своей работе) у меня ничего не выйдет :shock: :shock: ведь "никакое усложнение конструкции не принесет вам нужный уровень"

Forthware писал(а):
Языки позволяющие лучше других генерировать паралельный код нынче не в моде.

Иззвините, а ФорД на каком языке описывал, как надо конвееры на заводах строить, чтобы они машины выпускали?

Так, чисто для справки. Язык AHDL, на котором я описываю свою архитектуру под свою задачу (и никак не наоборот) - параллелен - АБСОЛЮТНО и ПРИНЦИПИАЛЬНО. Про моду - не знаю. Кому-то нравится VHDL, a не AHDL.

Forthware писал(а):
Однако Форт такому не способствует. Трудно делать что либо паралельное вокруг одного стека.

Тут дело уже вовсе не в Форте. Проблемы... они, знаете ли, в головах... (с) уж и не знаю чей

Для начала, стек - не один! Стеков, как минимум, два помножить на количество форт-процессоров в одном кристалле. 3 штуки - это знаете ли, на микросхеме, которая уже сейчас устарела, в ту, на которойе работаю - сейчас и 30 штук войдет, и не запищит, як корова, лезущая в улей.

Скажете, я не сделаю через дцать лет не 30, а все 300 в одном чипе? Или у меня мозги расплавятся написать к ним программу?


Forthware писал(а):
Реальные задачи описаные нульоперандной стековой системой комманд практически не распараллевиваются никогда. И проблема не в задаче, а в архитектуре. Тоесть, архитектура не дает средств для описания паралельных задач.

т.е. Вы утверждаете, что люди пишут задачи под архитектуры, а не архитектуры под задачи делают?
:shock: :shock: :shock:

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

Это и означает, что интель форт-процессору (у которого одна команда за такт выполняется)
в такой задаче просто сольет...
Сообщение Добавлено: Ср мар 19, 2008 00:05

Часовой пояс: UTC + 3 часа [ Летнее время ]


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
phpBB сборка от FladeX // Русская поддержка phpBB