yacc: Все сообщения за 5 Января 2024 года

 
ПнВтСрЧтПтСбВс
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31

yacc

старожил
★★★
П.З.> Вот пусть эти "одну-две лишние операции" процессор и делает.
П.З.> И мне пофик как.
Он и будет их делать если написать на Паскале
например ввести
var myArray array [1..100] of char
и потом по индексу ходить, а код будет всякие битовые маски делать, ну потому что по-другому никак.

П.З.> У меня в "системе команд" должны быть инструкции с байтовой адресацией.
Если на Паскале писать в общем не так чтобы нужно

но вот про всякие С типа
char* p;
p++;
можно забыть. А вместе с ними про всякие awk, sed и прочие Perl, которые как раз и возникли от легкости работы с байтовыми указателями.
 109.0.0.0109.0.0.0

yacc

старожил
★★★
Татарин> Про char* p - конечно. А вот нативный тип наподобие alfa напрашивается, и инструментарий для работы с ним тоже. Появился же в С инструментарий работы с произвольными битовыми полями в составе union? Ну и для нативного типа alfa был бы инструментарий обращения к конкретному байту.
Татарин> Тем более, как уже не раз сказано, для аппаратной поддержки подобного не нужно ничего кроме пары инструкций чтения/сохранения.

Вообще-то на Паскале есть record который допускает работу с аналогом union, но у тебя варианта ровно два:
- либо ты по-простому индексируешь массив char и производишь операции по нему, т.е. простой код
- либо ты используешь трюки с alfa что как бы быстрее но код гораздо сложнее
Внимание, это в прикладной программе! Я про код на Паскале.

И в первом случае на БЭСМ ты имеешь что-то типа такого когда Паскаль это превратит в машкод
 section .bitMask mask word 0000000 0000000 0000000 0000000 0000000 1111111 000000 word 0000000 0000000 0000000 0000000 1111111 0000000 000000 word 0000000 0000000 0000000 1111111 0000000 0000000 000000 section .shifts shft word 0x000000000000 ; сдвиг на 0 позиций word 0x000000000007 ; сдвиг на 7 позиций word 0x00000000000e ; сдвиг на 7+7=14 позиций section .data val word 0000111 0000110 0000101 0000011 0000010 0000001 000000 ; слово 'аbcdef' bas word 0000000 0000000 0000000 0000000 0000000 0000001 000000 ; буква 'а' section .var idx word 0x000000000002 ; индекс 2 ( третья буква ) ; нам надо проверить что третья буква в слове val такая же как в bas set idx1, mask ; заносим в первый индекс регистр адрес маски ; команда УИ БЭСМ ( адрес прямо в команде, нет обращения к ОЗУ ) set idx2, shft ; заносим во второй индекс регистр адрес сдвигов ; команда УИ БЭСМ ( адрес прямо в команде, нет обращения к ОЗУ ) add idx1, @idx ; увеличиваем первый индекс на смещение с величиной по адресу ; команда СИ БЭСМ - РАБОТА С ОЗУ! add idx2, @idx ; увеличиваем второй индекс на смещение с величиной по адресу ; команда СИ БЭСМ - РАБОТА С ОЗУ! ld @val ; заносим в сумматор ( аккумулятор ) величину строки ; команда СЧ БЭСМ - РАБОТА С ОЗУ! and idx1 ; логическое AND сумматора с величиной по адресу в индексном регистре 1 ; это мы выделяем третий символ ; команда ЛУ БЭСМ - РАБОТА С ОЗУ! shr idx2 ; сдвиг сумматора на величину по адресу в индексном регистре 2 ; символ сдвинут, его надо привести к сравнимому виду ; команда СД БЭСМ - РАБОТА С ОЗУ! jcmp bas [адрес куда надо] ; сравнение сумматора с символом и переход ; команда УО БЭСМ - РАБОТА С ОЗУ! 


Это примерный аналог того, что будет если идти тупо по индексу. Я упростил и не взял вычисление поиска нужной alfa, т.е. адреса начала слова с символами, по idx.
Но даже тут все понятно:
у БЭСМ нет регистров как в 360 или в PDP-11 или в х86. Там есть только аккумулятор, операции с которым, типа сложения, выполняются указывая второй адрес в ОЗУ, либо напрямую либо через индексные регистры.
Обращение к памяти сразу съедает у тебя скорость.

В случае адресации байтов, достаточно взять адрес строки, сделать смещение в РОН на индекс и далее взять в другой РОН байт по одному адресу ( обращение к ОЗУ ), во второй взять байт по адресу базы ( обращение к ОЗУ ) и сравнить два РОН.
Два обращения к ОЗУ и никаких битовых масок!

А во-втором случае с хитрыми трюками с alfa это неподъемно для средней тетки-бухгалтера-программиста.

В итоге - выберут первый и машина будет работать... со скоростью Минск-32.

Татарин> Твоя беда в том, что ты, рассуждая об альтернативе, парадоксально отрицаешь возможность альтернатив в принципе, и эта внутренняя логическая противоречивость - твоя отправная точка. :)
Я не против обоснованных альтернатив.
Но ты их не показываешь, а уперся в БЭСМ-6. Причем даже не посмотрел что там все вокруг аккумулятора и ОЗУ крутится.

Ну не прижились нигде машины с адресацией длинных слов!
Объективное это то, что удобно пользователям независимо от случаев - в СССР или в США.
Но ты не приводишь объективных доказательств! - только "заговор" ЦРУ в США для CDC или "заговор" СлаваКПСС в СССР.

Если человек ссылается на "заговоры" то это к фентези, а не к обоснованной альтернативе.
 109.0.0.0109.0.0.0
Это сообщение редактировалось 06.01.2024 в 01:18

yacc

старожил
★★★
yacc>> И читай эскизный проект БЭСМ-10 - нет там никаких байтов и байтовой адресации.
Татарин> А причём тут вообще БЭСМ-10?
Татарин> Мы же обсуждаем вариант, при котором в 1967-м архитектура и система команд БЭСМ-6 становится базовой для советской индустрии.
А потому что Лебедев, т.е. конструктор БЭСМ-6.
Причем реальный Лебедев.
Реальному Лебедеву были интересны высокопроизводительные вычисления, в том числе параллельные.

Это только тебе приходит в голову ввести фантастического Лебедева, который бы бросил все эти скорости и начал бы делать БЭСМ-6 для бухгалтеров. Я даже боюсь представить что надо с ним было сделать чтобы выбить из него тягу к скорости и заставить работать над "бытовухой".

ИМиВТ - это кузница скоростных машин. Типа фирмы Феррари.
И тут к нему приходят и говорят - а давай-ка Феррари ты забудешь что там условно Порше(СDC) работает сейчас над более скоростными болидами, уберешь нафиг свои стремления сделать свои болиды быстрее и сделаешь нам массовый Ситроен 2CV из своего болида(БЭСМ-6).

Такое фентези только тебе в голову пришло! :D

Татарин> Не пори чуши, а? До Экселя или хотя бы СуперКалька (именно вот с их отличительными особенностями, что и делает их Экселем и Суперкальком) - ещё лет 20 непрерывного интенсивного развития.
Только он делает ту же рутину что и табуляторы раньше, а потом Мински.

yacc>> Часть задач вообще табуляторы тогда делали.
Татарин> Именно так. И с этой задачей БЭСМ справляются отлично.
Ты Иву не услышал, хотя он прямым текстом все правильно сказал.

yacc>> Это у ТЕБЯ их нет - ты же это реализовывать не собираешься.
Татарин> :) Я ведь могу и реализовать. :) Не то, чтобы я гений цифровой схемотехники и великий знаток Верилога, но задача реально простая, доступная любителю.
Т.е. процессор БЭСМ-6 в 1967 году делали не профессионалы в электронике и схемотехнике, а любители ?
Вот это поворот! :lol2:

Татарин> Это у тебя "тяп-ляп". :) А при спокойной, надёжной работе на это уходят первые месяцы у пары человек.
Чего ???

Татарин> Ты взял очень милую привычку как-то забывать, что ты отстаиваешь альтернативу этой работе (на несколько человеко-месяцев) - а именно: многие тысячи (а скорее - десятки тысяч, судя по срокам из нашей реальности) человеко-лет на клонирование ИБМ/360. :D
Ты забываешь что разработка и доводка схемотехники ЭВМ в 60-е это сотни человеко-месяцев.
На простую байтовую адресацию.
Это ТЕБЕ легко в 21 веке, но переносить трудоемкость 21 века на 60-е года 20 века - это за гранью!!!

yacc>> Очевидно что Лебедев и Бурцев, в отличии от тебя, были реалистами.
Татарин> И были категорически против ЕС.
Как раз в качестве массовой они и не были против.

Татарин> А ЕС не выжил не смотря ни на что.
Так и мейнфреймы IBM стали нишевыми.
Просто у нас ЕС заменили на IBM где миграция и железо были критичны.

yacc>> И да - даже сейчас для бухгалтеров он избыточен.
Татарин> Он прекрасно работает у бухгалтеров без всякой избыточности.
Он у них НЕ работает.

Татарин> Если рассматривать то, что могло бы быть в СССР - см. разработки по тому РЕФАЛу или ранним работам по нейроморфным вычислениям в 70-х.
РЕФАЛ это для гиков.

Татарин> А ты защищаешь тупость.
Я не пытаюсь представить что все программисты могут быть сеньорами и олимпиадниками.
Я смотрю на вещи реально.
 109.0.0.0109.0.0.0

yacc

старожил
★★★
imaex> Именно аппаратный SCSI RAID Не помню, а просто SCSI вполне.
Просто SCSI это неинтересно.

imaex>Только скорее EISA, не помню уже за давностью лет - середина 90-х.
Ну т.е. порядка 10 лет после выхода 386
 109.0.0.0109.0.0.0

в начало страницы | новое
 
Поиск
Настройки
Твиттер сайта
Статистика
Рейтинг@Mail.ru