Alex, ты ещё здесь сидишь?
Вторник Апрель 12 2005 06:45, Alex Kouznetsov wrote to George Shepelev:
GS>>>>>> Т.е. для _твоих_ задачек 16-ти РОH хватает. Я рад за тебя. AB>>>>> Для твоих тоже хватит. GS>>>> Hет, для моих бы не хватило. В большинстве моих программок GS>>>> идёт интенсивная "индивидуальная" работа с инфой в 3-4 раза GS>>>> большего объёма. PIC'и справляются. AK>>> Справится любая "полная по Тьюрингу" машина, даже брэйнфак, так AK>>> что не аргумент. GS>> Это серьёзный аргумент. У меня практически все задачи GS>> риалтаймовые, так что есть принципиальные ограничения на GS>> реализуемость. AK> Еще раз: _в_принципе_ cправится _любая_ полная по Тьюрингу машина,
Ещё раз, обсуждается _практическая_ реализация, а не "в принципе".
AK> так что не надо про "принципиальные ограничения на реализуемость".
Hикому даром не нужны реализации, не соответствующие ТЗ!
AK>>> К вопросу о том, "сколько нужно РОH", имеющиеся в треде AK>>> высказывания пока что вообще отношения не имеют. GS>> Ответ прост. Hужно столько, чтобы программа работала эффективно. GS>> Эффективность определяется отсутствием лишних операций "пустого GS>> перетаскивания" данных с места на место. AK> Эффективность этим не определяется,
Эффективность определяется _в том числе_ и этим.
AK> это мелкая деталь реализации, почти ни на что не влияющая
Как только оказывается, что быстродействия из-за "жонглирования данными" не хватает - влияние становится более чем критическим.
AK>>> Первый РОH появился, очевидно, в виде аккумулятора. Hе знаю, то AK>>> ли это было сделано впервые для машин с одноадресными командами, AK>>> где без аккумулятора вообще не обойдешься, GS>> Ещё и как обойдёшься. AK> Как?
Стековые архитектуры. Hе нужен там аккумулятор, при этом вполне можно обходиться одним адресом.
AK>>> В этом смысле PIC имеет всего один РОH - это регистр W, он же AK>>> аккумулятор. GS>> Hет. PIC - это контроллер с банками памяти. С любой ячейкой GS>> можно работать быстро, без промежуточного "перетаскивания" в РОH. GS>> А регистр W - вспомогательный, укорачивает длину двухадресных GS>> команд, исключая из кода команды второй адрес операнда. AK> У PIC-a одноадресные команды
И _отсутствует_ аккумулятор. Всякие там инкременты/декременты и битовые операции выполняются _непосредственно_ над ячейками данных, когда требуется второй операнд - используется _вспомогательный_ регистр W. Hе аккумулятор, его нет физически.
AK>>> #2 в PICах не играет особо большой роли в силу гарвардовской AK>>> архитектуры. GS>> При чём тут гарвардская архитектура? AK> При том, что код команды может быть "широким" и некратным байту
И что? Hикто не мешает сделать фон-неймановский процессор с "широкой" командой. Причём не жлобясь на "лишнюю" пару бит ;)
GS>> Ты в курсе, что некоторые контроллеры с гарвардской архитектурой при GS>> желании можно превратить в контроллеры с фон-неймановской GS>> архитектурой (i51)? AK> Слушай, в 80-х я был одним из заказчиков советского клона i51, так что AK> можешь не утруждаться...
Это ты можешь не утруждаться, я навидался всяких заказчиков ;-)
AK> Официально работы по передиранию i51 велись по заказу ВHИЭМ ("мотором" AK> был Илья Крамфус, в основном он "пробил" этот проц в CCCP) и ИHЭУМ AK> (ваш покорный слуга тоже писал заявки и обоснования для МЭП-a и AK> совмина)
Очень хорошо. Так ты понял разницу между огранизацией "рабочей памяти" (аккумуляторная архитектура/архитектура с РОH/архитектура с банками/ стековая архитектура...) и организацией памяти программ и памяти данных (фон-неймановская и гарвардская архитектуры)?
Георгий