169 похожих чатов

Float foo(float a, float b, float c, float d) {

return (a * b + c * d) / (a * c + b * d);
}

Так ли то, что подобный код на стековой машине считаться будет существенно медленнее чем на регистровой?

17 ответов

22 просмотра

1) если берем просто регистровый процессор, то цена не так высока, иначе фортом 50 лет назад никто не пользовался бы. Если стековый процессор, то и цена, естественно, нулевая. 2) и да и нет. Стековой архитектуре уже много лет, не взлетает по многим причинам. Я бы ставил на то, что основная проблема в том, что средний потребитель не знает разницы между арм и х86, про более экзотические архитектуры он вообще не слышал

Если регистров достаточно (т.е. память или стек для вычисления не нужны), и ABI таков что входные параметры уже лежат в регистрах, и выходное значение сохраняется в другой регистр, то, при условно равных прочих условиях (скажем, равном потреблении энергии), да — этот код будет (наверное) быстрей вычисляться на регистровой машине. Но, наверняка найдется другой код, который будет быстрей вычисляться на стековой машине при тех же условиях.

Defragmented-Panda Автор вопроса
Nauz Rem
1) если берем просто регистровый процессор, то цен...

1 понял, спасибо 2 что насчет спец железа где пользователь его не программирует? Всякие там девайсы которые сами работают. От ключей до умных колонок

Defragmented-Panda Автор вопроса
ruv
Если регистров достаточно (т.е. память или стек дл...

Ну, да Но имеется ввиду когда данных существенно больше чем регистров. Я так понимаю это обычная ситуация. Регистровая машина оптимизирует движение данных чтобы пореже обновлять регистры. Стековая машина эмулируемая на стековом железе будет чаще попадать в ситуацию когда в регистрах нет нужного значения

Nauz Rem
1) если берем просто регистровый процессор, то цен...

Изучая исторические ЭВМ я заметил, что многие из древнейших были с минимально возможным набором комманд и числом регистров. И многие конечно были стековой архитектуры - для экономии. Но с приходом интеграции и миниатюризации пришлось в процессор поместить некоторое количество быстрых регистров так как память на микросхемах была очень дорогая. А те технологии не позволяли поместить в кристалл процессора большой кэш. Когда же это стало возможно, уже все привыкли к регистрам. Имхо переход к регистровым архитектурам вызван именно таким путем развития технологий и маркетингом. Просто в стековые процесссоры не выгодно инвестировать

Andrey Smirnov
Изучая исторические ЭВМ я заметил, что многие из д...

Кажется, сложно теперь оценить перспективность стековых архитектур, когда в регистровые влито на миллиарды больше денег на изучение и оптимизацию

Andrey Smirnov
Изучая исторические ЭВМ я заметил, что многие из д...

Не выгодно, потому что регистровые уже более развиты и разработчики привыкли. Переход на новую архитектуру - потеря кучи бабла, х86 потому на столько популярен, что тянет легаси с 80х(?) годов

Andrey Smirnov
Изучая исторические ЭВМ я заметил, что многие из д...

скорее первые процессоры были гибридными регистрово стековыми. И стек это способ организации регистров. в х86 8 регистров и один стек? Если мы возьмем двухстековый процессор с глубиной стека в 16 регистров, то это уже в сумме 32 регистра, как в mips . На стековые процессоры легко было перейти, но проблема в том, что сами разработчики не готовили их как процессоры общего назначения. В большинство процессоров не встраивали mmu, и вообще они были процессорами общего назначения.

Igor 🐱 Jirkov
Кажется, сложно теперь оценить перспективность сте...

Я это и написал. И уже в этом чате многократно писали. Вложено слишком много денег, что бы поворачивать производство на другой путь 😢 По тому продолжаем теоретизировать. "Есть ли жизнь на стековых процессорах!?" 😂

Andrey Smirnov
Я это и написал. И уже в этом чате многократно пис...

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

Andrey Smirnov
Изучая исторические ЭВМ я заметил, что многие из д...

а стековые транспьютеры кто-то пытался делать? какой-нибудь Burrought B5700 а то кто-то вещал что стековые машины схемотехнически проще, соответственно можно больше ядер на кристалл нафигачить

B5000 ! Описание на википедии скудное

http://bitsavers.org/pdf/burroughs/B5000_5500_5700/

Andrey Smirnov
B5000 ! Описание на википедии скудное

Там пишут, что для B5000, B5500, B5700 одна и та же система команд.

И до кучи, разработка стекового суперскалярного процессора (от того же автора zzeng): https://habr.com/ru/post/278575/ (2016)

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Заметил в ghci 9.4.8: > :t (<*>) @((->)_) (<*>) @((->)_) :: (w -> (a -> b)) -> (w -> a) -> w -> b Разве не должно (w -> (a -> b)) быть записано как (w -> a -> b)? Это баг, ил...
Михаил
13
Any electron dev here?
Sayanth Tezro
12
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
так это может кто что знает или использует что-то как макбук только не макбук? на 13…14 дюймов
Michael
9
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
Кто-нибудь знает почему SPM клонирует репо целиком? Некоторые репы просто огромные, как та же swift-syntax которая нужна для использования макросов. Сначала подумал, что это...
iMike
6
Карта сайта