【问题标题】:RISC-V spec references the word 'hart' - what does 'hart' mean?RISC-V 规范引用了“hart”这个词——“hart”是什么意思?
【发布时间】:2017-07-29 08:17:06
【问题描述】:

我在RISC-V 2.1 spec 的第 35 页找到了对 hart 的引用。但是,我在此文档中找不到 hart 的定义。 hart 是指硬件线程还是更险恶的东西?

【问题讨论】:

  • 是的,它是“硬件线程”——例如,参见 en.wikipedia.org/wiki/RISC-V
  • 啊,是的......'hart' 在其他 RiscV 规范(riscv-privileged -v1.9.1)中有详细说明。当涉及到“hart”时,用户级别规范(第 1 卷)可以使用特权规范(第 II 卷)的属性。也许最好从第二卷开始阅读这些规范?谢谢。

标签: cpu-architecture riscv hyperthreading cpu-cores


【解决方案1】:

是的,hart 是一个硬件线程。

【讨论】:

  • 非常感谢,很难找到。
【解决方案2】:

一个 RISC-V 兼容内核可能通过多线程支持多个 RISC-V 兼容硬件线程或 harts

RISC-V 指令集手册
第 I 卷:非特权 ISA 文档版本 20191214-draft
第 2 页

【讨论】:

    【解决方案3】:

    在简单的语言中,hart 是一个 RISC-V 执行上下文,它包含 一套完整的 RISC-V 架构寄存器,并执行其 独立于 RISC-V 系统中的其他 hart 进行编程。什么 构成一个“RISC-V系统”取决于软件的执行 环境,但对于标准用户级程序,这意味着 用户可见的 harts 和内存(即,多线程 Unix 用户 过程)。 “独立执行”意味着每只小鹿都会 最终按程序顺序获取并执行其下一条指令 无论其他 harts 的活动如何(至少在用户级别)。

    这是我花了很多时间了解“hart”是什么后得到的最接近的答案https://groups.google.com/a/groups.riscv.org/forum/#!topic/sw-dev/QKjUDjz_vKo

    【讨论】:

    • 您是否暗示 hart 可能是内核的错觉,或者其他什么,并且只运行用户空间软件线程?我很难想象任何可以正确称为 hardware 线程的东西(对于内核软件)看起来不像一个完整的 CPU,例如两个独立的 hart 上的代码可以同时运行内核代码。我可以看到物理内核上只有一个 hart 实际处理外部中断,尽管对于抢先式多任务处理,您需要每个 hart 都能够接收定时器中断或其他东西。
    • 在我看来,“hart”只是试图捕捉所有可能的 SMT 和相关事物 (en.wikipedia.org/wiki/Simultaneous_multithreading),我们在其他 ISA 上将其描述为“逻辑核心”的概念相同。跨度>
    • @PeterCordes RISC-V 为与每个 hart 关联的 CSR 的控制状态寄存器地址空间定义了一个单独的地址空间 4096。此外,这些 CSR 不是内存映射的,因此它不会通过 LD/STORE 而是通过机器代码原子读取/修改。因此,当您考虑上下文切换时,软件中的 hart 和 thread 完全不同,并且 hart 不能同时运行。非特权规范中的第 9 章对此进行了说明。它既不是传统的硬件也不是软件线程,而是一个特殊的品种。
    • 它只是一个 RISC-V 执行上下文。
    猜你喜欢
    • 1970-01-01
    • 2018-10-29
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 2014-12-10
    • 1970-01-01
    相关资源
    最近更新 更多