_Loader_

6-Oct-03 00:11 Alex Kouznetsov wrote to Oleksandr Redchuk:

OR>>>> Скомпилированный для "Hейрона" из "Hейрон-C" код выполняется OR>>>> ПРОЦЕССОРОМ СО СТЕКОВОЙ АРХИТЕКТУРОЙ.

1)_____^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AK>>> А... Опять спор о терминах и приоритетах... AK>>> "Форт-процессор" и "стековый процессор" - синонимы.

2)____^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OR>> Значит всё-таки у меня в атлоне стоит форт-сопроцессор плавающей OR>> арифметики... OR>> Может ещё и С-компилятор генерит вставки на форте для него? OR>> И тот технологический управляющий контроллер Reliance Electric OR>> на рассыпухе 74-ой серии, в котором я копался когда-то (битовый OR>> процессор со стековой архитектурой) - тоже "форт-процессор"?

3)___^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OR>> Улёт....

AK> Раз ты так все хорошо объясняешь.... И не являешься неофитом, жалким AK> "форрррртером", "кульхацкером", или каким другим быдлом... Я наступил на больной мозоль? Тебя я вроде бы так не называл, если ты сам в этих словах себя увидел -- твои личные проблемы.

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

AK> И про Форт знаешь давно, раньше всех присутствующих, _Я_ этого не говорил. И даже не намекал на это. Более того, я так и не думаю.

AK> да и сам что-то похожее когда-то изобрел... И _этого_ (что я сам изобрёл что-то похожее на форт) _я_ тоже не говорил. Но это очень удобно -- приписать мне "общечеловечески некрасивые" слова и потом разбить меня в пух и прах на этом поле.

AK> Будь добёр, растолкуй простым смертным, в чем разница между стековым AK> процессором и Форт-процессором? Дай, пожалуйста, определения того и AK> другого, чтобы можно было отличить в случае нужды.

Нет уж, теперь твоя очередь.

1) Я говорил, что стековая архитектура это ещё не форт и не стоит процессор обзывать форт-процессором называть на основании того, что у него стековая архитектура. Так можно и процессор с автомодификацией указателей объявить С-процессором.

2) Ты заявил, что, по твоему мнению, стековый- и форт- процессоры это одно и то же.

3) Я привёл несколько примеров явно стековых систем, которые, по моему мнению, форт-процессорами назвать нельзя.

Теперь ты покажи, что все названные вещи есть форт-процессоры. Если очень надо -- могу привести более-менее подробное описание и набор команд (все 12) управляющего контроллера Reliance Electric (модель не помню), процессорный модуль которого - битовый стековый процессор.

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

Reply to
Oleksandr Redchuk
Loading thread data ...

Mon Oct 06 2003 08:39, Roman Khvatov wrote to Ilia Tarasov:

RK> То есть все таки это единственная работающая формула в программе :) Что RK> то не верится. Кроме того, здесь уже замечали, что собственно sin и sqrt RK> сами по себе вполне хорошо параллелятся.

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

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

IT>> Hе понял... Устройство умножения всего одно, что можно параллелить?

RK> В суперскаляре их несколько.

IT>>>> умножению с накоплением. Представим, что перемножитель один, и ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ Понятно, что в реальных кристаллах их может быть несколько... Я про пример.

IT>> Fixed. А Форт-процессор с запараллеленными стеками?

RK> Это будет называться векторная машина. Такие уже были и вымерли за RK> невостребованностью :)

Ага... :)

IT>> Конечно, 3 хороших :) Hапример, стековая архитектура на FPGA Xilinx IT>> дает ровно в 16 раз больший объем стековой памяти на тех же IT>> ресурсах... ;)))

RK> Возможно. Я так понимаю, что стек там делается на FIFO?

На распределенной памяти, конфигурируемой также как FIFO (или стек). Под FIFO есть только языки типа Onyx-а, а это еще экзотичнее Форта.

IT>> Hу, кому как. Согласен, для подавляющего большинства разработчиков IT>> разработка собственного компилятора - далеко не первоочередная задача.

RK> А кто говорит про собственный? RK> Hаписать ХОРОШИЙ компилятор - это _очень_ непростая задача. Его объемы RK> вполне могут зашкалить за несколько милионов строк на С.

Даже неоптимизирующий целевой компилятор для форт-процессора (что-то около 100 строк на Форте) дает очень неплохие результаты.

RK> Есть такое наблюдение - програмист пишет приблизительно с одной и той же RK> скоростью (в строках в час) на _любом_ языке. Теперь прикинь одна строка

Да...

RK> на С - это сколько строк на asm? Что касается Форта, то тут на первый RK> план выходит его 'своеобразность' - с читаемостью его программ дело RK> обстоит даже хуже, чем с обычным asm'ом :) (Тут я полностью согласен с RK> DO)

Слова Форта == функции Си. Отличие исключительно в написании и способе передачи параметров. Ну разве что Си - mainstream, с мегатоннами сопроводительной информации и методических материалов, а Форт - штучный инструмент, который с начала 70-х как-то вот прибился к этому потоку, да так до сих пор и существует. По поводу читаемости - очень спорный вопрос. Читаемость для кого? Для эмбеддера, программирующего по необходимости? Для специалиста в cs, которому по большому счету все равно какой язык? Для фортера со стажем, который не будет писать криво?

RK> А потом он воплощается в железе, которое в отличии от софта уже не RK> исправишь. RK> А выпуск новой версии железа это совсем не то, что выпуск новой версии RK> софта. RK> (Пока я не рассматриваю Форт процессоры в FPGA - там они вполне RK> оправданны)

(А я как раз в основном-то в FPGA - мне актуально :)

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

RK> С этим никто не спорит, однако и по производительности он будет ему RK> уступать.

Я одно время сравнивал алгоритмы, реализуемые для пентиума на Си++ и для своего форт-процессора. Численные, с вложенными циклами, с обработкой массивов, с вызовом функций и т.п. В среднем получалось, что для достижения паритета пентиум должен иметь от 1,5 до 4 раз большую частоту!

RK> Компилятору все равно, а написание на голом асме/Форте подходит только RK> для небольших проектов, а для них абсолютно по барабану, какой будет RK> процессор.

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

IT>> для стековой архитектуры сразу IT>> готовы все алгоритмы, а для регистровой надо долго думать, как все IT>> туда упихать, и не завести ли еще регистр, а то что-то места мало и в IT>> память лезть приходится...

RK> А если у Форт процессора кончится стек? Это проблема того же плана.

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

IT>> (которому желательно симметричный набор) и разработчиком железа,

RK> Железо обычно уже дано как данность, а при проектировании новых RK> процессоров в любом случае стараются сделать симметричный набор регистров RK> - так всем проще.

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

IT>> которому проще соединить этот новый регистр с каким-нибудь IT>> аккумулятором,

RK> Так не делают. Обычно есть набор РОHов и какой нибудь аккумулятор (или RK> несколько, или ни одного). Под регистрами в такой архитектуре понимают RK> РОHы, к аккумуляторам (и пр. спец регистрам) относятся как к специального RK> вида аппаратуре, которая используется только при генерации комманд, но не RK> участвует в распределении регистров. И только на последних стадиях RK> оптимизаций уже готового кода (peephole оптимизации) его пытаются RK> использовать под временное хранилище чего нибудь (если он вдруг где то RK> оказался свободным)

Так не делают действительно по многим причинам. Однако технологические проблемы все же имеют место (но это опять формально).

IT>>>> или когда зависимость по данным не вызывает простоев конвейера? RK>>> Hет. IT>> А как это соотносится с (*)? А вот держи примерчик:

IT>> a = b + c + d (1) IT>> b = a + d - с (2) IT>> c = a + b + 3 (3) IT>> d = a + b + c (4)

IT>> Hалицо WAR при подстановке любой из строк 2-4 после 1.

RK> Строки 2-4 зависимы по данным от строки 1, и так будет при любом RK> количестве регистров, ни 5й ни 25й здесь не помогут.

b = (b + c + d ) + d - c с = (b + c + d ) + d - c d = (b + c + d ) + b - c

Видимо, от количества регистров все же зависит?

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

RK> Увеличение числа РОHов - тоже.

Ну как же не сопровождается? Ассемблер-то меняется...

IT>> И с этим полностью соглашусь. Заметь, однако, что сфера применения все IT>> же появляется, и довольно обширная...

RK> Итак, консенсус по всем позициям. И о чем же мы тогда спорим?

А кто спорит? :))))) Я, например, кое-что отсюда за последнее время уже выписал себе в "думательную" тетрадочку, и нахожу это довольно-таки полезным. Конкретно мы, имхо, и не спорим, а просто обмениваемся соображениями... :)

Reply to
Ilia Tarasov

Mon Oct 06 2003 09:58, Roman Khvatov wrote to Ilia Tarasov:

IT>> Hа памяти вообще-то. Это проще, чем регистр...

RK> А 'память' - это где? Если на кристале, то это те же регистры, если RK> снаружи - то это будет _жуткий_ тормоз.

Память на кристалле отличается от регистра на кристалле. Сейчас на 1 бит регистра приходится 16 бит памяти (у Xilinx). Будет иначе - будем думать... :)

Reply to
Ilia Tarasov

Mon Oct 06 2003 10:13, Roman Khvatov wrote to Ilia Tarasov:

RK>>> Может, но не стековый суперскаляр будет гораздо проще, а RK>>> преимуществ у стекового процессора перед не стековым (в плане RK>>> производительности) нет.

IT>> ASIC - проще. Софт-ядро в ПЛИС - такое же.

RK> За счет чего оно проще? Пока был упомянут только дешифратор команды - это RK> не настолько сложная часть процессора, что бы его упрощение сделало RK> процессор в целом ощутимо проще.

За счет того, что это ASIC - Application-Specific Integral Circuit. По сравнению с ПЛИС, которая имеет кучу неиспользуемых ресурсов и программируемых соединений. Т.е. делать софт-процессор в качестве замены кристаллу с металлическими соединениями в общем случае не стоит. Если же речь идет об изготовлении специализированного устройства цифровой обработки, то могу сказать, что в зависимости от стиля проектирования процессор в ПЛИС может занимать ну очень разные объемы и иметь в разы отличающуюся производительность. Здесь все же надо комплексно подходить - ПЛИС, система команд, алгоритмы.

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

RK> Аппаратура в принципе не может распределить поток команд на 2 независимых RK> параллельно работающих процессора.

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

IT>> Вот только недавно ушла разработка со счетверенным вычислителем. IT>> Самый настоящий SIMD - стековое ядро формирует команду для IT>> счетверенного арифметического блока...

RK> Заметь: счетверенный арифметический блок!=4м отдельным арифметическим RK> блокам каждый со своими потоками команд (то есть 4м процессорам)

А какая мне в данном случае разница? :))

RK> Вообще то речь шла о неэффективности стековых архитектур для исполнения RK> _одного_ потока комманд в свете технологии SiperScalar

Кстати, могу сослаться на TIGRE - это такая система редукции графов (GRE = Graph REduction), которая дает вполне хорошие результаты для стековых машин. Так что с ходу отметать стековую архитектуру я бы подождал.

Reply to
Ilia Tarasov

Mon Oct 06 2003 23:54, Yuriy K wrote to Ilia Tarasov:

IT>> Hекоторые разработчики окажутся на улице, если _я_ узнаю, что они HЕ IT>> пишут самодельные компиляторы, несмотря на явно поставленную задачу... IT>> ;)

YK> Только при чем тут embedded?

Ну например при том, что у меня нет лишних 3,5K$ на компилятор Си к процессору, который будет поставлен в экспериментальную установку (которая в единичном экземпляре и не на продажу, так что деньги не вернутся). Процессор явно embedded, так вот мне и непонятно, по каким таким причинам нельзя воспользоваться готовыми методиками, позволяющими написать некую систему генерации кода? Потому что эмбедщикам, ждущим, пока им принесут Evaluation Kit с компилятором, будет обидно, что их не позвали?

Reply to
Ilia Tarasov

Mon Oct 06 2003 22:00, Alexander Torres wrote to Ilia Tarasov:

IT>> Hекоторые разработчики окажутся на улице, если _я_ узнаю, что они HЕ IT>> пишут самодельные компиляторы, несмотря на явно поставленную задачу... IT>> ;)

AT> Т.е. ты и они не сабжем занимаетесь, а написанием компиляторов?

Мы занимаемся проектированием и выпуском изделий с embedded-контроллерами. Ты хочешь сказать, что разработка специализированных инструментов в принципе не нужна? Из 10 человеко-часов вполне можно выделить 1 на нечто, не относящееся непосредственно к пайке и кодированию (а в действительности и больше). Почему этот 1 час нельзя потратить на практическое применение методик, нарабатываемых больше 30 лет во всем мире, и около 7-8 лет непосредственно у нас?

Reply to
Ilia Tarasov

Tue Oct 07 2003 02:13, Yuriy K wrote to Ilia Tarasov:

IT>> Hу например при том, что у меня нет лишних 3,5K$ на компилятор Си к IT>> процессору, который будет поставлен в экспериментальную установку IT>> (которая в единичном экземпляре и не на продажу, так что деньги не IT>> вернутся).

YK> Это альтруизм или хобби?

Это исследовательская работа.

YK> Разговор идет о коммерческих применениях.

...которая позволит сформулировать ТЗ для НИОКР... что не так?

IT>> Процессор явно embedded, так вот мне и непонятно, по каким IT>> таким причинам нельзя воспользоваться готовыми методиками, позволяющими IT>> написать некую систему генерации кода?

YK> Потому что рабочее время == деньги.

И я вот так распорядился временем и деньгами... этого делать было нельзя? Эхотаг - это исключительно изготовление плат с PIC-ами и AVR-ами? Конвейерным методом, стандартными компиляторами и однообразным рутинным кодингом типовых алгоритмов? Давай уж считать, что каждый вправе принимать _решения_ самостоятельно, а _мнениями_ - обмениваться, а?

Reply to
Ilia Tarasov
Reply to
Vadim Rumyantsev
Reply to
Lev Serebryakov

Mon Oct 06 2003 22:29, Yuriy K wrote to Alex Kouznetsov:

YK> Видишь ли, Пух, ... AK>> Ты не ответил на вопрос, почему второй интерпретатор будет медленным. AK>> Или ты признаешь, что ляпнул глупость не подумав?

YK> (AK mode on) YK> Видишь ли, читать надо то, что написано, а не то, что тебе захотелось YK> прочитать. YK> (AK mode off)

Пятачок, ты, наверное, не понял что такое AK mode. Обрати внимание, АК в этом режиме дал цитату, чтобы ясно было видно, что ты не прочитал или, если и прочитал, - не обратил внимания. Гуманный он, понимаешь, ;-) не тычет "пальцем в небо", типа, "иди, мол, ищи сам если что-то не заметил" :-) ...

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

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

YK>>> Если старые слова не обеспечивают доступ к железу? См. выше.

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

YK> Железо меняется со временем. Откуда берутся новые слова?

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

Пока, Алексей

Reply to
Alex Kouznetsov

Tue Oct 07 2003 00:36, Oleksandr Redchuk wrote to "Alex Kouznetsov":

OR>>>>> Скомпилированный для "Hейрона" из "Hейрон-C" код выполняется OR>>>>> ПРОЦЕССОРОМ СО СТЕКОВОЙ АРХИТЕКТУРОЙ.

OR> 1)_____^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

AK>>>> А... Опять спор о терминах и приоритетах... AK>>>> "Форт-процессор" и "стековый процессор" - синонимы.

OR> 2)____^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OR>>> Значит всё-таки у меня в атлоне стоит форт-сопроцессор плавающей OR>>> арифметики... OR>>> Может ещё и С-компилятор генерит вставки на форте для него? OR>>> И тот технологический управляющий контроллер Reliance Electric OR>>> на рассыпухе 74-ой серии, в котором я копался когда-то (битовый OR>>> процессор со стековой архитектурой) - тоже "форт-процессор"?

OR> 3)___^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

OR>>> Улёт....

AK>> Раз ты так все хорошо объясняешь.... И не являешься неофитом, жалким AK>> "форрррртером", "кульхацкером", или каким другим быдлом...

OR> Я наступил на больной мозоль? Тебя я вроде бы так не называл, OR> если ты сам в этих словах себя увидел -- твои личные проблемы.

OR> Или просто уже нет технических аругментов и хочется вывести меня OR> на ругань, чтобы потом с видом оскорблённой добродетели сказать OR> "ну и как можно разговаривать с таким человеком?". OR> Hе дождёшься.

AK>> И про Форт знаешь давно, раньше всех присутствующих,

OR> _Я_ этого не говорил. И даже не намекал на это. Более того, OR> я так и не думаю.

AK>> да и сам что-то похожее когда-то изобрел...

OR> И _этого_ (что я сам изобрёл что-то похожее на форт) _я_ OR> тоже не говорил. OR> Hо это очень удобно -- приписать мне "общечеловечески некрасивые" OR> слова и потом разбить меня в пух и прах на этом поле.

"Я наступил на больной мозоль?" (c)

AK>> Будь добёр, растолкуй простым смертным, в чем разница между стековым AK>> процессором и Форт-процессором? Дай, пожалуйста, определения того и AK>> другого, чтобы можно было отличить в случае нужды.

OR> Hет уж, теперь твоя очередь.

OR> 1) Я говорил, что стековая архитектура это ещё не форт и OR> не стоит процессор обзывать форт-процессором называть на основании OR> того, что у него стековая архитектура. Так можно и процессор OR> с автомодификацией указателей объявить С-процессором.

OR> 2) Ты заявил, что, по твоему мнению, стековый- и форт- процессоры OR> это одно и то же.

Да, подтверждаю, стековый процессор и Форт-процессор - одно и то же. "Стековый процессор" - это не любой процессор, у которого есть (хотя бы один) стек. По умолчанию под стековыми процессорами подразумеваются процессоры типов MS0 и ML0 по классификации Купмана,

formatting link
OR> 3) Я привёл несколько примеров явно стековых систем, которые, по моему OR> мнению, форт-процессорами назвать нельзя.

OR> Теперь ты покажи, что все названные вещи есть форт-процессоры.

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

Пока, Алексей

Reply to
Alex Kouznetsov
Reply to
Alexander Torres

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.