Fynjisx 0 13 июля, 2019 Опубликовано 13 июля, 2019 · Жалоба Привет Всем! Задаю вопрос в здешней ветке т.к не знаю где лучше написать. Перевожу документацию на RISCV архитектуру. И возник вопрос что такое ABI application binary interface. как его следует понимать? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 14 13 июля, 2019 Опубликовано 13 июля, 2019 · Жалоба https://ru.wikipedia.org/wiki/Двоичный_интерфейс_приложений Добавлю, что, на мой взгляд, можно этот термин не переводить, потому что ABI - вполне сложившийся термин, такой же как GUI, API. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Fynjisx 0 14 июля, 2019 Опубликовано 14 июля, 2019 · Жалоба А как понимать HART - Hardware thread используется при описании конвейера проца? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба это, по-моему, нужно развернуто пояснять знаю, что подобная хрень применялась (впервые?) в UltraSPARC-ах - то есть вычисления параллелятся, то есть компилятор может пометить какие-то операции как независимые. а потом они выполняются последовательно - то есть вычислитель один и вот он считает, считает, а потом бац - обращение к памяти и остановка конвеера. а хитрая идея в том, чтобы в этот момент переключить регистры на другой поток и считать его... ну и так далее. при учете того, что из памяти выгодно вычитывать строку кэша и это занимает сотни тактов процессора, то на этом казалось бы, можно сильно поднять производительность... но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
jcxz 184 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба 54 минуты назад, yes сказал: а хитрая идея в том, чтобы в этот момент переключить регистры на другой поток и считать его... ну и так далее. при учете того, что из памяти выгодно вычитывать строку кэша и это занимает сотни тактов процессора, то на этом казалось бы, можно сильно поднять производительность... но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба 4 hours ago, jcxz said: У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом. мне казалось, что у интела это разделено на уровне приложений / ОС. то есть как-бы "виртуальный процессор". в солярисе такого не видел - там внутри приложения, ну и там не удвоение, а увосьмирение, по-моему. но спорить не буду, с таким софтом мало знаком. а привязано ли это к железу и почему интел ограничился только двумя "тредами" - самому интересно Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 15 июля, 2019 Опубликовано 15 июля, 2019 · Жалоба https://en.wikipedia.org/wiki/UltraSPARC_T1 он же OpenSPARC - то есть можно поковырять внутренности, но мне показался тяжелым Verilog, то есть либо писали "кодеры-макаки" под руководством архитекторов (а архитектурного описания в открытом коде не было), то ли вообще каким-то автоматическим тулом сгенерен, из более высокоуровневого вот кстати статью нашел - то как в спарке и еще раньше было https://en.wikipedia.org/wiki/Barrel_processor то как в интеле https://en.wikipedia.org/wiki/Simultaneous_multithreading Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavia 0 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба 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 это разработка студиозусов, то у них вся поддержка сведена к командам синхронизации. Даже однотактное переключение потоков не реализовано. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба 22 minutes ago, Pavia said: И какое это отношение имеет к HART ? это два вариантк аппаратной поддержки потоков, которые используются в популярных архитектурах. хотелось бы узнать, как это сделано в Risc-V. и если автор темы работает над переводом доки, то как он это объяснит там Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Pavia 0 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба 18 minutes ago, yes said: хотелось бы узнать, как это сделано в Risc-V. Дык, вроде никак не сделано. Единственное, что там упомянуто передача потоков от процессора к процессору через общую память. Можно додумать, что от высоко производительного ядра к энергоэффективному. Соответственно с чего вы решили что под HART понимается ниже следующее? 2 minutes ago, yes said: это два вариантк аппаратной поддержки потоков То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ. А как по мне HART, т.е аппаратная поддержка потоков, это совсем другое. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба так что это? если в двух словах возможно - объясните я не готов читать спецификацию 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 подходит под такое описание Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба 4 hours ago, Pavia said: То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ. если быть точным, то первый вариант (SPARC) как раз таки очередной, то есть in-order. и конвеер там один, в нем перемешаны инструкции из разных потоков. собственно эта была их "хитрая идея" и результат, как мне кажется, оказался не очень... в сопоставлении с труЪ оут-оф-ордер Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
yes 5 17 июля, 2019 Опубликовано 17 июля, 2019 · Жалоба если уж офтопить: то из эмбедерского железа с аппаратными потоками можно столкнуться в XMOS-овских процах https://www.xmos.com/products/general/silicon#xCORE-XS1 я пытался на такой некую замену ПЛИС сделать, но не получилось Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться