RISC-V架构CPU的微架构设计分析

RISC-V架构CPU的微架构设计分析

文章图片

RISC-V架构CPU的微架构设计分析

文章图片

RISC-V架构CPU的微架构设计分析

【RISC-V架构CPU的微架构设计分析】
RISC-V架构CPU的先进微架构设计简介RISC-V架构是一种开源的指令集架构 , 近年来发展迅猛 。 尽管因为生问题 , RISC-V应用方向主要是单片机级的 , 高端应用方向发展速度缓慢 , 但是依然有不少公司推出了基于RISC-V指令集的高端应用场景的处理器 。 例如 , 跃昉科技、赛昉科技和阿里平头哥相继发布CPU主频超过1.5GHz的基于RISC-V的高端应用处理器 , 实现了RISC-V从IoT领域向边缘计算领域的跨越。
本文概述了具有代表性的RISC-V公司推出的先进CPU微架构 , 其主要市场目标为服务器和PC端等高端应用 。 有分析认为 , 相较于ARMRISC-V阵营CPU微架构设计能力尚不足2年 。
SIFIVE P870P870是当前SiFive公司推出的最先进的RV处理器 , 遵循RVA23 profile 。 6 decode乱序处理器 , 具有128b向量长度 , Hypervisor 拓展 , Vector Crypto , IOMMU/AIA等特性 。 微架构核心参数对标ARM公司的N2处理器(服务器端) 。 相比较于ARM , SIFIVE的CPU流水线做的相对较深 , 这对预测器考验比较大 , 目前业内最先进的预测器提升比较缓慢了 , 更深的流水线对预测错误更加敏感 , 这几年ARM有些系列的流水线深度基本维持在较低的状态(ARM N2流水线从N1的11降到10 , 频率依然保持较高的水准) , 从预测器相对瓶颈角度考虑 , 降低流水线深度是不错的提升方式 , 这对各模块的并行设计以及解耦设计要求比较高 。
对于RISC而言 , 亦安个人觉得合理的微架构设计将流水线维持在较低水平是不错的微架构方案 。 并且要在较低流水线下保持时序上的高水平 。


整体的微架构参数 , 常规参数基本和arm的N2/V2系列对标:IFUP870是一款性能卓越的处理器 , 拥有32个一级指令缓存(ITLB)、64KB的高速指令缓存(ICache)和64条指令的随机访问存储器(RAS) 。 此外 , 它还配备了16K的TAGE预测器和2.5K的间接预测器 , 以提高处理效率 。 与ARM N2相比 , P870在单周期处理分支数方面略逊一筹 , N2支持2个分支预测 , 而P870目前尚无相关描述 , 预计只能预测一个分支 。 需要注意的是 , N2还具备MOp Cache功能 。
DecodeP870处理器拥有6个decode宽度的解码器 , 与ARM的V2架构保持一致 , 且超过了N2处理器的5个decode宽度 。 它支持32位指令和压缩指令 , 具有228条整数运算、240条浮点运算、128条向量运算以及6个宽度的Dispatch调度单元 。 这些参数与ARM的N2/V2系列相差无几 , 展现了P870的强大性能 。
Execute\"96 int型数组 , 4 ALU操作 , 1 分支执行单元 。 这些元素暗示着P870更可能是多周期的2分支处理器 , 而非单周期设计 。 \"
LSU\"64KB DeCache2 LS pipesLoad/Store buffer均配置为48 entries确保高效的数据传输 。 同时 , 64entries的DTLB设计保证了高性能的指令调度 。 \"
总结当前 , P870与ARM参数差距主要体现在IFU侧的能力 , 例如单周期处理的分支数量 。 由于细节性能难以评估 , 网络上关于P870的详细参数并不多 。 然而 , 根据N2流水线深度为10的设计 , ARM在微架构解耦性和并行性方面仍领先 。
尽管在参数上与ARM前一代旗舰相当 , 但考虑到各种因素 , 2.5年的微架构设计差距仍然被认为是合理的 。
Veyron V1简介这款处理器专为服务器、汽车等高端领域设计 , 具备RISC-V的高端特性 , 如IOMMU/AIA、Hypervisor拓展以及支持48VA-52PA 。 其流水线深度较大 , 设计独特 , 无需分模块描述 。

微架构
汇总一下比较特色的微架构设计 , 64KB的Dcache为VIVT结构 。 512KB的L1/L2的指令Cache , 这里从官方描述来看 , 不是L1+L2 ICache有512KB , 而是就一块超大的ICache 。 512 KB Instruction L2 with power-efficient L0 cache/loop buffer , 官方PPT又说有个L0的Cache , 这里应该就是个buffer 。 至少2个cycle 的Icache和ITLB的访问延迟 , 在overlap的情况下 。
也有个单独的512KB的Dcache , 这里在L2区分指令和数据还是比较有意思的 , 并且大小设置的还一致 。 官方还表示这种设计有利于优化延迟和功耗 。
L2 TLB区分指令与数据 , 其大小约为3K相较于P870有了显著提升 。 作为单级ITLB它与常规的2级TLB有所不同 。 这主要归功于大容量的ICache由于其延迟较高 , 因此无需DFF单周期出结果 。
总结指令与数据分离是微架构的关键 , ARM架构的优势在于巨大的指令缓存和低延迟 。 然而 , 这也导致流水线深度增加 , 可能带来一些负面影响 。 其他特色设计尚无详细细节来解释其潜在的负面效果 。
-对此 , 您有什么看法见解?-
-欢迎在评论区留言探讨和分享 。 -

    推荐阅读