Спецификация RISC-V ссылается на слово «харт» - что означает «харт»?

Я нашел ссылки на hart на странице 35 документа спецификация RISC-V 2.1. Однако мне не удалось найти определение для hart в этом документе. Харт имеет в виду аппаратную нить или что-то более зловещее?


person daveW    schedule 08.03.2017    source источник
comment
Да, это аппаратный поток - см. en.wikipedia.org/wiki/RISC-V , Например.   -  person jasonharper    schedule 09.03.2017
comment
Ах, да ... 'hart' подробно описан в другой спецификации RiscV (riscv-privileged -v1.9.1). Спецификация пользовательского уровня (том 1) может использовать отнесение к привилегированной спецификации (том II), когда дело доходит до «харта». Может, лучше прочитать эти спецификации вне очереди - начиная с тома II? Спасибо.   -  person daveW    schedule 10.03.2017


Ответы (3)


Да, hart - это аппаратный поток.

person Chris    schedule 09.03.2017
comment
Спасибо большое, найти ТРУДНО. - person Marc43; 01.04.2020
comment
@ Marc43 Ужасный каламбур, проголосуй за ... - person kralyk; 31.12.2020

Ядро, совместимое с RISC-V, может поддерживать несколько аппаратных потоков, совместимых с RISC-V, или хартов посредством многопоточности.

Руководство по набору команд RISC-V
Том I: непривилегированный документ ISA, версия 20191214-draft
Стр. 2

person johan    schedule 13.04.2020

Проще говоря, hart - это контекст выполнения RISC-V, который содержит полный набор архитектурных регистров RISC-V и выполняет свою программу независимо от других harts в системе RISC-V. Что составляет систему RISC-V, зависит от среды выполнения программного обеспечения, но для стандартных программ пользовательского уровня это означает видимые пользователю харты и память (то есть многопоточный пользовательский процесс Unix). Выполнить независимо означает, что каждый харт в конечном итоге получит и выполнит свою следующую инструкцию в программном порядке независимо от активности других хартов (по крайней мере, на уровне пользователя).

Это самый близкий ответ, который я когда-либо получал, потратив много времени на то, чтобы понять, что такое «харт» https://groups.google.com/a/groups.riscv.org/forum/#!topic/sw-dev/QKjUDjz_vKo

person sniper    schedule 24.07.2020
comment
Вы имеете в виду, что харт может быть иллюзией ядра или чего-то еще, и запускать только потоки программного обеспечения пользовательского пространства? Мне сложно представить что-либо, что можно было бы правильно назвать аппаратным потоком, который не выглядел (для программного обеспечения ядра) как полноценный ЦП, поэтому, например, код на двух отдельных хартах может одновременно запускать код ядра. Я мог видеть, что только один харт на физическом ядре действительно обрабатывает внешние прерывания, хотя для вытесняющей многозадачности вам понадобится каждый харт, чтобы иметь возможность получать прерывание от таймера или что-то в этом роде. - person Peter Cordes; 24.07.2020
comment
Мне кажется, что Харт просто пытается уловить все возможные SMT и связанные с ним вещи (en.wikipedia.org/wiki / Simplicity_multithreading), та же концепция, которую мы описываем как логическое ядро ​​на других ISA. - person Peter Cordes; 24.07.2020
comment
@PeterCordes RISC-V определяет отдельное адресное пространство 4096 для адресного пространства регистров состояния управления CSR, связанных с каждым hart. Кроме того, эти CSR НЕ отображаются в памяти, поэтому они не проходят через LD / STORE, а не читаются / модифицируются атомарно с помощью машинного кода. Итак, hart и thread в программном обеспечении полностью различаются, когда вы думаете о переключении контекста, а harts не могут работать одновременно. Глава 9 в непривилегированной спецификации проливает свет на это. Это не обычное оборудование или программное обеспечение, а особая порода. - person sniper; 04.08.2020
comment
Это просто контекст выполнения RISC-V. - person sniper; 04.08.2020