_Loader_

Sep 13, 2003 Last reply: 22 years ago 731 Replies
4-Oct-03 03:37 Alex Kouznetsov wrote to Roman Khvatov:

AK> Есть такие чипы Нейрон, выпускаемые уже десятка полтора лет. Они являются AK> основой сети LonWorks фирмы Echelon. Так вот, они сделаны именно так: AK> это AK> 8-битный стековый процессор, который за полный цикл (6 тактов) исполняет AK> 3 независимых команды, по 2 такта на каждую. [...]

AK> Эшелон с понтом вешает лапшу на уши, что внутри Нейрона 3 процессора, на Угу, причём старательно обходит вопрос о том, как же они в общую память лазят :-)

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

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

wbr,

4-Oct-03 07:23 Alex Kouznetsov wrote to Oleksandr Redchuk:

OR>> Я ещё не слышал, что после хорошего С-компилятора программа для OR>> AVR|MCS51|PIC|MSP430 работает быстрее, чем написанная на ассемблере. OR>> Про форт такое слышал. Впрочем, заодно с тем, что "у него ядро 17 байт, OR>> а вот у С!!!!"

AK> придет в голову обычному эмбедеру, настолько же и Форт-система организована AK> в определенном смысле необычно и во многих смыслах эффективно. Никогда с этим не спорил.

AK> Поэтому человеку, AK> незнакомому с принципами работы Форта, тоже в голову не придет писать на AK> ассемблере так, как написан Форт. Хотя вообще говоря его, казалось бы, AK> никто в этом не ограничивает. Имеется ввиду шитый код? Или сразу вместе со стековой машиной :-)? Или ещё с организацией подпрограмм в словарь и с компилятором новых слов на этот словарь? Подпрограммный шитый код я на "СОУ-1" и на "Э-60" применял, ещё не зная ничего про форт. Года за 3 до издания "Баранова-Ноздрунова" и лет за 12 до заглядывания в него. Поэтому я лично не считаю, что если использован шитый код - то это сразу "по мотивам форта". Это естественный способ сэкономить объём, думаю, родился задолго до форта. Просто очень удачно лёг на стековую машину, но если посмотреть на мой asm-модуль работы с I2C из-под КейлC51, то "верхний" слой этого модуля, непосредственно вызывающийся из C, выглядит в духе

_RTCreadCheck: ;;;;;; ; bit RTCreadCheck( void idata *ptr, u8 rtcaddr, u8 len); mov DPH,R3 acall _RTCread ajmp CheckCsum_a

_EEreadCheckParam: ;;;;;;;;;;;;;;; ; bit EEreadCheckParam( u8 paramnum); ; EE_CFG[ee_table[paramnum]] -> union t acall prepare_ee_table _EEreadCheck: ;;;; ; bit EEreadCheck( void idata *ptr, u16 eeaddr, u8 len); mov DPH,R3 ; DPH not changed by I2C functions acall _EEread ; R7 (ptr) not changed in I2C functions ajmp CheckCsum_a

_EEread: ;;;; ; bit EEread( void idata *ptr, u16 eeaddr, u8 len); ; > R7 -> buffer in idata ; R5R4 = hi,lo bytes of address in EEPROM ; R3 = data length ; < C = 1 error acall ee_prepare_addr sjmp i2c_read_block ; это где-то внутри RTCread

_EEwrite: ;;;; ; bit EEwrite( void idata *ptr, u16 eeaddr, u8 len); ; arguments and return value as in EEread acall ee_prepare_addr sjmp i2c_write_block

А внутри i2c_read_block и i2c_write_block вызыается i2c_start_exchange, которая вызывает i2c_start и i2c_put. По сравнению с собственно soft-i2c передачей эти задержки пренебрежимо малы, а код вышел очень компактный, что было важно. Кстати, Баранова-Ноздрунова я читал после того, как сдал этот проект и впервые за несколько лет (перед этим проектом тоже было "давай-давай") спокойно поехал в отпуск не беря с собой схем и распечаток :-)))

Т.е. код шьётся и вне стековой модели, в упомянутом коде регистры как загрузились ещё вызовом из C, так и с минимальными копированиями используются до конца. А с учётом глобальной регистровой оптимизации в кейле и при том, что этот код специально не трогает R7 - указатель на буфер, во многих случаях сгенерённый кейлом код выглядел в духе mov lcall _EEreadCheck jc lcall _OtherFunction без перезагрузки регистров

AK> Если же, паче чаяния, он знает как устроен Форт, то, имхо, вряд ли будет AK> относится к нему с той фанатической ненавистью, которую некоторые тут AK> выказывают ;-) А я могу сказать, что люди, реально и много работающие с фортом (тоже имхо :-) не очень-то шумят на тему самой кртуизны форта. Они просто работают и им не нужно доказывать (в том числе, если не в основном, себе :-) что они пользуются самым крутым инструментом и вааще (что регулярно бывает у неофитов, причём не только в программировании).

Чтобы "два раза не вставать":

4-Oct-03 04:12 Alex Kouznetsov wrote to Yuriy K:

AK> Например, стековый процессор Нейрон, о котором я упоминал, в качестве AK> фронт-энда использует компилятор Си. Тем не менее, сгенерированный им AK> код исполняется Форт-процессором.

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

Похоже, что я тут вот регулярно пользуюсь форт-калькулятором "Электроника МК61", до этого много работал на форт-калькуляторах Б3-21 и Б3-19. А более серьёзные рассчёты мне выполняет форт-сопроцессор с плавающей запятой в моём атлоне.

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

Или есть исторические сведения, что стековая архитектура вообще родилась только после появления форта и в результате воздействия оного на умы архитекторов ЭВМ?

wbr,

Hello Artem.

03 Oct 03 23:14, you wrote to me:

AK> HÕ ÄÁ, × ÌÏÂ.

á ÎÅ '× ÌÏÂ' ÜÔÏ ËÁË?

AK> é ÐÒÉ ÜÔÏÍ ÐÏÔÏÍ ÅÝÅ ÐÙÔÁÀÔÓÑ ÏÂÅÓÐÅÞÉÔØ ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ AK> ÐÕÔÅÍ ÐÅÒÅËÌÀÞÅÎÉÑ ÍÅÖÄÕ ÒÁÚÎÙÍÉ ÐÏÔÏËÁÍÉ ËÏÍÁÎÄ,

á ËÔÏ ÚÄÅÓØ ÇÏ×ÏÒÉÌ Ï ÍÎÏÇÏÚÁÄÁÞÎÏÓÔÉ?

AK> ÞÔÏ ÅÓÔÅÓÔ×ÅÎÎÏ ÓÉÌØÎÏ ÕÓÌÏÖÎÑÅÔ ÓÁÍ ÐÒÏÃÅÓÓÏÒ

þÅÍ ÖÅ, ÉÎÔÅÒÅÓÎÏ? íÎÏÇÏÚÁÄÁÞÎÏÓÔØ ÏÂÅÓÐÅÞÉ×ÁÅÔ ïó.

AK> É ÒÅÁÌØÎÏÊ ÍÎÏÇÏÚÁÄÁÞÎÏÓÔÉ ÎÅ ÄÁÅÔ.

óÉÌØÎÏÅ ×ÙÓËÁÚÙ×ÁÎÉÅ :)

AK> HÉÞÅÇÏ ÎÅ ÚÁÍÅÞÁÅÔÅ?

HÅÔ.

AK> ðÁÒÁÌÌÅÌØÎÏ ÍÏÖÎÏ ×ÙÐÏÌÎÑÔØ ÎÅÚÁ×ÉÓÉÍÙÅ ÏÐÅÒÁÃÉÉ AK> Á ÉÈ ÐÒÉÎÕÄÉÔÅÌØÎÏ ÒÁÚÎÏÓÑÔ ÐÏÄÁÌØÛÅ (É ÐÒÉ ÜÔÏÍ ÇÏ×ÏÒÑÔ, ÞÔÏ AK> ÐÒÏÃÅÓÓÏÒ ÓÕÐÅÒ-....).

'HÅÚÁ×ÉÓÉÍÙÅ' - ÜÔÏ ÉÚ ÒÁÚÎÙÈ ÚÁÄÁÞ? åÓÌÉ ÄÁ - ÔÏ Õ ÎÉÈ É ÍÁÔÐÁÍÑÔØ ÒÁÚÎÁÑ, Á ÐÅÒÅËÌÀÞÁÔØ ÅÅ ÎÁ ËÁÖÄÕÀ ÏÐÅÒÁÃÉÀ - ÎÉËÁËÉÈ 'ÓÕÐÅÒ' ÐÒÏÃÅÓÓÏÒÏ× ÎÅ È×ÁÔÉÔ. åÓÌÉ ÖÅ ÉÍÅÀÔÓÑ × ×ÉÄÕ ÎÅÚÁ×ÉÓÉÍÙÅ ÏÐÅÒÁÃÉÉ ÉÚ ÏÄÎÏÊ ÚÁÄÁÞÉ - ÔÏ ÉÈ ËÁË ÒÁÚ ÓÔÁ×ÑÔ ÐÏÂÌÉÖÅ.

AK> HÕ ÄÁ, ×ÚÑÌÉ ÁÒÈÉÔÅËÔÕÒÕ ÏÐÔÉÍÉÚÉÒÏ×ÁÎÎÕÀ ÐÏÄ óÉ É ÎÁÔÑÎÕÌÉ ÎÁ ÎÅÅ AK> ÓÔÅËÏ×ÕÀ ÍÁÛÉÎÕ. ñ ÂÙ ÕÄÉ×ÉÌÓÑ ÅÓÌÉ ÂÙ ÒÅÚÕÌØÔÁÔ ÂÙÌ ÄÒÕÇÏÊ.

ôÏÇÄÁ ÐÏÄÅÌÉÓØ ÓÏËÒÏ×ÅÎÎÙÍ ÚÎÁÎÉÅÍ - ËÁËÁÑ ÁÒÈÉÔÅËÔÕÒÁ ÏÐÔÉÍÉÚÉÒÏ×ÁÎÎÁ ÄÌÑ ÓÔÅËÏ×ÏÊ ÍÁÛÉÎÙ? (é ÖÅÌÁÔÅÌØÎÏ, ÞÔÏ ÂÙ ÏÎÁ ÂÙÌÁ ÎÅ ÍÅÎÅÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÁ, ÞÅÍ ÓÕÐÅÒÓËÁÌÑÒ, ÉÎÁÞÅ ÜÔÏ ÎÅÉÎÔÅÒÅÓÎÏ - ÇÏÒÂÁÔÙÈ ÁÒÈÉÔÅËÔÕÒ É ÔÁË È×ÁÔÁÅÔ :)

AK> ñ ÍÏÇÕ ÷ÁÍ ÐÒÅÄÌÏÖÉÔØ ÂÏÌÅÅ ÐÒÏÓÔÏÅ ÒÅÛÅÎÉÅ - Ô.Ë. ÓÁÍ ÆÏÒÔ-ÐÒÏÃÅÓÓÏÒ AK> ÄÏÓÔÁÔÏÞÎÏ ÐÒÏÓÔ,

üÔÏ ×ÓÅÏÂÝÅÅ ÚÁÂÌÕÖÄÅÎÉÅ - ÏÎ ÓÌÏÖÎÅÅ RISC'Á, ÔÏÊ ÖÅ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ. RISC ×ÙÐÏÌÎÑÅÔ ÜÌÅÍÅÎÔÁÒÎÙÅ ÏÐÅÒÁÃÉÉ ÎÁÄ ÒÅÇÉÓÔÒÏ×ÙÍ ÆÁÊÌÏÍ, æÏÒÔ ÐÒÏÃÅÓÓÏÒ - ÎÁÄ ÓÔÅËÏÍ (ÔÏÞÎÅÅ Ä×ÕÍÑ ÓÔÅËÁÍÉ). ôÏ ÅÓÔØ æÏÒÔ ÐÒÏÃÅÓÓÏÒÕ, ×ÄÏÂÁ×ÏË Ë ÒÅÇÉÓÔÒÏ×ÏÍÕ ÆÁÊÌÕ (ËÏÔÏÒÙÊ Õ ÎÅÇÏ ÂÕÄÅÔ ÚÁÎÑÔ ÐÏÄ ÓÔÅË), ÎÕÖÎÏ ÅÝÅ 2 ÕËÁÚÁÔÅÌÑ ÓÔÅËÁ, ÂÌÏËÉ ÄÌÑ ÒÁÂÏÔÙ Ó ÎÉÍÉ, ÐÌÀÓ ÍÏÄÉÆÉËÁÃÉÑ ×ÓÅÈ ÏÐÅÒÁÃÉÊ Ó ÐÒÑÍÏÁÄÒÅÓÕÅÍÙÈ (× ÒÅÇÉÓÔÒÏ×ÙÊ ÆÁÊÌ) ÎÁ ËÏÓ×ÅÎÎÏ ÁÄÒÅÓÕÅÍÙÅ (ÞÅÒÅÚ ÕËÁÚÁÔÅÌÉ ÓÔÅËÏ×). ôÏ ÅÓÔØ ×ÍÅÓÔÏ ÔÏÇÏ, ÞÔÏ ÂÙ ÐÒÏÞÅÓÔØ 2 ÒÅÇÉÓÔÒÁ, ×ÙÐÏÌÎÉÔØ ÏÐÅÒÁÃÉÀ É ÚÁÐÉÓÁÔØ ÒÅÚÕÌØÔÁÔ × 3Ê ÒÅÇÉÓÔÒ, æÏÒÔ ÐÒÏÃÅÓÓÏÒ ÂÕÄÅÔ ×ÙÎÕÖÄÅÎ ×ÙÐÏÌÎÉÔØ ÞÔÅÎÉÅ ÕËÁÚÁÔÅÌÑ ÓÔÅËÁ, ÞÔÅÎÉÅ ÒÅÇÉÓÔÒÏ×ÏÇÏ ÆÁÊÌÁ ÐÏ ÐÏÌÕÞÅÎÎÏÍÕ ÁÄÒÅÓÕ, ÉÎËÒÅÍÅÎÔ ÁÄÒÅÓÁ, ÞÔÅÎÉÅ 2ÇÏ ÏÐÅÒÁÎÄÁ ÐÏ ÐÏÌÕÞÅÎÎÏÍÕ ÁÄÒÅÓÕ, ÓÏÂÓÔ×ÅÎÎÏ ÏÐÅÒÁÃÉÀ, ÚÁÐÉÓØ ÐÏ ËÏÓ×ÅÎÎÏÍÕ ÁÄÒÅÓÕ É ÄÅËÒÅÍÅÎÔ ÕËÁÚÁÔÅÌÑ ÓÔÅËÁ. ôÁË ÞÔÏ, ÐÏ ÓÒÁ×ÎÅÎÉÀ Ó RISC ÐÒÏÃÅÓÓÏÒÏÍ, æÏÒÔ ÐÒÏÃÅÓÓÏÒ ÄÅÌÁÅÔ ÍÎÏÇÏ ÌÉÛÎÅÇÏ, Á RISC ÐÒÏÃÅÓÓÏÒ ÎÅ ÄÅÌÁÅÔ ÎÉÞÅÇÏ, ÞÅÇÏ ÂÙ ÎÅ ÄÅÌÁÌ æÏÒÔ ÐÒÏÃÅÓÓÏÒ. ðÌÀÓ ËÏ ×ÓÅÍÕ ÜÔÏÍÕ æÏÒÔ ÐÒÏÃÅÓÓÏÒÕ ÐÏÎÁÄÏÂÉÔÓÑ ÐÏÄÄÅÒÖËÁ ÓÏ ÓÔÏÒÏÎÙ ïó, ÄÌÑ ÏÔËÁÞËÉ ÅÇÏ ÓÔÅËÏ× × ÐÁÍÑÔØ. ïÇÏ×ÏÒÀÓØ, ÞÔÏ ÔÕÔ ÓÒÁ×ÎÉ×ÁÀÔÓÑ ÏÂÙÞÎÙÊ RISC (ÎÅ ÓÕÐÅÒ ÓËÁÌÑÒ) É ÏÂÙÞÎÙÊ æÏÒÔ (ÚÁ ÂÅÓÓÍÙÓÌÅÎÎÏÓÔØÀ ÓÕÐÅÒ ÓËÁÌÑÒÎÏÇÏ æÏÒÔ ÐÒÏÃÅÓÓÏÒÁ)

AK> ÚÁÓÕÎØÔÅ × ÒÅÓÕÒÓÙ ÜÔÏÇÏ "ÏÂÙÞÎÏÇÏ" RISC SuperScalar AK> ÎÅÓËÏÌØËÏ ÍÁÌÅÎØËÉÈ ÆÏÒÔ-ÐÒÏÃÅÓÓÏÒÏ× (×ÏÚÍÏÖÎÏ ÞÁÓÔÉÞÎÏÅ ÐÅÒÅËÒÙÔÉÅ AK> ÒÅÓÕÒÓÏ×) - ËÁÖÄÙÊ Ó ÓÏÂÓÔ×ÅÎÎÙÍ ÐÏÔÏËÏÍ ËÏÍÁÎÄ. ðÏÌÕÞÉÔÅ ÒÅÁÌØÎÕÀ AK> ÍÎÏÇÏÚÁÄÁÞÎÏÓÔØ É ÒÅÁÌØÎÏÅ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÅ :).

HÉ ÔÏÇÏ ÎÉ ÄÒÕÇÏÇÏ ÎÅ ÐÏÌÕÞÉÔÅ :(

÷ ÒÅÁÌØÎÏÊ ÓÉÓÔÅÍÅ ÏÂÙÞÎÏ ÏÄÎÏ×ÒÅÍÅÎÎÏ ÉÓÐÏÌÎÑÅÔÓÑ ÏÄÎÏ ÐÒÉÌÏÖÅÎÉÅ, ÏÓÔÁÌØÎÙÅ ÖÄÕÔ ËÁËÏÇÏ ÌÉÂÏ ××ÏÄÁ/×Ù×ÏÄÁ. éÍÅÅÔ ÓÍÙÓÌ ÏÒÉÅÎÔÉÒÏ×ÁÔØÓÑ ÔÏÌØËÏ ÎÁ multithreaded ÐÒÉÌÏÖÅÎÉÑ - ÏÎÉ ÒÅÁÌØÎÏ ÍÏÇÕÔ ÉÓÐÏÌØÚÏ×ÁÔØ ÎÅÓËÏÌØËÏ ÐÒÏÃÅÓÓÏÒÏ× ÏÄÎÏ×ÒÅÍÅÎÎÏ. HÏ ÄÌÑ ÜÔÏÇÏ ÐÒÉÌÏÖÅÎÉÅ ÄÏÌÖÎÏ ÂÙÔØ ÔÁË ÎÁÐÉÓÁÎÏ, ËÏÍÐÉÌÑÔÏÒÙ ÄÅÌÁÔØ ÉÚ ÏÂÙÞÎÙÈ ÐÒÏÇÒÁÍÍ multithreaded ÎÅ ÕÍÅÀÔ (ÚÁ ÒÅÄËÉÍ ÉÓËÌÀÞÅÎÉÅÍ, æÏÒÔ Ë ÔÁËÏ×ÙÍ ÎÅ ÏÔÎÏÓÉÔÓÑ :) ëÒÏÍÅ ÔÏÇÏ, ×ÍÅÓÔÏ "ÏÂÙÞÎÏÇÏ" RISC SuperScalar ÕÖÅ ÚÁÓÏ×Ù×ÁÀÔ ÍÎÏÇÏ ÍÁÌÅÎØËÉÈ RISC ÐÒÏÃÅÓÓÏÒÏ× - VLIW ÎÁÚÙ×ÁÅÔÓÑ, ÞÔÏ ÇÏÒÁÚÄÏ ÜÆÆÅËÔÉ×ÎÅÅ 'ÍÎÏÇÉÈ ÍÁÌÅÎØËÉÈ æÏÒÔ ÐÒÏÃÅÓÓÏÒÏ×'

Roman

Sat Oct 04 2003 14:53, Oleksandr Redchuk wrote to "Alex Kouznetsov":

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

OR> Или есть исторические сведения, что стековая архитектура вообще OR> родилась только после появления форта и в результате воздействия оного OR> на умы архитекторов ЭВМ?

А... Опять спор о терминах и приоритетах... "Форт-процессор" и "стековый процессор" - синонимы. Форт - не единственный "чисто стековый" язык (к примеру, я уже упоминал ДССП), х25 или Нейрон - не единственные Форт-процессоры, и т.п. Сути дела это не меняет - Форт является "главным течением" для _всего_, что связано со стековыми машинами. Не язык Форт, не какая-то конкретная реализация Форт-системы, не шитый код, не философия Форта, не Форт-сообщество, и пр. А просто Форт, как сущность, и как самостоятельный термин, который много что обозначает.

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

Sat Oct 04 2003 13:15, Yuriy K wrote to Alex Kouznetsov:

YK> Программист будет писать непосредственно шитым кодом? YK> Передавай ему мои соболезнования.

С чего это ты взял? Никто такого не говорил.

AK>> Подпрограммный шитый код _ничего_не_компилирует_.

YK> Естественно. Только кто-то должен этот "шитый код" создать. Кто?

Компилятор, ессно. Кроссовый. Только зачем ты в одну кучу мешаешь компилятор и интерпретатор? Если таким образом ("все в одном флаконе") устроен классический Форт, это еще не повод все и каждую систему делать именно таким образом.

AK>> Компилятор - это программа, которая считывает текст программы, AK>> написанной на одном языке - исходном, и транслирует (переводит) его в AK>> эквивалентный текст на другом языке - целевом.

YK> И?

А целевой код, странслированный кросс-компилятором, грузится в память целевого проца и исполняется интерпретатором. Интерпретатор к моменту загрузки целевого кода уже находится в памяти, так что компилировать его тем же компилятором не надо. Для получения макс. скорости интерпретациии можно использовать подпрограммный шитый код.

YK>>> Остается (с твоих слов) использовать приличный язык для написания YK>>> программ, затем компилятор в форт и подпрограммный шитый код, но тогда

AK>> Hа языке Форт писать, или на этот язык транслировать - тебя никто не AK>> заставляет. Да и транслятор С-Форт ты вряд ли найдешь.

YK> Это радует, значит здравый смысл еще не потерян. YK> Так все-же на каком языке будет писать программист?

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

YK>>> теряется та самая возможность запретить написание завешиваемых YK>>> программ, с которой все и началось.

AK>> Если в интерпретаторе нет операторов, которые позволят "завесить" AK>> программу, то завесить ее нельзя.

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

А это от тебя зависит. Надо больше скорости - поступайся надежностью, и наоборот.

AK>> Для начала, нет операторов, которые запрещают прерывание. Добавлю - также нет операторов, обслуживающих WDT

YK> Прекрасно. Работу с железом как писать будешь (см. название эхи)?

Тебе лень подумать, или ты правда не понимаешь? Для работы с железом исползуются низкоуровневые слова=операторы=подпрограммы=функции. Но, скажем, нет таких слов, которые могли бы запретить прерывания или обслужить WDT.

AK>> В том самом подпрограммном шитом коде (иными AK>> словами - в библиотеке, которая _уже_ находится в памяти, так что ее ее AK>> ни компилировать, ни грузить больше не надо).

YK> ?? Память она все равно занимает, времени на выполнение требует. YK> Те самые подпрограммы откуда берутся? YK> Кто и на каком языке пишет расширения библиотек?

На любом языке. Я лично пишу на С или на ассемблере.

YK> Если только с использованием имеющихся слов, то исходные слова должны YK> позволять низкоуровневый доступ к ресурсам - прощай защищенность. YK> Если можно писать новые слова в машинном коде, то как?

"Новые слова" - это последовательности вызовов "старых слов".

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

Sat Oct 04 2003 13:54, Yuriy K wrote to Lev Serebryakov:

LS>> Коммерческий. Успешно продается.

YK> Сколько штук продано?

Спроси у самой фирмы,

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

Sat Oct 04 2003 16:41, Alex Kouznetsov wrote to Yuriy K:

LS>>> ëÏÍÍÅÒÞÅÓËÉÊ. õÓÐÅÛÎÏ ÐÒÏÄÁÅÔÓÑ.

YK>> óËÏÌØËÏ ÛÔÕË ÐÒÏÄÁÎÏ?

AK> óÐÒÏÓÉ Õ ÓÁÍÏÊ ÆÉÒÍÙ,

formatting link
ôÁË ÎÅÔ ÆÉÒÍÙ-ÔÏ. ôÏÌØËÏ ðâïàì...

WBR, àÒÉÊ.

Sat Oct 04 2003 16:35, Alex Kouznetsov wrote to Yuriy K:

YK>> ðÒÏÇÒÁÍÍÉÓÔ ÂÕÄÅÔ ÐÉÓÁÔØ ÎÅÐÏÓÒÅÄÓÔ×ÅÎÎÏ ÛÉÔÙÍ ËÏÄÏÍ? YK>> ðÅÒÅÄÁ×ÁÊ ÅÍÕ ÍÏÉ ÓÏÂÏÌÅÚÎÏ×ÁÎÉÑ.

AK> ó ÞÅÇÏ ÜÔÏ ÔÙ ×ÚÑÌ? HÉËÔÏ ÔÁËÏÇÏ ÎÅ ÇÏ×ÏÒÉÌ.

õÖÅ ÌÕÞÛÅ. ôÏ ÅÓÔØ ËÏÍÐÉÌÑÔÏÒ ×ÓÅ-ÔÁËÉ ÅÓÔØ É ÍÙ ÓÒÁ×ÎÉ×ÁÅÍ ÎÅ ÐÏÄÈÏÄÙ Ë ÐÒÏÇÒÁÍÍÉÒÏ×ÁÎÉÀ, Á ËÁÞÅÓÔ×Ï ËÏÎËÒÅÔÎÙÈ ËÏÍÐÉÌÑÔÏÒÏ× ÎÁ ÕÓÌÏ×ÎÙÈ ÐÒÉÍÅÒÁÈ. ôÁË ÂÙ ÓÒÁÚÕ É ÇÏ×ÏÒÉÌ.

AK>>> ðÏÄÐÒÏÇÒÁÍÍÎÙÊ ÛÉÔÙÊ ËÏÄ _ÎÉÞÅÇÏ_ÎÅ_ËÏÍÐÉÌÉÒÕÅÔ_. YK>> åÓÔÅÓÔ×ÅÎÎÏ. ôÏÌØËÏ ËÔÏ-ÔÏ ÄÏÌÖÅÎ ÜÔÏÔ "ÛÉÔÙÊ ËÏÄ" ÓÏÚÄÁÔØ. ëÔÏ? AK> ëÏÍÐÉÌÑÔÏÒ, ÅÓÓÎÏ. ëÒÏÓÓÏ×ÙÊ.

HÕ ÓÌÁ×Á ÂÏÇÕ, ÄÏÇÏ×ÏÒÉÌÉÓØ. :))

AK> ôÏÌØËÏ ÚÁÞÅÍ ÔÙ × ÏÄÎÕ ËÕÞÕ ÍÅÛÁÅÛØ ËÏÍÐÉÌÑÔÏÒ É ÉÎÔÅÒÐÒÅÔÁÔÏÒ? åÓÌÉ AK> ÔÁËÉÍ ÏÂÒÁÚÏÍ ("×ÓÅ × ÏÄÎÏÍ ÆÌÁËÏÎÅ") ÕÓÔÒÏÅÎ ËÌÁÓÓÉÞÅÓËÉÊ æÏÒÔ, ÜÔÏ ÅÝÅ AK> ÎÅ ÐÏ×ÏÄ ×ÓÅ É ËÁÖÄÕÀ ÓÉÓÔÅÍÕ ÄÅÌÁÔØ ÉÍÅÎÎÏ ÔÁËÉÍ ÏÂÒÁÚÏÍ.

ëÁËÏÊ ÅÝÅ ÑÚÙË ÇÅÎÅÒÉÔ ÛÉÔÙÊ ËÏÄ, ËÒÏÍÅ âÅÊÓÉËÁ?

AK> á ÃÅÌÅ×ÏÊ ËÏÄ, ÓÔÒÁÎÓÌÉÒÏ×ÁÎÎÙÊ ËÒÏÓÓ-ËÏÍÐÉÌÑÔÏÒÏÍ, ÇÒÕÚÉÔÓÑ × ÐÁÍÑÔØ AK> ÃÅÌÅ×ÏÇÏ ÐÒÏÃÁ É ÉÓÐÏÌÎÑÅÔÓÑ ÉÎÔÅÒÐÒÅÔÁÔÏÒÏÍ. éÎÔÅÒÐÒÅÔÁÔÏÒ Ë ÍÏÍÅÎÔÕ AK> ÚÁÇÒÕÚËÉ ÃÅÌÅ×ÏÇÏ ËÏÄÁ ÕÖÅ ÎÁÈÏÄÉÔÓÑ × ÐÁÍÑÔÉ, ÔÁË ÞÔÏ ËÏÍÐÉÌÉÒÏ×ÁÔØ ÅÇÏ AK> ÔÅÍ ÖÅ ËÏÍÐÉÌÑÔÏÒÏÍ ÎÅ ÎÁÄÏ.

úÁÔÏ ÅÇÏ ÐÒÉÄÅÔÓÑ ÚÁÇÒÕÖÁÔØ × ÓÔÏÌØ ÐÏÄÒÏÂÎÏ ÏÂÓÕÖÄÁÅÍÙÊ ÚÄÅÓØ ËÜÛ.

YK>> üÔÏ ÒÁÄÕÅÔ, ÚÎÁÞÉÔ ÚÄÒÁ×ÙÊ ÓÍÙÓÌ ÅÝÅ ÎÅ ÐÏÔÅÒÑÎ. YK>> ôÁË ×ÓÅ-ÖÅ ÎÁ ËÁËÏÍ ÑÚÙËÅ ÂÕÄÅÔ ÐÉÓÁÔØ ÐÒÏÇÒÁÍÍÉÓÔ?

AK> ñ ÌÉÞÎÏ ÐÉÛÕ ÎÁ ÑÚÙËÅ, ÐÏÈÏÖÅÍ ÎÁ ÑÚÙË æÏÒÔ. ðÏÔÏÍÕ ÞÔÏ Õ ÍÅÎÑ Ë ÎÅÍÕ AK> ÉÄÉÏÓÉÎËÒÁÚÉÉ ÎÅÔ. é ÅÝÅ ÐÏÔÏÍÕ, ÞÔÏ ÎÁÐÉÓÁÔØ ÔÒÁÎÓÌÑÔÏÒ Ó ÜÔÏÇÏ ÑÚÙËÁ × AK> ÂÁÊÔ-ËÏÄ ÄÌÑ ÍÏÅÇÏ ÉÎÔÅÒÐÒÅÔÁÔÏÒÁ ÄÌÑ ÍÅÎÑ ÔÒÕÄÁ ÎÅ ÐÒÅÄÓÔÁ×ÌÑÅÔ.

äÁ ÕÖ... ëÁËÉÍ ÏÂÒÁÚÏÍ ÎÁÐÉÓÁÎÎÙÅ ÔÏÂÏÊ ÐÒÏÇÒÁÍÍÙ ÂÕÄÕÔ ÐÏÄÄÅÒÖÉ×ÁÔØÓÑ ÐÏÓÌÅ Ô×ÏÅÇÏ ÕÈÏÄÁ Ó ÒÁÂÏÔÙ (ÐÏ ÌÀÂÏÊ ÐÒÉÞÉÎÅ)?

AK> äÒÕÇÉÅ ÐÕÓÔØ ÐÉÛÕÔ ÎÁ ÞÅÍ ÈÏÔÑÔ, ÎÁ ÔÏÍ, ÞÔÏ ÓÍÏÇÕÔ ÎÁÊÔÉ, ÉÌÉ ÓÏÚÄÁÔØ AK> ÓÁÍÉ.

"ïÐÏÒÁ ÔÏÌØËÏ ÎÁ ÓÏÂÓÔ×ÅÎÎÙÅ ÓÉÌÙ". üÔÏ ÐÏÄÈÏÄÉÔ ÔÏÌØËÏ ÄÌÑ ÎÅÂÏÌØÛÉÈ ÚÁÄÁÞ, ÇÄÅ ÎÅ ÂÏÌÅÅ ÏÄÎÏÇÏ ÞÅÌÏ×ÅËÁ ÎÁ ÐÒÏÅËÔ.

YK>>>> ÔÅÒÑÅÔÓÑ ÔÁ ÓÁÍÁÑ ×ÏÚÍÏÖÎÏÓÔØ ÚÁÐÒÅÔÉÔØ ÎÁÐÉÓÁÎÉÅ ÚÁ×ÅÛÉ×ÁÅÍÙÈ YK>>>> ÐÒÏÇÒÁÍÍ, Ó ËÏÔÏÒÏÊ ×ÓÅ É ÎÁÞÁÌÏÓØ.

AK>>> åÓÌÉ × ÉÎÔÅÒÐÒÅÔÁÔÏÒÅ ÎÅÔ ÏÐÅÒÁÔÏÒÏ×, ËÏÔÏÒÙÅ ÐÏÚ×ÏÌÑÔ "ÚÁ×ÅÓÉÔØ" AK>>> ÐÒÏÇÒÁÍÍÕ, ÔÏ ÚÁ×ÅÓÉÔØ ÅÅ ÎÅÌØÚÑ.

ðÒÁ×ÄÁ ÔÁËÏÊ ÉÎÔÅÒÐÒÅÔÁÔÏÒ ÂÕÄÅÔ _ÏÞÅÎØ_ ÍÅÄÌÅÎÎÙÍ...

YK>> ÷ÙÄÅÌÅÎÉÅ ×ÒÅÍÅÎÎÏÊ ÐÁÍÑÔÉ ÐÏÄ ÐÅÒÅÍÅÎÎÙÅ/ÍÁÓÓÉ×Ù ÎÁ ÓÔÅËÅ ÅÓÔØ? YK>> ðÒÏ×ÅÒËÁ ÇÌÕÂÉÎÙ ÓÔÅËÁ ÐÒÏÉÚ×ÏÄÉÔÓÑ ÐÒÉ ËÁÖÄÏÍ ÓÏÚÄÁÎÉÉ YK>> ÐÅÒÅÍÅÎÎÏÊ/ÍÁÓÓÉ×Á? YK>> åÓÌÉ ÄÁ, ÔÏ ÐÒÏÝÁÊ ÜÆÆÅËÔÉ×ÎÏÓÔØ. YK>> åÓÌÉ ÎÅÔ, ÔÏ ÚÁ×ÅÓÉÔØ ÓÔÁÎÏ×ÉÔÓÑ ÎÅÓÌÏÖÎÏ.

AK> á ÜÔÏ ÏÔ ÔÅÂÑ ÚÁ×ÉÓÉÔ. HÁÄÏ ÂÏÌØÛÅ ÓËÏÒÏÓÔÉ - ÐÏÓÔÕÐÁÊÓÑ ÎÁÄÅÖÎÏÓÔØÀ, É AK> ÎÁÏÂÏÒÏÔ.

÷ÏÔ-×ÏÔ, ÎÁÞÉÎÁÅÍ ÎÁÈÏÄÉÔØ ÏÂÝÕÀ ÔÏÞËÕ ÚÒÅÎÉÑ. üÆÆÅËÔÉ×ÎÙÊ "ÆÏÒÔ" - ÎÅ ÂÏÌÅÅ ÚÁÝÉÝÅÎ, ÞÅÍ ÔÏÔ ÖÅ ó/ó++/whatever. úÁÝÉÝÅÎÎÙÊ "ÆÏÒÔ" - ÓÔÒÁÛÎÏ ÍÅÄÌÅÎÎÙÊ É ÎÅÜÆÆÅËÔÉ×ÎÙÊ, ÔÁË ÖÅ ËÁË É ×ÓÅ ÏÓÔÁÌØÎÙÅ ÓÐÏÓÏÂÙ ÚÁÝÉÔÙ ÐÒÏÇÒÁÍÍ ÏÔ ÏÛÉÂÏË. çÄÅ ÐÒÅÉÍÕÝÅÓÔ×Á?

AK>>> äÌÑ ÎÁÞÁÌÁ, ÎÅÔ ÏÐÅÒÁÔÏÒÏ×, ËÏÔÏÒÙÅ ÚÁÐÒÅÝÁÀÔ ÐÒÅÒÙ×ÁÎÉÅ. AK> äÏÂÁ×ÌÀ - ÔÁËÖÅ ÎÅÔ ÏÐÅÒÁÔÏÒÏ×, ÏÂÓÌÕÖÉ×ÁÀÝÉÈ WDT

óÏÂÏÌÅÚÎÕÀ. ÷ embedded ÓÉÓÔÅÍÁÈ ÞÁÝÅ ×ÓÅÇÏ ÄÏÌÖÎÙ ÂÙÔØ.

YK>> ðÒÅËÒÁÓÎÏ. òÁÂÏÔÕ Ó ÖÅÌÅÚÏÍ ËÁË ÐÉÓÁÔØ ÂÕÄÅÛØ (ÓÍ. ÎÁÚ×ÁÎÉÅ ÜÈÉ)?

AK> ôÅÂÅ ÌÅÎØ ÐÏÄÕÍÁÔØ, ÉÌÉ ÔÙ ÐÒÁ×ÄÁ ÎÅ ÐÏÎÉÍÁÅÛØ?

íÎÅ ÉÎÔÅÒÅÓÎÏ, ÞÔÏ _ÔÙ_ ÍÏÖÅÛØ ÓËÁÚÁÔØ.

AK> äÌÑ ÒÁÂÏÔÙ Ó ÖÅÌÅÚÏÍ AK> ÉÓÐÏÌÚÕÀÔÓÑ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÅ ÓÌÏ×Á=ÏÐÅÒÁÔÏÒÙ=ÐÏÄÐÒÏÇÒÁÍÍÙ=ÆÕÎËÃÉÉ.

ëÔÏ ÉÈ ÐÉÛÅÔ É ÎÁ ËÁËÏÍ ÑÚÙËÅ?

AK> HÏ, AK> ÓËÁÖÅÍ, ÎÅÔ ÔÁËÉÈ ÓÌÏ×, ËÏÔÏÒÙÅ ÍÏÇÌÉ ÂÙ ÚÁÐÒÅÔÉÔØ ÐÒÅÒÙ×ÁÎÉÑ ÉÌÉ AK> ÏÂÓÌÕÖÉÔØ WDT.

óÏÂÏÌÅÚÎÕÀ. ëÁË ÂÕÄÅÍ ÒÁÂÏÔÁÔØ Ó ÖÅÌÅÚÏÍ ÂÅÚ ÚÁÐÒÅÔÁ ÐÒÅÒÙ×ÁÎÉÊ? ëÁË ÐÉÛÕÔÓÑ ÏÂÒÁÂÏÔÞÉËÉ ÐÒÅÒÙ×ÁÎÉÊ?

AK>>> ÷ ÔÏÍ ÓÁÍÏÍ ÐÏÄÐÒÏÇÒÁÍÍÎÏÍ ÛÉÔÏÍ ËÏÄÅ (ÉÎÙÍÉ AK>>> ÓÌÏ×ÁÍÉ - × ÂÉÂÌÉÏÔÅËÅ, ËÏÔÏÒÁÑ _ÕÖÅ_ ÎÁÈÏÄÉÔÓÑ × ÐÁÍÑÔÉ, ÔÁË ÞÔÏ ÅÅ ÅÅ AK>>> ÎÉ ËÏÍÐÉÌÉÒÏ×ÁÔØ, ÎÉ ÇÒÕÚÉÔØ ÂÏÌØÛÅ ÎÅ ÎÁÄÏ).

YK>> ?? ðÁÍÑÔØ ÏÎÁ ×ÓÅ ÒÁ×ÎÏ ÚÁÎÉÍÁÅÔ, ×ÒÅÍÅÎÉ ÎÁ ×ÙÐÏÌÎÅÎÉÅ ÔÒÅÂÕÅÔ. YK>> ôÅ ÓÁÍÙÅ ÐÏÄÐÒÏÇÒÁÍÍÙ ÏÔËÕÄÁ ÂÅÒÕÔÓÑ? YK>> ëÔÏ É ÎÁ ËÁËÏÍ ÑÚÙËÅ ÐÉÛÅÔ ÒÁÓÛÉÒÅÎÉÑ ÂÉÂÌÉÏÔÅË?

AK> HÁ ÌÀÂÏÍ ÑÚÙËÅ. ñ ÌÉÞÎÏ ÐÉÛÕ ÎÁ ó ÉÌÉ ÎÁ ÁÓÓÅÍÂÌÅÒÅ.

ðÒÏÝÁÊ ÚÁÝÉÝÅÎÎÏÓÔØ. ëÓÔÁÔÉ ÜÔÏ ÐÒÏÔÉ×ÏÒÅÞÉÔ Ô×ÏÉÍ ÖÅ ÓÌÏ×ÁÍ Ï ÚÁÍÅÞÁÔÅÌØÎÏÍ ÂÙÓÔÒÏÄÅÊÓÔ×ÉÉ "ÆÏÒÔÁ"...

YK>> åÓÌÉ ÔÏÌØËÏ Ó ÉÓÐÏÌØÚÏ×ÁÎÉÅÍ ÉÍÅÀÝÉÈÓÑ ÓÌÏ×, ÔÏ ÉÓÈÏÄÎÙÅ ÓÌÏ×Á ÄÏÌÖÎÙ YK>> ÐÏÚ×ÏÌÑÔØ ÎÉÚËÏÕÒÏ×ÎÅ×ÙÊ ÄÏÓÔÕÐ Ë ÒÅÓÕÒÓÁÍ - ÐÒÏÝÁÊ ÚÁÝÉÝÅÎÎÏÓÔØ. YK>> åÓÌÉ ÍÏÖÎÏ ÐÉÓÁÔØ ÎÏ×ÙÅ ÓÌÏ×Á × ÍÁÛÉÎÎÏÍ ËÏÄÅ, ÔÏ ËÁË?

AK> "HÏ×ÙÅ ÓÌÏ×Á" - ÜÔÏ ÐÏÓÌÅÄÏ×ÁÔÅÌØÎÏÓÔÉ ×ÙÚÏ×Ï× "ÓÔÁÒÙÈ ÓÌÏ×".

åÓÌÉ ÓÔÁÒÙÅ ÓÌÏ×Á ÎÅ ÏÂÅÓÐÅÞÉ×ÁÀÔ ÄÏÓÔÕÐ Ë ÖÅÌÅÚÕ? óÍ. ×ÙÛÅ.

WBR, àÒÉÊ.

Hello, Ilia Tarasov !

ëÁË Ñ É ÇÏ×ÏÒÀ, ÅÄÉÎÉÞÎÙÅ ×ÅÝÉ.

íÏÉ ÓÏÂÏÌÅÚÎÏ×ÁÎÉÑ.

âÏÇ × ÐÏÍÏÝØ. ÷ÏÔ ÞÅÇÏ Ñ ÎÅ ÂÏÀÓØ ÓÏ×ÅÒÛÅÎÎÏ, ÔÁË ÜÔÏ ËÏÎËÕÒÅÎÃÉÉ ÓÏ ÓÔÏÒÏÎÙ ÆÏÒÔÅÒÏ×.

HÅ ÏÓÏÂÏ, ÞÅÓÔÎÏ ÇÏ×ÏÒÑ.

èÕÖÅ. ïÄÎÁ ÏÂÒÁÔÎÁÑ ÐÏÌØÓËÁÑ ÚÁÐÉÓØ ÞÅÇÏ ÓÔÏÉÔ.

þÔÏ ÅÍÕ ×ÏÏÂÝÅ × embedded ÓÉÓÔÅÍÅ ÄÅÌÁÔØ?

ëÓÔÁÔÉ ÁÓÓÅÍÂÌÅÒ ÎÅ ÏÂÑÚÁÔÅÌØÎÏ ÄÁÅÔ ÜÔÕ ÏÄÎÏÚÎÁÞÎÏÓÔØ.

ëÏÇÏ ÎÅ ÂÕÄÅÔ ÄÅÌÁÔØ? ôÏ, ÞÔÏ ÎÁ ÆÏÒÔÅ ÍÏÖÎÏ ÎÁÐÉÓÁÔØ ÁÓÓÅÍÂÌÅÒ Ñ × ËÕÒÓÅ, ×ÏÐÒÏÓ ÔÏÌØËÏ ÎÁ ËÏÊ ÜÔÏ ÎÁÄÏ.

ïÄÎÏÚÎÁÞÎÏ ÐÅÒ×ÙÊ ×ÁÒÉÁÎÔ (ÒÁÚÕÍÅÅÔÓÑ ÕÞÉÔÙ×ÁÑ ÂÅÓÓÍÙÓÌÅÎÎÕÀ ÉÚÂÙÔÏÞÎÏÓÔØ):

mov ax, myvar add ax, another_var

ôÕÔ ÐÏÎÑÔÎÏ ÞÔÏ ÄÅÌÁÅÔ ÐÒÏÇÒÁÍÍÁ, × ÏÔÌÉÞÉÅ ÏÔ ÓÏ×ÅÒÛÅÎÎÏ ÂÅÓÓÍÙÓÌÅÎÎÏÊ ÓÔÒÏËÉ

get_myvar get_another_var +

úÁÏÄÎÏ ÐÏÎÑÔÎÏ ÐÏÞÅÍÕ ÐÒÏÇÒÁÍÍÁ ÎÁ ÆÏÒÔÅ ÏËÁÚÙ×ÁÅÔÓÑ ÓÒÁ×ÎÉÍÏÊ Ó ÁÓÓÅÍÂÌÅÒÎÏÊ.

HÅÔ, Á ÚÁÞÁÍ ÐÉÓÁÔØ ÒÕÓÓËÉÊ ÔÅËÓÔ ÎÁ ÆÏÒÔÅ?

íÏÖÎÏ, Á ×ÏÔ ÎÁ ÆÏÒÔÅ ÞÉÔÁÅÍÕÀ - ×ÒÑÄÌÉ. íÎÅ ÎÅ ÐÏÐÁÄÁÌÏÓØ.

÷ÏÔ ÉÍÅÎÎÏ. ñÚÙË, ËÏÔÏÒÙÊ ÎÉÞÅÇÏ ÎÅ ÚÁÐÒÅÝÁÅÔ ÐÒÏ×ÏÃÉÒÕÅÔ ÐÉÓÁÔØ ÔÁË, ÞÔÏ ËÒÏÍÅ Á×ÔÏÒÁ ÜÔÏ ÎÉËÔÏ É ÎÉËÏÇÄÁ ÎÅ ÐÏÊÍÅÔ.

þÉÔÁÅÍÏ, ÎÏ ÞÔÏ ÄÅÌÁÅÔÓÑ ÎÅÐÏÎÑÔÎÏ ÓÏ×ÅÒÛÅÎÎÏ. ïÔ ÔÏÇÏ, ÞÔÏ ÏÎÏ ÚÁÐÉÓÁÎÏ ËÉÒÉÌÉÃÅÊ ÐÏÎÑÔÎÅÊ ÎÅ ÓÔÁÎÏ×ÉÔÓÑ. HÁÐÉÓÁÎÁ ËÁËÁÑ-ÔÏ ÁÂÒÁËÁÄÁÂÒÁ ÎÁ ×ÒÏÄÅ

- ðÅÔØËÁ, ÐÒÉÂÏÒ!

- 78!

- þÔÏ 78?

ó Õ×ÁÖÅÎÉÅÍ, äÉÍÁ ïÒÌÏ×.
4-Oct-03 12:04 Alex Kouznetsov wrote to Oleksandr Redchuk:

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

OR>> Или есть исторические сведения, что стековая архитектура вообще OR>> родилась только после появления форта и в результате воздействия оного OR>> на умы архитекторов ЭВМ?

AK> А... Опять спор о терминах и приоритетах... "Форт-процессор" и "стековый AK> процессор" - синонимы. Значит всё-таки у меня в атлоне стоит форт-сопроцессор плавающей арифметики... Может ещё и С-компилятор генерит вставки на форте для него?

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

Улёт....

wbr,

ðÒÉ×ÅÔ Oleksandr!

03 Oct 03 00:05, Oleksandr Redchuk ÐÉÓÁÌ "Alex Kouznetsov":

OR> ñ Åݣ ÎÅ ÓÌÙÛÁÌ, ÞÔÏ ÐÏÓÌÅ ÈÏÒÏÛÅÇÏ OR> ó-ËÏÍÐÉÌÑÔÏÒÁ ÐÒÏÇÒÁÍÍÁ ÄÌÑ AVR|MCS51|PIC|MSP430 ÒÁÂÏÔÁÅÔ ÂÙÓÔÒÅÅ, OR> ÞÅÍ ÎÁÐÉÓÁÎÎÁÑ ÎÁ ÁÓÓÅÍÂÌÅÒÅ.

:)

ôÙ ÓÏÍÎÅ×ÁÅÛØÓÑ, ÞÔÏ ÞÅÌÏ×ÅË ÍÏÖÅÔ ÓÏÚÄÁÔØ ÁÓÓÅÍÂÌÅÒÎÙÊ ÔÅËÓÔ ÈÕÖÅ ÞÅÍ ÈÏÒÏÛÉÊ ËÏÍÐÉÌÑÔÏÒ? :) ìÉÈËÏ! :))) ÷ÓÅÇÏ ÎÁÉÌÕÞÛÅÇÏ, [Team PCAD 2000] áÌÅËÓÅÊ í. ... ñ ÕÄÁÌÀ Ô×ÏÀ ÖÁÖÄÕ. âÅÚ ×ÏÚÍÏÖÎÏÓÔÉ ×ÏÓÓÔÁÎÏ×ÌÅÎÉÑ.

Hello Alex.

04 Oct 03 07:37, you wrote to me:

RK>> åÓÔØ ÔÁËÁÑ ÆÉÒÍÁ, Sun ÎÁÚÙ×ÁÅÔÓÑ, É ÐÙÔÁÌÁÓØ ÏÎÁ ÓÄÅÌÁÔØ Java RK>> ÐÒÏÃÅÓÓÏÒ (ÞÔÏ ÂÙ ÂÁÊÔËÏÄ ÏÔ Java VM ÂÙÌ ÅÅ ÍÁÛÉÎÎÙÍ ËÏÄÏÍ), É RK>> ÓÄÅÌÁÌÁ - PicoJava ÎÁÚÙ×ÁÌÓÑ. äÅÌÁÌÓÑ ÏÎ ÎÁ ÔÏÊ ÖÅ ÔÅÈÎÏÌÏÇÉÉ, RK>> ÞÔÏ É UltraSparc II. ÷ ÒÅÚÕÌØÔÁÔÅ, ÏÄÉÎ É ÔÏÔ ÖÅ Java ÂÁÊÔËÏÄ ÎÁ RK>> PicoJave ÉÓÐÏÌÎÑÌÓÑ × ÎÅÓËÏÌØËÏ ÒÁÚ _ÍÅÄÌÅÎÎÅÅ_, ÞÅÍ ÔÏÔ ÖÅ ËÏÄ RK>> ÎÁ UltraSparc II ÎÁ JIT'Å :( AK> óÓÙÌÏÞËÕ ÎÅ ÄÁÛØ, ÇÄÅ ÐÒÏ ÜÔÏ ÍÏÖÎÏ ÐÒÏÞÉÔÁÔØ?

ïÞÅ×ÉÄÎÏ ÎÉÇÄÅ :( éÎÆÏÒÍÁÃÉÑ ÏÔ ÇÒÕÐÐÙ ËÏÍÐÉÌÑÔÏÒÝÉËÏ×, ËÏÔÏÒÙÍ Sun ÐÏÒÕÞÉÌÁ ÎÁÐÉÓÁÔØ ÏÐÔÉÍÉÚÁÔÏÒ ÂÁÊÔËÏÄÁ Java ÄÌÑ ÜÔÏÇÏ ÐÒÏÃÅÓÓÏÒÁ, ËÏÔÏÒÙÊ ÂÙ ÐÏÚ×ÏÌÑÌ ÉÓÐÏÌØÚÏ×ÁÔØ ÒÁÓÛÉÒÅÎÉÑ ÂÁÊÔËÏÄÁ ÄÌÑ ÒÁÂÏÔÙ ÎÅ Ó ×ÅÒÈÕÛËÏÊ ÓÔÅËÁ. ïÐÔÉÍÉÚÁÔÏÒ ÂÙÌ ÎÁÐÉÓÁÎ É Ó ÅÇÏ ÐÏÍÏÝØÀ ÕÄÁÌÏÓØ ÄÏÓÔÉÞØ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ UltraSparc II.

AK> HÁ

formatting link
Ñ AK> ÐÏÞÅÍÕ-ÔÏ ÎÉÇÄÅ ÎÅ ÎÁÛÅÌ ÐÒÑÍÏÇÏ ÕËÁÚÁÎÉÑ ÎÁ ÔÏ, ÞÔÏ ÏÎ AK> ÓÕÐÅÒÓËÁÌÑÒÎÙÊ ÐÒÏÃ.

÷ÓÅ SPARC'É, ÎÁÞÉÎÁÑ Ó SuperSparc (Sparc Station 10) - ÓÕÐÅÒÓËÁÌÑÒÙ.

AK> ïÎÉ ÅÇÏ ÎÁÚÙ×ÁÀÔ CMT: These chip multithreading (CMT) AK> processors are designed to execute tens of threads simultaneously, a AK> sharp contrast to the single thread processed at a time by todays AK> typical processors.

íÎÅ ÎÅ ÓÏ×ÓÅÍ ÐÏÎÑÔÎÏ, ÞÅÍ ÉÍÅÎÎÏ ÏÎ 'designed' - ÏÂÙÞÎÙÊ ÐÒÏÃ. ìÕÞÛÅ ÐÏÞÉÔÁÊ ÔÅÈÎÉÞÅÓËÉÅ ÏÐÉÓÁÎÉÑ, Á ÎÅ ÒÅËÌÁÍÕ.

AK> üÔÏ ËÏÎÃÅÐÃÉÑ ÓÕÝÅÓÔ×ÅÎÎÏ ÏÔÌÉÞÁÅÔÓÑ ÏÔ ÓÕÐÅÒÓËÁÌÑÒÎÙÈ VLIW ÐÎÅÊ,

óÕÐÅÒÓËÁÌÑÒÙ É VLIW - ÜÔÏ ÎÅÓÏ×ÍÅÓÔÉÍÙÅ ÐÏÎÑÔÉÑ. óÕÐÅÒÓËÁÌÑÒ ÚÁÓÁÓÙ×ÁÅÔ ÍÎÏÇÏ ËÏÍÁÎÄ É ×ÙÐÏÌÎÑÅÔ ÉÈ × ÐÁÒÁÌÌÅÌØ, VLIWÕ Ñ×ÎÏ ÐÏÄÁÀÔ ÛÉÒÏËÕÀ ËÏÍÁÎÄÕ - Ó ÎÁÂÏÒÏÍ ÏÐÅÒÁÃÉÊ ÄÌÑ ×ÓÅÈ ÅÇÏ ÕÓÔÒÏÊÓÔ×. óÕÐÅÒÓËÁÌÑÒ ÍÏÖÎÏ ÒÁÓÓÍÁÔÒÉ×ÁÔØ ËÁË VLIW ÓÏ ÓÐÅÃÉÁÌØÎÙÍ ÇÒÕÐÐÉÒÏ×ÝÉËÏÍ ËÏÍÍÁÎÄ, ËÏÔÏÒÙÊ ÓÔÒÏÉÔ ÛÉÒÏËÕÀ ËÏÍÁÎÄÕ ÎÁ ÌÅÔÕ ÉÚ ×ÈÏÄÎÏÇÏ ÐÏÔÏËÁ RISC ËÏÍÁÎÄ.

AK> ËÏÔÏÒÙÅ "ÎÁÈÁÐÙ×ÁÀÔ" ÓÒÁÚÕ ÍÎÏÇÏ ËÏÍÁÎÄ × AK> ÏÄÎÏÍ ÔÒÅÄÅ, Á ÐÏÔÏÍ "ÒÁÓÐÉÈÉ×ÁÀÔ" ÜÔÉ ËÏÍÁÎÄÙ ÄÌÑ ÐÁÒÁÌÌÅÌØÎÏÇÏ AK> ÉÓÐÏÌÎÅÎÉÑ × ÎÅÚÁ×ÉÓÉÍÙÅ ÂÌÏËÉ Ó×ÏÅÇÏ ãðõ.

üÔÏ ÓÕÐÅÒÓËÁÌÑÒ.

AK> óÔÒÁÎÎÏ ÞÔÏ Sun ÓÍÏÇÌÁ ÎÁÓÔÕÐÉÔØ ÎÁ ÔÁËÉÅ ÇÒÁÂÌÉ.

Sun ÐÏÓÔÏÑÎÎÏ ÈÏÄÉÔ ÐÏ ÇÒÁÂÌÑÍ, Ñ ÕÄÉ×ÌÑÀÓØ, ÇÄÅ ÏÎ ÉÈ ÔÏÌØËÏ ÎÁÈÏÄÉÔ :)

AK> ôÙ ÎÉÞÅÇÏ ÎÅ ÐÕÔÁÅÛØ, ÒÁÚ×Å PicoJava - ÜÔÏ ÓÕÐÅÒÓËÁÌÑÒ, ÒÁÓÈÏÄÕÀÝÉÊ AK> ÓÔÏÌØËÏ ÖÅ ËÒÅÍÎÉÑ ËÁË UltraSparc II (5.4 ÍÌÎ ÔÒÁÎÚÉÓÔÏÒÏ×, ÅÓÌÉ ÎÅ AK> ÏÛÉÂÁÀÓØ)?

HÅÔ.

AK> HÁÓËÏÌØËÏ Ñ ÚÎÁÀ, ÜÔÏ ÓÒÁ×ÎÉÔÅÌØÎÏ ÍÁÌÅÎØËÉÊ ÐÒÏà (ÐÒÉÍÅÒÎÏ AK> ÔÁËÏÇÏ ÖÅ ËÌÁÓÓÁ ËÁË ARM), ÚÁÔÏÞÅÎÎÙÊ ÎÁ ×ÓÔÒÁÉ×ÁÅÍÙÅ AK> ÐÒÉÍÅÎÅÎÉÑ:

äÁ. õ ÎÅÇÏ ÕÒÅÚÁÎÎÙÊ ÎÁÂÏÒ ÉÓÐÏÌÎÉÔÅÌØÎÙÈ ÕÓÔÒÏÊÓÔ×, ÎÏ ÓÕÐÅÒÓËÁÌÑÒ ÉÚ ÎÅÇÏ ×ÓÅ ÖÅ ÐÙÔÁÌÉÓØ ÓÄÅÌÁÔØ. ðÒÉ ÓÒÁ×ÎÅÎÉÉ ÓËÏÒÏÓÔÅÊ Ñ ÉÍÅÌ × ×ÉÄÕ ÁÒÈÉÔÅËÔÕÒÎÙÅ ÓËÏÒÏÓÔÉ (Ó ÕÞÅÔÏÍ ÕÒÅÚÁÎÎÏÇÏ ÎÁÂÏÒÁ ÉÓÐÏÌÎÉÔÅÌØÎÙÈ ÕÓÔÒÏÊÓÔ× É ÞÁÓÔÏÔÙ)

AK>

formatting link
AK> picoJava I and II are licensable cores, which can be integrated with AK> the application specific I/O functions to design a complete embedded

éÚÎÁÞÁÌØÎÏ ÜÔÏ ÐÒÏÅËÔÉÒÏ×ÁÌÏÓØ ÎÅ ËÁË licensable cores, Á ËÁË ÚÁËÏÎÞÅÎÎÙÊ ÐÒÏÃÅÓÓÏÒ (É ÎÅÍÎÏÇÏ ÂÏÌÅÅ ÍÏÝÎÙÊ). ðÏÓÌÅ ÔÏÇÏ, ËÁË ÓÔÁÌÏ ÐÏÎÑÔÎÏ, ÞÔÏ ÏÖÉÄÁÅÍÙÈ ÐÌÀÓÏ× native JVM ÏÔ ÎÅÇÏ ÐÏÌÕÞÉÔØ ÎÅ ÕÄÁÓÔØÓÑ, ÏÎ ÂÙÌ ÕÒÅÚÁÎ É ÐÒÅÏÂÒÁÚÏ×ÁÎ × ÔÏÔ ÓÁÍÙÊ 'licensable cores' (ËÓÔÁÔÉ, ÜÔÉ cores ÂÙÌÉ ÐÏÍÅÝÅÎÙ × ÐÒÏÇÒÁÍÍÕ Open Source ÏÔ Sun ×ÍÅÓÔÅ Ó ÔÅËÓÔÁÍÉ Solaris 2.7). á Sun ÓÔÁÌ ÒÁÚÒÁÂÁÔÙ×ÁÔØ ÓÌÅÄÕÀÝÉÊ Java ÐÒÏÃÅÓÓÏÒ (ÅÓÌÉ ÍÎÅ ÎÅ ÉÚÍÅÎÑÅÔ ÓËÌÅÒÏÚ ÏÎ ÎÁÚÙ×ÁÌÓÑ Magic) ÎÁ ÂÁÚÅ ÏÂÙÞÎÏÇÏ SPARC ÐÒÏÃÅÓÓÏÒÁ, É ÐÒÅÄÐÏÌÁÇÁÌÓÑ ÏÎ ÄÌÑ ÉÓÐÏÌØÚÏ×ÁÎÉÑ × ËÁÞÅÓÔ×Å ÇÒÁÆÉÞÅÓËÏÇÏ ÐÒÏÃÅÓÓÏÒÁ. ðÒÏÅËÔ ÂÙÌ Ó×ÅÒÎÕÔ.

AK> ðÏÜÔÏÍÕ ÓÒÁ×ÎÉ×ÁÔØ ÅÇÏ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ Ó UltraSparc II, AK> ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÍ ÄÌÑ WorkStations,

õ ÎÉÈ ÒÁÚÌÉÞÉÑ ÎÅ ËÁÞÅÓÔ×ÅÎÎÙÅ, Á ËÏÌÉÞÅÓÔ×ÅÎÎÙÅ. âÙÌ ÔÁËÏÊ ÐÒÏÃÅÓÓÏÒ MicroSparc, ÐÒÅÄÎÁÚÎÁÞÅÎÎÙÊ ÄÌÑ notebook'Ï× - ÏÎ ÖÅ ÏÔ ÜÔÏÇÏ ÎÅ ÓÔÁÌ ÎÁ ÕÒÏ×ÅÎØ AVR'Ï× :)

RK>> üÔÏ ÎÅ ÚÎÁÞÉÔ, ÞÔÏ ÎÅÌØÚÑ ÁÐÐÁÒÁÔÎÏ ÒÁÓÐÁÒÁÌÌÅÌÉÔØ ÏÐÅÒÁÃÉÉ ÓÏ RK>> ÓÔÅËÏÍ, ÜÔÏ ÌÉÛØ ÚÎÁÞÉÔ, ÞÔÏ ÚÁÔÒÁÔÙ ÁÐÐÁÒÁÔÕÒÙ ÎÁ ÔÁËÏÅ RK>> ÒÁÓÐÁÒÁÌÌÅÌÉ×ÁÎÉÅ ÐÒÅ×ÙÓÑÔ ÚÁÔÒÁÔÙ ÁÐÐÁÒÁÔÕÒÙ ÎÁ ÓÁÍÏ ÑÄÒÏ RK>> ÐÒÏÃÅÓÓÏÒÁ - ÓÐÒÁÛÉ×ÁÅÔÓÑ, ÎÁÆÉÇÁ ÜÔÏ ÎÁÄÏ? óÄÅÌÁÔØ ÏÂÙÞÎÙÊ RISC RK>> SuperScalar ÂÕÄÅÔ ÇÏÒÁÚÄÏ ÐÒÏÝÅ, Á ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔØ ÂÕÄÅÔ ÔÏÊ RK>> ÖÅ.

AK> ô×ÏÅ ÕÔ×ÅÒÖÄÅÎÉÅ, ÞÔÏ "ÚÁÔÒÁÔÙ ÁÐÐÁÒÁÔÕÒÙ ÎÁ ÔÁËÏÅ ÒÁÓÐÁÒÁÌÌÅÌÉ×ÁÎÉÅ AK> ÐÒÅ×ÙÓÑÔ ÚÁÔÒÁÔÙ ÁÐÐÁÒÁÔÕÒÙ ÎÁ ÓÁÍÏ ÑÄÒÏ ÐÒÏÃÅÓÓÏÒÁ" - ÓÏ×ÅÒÛÅÎÎÏ AK> ÂÅÚÏÓÎÏ×ÁÔÅÌØÎÏ.

ñ ÉÍÅÀ × ×ÉÄÕ, ÞÔÏ ËÏÌÉÞÅÓÔ×Ï ÁÐÐÁÒÁÔÕÒÙ, ÎÅÏÂÈÏÄÉÍÏÅ ÄÌÑ ÒÁÓÐÏÚÎÁ×ÁÎÉÑ ÎÁ ÈÏÄÕ ÚÁ×ÉÓÉÍÏÓÔÅÊ × ÓÔÅËÅ É ÒÁÓÐÁÒÁÌÌÅÌÉ×ÁÎÉÑ ËÏÍÁÎÄ, ÐÒÉÞÅÍ ÂÅÚ ÐÏÔÅÒÉ ÐÒÏÉÚ×ÏÄÉÔÅÌØÎÏÓÔÉ ÐÒÉ ÒÁÂÏÔÅ ÅÅ ÓÁÍÏÊ, ÂÕÄÅÔ ÔÁËÏ×Ï, ÞÔÏ ×ÐÏÌÎÅ ÍÏÖÎÏ ÓÄÅÌÁÔØ ÏÂÙÞÎÙÊ ÓÕÐÅÒÓËÁÌÑÒÎÙÊ RISC Ó Õ×ÅÌÉÞÅÎÎÙÍ ÎÁÂÏÒÏÍ ÉÓÐÏÌÎÉÔÅÌØÎÙÈ ÕÓÔÒÏÊÓÔ×. äÌÑ ÞÅÇÏ ÔÏÇÄÁ ÏÎÁ ÎÕÖÎÁ?

AK> åÓÔØ ÔÁËÉÅ ÞÉÐÙ HÅÊÒÏÎ, ×ÙÐÕÓËÁÅÍÙÅ ÕÖÅ ÄÅÓÑÔËÁ ÐÏÌÔÏÒÁ ÌÅÔ. ïÎÉ

áÇÁ. é ÚÁ ÜÔÉ ÐÏÌÔÏÒÁ ÄÅÓÑÔËÁ ÌÅÔ ÏÎÉ ÎÅ ÉÚÍÅÎÉÌÉÓØ? éÌÉ ÐÒÏÇÒÅÓÓ ÕÖÅ ÏÓÔÁÎÏ×ÉÌÓÑ?

AK> Ñ×ÌÑÀÔÓÑ ÏÓÎÏ×ÏÊ ÓÅÔÉ LonWorks ÆÉÒÍÙ Echelon. ôÁË ×ÏÔ, ÏÎÉ ÓÄÅÌÁÎÙ AK> ÉÍÅÎÎÏ ÔÁË: ÜÔÏ 8-ÂÉÔÎÙÊ ÓÔÅËÏ×ÙÊ ÐÒÏÃÅÓÓÏÒ, ËÏÔÏÒÙÊ ÚÁ ÐÏÌÎÙÊ ÃÉËÌ (6 AK> ÔÁËÔÏ×) ÉÓÐÏÌÎÑÅÔ 3 ÎÅÚÁ×ÉÓÉÍÙÈ ËÏÍÁÎÄÙ, ÐÏ 2 ÔÁËÔÁ ÎÁ ËÁÖÄÕÀ. óÄÅÌÁÎÏ

HÕ É ÞÔÏ. éÓÐÏÌÎÉÔØ 3 ÎÅÚÁ×ÉÓÉÍÙÈ ËÏÍÁÎÄÙ - ÄÅÌÏ ÎÅ ÈÉÔÒÏÅ, Á ×ÏÔ ÉÓÐÏÌÎÉÔØ 3 ÌÀÂÙÈ ËÏÍÁÎÄÙ ÉÚ ÏÄÎÏÇÏ É ÔÏÇÏÖÅ ÐÒÏÇÒÁÍÎÏÇÏ ÐÏÔÏËÁ - ËÕÄÁ ÓÌÏÖÎÅÊ.

AK> ÜÔÏ ÂÙÌÏ ÉÍÅÎÎÏ Ó ÔÏÊ ÖÅ ÃÅÌØÀ, Ë ËÏÔÏÒÏÊ ÓÅÊÞÁÓ ÓÔÒÅÍÉÔÓÑ Sun: AK> HÅÊÒÏÎ ÉÓÐÏÌÎÑÅÔ 3 ÓÏ×ÅÒÛÅÎÎÏ ÎÅÚÁ×ÉÓÉÍÙÈ ÚÁÄÁÞÉ ÏÄÎÏ×ÒÅÍÅÎÎÏ, × AK> ËÁÖÄÏÍ ËÏÍÁÎÄÎÏÍ ÃÉËÌÅ ÉÓÐÏÌÎÑÑ ÐÏ ÏÄÎÏÊ ËÏÍÁÎÄÅ ÄÌÑ ËÁÖÄÏÊ ÉÚ ÔÒÅÈ AK> ÚÁÄÁÞ.

õ ÜÔÉÈ ÚÁÄÁÞ ÏÂÝÁÑ ÐÁÍÑÔØ, Õ Sun'Ï×ÓËÉÈ ÐÒÏÃÅÓÓÏÒÏ× ÔÁË ÎÅ ÐÏÌÕÞÉÔÓÑ - ÍÁÔÐÁÍÑÔØ Õ ÚÁÄÁÞ ÒÁÚÎÁÑ.

AK> üÛÅÌÏÎ Ó ÐÏÎÔÏÍ ×ÅÛÁÅÔ ÌÁÐÛÕ ÎÁ ÕÛÉ, ÞÔÏ ×ÎÕÔÒÉ HÅÊÒÏÎÁ 3 ÐÒÏÃÅÓÓÏÒÁ, AK> ÎÁ ÎÁ ÓÁÍÏÍ ÄÅÌÅ ÐÒÏÃÅÓÓÏÒ ÏÄÉÎ, ÚÁ ÐÏÌÎÙÊ ÃÉËÌ ÐÒÏÓÔÏ 3 ÒÁÚÁ AK> ÐÅÒÅËÌÀÞÁÀÔÓÑ ÕËÁÚÁÔÅÌÉ ÓÔÅËÏ×. ðÏÓËÏÌØËÕ ÓÔÅËÏ×ÏÍÕ ÐÒÏÃÅÓÓÏÒÕ ÎÅ ÎÁÄÏ AK> ÓÏÈÒÁÎÑÔØ ËÏÎÔÅËÓÔ, ÔÏ ÔÁËÏÅ AK> ÐÅÒÅËÌÀÞÅÎÉÅ ÎÅ ÔÒÅÂÕÅÔ ×ÒÅÍÅÎÉ. úÁÔÒÁÔÙ ÁÐÐÁÒÁÔÕÒÙ ÎÁ 3 ÎÁÂÏÒÁ AK> ÕËÁÚÁÔÅÌÅÊ ÓÔÅËÏ× É ÍÕÌØÔÉÐÌÅËÓÏÒÙ ÄÌÑ ÉÈ ÐÅÒÅËÌÀÞÅÎÉÑ ÍÉÚÅÒÎÙ É ÄÁÖÅ AK> ÐÒÏÓÔÏ ÓÍÅÈÏÔ×ÏÒÎÙ ÎÁ ÆÏÎÅ ÏÓÔÁÌØÎÏÊ ÁÐÐÁÒÁÔÕÒÙ ãðõ. ôÁË ÞÔÏ ÎÅ ÎÁÄÏ AK> ÐÕÒÇÕ ÇÎÁÔØ ;-)

üÔÏ ÄÒÕÇÏÊ ËÌÁÓÓ ÐÒÏÃÅÓÓÏÒÏ×. ïÎÉ ÎÅ ÐÏÚÉÃÉÏÎÉÒÕÀÔÓÑ ËÁË ÓÕÐÅÒÐÒÏÉÚ×ÏÄÉÔÅÌØÎÙÅ, É Õ ÎÉÈ ÎÅÔ ÐÒÏÂÌÅÍ Ó ×ÙÑÓÎÅÎÉÅÍ ÚÁ×ÉÓÉÍÏÓÔÅÊ ÍÅÖÄÕ ËÏÍÁÎÄÁÍÉ - ÏÎÉ ÉÈ ÎÅ ×ÙÑÓÎÑÀÔ. çÌÁ×ÎÁÑ ÓÌÏÖÎÏÓÔØ ÓÕÐÅÒÓËÁÌÑÒÏ× ÎÅ × ÔÏÍ, ÞÔÏ ÂÙ ÉÓÐÏÌÎÉÔØ 3 ËÏÍÁÎÄÙ ÚÁ ÃÉËÌ, Á × ÔÏÍ, ÞÔÏ ÂÙ ÎÁÊÔÉ ÜÔÉ 3 ËÏÍÁÎÄÙ. VLIW ÂÙÌ ÐÒÉÄÕÍÁÎ ÉÍÅÎÎÏ ÄÌÑ ÔÏÇÏ, ÞÔÏ ÂÙ ÉÚÂÁ×ÉÔÓÑ ÏÔ ÜÔÏÊ ÐÒÏÂÌÅÍÙ. ôÁË ÖÅ ËÁË RISC (×ÍÅÓÔÏ CISC'Á) ÂÙÌ ÐÒÉÄÕÍÁÎ ÄÌÑ ÔÏÇÏ, ÞÔÏ ÂÙ ÕÐÒÏÓÔÉÔØ ÐÒÏÃÅÓÓÏÒ, ÕÂÒÁ× ÉÚ ÎÅÇÏ ÍÉËÒÏËÏÄ, ÔÁË ËÁË ÓÔÁÌÏ ÐÏÎÑÔÎÏ, ÞÔÏ ËÏÍÐÉÌÑÔÏÒ ÓÕÍÅÅÔ ÒÁÚÌÏÖÉÔØ CISC ËÏÍÁÎÄÙ × RISC ÜÆÆÅËÔÉ×ÎÅÅ, ÞÅÍ ÖÅÌÅÚÎÙÊ ÐÒÏÃÅÓÓÏÒ. ëÓÔÁÔÉ, ÉÍÅÎÎÏ ÐÏ ÜÔÏÍÕ É ÎÅ ÒÅËÏÍÅÎÄÕÅÔÓÑ ÄÌÑ RISC'Ï× ÐÉÓÁÔØ ÎÁ ÁÓÓÅÍÂÌÅÒÅ - ÏÎ ÎÅ ÄÌÑ ÔÏÇÏ ÓÄÅÌÁÎ :)

Roman

PS. åÓÌÉ ÉÎÔÅÒÅÓÕÀÔ ÐÏÄÒÏÂÎÏÓÔÉ ÕÓÔÒÏÊÓÔ×Á UltraSparc II, ÔÏ Ñ ÍÏÇÕ ÐÒÉÎÅÓÔÉ Ó ÒÁÂÏÔÙ ÅÇÏ ÏÐÉÓÁÎÉÅ É ÐÒÏÓ×ÅÔÉÔØ ÐÏ ÐÏ×ÏÄÕ ÐÏÄÒÏÂÎÏÓÔÅÊ :)

Sat Oct 04 2003 01:04, Dima Orlov wrote to Ilia Tarasov:

DO> Hичего, кроме собственно фортов и нескольких мелких программок (какой-то DO> вьювер к interrupt list by Ralf Brown) мне не попадалось, да и те еще во DO> времена 286 машин. Hе сомневаюсь, что отдельные фанаты что-то пишут, но DO> дальше это по большей части распространения не получает.

Мне попадалось: Eserv (сервер, собственно...), nnCron (планировщик для win), еще была некая САПР, уже не помню, чья. Это из более-менее распространенного, причем только то, что само попалось на глаза в инете. Там, где я работаю, что-то около 30 проектов на Форте для разнообразных расчетов и управления установками с помощью PC, а в эхотажных разработках _ничего_, кроме Форта, и нет...

DO> Да и не знать не особо вредно.

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

DO> Речь-то шла о mark4 от Атмела, именно для него в качестве средства DO> программирования Атмел предлагает один из фортовских диалектов.

Не слышал, интересно...

DO> И по невозможности потом во всем этом разобраться, особенно не автору DO> этой системы.

При нормальном, нефанатском, стиле кодирования Форт читается не хуже других языков.

DO> Да какая командная строка в четырехразрядном embedded процессоре?

Я немножко не понял, о чем речь, имел в виду усредненную Форт-систему, где интерпретатор как правило есть.

DO> Что такое ассемблерный код?

Код, компилируемый ассемблером, надо полагать. :) Однозначное соответствие между мнемонической записью ассемблерных команд и двоичным кодом, располагающимся в памяти программ. Речь об оверхеде, который не делает ассемблер? Компилятор Форта можно скорректировать так, что он тоже не будет его делать. Правда, отказавшись от стековой машины.... или при использовании стека будет оверхед, а без него - нет....

DO> Еще проще ассемблерный код писать на ассемблере.

Скажи пожалуйста, как проще:

mov bx, offset myvar mov ax, word ptr [bx] mov bx, offset another_var mov cx, word ptr [bx] add ax, cx

или

get_myvar get_another_var +

DO> PS Hо даже если бы все сказки о невероятной эффективности форта были DO> правдой, я бы все равно выжигал его каленым железом за абсолютную DO> нечитабельность текстов на нем нормальным человеком. Если о С не без DO> основания говорят как о write only языке, то к форту это применимо DO> тысячекратно.

А осмысленного русского текста на Форте тебе ни разу не попадалось? Смотря как писать... можно на чем угодно намазюкать абсолютно нечитаемую и несопровождаемую программу. Форт, по крайней мере, не запрещает использовать русские символы, не запрещает обустраивать синтаксис по полной программе и т.п.

Вот тебе примерчик, скрипт на Форте. ЭТО нечитаемо???? ==================================================== ПЛОСКОСТЬ Базовая ПРЯМАЯ Прямая1 ПРЯМАЯ Прямая2

УГОЛ МЕЖДУ Прямая1 И Прямая2 БАЗА Базовая НОМИНАЛЬНО 18

+ДОПУСК 0.1

-ДОПУСК -0.1 ====================================================

Sat Oct 04 2003 14:20, Roman Khvatov wrote to Ilia Tarasov:

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

RK> Так практически не бывает.

y=sin(sqrt(abs(2*x))) Что здесь независимого?

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

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

RK> Разумеется, просто я хочу обратить внимание фанатов Форта, что и он имеет RK> свои недостатки, и далеко не на всех процессорах на Форте получатся RK> программы быстрее, чем на том же С.

Это очевидно. (btw, я далеко не фанат... просто Форт дает мне возможность вполне неплохо зарабатывать. А кроме фанатов существуют еще и антифанаты Форта :) ... и это уже очень интересно!)

IT>> Стек есть стек, он имеет свои особенности просто по определению. В IT>> частности, операции с ним не параллелятся.

RK> И это фатально.

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

IT>> А вот компилировать код для стековой машины обычно гораздо проще.

RK> А это дело компилятора, обычно они неплохо справляются не только со RK> стековыми машинами :)

А компилятор - это такая программка, которая ставится с компакт-диска? :) И она безглючна, бесплатна, осваивается в момент доставания диска из коробочки?

IT>> Для сравнения рассмотрим 4 симметричных регистра, и добавим к ним IT>> пятый.

RK> Такой же симметричный?

Такой же, или не такой же... не столь важно.

IT>> Можно ли навскидку сказать, каким будет повышение производительности IT>> кода от такого добавления,

RK> Если для задачи хватало 4х регистров - то повышения производительности не RK> будет вообще, а если не хватало - то быдет весьма значительная.

Как понять "хватало"? Это когда в программе только 4 переменные, или когда зависимость по данным не вызывает простоев конвейера? И "весьма значительная"

- это сколько? Стоит ли делать новый процессор с дополнительным регистром, будет ли он иметь лучшее соотношение цена/производительность? И главное, не съестся ли эта добавка общим снижением рабочей частоты кристалла из-за усложнения схемы?

IT>> как именно нужно изменить компилятор

RK> Hикак, просто исправить константу в распределении регистров в RK> компиляторе.

Неужели так просто? :)

RK> Могу сказать, как обычно строят код компиляторы - сначала генерируется RK> код в предположении бесконечного числа регистров (так называемые RK> виртуальные регистры), затем в полученном коде производится назначение RK> реальных регистров виртуальным. Если на каком либо участке кода реальных RK> регистров не хватает, делается так называемый register splill/fill - RK> содержимое какого либо регистра сохраняется на стеке, а сам регистр RK> используется по назначению, затем содержимое регистра восстанавливается RK> со стека.

Это очень обобщенное описание. По каким принципам производится назначение регистров? Например, надо в 80x86 сложить что-нибудь с AX. В какой регистр будем грузить второй операнд: BX, CX, DX? Далее по тексту может быть: загрузка из памяти (будет использован BX), инициализация цикла (счетчик в CX) или обращение в УВВ (адрес в DX). А может и ничего из перечисленного... Это пример несимметричного регистрового набора.

Sat Oct 04 2003 16:37, Roman Khvatov wrote to Artem Kamburov:

RK> Тогда поделись сокровенным знанием - какая архитектура оптимизированна RK> для стековой машины? (И желательно, что бы она была не менее RK> производительна, чем суперскаляр, иначе это неинтересно - горбатых RK> архитектур и так хватает :)

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

RK> Это всеобщее заблуждение - он сложнее RISC'а, той же производительности. RK> RISC выполняет элементарные операции над регистровым файлом, Форт RK> процессор - над стеком (точнее двумя стеками). То есть Форт процессору, RK> вдобавок к регистровому файлу (который у него будет занят под стек), RK> нужно еще 2 указателя стека, блоки для работы с ними, плюс модификация RK> всех операций с прямоадресуемых (в регистровый файл) на косвенно RK> адресуемые (через указатели стеков). То есть вместо того, что бы прочесть RK> 2 регистра, выполнить операцию и записать результат в 3й регистр, Форт RK> процессор будет вынужден выполнить чтение указателя стека, чтение RK> регистрового файла по полученному адресу, инкремент адреса, чтение 2го RK> операнда по полученному адресу, собственно операцию, запись по косвенному RK> адресу и декремент указателя стека. Так что, по сравнению с RISC RK> процессором, Форт процессор делает много лишнего, а RISC процессор не RK> делает ничего, чего бы не делал Форт процессор. Плюс ко всему этому Форт RK> процессору понадобится поддержка со стороны ОС, для откачки его стеков в RK> память.

formatting link
Там описание стекового процессора в ПЛИС. Форт-процессора, если угодно. Что интересно, все операции, которые ты перечислил, почему-то делаются за 1 такт... :)

RK> Оговорюсь, что тут сравниваются обычный RISC (не супер скаляр) и обычный RK> Форт (за бессмысленностью супер скалярного Форт процессора)

Да, такая навороченная архитектура для стековой машины действительно бессмысленна. Это для набора регистров надо конвейеризовать, переупорядочивать и следить за зависимостями. Для стека все сводится к последовательному выполнению элементарных операций, вплоть до 1 операции за такт (и обращаю внимание, что больше нельзя в принципе; а если будет разговор про одновременную пересылку в 2 регистра, то давайте тогда уж поставим и 2 стека?)

AK>> засуньте в ресурсы этого "обычного" RISC SuperScalar AK>> несколько маленьких форт-процессоров (возможно частичное перекрытие AK>> ресурсов) - каждый с собственным потоком команд. Получите реальную AK>> многозадачность и реальное быстродействие :).

RK> Hи того ни другого не получите :(

Два процессора на той же площади кристалла - это не две задачи?

RK> В реальной системе обычно одновременно исполняется одно приложение, RK> остальные ждут какого либо ввода/вывода. Имеет смысл ориентироваться RK> только на multithreaded приложения - они реально могут использовать RK> несколько процессоров одновременно. Hо для этого приложение должно быть RK> так написано, компиляторы делать из обычных программ multithreaded не RK> умеют (за редким исключением, Форт к таковым не относится :) Кроме того, RK> вместо "обычного" RISC SuperScalar уже засовывают много маленьких RISC RK> процессоров - VLIW называется, что гораздо эффективнее 'многих маленьких RK> Форт процессоров'

А еще есть TTA (H.Corporaal серию работ написал), которая представляет собой дальнейшее развитие VLIW в сторону контроля над микрокодом (фактически, в TTA микрокода уже просто нет). А про стековую разновидность TTA можно почитать у меня на страничке... :)

[Answering from] [FOR.SYSOP]

What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Lev Serebryakov at [04 Oct 03 13:54]]:

LS>> EServ, ÏÄÉÎ ÉÚ ÍÏÝÎÅÊÛÉÈ ÓÅÒ×ÅÒÏ× ÐÏÞÔÙ/ÎØÀÓÏ×/ÓÐÉÓËÏ× LS>> ÒÁÓÓÙÌËÉ/WWW É FTP ÐÒÏËÓÉ ÐÏÄ Win32 ÄÌÑ ÓÅÔÅÊ ÏÔ ÄÏÍÁÛÎÅÇÏ ÄÏ big LS>> workgroup ÒÁÚÍÅÒÏ×. äÅÊÓÔ×ÉÔÅÌØÎÏ ÏÞÅÎØ ÍÏÝÎÙÊ, ÕÄÏÂÎÙÊ É LS>> ÎÁÄÅÖÎÙÊ ÐÒÏÄÕËÔ Ó ÍÁÌÅÎØËÉÍ ÐÏÔÒÅÂÌÅÎÉÅÍ ÒÅÓÕÒÓÏ×. YK> äÌÑ ÐÒÏÔÏËÏÌÁ - ÍÏÖÎÏ ÕÚÎÁÔØ ÏÐÒÅÄÅÌÅÎÉÅ "ÏÞÅÎØ ÍÏÝÎÙÊ"? íÏÖÎÏ. HÅÓËÏÌØËÏ ÌÅÔ ÎÁÚÁÄ, ËÏÇÄÁ Ñ ÎÁ ÎÅÇÏ ÓÍÏÔÒÅÌ, ÏÎ ÖÒÁÌ ÒÅÓÕÒÓÏ× ÐÒÉÍÅÒÎÏ × 5 ÒÁÚ ÍÅÎØÛÅ ÞÅÍ WinGate É WinRoute ÎÁ ÔÅÈ ÖÅ ÏÂßÅÍÁÈ ÏÂÒÁÂÁÔÙ×ÁÅÍÏÊ ÉÎÆÏÒÍÁÃÉÉ. ðÁÍÑÔÉ É ÐÒÏÃÅÓÓÏÒÁ ÐÏ Task Manager'Õ WinNT4.0 WS.

LS>> ëÏÍÍÅÒÞÅÓËÉÊ. õÓÐÅÛÎÏ ÐÒÏÄÁÅÔÓÑ. YK> óËÏÌØËÏ ÛÔÕË ÐÒÏÄÁÎÏ? HÅ ÕÏ ÍÎÅ ×ÏÐÒÏÓ. Ñ ÚÎÁÀ, ÞÔÏ Á×ÔÏÒ E-Serv'Á É ÆÏÒÔÁ ÎÁ ËÏÔÏÒÏÍ ÏÎ ÎÁÐÉÓÁÎ (ÆÏÒÔ -- ÂÅÓÐÌÁÔÅÎ) ÎÅÓËÏÌØËÏ ÌÅÔ ÎÁÚÁÄ (2-3) ÕÔ×ÅÒÖÄÁÌ, ÞÔÏ ÖÉ×ÅÔ ÚÁ ÝÅÔ ÎÅÇÏ É ×Ï×ÓÅ ÎÅ ÎÁ ÈÌÅÂÅ É ×ÏÄÅ. IMHO, ÜÔÏ ×ÐÏÌÎÅ ÐÏËÁÚÁÔÅÌØ ÕÓÐÅÛÎÏÓÔÉ.

÷ÐÒÏÞÅÍ, ÜÔÏ ×ÓÅ ÖÕÔËÉÊ ÏÆÆÔÏÐÉË.

Remember, pain is part of pleasure, Yuriy. ... ëÒÁÑ ÐÅÒÇÁÍÅÎÔÎÏÊ ïÊËÕÍÅÎÙ Ó×ÅÒÎÕÌÉÓØ × ÔÒÕÂÏÞËÕ ÎÁ ÏÇÎÅ...

What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Lev Serebryakov at [04 Oct 03 14:04]]:

LS>> EServ, ÏÄÉÎ ÉÚ ÍÏÝÎÅÊÛÉÈ ÓÅÒ×ÅÒÏ× ÐÏÞÔÙ/ÎØÀÓÏ×/ÓÐÉÓËÏ× LS>> ÒÁÓÓÙÌËÉ/WWW É FTP ÐÒÏËÓÉ ÐÏÄ Win32 ÄÌÑ ÓÅÔÅÊ ÏÔ ÄÏÍÁÛÎÅÇÏ ÄÏ big LS>> workgroup ÒÁÚÍÅÒÏ×. äÅÊÓÔ×ÉÔÅÌØÎÏ ÏÞÅÎØ ÍÏÝÎÙÊ, ÕÄÏÂÎÙÊ É LS>> ÎÁÄÅÖÎÙÊ ÐÒÏÄÕËÔ Ó ÍÁÌÅÎØËÉÍ ÐÏÔÒÅÂÌÅÎÉÅÍ ÒÅÓÕÒÓÏ×. LS>> ëÏÍÍÅÒÞÅÓËÉÊ. õÓÐÅÛÎÏ ÐÒÏÄÁÅÔÓÑ. YK>

formatting link
- "ÐÒÅÄÐÒÉÎÉÍÁÔÅÌØ ÂÅÚ ÏÂÒÁÚÏ×ÁÎÉÑ YK> ÀÒÉÄÉÞÅÓËÏÇÏ ÌÉÃÁ" - ÜÔÏ ÏÎÏ? óÅÒ×ÅÒ -- ÄÁ, ÓÔÒÁÎÉÃÁ, ÐÏÈÏÖÅ -- ÎÅÔ. ñ ×ÏÏÂÝÅ-ÔÏ, ÇÏÏ×ÒÉÌ ÐÒÏ áÎÄÒÅÑ þÅÒÅÚÏ×Á, Á ÎÅ ËÁËÏÇÏ-ÔÏ á×ÅÒÉÎÁ.

Remember, pain is part of pleasure, Yuriy. ... ÷Ï ×ÓÅÈ ËÒÁÑÈ - ÄÏÖÄØ, ×ÓÔÒÅÞÎÙÍ ÐÏÓÉÇÎÁÌØÔÅ,/õËÁÖÉÔÅ ÉÍ ÄÏÒÏÇÕ × ÎÉËÕÄÁ.

What do you think about sharp blades, Dima?

[Answer on] [Dima Orlov wrote to Alex Kouznetsov at [04 Oct 03 09:48]]:

Remember, pain is part of pleasure, Dima. ... HÏÒÍÁÌØÎÏÅ ÓÏÓÔÏÑÎÉÅ - ÓËÒÉÐ ÚÕÂÏ× ÚÁ ÓÔÅÎÏÊ...

What do you think about sharp blades, Yuriy?

[Answer on] [Yuriy K wrote to Alex Kouznetsov at [04 Oct 03 18:38]]:

AK>> óÐÒÏÓÉ Õ ÓÁÍÏÊ ÆÉÒÍÙ,

formatting link
YK> ôÁË ÎÅÔ ÆÉÒÍÙ-ÔÏ. ôÏÌØËÏ ðâïàì... á ËÁËÁÑ ÒÁÚÎÉÃÁ? õ ÎÁÓ ×ÏÔ × ðÉÔÅÒÅ ÅÓÔØ ÓÅÔØ ÍÁÇÁÚÉÎÏ× "óÅÍØ èÏÌÍÏ×", ÂÙÔÏ×ÏÊ ÔÅÈÎÉËÏÊ ÔÏÒÇÕÀÔ, ËÒÕÐÎÙÅ, ÕÓÐÅÛÎÙÅ. á ÂÒÉÄÉÞÅÓËÉ -- ðâïàì. é ËÏÇÏ ÜÔÏ ×ÏÌÎÕÅÔ ËÒÏÍÅ ÎÁÌÏÇÏ×ÏÊ?

Remember, pain is part of pleasure, Yuriy. ... HÅ ÓÐÁÓ ËÁÒÁÎÔÉÎ, ÂÁÃÉÌÌÙ × ËÒÏ×É, ÄÉÁÇÎÏÚ - ×ÅÓÎÁ!

[Answering from] [FOR.SYSOP]

What do you think about sharp blades, Dima?

[Answer on] [Dima Orlov wrote to Lev Serebryakov at [04 Oct 03 13:30]]:

C -- ÐÏÇÁÎÙÊ ÑÚÙË, É ÐÏÐÕÌÑÒÅÎ ÏÎ ÎÅ ÐÏÔÏÍÕ ÞÔÏ ÈÏÒÏÛ, Á ÐÏÔÏÍÕ ÞÔÏ ÒÙÎÏË ×ÓÅÇÄÁ ×ÙÂÉÒÁÅÔ ÕÓÒÅÄÎÅÎÎÏÅ ÄÅÒØÍÏ, Á ×Ï×ÓÅ ÎÅ ÌÕÞÛÅÅ ÒÅÛÅÎÉÅ. äÁ, Ñ _ÌÀÂÌÀ_ C, Ñ ÐÉÛÕ ÎÁ ÎÅÍ, etc. HÏ Ñ ÏÔÄÁÀ ÓÅÂÅ ÏÔÞÅÔ, ÞÔÏ ÄÅÒØÍÏ ÏÎ ÉÚÒÑÄÎÏÅ, É ÞÔÏ ÅÓÔØ ËÕÞÁ ÑÚÙËÏ× ÌÕÞÛÅ ÎÅÇÏ. äÒÕÇÏÅ ÄÅÌÏ, ÞÔÏ ÜÔÉ ÑÚÙËÉ (a) ÎÅ ÔÁË ÕÎÉ×ÅÒÓÁÌØÎÙ (Á ÜÔÏ -- ÐÌÀÓ, Á ÎÅ ÍÉÎÕÓ, ÎÁ ÓÁÍÏÍ ÄÅÌÅ, ÔÁË ËÁË ÕÎÉ×ÅÒÓÁÌØÎÙÊ ÉÎÓÔÒÕÍÅÎÔ ×ÓÅÇÄÁ ÈÕÖÅ ÓÐÅÃÉÁÌÉÚÉÒÏ×ÁÎÎÏÇÏ) É (b) ÔÒÅÂÕÀÔ ÂÏÌØÛÉÈ ÕÓÉÌÉÊ ÎÁ Ó×ÏÅ ÏÓÍÙÓÌÅÎÉÅ, ÞÔÏ, × ÍÁÓÓÅ ÒÙÎËÁ, ÎÁÆÉË ÎÅ ÓÄÁÌÏÓØ...

HÏ ÇÒÁÍÏÔÎÙÊ _ÐÒÏÇÒÁÍÍÉÓÔ_ ÄÏÌÖÅÎ ÏÂÌÁÄÁÔØ ËÒÕÇÏÚÏÒÏÍ É ÐÏÓÔÏÑÎÎÏ ÅÇÏ ÐÏÄÄÅÒÖÉ×ÁÔØ, Á ÌÕÞÛÅ ÒÁÓÛÉÒÑÔØ. éÎÁÞÅ ÜÔÏ ÒÅÍÅÓÌÅÎÎÉË. ðÏÞÅÍÕ-ÔÏ ÎÉËÏÇÏ ÎÅ ÕÄÉ×ÌÑÅÔ, ÞÔÏ ÎÁÄÏ ÞÉÔÁÔØ ËÎÕÔÁ É äÉÊËÓÔÒÕ, ÄÌÑ ÔÕÔÏÛÎÉÈ ÔÅÍ -- èÏÒ×ÉÃÁ É èÉÌÌÁ, ÎÏ ÍÁÌÏ ËÔÏ ÚÁÄÕÍÙ×ÁÅÔÓÑ, ÞÔÏ ÎÁÄÏ ÕÍÅÔØ É ÐÉÓÁÔØ ÎÁ ìÉÓÐÅ, æÏÒÔÅ, ÐÏÎÉÍÁÔØ ÐÒÏ ÌÑÍÂÄÁ=-ÉÓÞÉÓÌÅÎÉÅ É ÇÒÁÍÍÁÔÉËÉ, ÐÕÓÔØ É ÎÅ ÐÏÌØÚÏ×ÁÔÓÑ ÜÔÉÍ ÐÏÓÔÏÑÎÎÏ.

÷ÐÒÏÞÅÍ, ÜÔÏ ×ÓÅ ÖÕÔËÉÊ ÏÆÆÔÏÐÉË.

Remember, pain is part of pleasure, Dima. ... ðÌÏÍÂÉÒÏ×ÁÎÎÙÅ ÑÝÉÞËÉ ÄÌÑ ÎÁÄÅÖÄ...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required