Skip to content

Xiangshan request

Jiawei edited this page Apr 16, 2022 · 2 revisions

riscv-gcc中微架构Microarchitectures记录:

  1. riscv-cores.def

    该文件中通过RISCV_CORE(CORE_NAME, ARCH, MICRO_ARCH, TUNE_INFO)接口来定义CPU架构

CORE_NAME为核心名称,ARCH定义为该CPU支持的RISC-V扩展,MICRO_ARCH是决策调度核的名称,TUNE_INFO定义了cost_model的细节(转3)

这里我们需要知道香山处理器的核心名称,以及支持的RISC-V扩展,还有香山处理器的cost_model

  1. riscv-opts.h

    该文件中riscv_microarchitecture_type定义了微架构的类型,目前仅包含generic与sifive_7两类

  2. riscv.cc

    该文件中riscv_tune_param结构体用于定义特定CPU的cost_model,用来进行流水线优化,该结构需要定义fp_add,fp_mul,fp_div,int_mul,int_div,issue_rate,branch_cost,memory_cost,slow_unaligned_access九种类型的cost.

将定义好的cost_model保存在riscv_tune_info结构中

  1. riscv.h

    该文件定义了-mtune操作,对riscv_microarchitecture进行了设置,针对不同架构可以进行特定的优化

  2. riscv.md

    该文件定义了需要处理tune的微架构,具体实现在对应的架构名.md中,例如sifive-7.md

  3. sifive-7.md

    借鉴参考SIFIVE-7定义了两级流水线,对定义的cost_mode操作进行具体的实现

Clone this wiki locally