玄铁C910简介
玄铁C910架构
??在性能方面,玄铁910支持16核,单核性能的CoreMark跑分达到 7.1 Coremark/MHz(O3),Dhrystone跑分在 5.8 DMIPS/MHZ(O2),主频达到 2.5GHz,比目前业界最好的RISC-V处理器性能高40%以上(平头哥宣称),其性能相当于ARM Cortex-A72、Intel i7-4700HQ。
特点
- 同构多核架构,支持 1~4 个C910 核心可配置;
- 支持AXI4.0 Master 接口,128 比特的总线宽度;
- 支持1 个AXI 4.0 的 Slave 接口可配置,128 比特的总线宽度;
- 两级高缓结构,哈佛结构一级高缓和共享的二级高缓;
- 一级缓存支持 MESI 2 的一致性协议,二级缓存支持 MOESI 3 的一致性协议;
- 二级高缓支持16 路组相联,可配置的 ECC 或奇偶校验机制;
- 二级高缓大小可配置,支持 128KB、256KB、512KB 和 1MB、2MB、4MB、8MB,缓存行 SIZE 为 64B;
- 支持私有中断控制器 CLINT 和公有中断控制器 PLIC;
- 支持计时器功能;
- 支持自定义且接口兼容RISC-V 的多核调试框架;
特色技术
-
混合分支处理
包含分支方向、分支地址、函数返回地址以及间接跳转地址预测的混合处理技术,提升取指效率。 -
数据预取
多通道、多模式数据预取技术,大幅提升数据访问带宽 -
快速内存加载
提前获取内存访问数据,降低加载到应用(load-to-use)延迟 -
存储投机访问预测
预测内存乱序投机访问,提升执行效率
C910MP系统结构
??C910 支持 RV 三种特权模式:机器模式、超级用户模式和用户模式。处理器复位后在机器模式下执行程序,三种运行模式对应不同的操作权限,区别主要体现在以下几个方面:
- 对寄存器的访问;
- 特权指令的使用;
- 对内存空间的访问。
- 用户模式权限最低。
??普通用户程序只允许访问指定给普通用户模式的寄存器。避免了普通用户程序接触特权信息,而操作系统通过协调普通用户程序的行为来为普通用户程序提供管理和服务。
- 超级用户模式权限比用户模式高,但比机器模式低。
??超级用户模式下运行的程序不可以使用机器模式的控制寄存器,并且受到PMP 的限制。使用基于页面的虚拟内存,这个功能构成了超级用户模式的核心。
- 机器模式拥有最高的权限。
??在机器模式下运行的程序对内存、I/O 和一些对于启动和配置系统来说必要的底层功能有着完全的使用权。默认情况下(异常中断没有被降级处理),任何模式下发生的异常和中断都会切换到机器模式进行响应。
??大多数指令在三种模式下都能执行,但是一些对系统产生重大影响的特权指令只能工作在超级用户模式或机器模式下执行,例如多核同步指令 SYNC。
通用寄存器
??C910 拥有32 个64 位的通用寄存器,功能定义与 RISC-V 一致,如下表所示。
寄存器 | ABI名称 | 描述 |
---|---|---|
x0 | zero | 硬件绑0 |
x1 | ra | 返回地址 |
x2 | sp | 堆栈指针 |
x3 | gp | 全局指针 |
x4 | tp | 线程指针 |
x5 | t0 | 临时/备用链接寄存器 |
x6-7 | t1-2 | 临时寄存器 |
x8 | s0/fp | 保留寄存器/帧指针 |
x9 | s1 | 保留寄存器 |
x10-11 | a0-1 | 函数参数/返回值 |
x12-17 | tp | 函数参数 |
x18-27 | t0 | 保留寄存器 |
x28-31 | t0 | 临时寄存器 |
通用寄存器用于保存指令操作数、指令执行结果以及地址信息。
浮点寄存器
??C910 浮点单元除支持标准RV64FD 指令集外,扩展支持了浮点半精度计算,拥有32 个独立的64 位浮点寄存器,可在普通用户模式、超级用户模式和机器模式下被访问。
寄存器 | ABI名称 | 描述 |
---|---|---|
f0-7 | ft0-7 | 浮点临时寄存器 |
f8-7 | fs0-1 | 浮点保留寄存器 |
f10-11 | fa0-1 | 浮点参数/返回值 |
f12-17 | fa2-7 | 浮点参数 |
f18-27 | fs2-11 | 浮点保留寄存器 |
f28-31 | ft8-11 | 浮点临时寄存器 |
矢量寄存器
??当配置矢量执行单元时,C910 拥有 32 个独立的128 位矢量寄存器,可在普通用户模式、超级用户模式和机器模式
下被访问。矢量寄存器通过矢量传送指令实现与通用寄存器/浮点寄存器的数据交换。
?
??
??
参考资料
《玄铁C910用户手册_v13》
-
超标量(superscalar)是指在CPU中有一条以上的流水线,并且每时钟周期内可以完成一条以上的指令,这种设计就叫超标量技术。 其实质是以空间换取时间。 ??
-
MESI 协议是一个基于失效的缓存一致性协议,是支持写回(write-back)缓存的最常用协议。也称作伊利诺伊协议 (Illinois protocol,因为是在伊利诺伊大学厄巴纳-香槟分校被发明的[1])。与写穿(write through)缓存相比,回写缓冲能节约大量带宽。总是有“脏”(dirty)状态表示缓存中的数据与主存中不同。MESI协议要求在缓存不命中(miss)且数据块在另一个缓存时,允许缓存到缓存的数据复制。与MSI协议相比,MESI协议减少了主存的事务数量。这极大改善了性能。 ?? ??
-
MOESI 协议引入了一个O(Owned)状态,并在MESI协议的基础上,进行了重新定义了S状态,而E、M和I状态和MESI协议的对应状态相同。同时操作相对于MESI多了几种(MESI操作有4种,本地读写、远程读写),MOESI操作有8种(数据拷贝读写、本地副本读写、本地副本读写无数据、从远程CPU获取副本读写)。 ??
-
SRT算法是以三个发明者Sweeney、Robertson和Tocher名字首字母命名的。SRT算法通常被称为数字循环(Digit Recurrence)算法。 ??
-
NA4(Naturally aligned four-byte region)模式指内存区间大小为 4 字节的匹配模式 ??
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!