return (a * b + c * d) / (a * c + b * d);
}
Так ли то, что подобный код на стековой машине считаться будет существенно медленнее чем на регистровой?
1) если берем просто регистровый процессор, то цена не так высока, иначе фортом 50 лет назад никто не пользовался бы. Если стековый процессор, то и цена, естественно, нулевая. 2) и да и нет. Стековой архитектуре уже много лет, не взлетает по многим причинам. Я бы ставил на то, что основная проблема в том, что средний потребитель не знает разницы между арм и х86, про более экзотические архитектуры он вообще не слышал
Если регистров достаточно (т.е. память или стек для вычисления не нужны), и ABI таков что входные параметры уже лежат в регистрах, и выходное значение сохраняется в другой регистр, то, при условно равных прочих условиях (скажем, равном потреблении энергии), да — этот код будет (наверное) быстрей вычисляться на регистровой машине. Но, наверняка найдется другой код, который будет быстрей вычисляться на стековой машине при тех же условиях.
1 понял, спасибо 2 что насчет спец железа где пользователь его не программирует? Всякие там девайсы которые сами работают. От ключей до умных колонок
Ну, да Но имеется ввиду когда данных существенно больше чем регистров. Я так понимаю это обычная ситуация. Регистровая машина оптимизирует движение данных чтобы пореже обновлять регистры. Стековая машина эмулируемая на стековом железе будет чаще попадать в ситуацию когда в регистрах нет нужного значения
Изучая исторические ЭВМ я заметил, что многие из древнейших были с минимально возможным набором комманд и числом регистров. И многие конечно были стековой архитектуры - для экономии. Но с приходом интеграции и миниатюризации пришлось в процессор поместить некоторое количество быстрых регистров так как память на микросхемах была очень дорогая. А те технологии не позволяли поместить в кристалл процессора большой кэш. Когда же это стало возможно, уже все привыкли к регистрам. Имхо переход к регистровым архитектурам вызван именно таким путем развития технологий и маркетингом. Просто в стековые процесссоры не выгодно инвестировать
Кажется, сложно теперь оценить перспективность стековых архитектур, когда в регистровые влито на миллиарды больше денег на изучение и оптимизацию
Не выгодно, потому что регистровые уже более развиты и разработчики привыкли. Переход на новую архитектуру - потеря кучи бабла, х86 потому на столько популярен, что тянет легаси с 80х(?) годов
скорее первые процессоры были гибридными регистрово стековыми. И стек это способ организации регистров. в х86 8 регистров и один стек? Если мы возьмем двухстековый процессор с глубиной стека в 16 регистров, то это уже в сумме 32 регистра, как в mips . На стековые процессоры легко было перейти, но проблема в том, что сами разработчики не готовили их как процессоры общего назначения. В большинство процессоров не встраивали mmu, и вообще они были процессорами общего назначения.
Я это и написал. И уже в этом чате многократно писали. Вложено слишком много денег, что бы поворачивать производство на другой путь 😢 По тому продолжаем теоретизировать. "Есть ли жизнь на стековых процессорах!?" 😂
я бы не сказал, что вложено слишком много денег. деньги которые уже вложены и отбились, уже не должны считаться. И в те времена были новички. Зачем теоретизировать? На тех что у же есть, жизни нет. На тех которые можно построить жизнь может быть. Но здесь ни у кого нет такой квалификации что бы построить современный стековый процессор используя современные схемотехнические решения.
а стековые транспьютеры кто-то пытался делать? какой-нибудь Burrought B5700 а то кто-то вещал что стековые машины схемотехнически проще, соответственно можно больше ядер на кристалл нафигачить
B5000 ! Описание на википедии скудное
http://bitsavers.org/pdf/burroughs/B5000_5500_5700/
Там пишут, что для B5000, B5500, B5700 одна и та же система команд.
И до кучи, разработка стекового суперскалярного процессора (от того же автора zzeng): https://habr.com/ru/post/278575/ (2016)
Очень познавательные статьи
Обсуждают сегодня