Перейти к содержанию
    

Вопрос по поводу перевода спецификации на RISC-V

Привет Всем! Задаю вопрос в здешней ветке т.к не знаю где лучше написать. Перевожу документацию на RISCV архитектуру. И возник вопрос что такое ABI application binary interface. как его следует понимать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://ru.wikipedia.org/wiki/Двоичный_интерфейс_приложений

 

Добавлю, что, на мой взгляд, можно этот термин не переводить, потому что ABI - вполне сложившийся термин, такой же как GUI, API.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как понимать HART - Hardware thread используется при описании конвейера проца?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

это, по-моему, нужно развернуто пояснять

знаю, что подобная хрень применялась (впервые?) в UltraSPARC-ах - то есть вычисления параллелятся, то есть компилятор может пометить какие-то операции как независимые. а потом они выполняются последовательно - то есть вычислитель один и вот он считает, считает, а потом бац - обращение к памяти и остановка конвеера. а хитрая идея в том, чтобы в этот момент переключить регистры на другой поток и считать его... ну и так далее. при учете того, что из памяти выгодно вычитывать строку кэша и это занимает сотни  тактов процессора, то на этом казалось бы, можно сильно поднять производительность...

 

но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

54 минуты назад, yes сказал:

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

но интел со своими большими кэшами и аут-оф-ордер экзекьюшином сильно ультраспарк уделал... была у меня когда-то станция на ультраспарке - жалкое зрелище

У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, jcxz said:

У интела есть аналогичная фишка: "Hyper-threading". Работает подобным же образом.

мне казалось, что у интела это разделено на уровне приложений / ОС. то есть как-бы "виртуальный процессор". в солярисе такого не видел - там внутри приложения, ну и там не удвоение, а увосьмирение, по-моему.

но спорить не буду, с таким софтом мало знаком. а привязано ли это к железу и почему интел ограничился только двумя "тредами" - самому интересно

 

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

https://en.wikipedia.org/wiki/UltraSPARC_T1

он же OpenSPARC - то есть можно поковырять внутренности, но мне показался тяжелым Verilog, то есть либо писали "кодеры-макаки" под руководством архитекторов (а архитектурного описания в открытом коде не было), то ли вообще каким-то автоматическим тулом сгенерен, из более высокоуровневого

вот кстати статью нашел - то как в спарке и еще раньше было

https://en.wikipedia.org/wiki/Barrel_processor

то как в интеле

https://en.wikipedia.org/wiki/Simultaneous_multithreading

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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 это разработка студиозусов, то у них вся поддержка сведена к командам синхронизации. Даже однотактное переключение потоков не реализовано.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

22 minutes ago, Pavia said:

И какое это отношение имеет к HART ?

это два вариантк аппаратной поддержки потоков, которые используются в популярных архитектурах. хотелось бы узнать, как это сделано в Risc-V.

и если автор темы работает над переводом доки, то как он это объяснит там

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

18 minutes ago, yes said:

хотелось бы узнать, как это сделано в Risc-V.

Дык, вроде никак не сделано. Единственное, что там упомянуто передача потоков от процессора к процессору через общую память.

Можно додумать, что от высоко производительного ядра к энергоэффективному.

Соответственно с чего вы решили что под HART понимается ниже следующее?

2 minutes ago, yes said:

это два вариантк аппаратной поддержки потоков

То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ.

А как по мне HART, т.е аппаратная поддержка потоков, это совсем другое.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

так что это? если в двух словах возможно - объясните

я не готов читать спецификацию 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 подходит под такое описание

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

4 hours ago, Pavia said:

То что вы описали это разновидность параллельного конвейра, на основе внеочередного использования блоков АЛУ.

если быть точным, то первый вариант (SPARC) как раз таки очередной, то есть in-order. и конвеер там один, в нем перемешаны инструкции из разных потоков. собственно эта была их "хитрая идея" и результат, как мне кажется, оказался не очень... в сопоставлении с труЪ оут-оф-ордер

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

если уж офтопить: то из эмбедерского железа с аппаратными потоками можно столкнуться в XMOS-овских процах

https://www.xmos.com/products/general/silicon#xCORE-XS1

я пытался на такой некую замену ПЛИС сделать, но не получилось

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...