简介:
mcycle 是 RISC-V 架构中定义的一个 控制与状态寄存器 (CSR),用于记录自处理器启动以来所经历的 CPU 时钟周期数。它是性能分析中非常重要的一个寄存器,通常用于测量代码执行的时间或性能。我们可以利用该寄存器来评估某一段代码的执行时间。
本次试验使用GDVF103 基于芯来科技(Bumblebee RISC-V处理器)硬件平台进行验证,以下是芯片手册中对mcycle 寄存器的说明。
除了上述的计数器寄存器外,芯片上还涉及了对应功能的开关使能寄存器。
该寄存器为芯片自定义CSR寄存器,非RISC-V 标准定义的CSR寄存器
根据寄存器描述及CSR 寄存器访问index 编写如下测试代码打印输出cpu cecyle 和 运行指令计数器状态。
unsigned int mcountinhibit(char argc,char ** argv) { uint32_t countinhibit = 0; countinhibit = read_csr(0X320); //读取 mcycle 寄存器 printf("IR %s\n",((countinhibit & 0x01U << 2U) ? "OFF" : "ON")); printf("CY %s\n",((countinhibit & 0x01U << 0U) ? "OFF" : "ON")); return 0; } LTSH_FUNCTION_EXPORT(mcountinhibit,"show mcountinhibit register");
运行结果如下打印输出发现默认状态时该功能是关闭状态。