forked from riscvarchive/riscv-gcc
-
Notifications
You must be signed in to change notification settings - Fork 3
Xiangshan request
Jiawei edited this page Apr 16, 2022
·
2 revisions
riscv-gcc中微架构Microarchitectures记录:
-
该文件中通过
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
-
该文件中
riscv_microarchitecture_type
定义了微架构的类型,目前仅包含generic与sifive_7两类 -
该文件中
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
结构中
-
该文件定义了-mtune操作,对
riscv_microarchitecture
进行了设置,针对不同架构可以进行特定的优化 -
该文件定义了需要处理tune的微架构,具体实现在对应的
架构名.md
中,例如sifive-7.md -
借鉴参考SIFIVE-7定义了两级流水线,对定义的cost_mode操作进行具体的实现