Fynjisx 0 Posted July 13, 2019 · Report post Привет Всем! Задаю вопрос в здешней ветке т.к не знаю где лучше написать. Перевожу документацию на RISCV архитектуру. И возник вопрос что такое ABI application binary interface. как его следует понимать? Quote Ответить с цитированием Share this post Link to post Share on other sites
AHTOXA 0 Posted July 13, 2019 · Report post https://ru.wikipedia.org/wiki/Двоичный_интерфейс_приложений Добавлю, что, на мой взгляд, можно этот термин не переводить, потому что ABI - вполне сложившийся термин, такой же как GUI, API. Quote Ответить с цитированием Share this post Link to post Share on other sites
Fynjisx 0 Posted July 14, 2019 · Report post А как понимать HART - Hardware thread используется при описании конвейера проца? Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 15, 2019 · Report post это, по-моему, нужно развернуто пояснять знаю, что подобная хрень применялась (впервые?) в UltraSPARC-ах - то есть вычисления параллелятся, то есть компилятор может пометить какие-то операции как независимые. а потом они выполняются последовательно - то есть вычислитель один и вот он считает, считает, а потом бац - обращение к памяти и остановка конвеера. а хитрая идея в том, чтобы в этот момент переключить регистры на другой поток и считать его... ну и так далее. при учете того, что из памяти выгодно вычитывать строку кэша и это занимает сотни тактов процессора, то на этом казалось бы, можно сильно поднять производительность... но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище Quote Ответить с цитированием Share this post Link to post Share on other sites
jcxz 0 Posted July 15, 2019 · Report post 54 минуты назад, yes сказал: а хитрая идея в том, чтобы в этот момент переключить регистры на другой поток и считать его... ну и так далее. при учете того, что из памяти выгодно вычитывать строку кэша и это занимает сотни тактов процессора, то на этом казалось бы, можно сильно поднять производительность... но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом. Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 15, 2019 · Report post 4 hours ago, jcxz said: У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом. мне казалось, что у интела это разделено на уровне приложений / ОС. то есть как-бы "виртуальный процессор". в солярисе такого не видел - там внутри приложения, ну и там не удвоение, а увосьмирение, по-моему. но спорить не буду, с таким софтом мало знаком. а привязано ли это к железу и почему интел ограничился только двумя "тредами" - самому интересно Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 15, 2019 · Report post https://en.wikipedia.org/wiki/UltraSPARC_T1 он же OpenSPARC - то есть можно поковырять внутренности, но мне показался тяжелым Verilog, то есть либо писали "кодеры-макаки" под руководством архитекторов (а архитектурного описания в открытом коде не было), то ли вообще каким-то автоматическим тулом сгенерен, из более высокоуровневого вот кстати статью нашел - то как в спарке и еще раньше было https://en.wikipedia.org/wiki/Barrel_processor то как в интеле https://en.wikipedia.org/wiki/Simultaneous_multithreading Quote Ответить с цитированием Share this post Link to post Share on other sites
Pavia 0 Posted July 17, 2019 · Report post On 7/15/2019 at 8:43 PM, yes said: вот кстати статью нашел - то как в спарке и еще раньше было https://en.wikipedia.org/wiki/Barrel_processor то как в интеле https://en.wikipedia.org/wiki/Simultaneous_multithreading И какое это отношение имеет к HART ? HART - это чисто аппаратная поддержка потоков ни более и ни менее. А так как RISC это разработка студиозусов, то у них вся поддержка сведена к командам синхронизации. Даже однотактное переключение потоков не реализовано. Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 17, 2019 · Report post 22 minutes ago, Pavia said: И какое это отношение имеет к HART ? это два вариантк аппаратной поддержки потоков, которые используются в популярных архитектурах. хотелось бы узнать, как это сделано в Risc-V. и если автор темы работает над переводом доки, то как он это объяснит там Quote Ответить с цитированием Share this post Link to post Share on other sites
Pavia 0 Posted July 17, 2019 · Report post 18 minutes ago, yes said: хотелось бы узнать, как это сделано в Risc-V. Дык, вроде никак не сделано. Единственное, что там упомянуто передача потоков от процессора к процессору через общую память. Можно додумать, что от высоко производительного ядра к энергоэффективному. Соответственно с чего вы решили что под HART понимается ниже следующее? 2 minutes ago, yes said: это два вариантк аппаратной поддержки потоков То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ. А как по мне HART, т.е аппаратная поддержка потоков, это совсем другое. Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 17, 2019 · Report post так что это? если в двух словах возможно - объясните я не готов читать спецификацию RISC-V, а википедия говорит The privileged instruction set specification explicitly defines hardware threads, or harts. Multiple hardware threads are a common practice in more-capable computers. When one thread is stalled, waiting for memory, others can often proceed. Hardware threads can help make better use of the large number of registers and execution units in fast out-of-order CPUs. Finally, hardware threads can be a simple, powerful way to handle interrupts: No saving or restoring of registers is required, simply executing a different hardware thread. However, the only hardware thread required in a RISC-V computer is thread zero. по моему, это очень соответствует тому как сделано в SPARC-е и возможно, что и интеловское HT подходит под такое описание Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 17, 2019 · Report post 4 hours ago, Pavia said: То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ. если быть точным, то первый вариант (SPARC) как раз таки очередной, то есть in-order. и конвеер там один, в нем перемешаны инструкции из разных потоков. собственно эта была их "хитрая идея" и результат, как мне кажется, оказался не очень... в сопоставлении с труЪ оут-оф-ордер Quote Ответить с цитированием Share this post Link to post Share on other sites
yes 0 Posted July 17, 2019 · Report post если уж офтопить: то из эмбедерского железа с аппаратными потоками можно столкнуться в XMOS-овских процах https://www.xmos.com/products/general/silicon#xCORE-XS1 я пытался на такой некую замену ПЛИС сделать, но не получилось Quote Ответить с цитированием Share this post Link to post Share on other sites