E902结构框图
E902 处理器采用2 级流水线结构:取指和执行。指令取指阶段主要负责从内存中获取指令;指令执行阶段主要负责指令译码、执行和回写。
物理内存保护单元(Physical Memory Protection,PMP)负责物理地址的权限检查实现内存的保护功能,权限可划分为:不可读写/只读/可读写,可执行/不可执行。
硬件辅助调试单元(Haredware Assistant Debug,HAD)支持各种调试方式,包括软件断点、内存断点、单步和多步的指令跟踪等多种方式,可在线调试CPU、通用寄存器(GPR)、控制寄存器(CSR)和内存。
E902 设计有片上紧耦合的IP 接口和多条AHB-Lite 的总线接口。片上紧耦合的IP 接口集成处理器中断控制器(CLIC),支持中断嵌套以及处理器核局部中断(CLINT)。opene902 提供的外部中断源数量为64个,中断优先级为8 级可配。
工作模式以及寄存器
E902有用户和机器两种模式,当MXSTATUS寄存器内PM位置2’b11时,处理器在机器模式下执行程序,两种编程模式对应不同的操作权限,区别主要体现在以下几个方面:
1. 对控制寄存器的访问;
2. 特权指令的使用;
3. 对紧耦合IP 的控制寄存器访问。
普通用户模式只允许访问通用寄存器;机器模式可以访问所有通用寄存器、控制寄存器和所有紧耦合IP的控制寄存器。
普通用户模式可以使用绝大多数除了对系统产生重大影响的特权指令如WFI,MRET, CSR 和平头哥扩展的CACHE 指令之外的指令。机器模式下可以使用E902 支持的所有指令。普通用户模式通过使用ECALL指令进入机器模式。
机器模式主要作用如下:
-
启动和初始化:机器模式是处理器上电后的初始状态,它负责初始化处理器的状态、设置系统寄存器和相关硬件,并开始执行启动代码。在这个阶段,处理器需要完成一系列的初始化任务,准备好切换到更高特权级别的模式。
-
异常和中断处理:机器模式负责处理系统中发生的异常和中断事件。它会根据异常或中断的类型,执行相应的处理程序,并保存和恢复上下文信息。例如,当发生外部中断时,机器模式会调用相应的中断处理程序来处理中断,并在必要时切换到更高特权级别的模式。
-
操作系统启动:在启动过程中,机器模式会负责加载和启动操作系统内核。它会加载操作系统内核的代码和数据到内存中,并开始执行操作系统的初始化代码。一旦操作系统启动完成,机器模式可能会将控制权转移给操作系统内核,让操作系统接管系统的管理和调度。
-
特权级别切换:机器模式还负责管理处理器的特权级别。它可以通过改变特权级别来控制处理器对不同类型指令和资源的访问权限。例如,机器模式可以切换到更高特权级别的模式以执行特权指令,或者切换到更低特权级别的模式以执行普通用户程序。
总的来说,机器模式是处理器运行时的最底层模式,它负责处理处理器的初始化、异常和中断、操作系统启动以及特权级别的切换等任务。机器模式的正确实现和运行对于整个系统的稳定性和性能至关重要。
数据格式
寄存器内部的数值存在有符号和无符号的区别。其格式均为从右至左表示逻辑低位到高位的排布.
存储器数据有大小端的区分,E902 仅支持小端模式,即数据高位存放至物理内存的高地址。
内部模块梳理
-
AHB(ahb) 模块:
- AHB(Advanced High-performance Bus)模块是一种高性能总线协议,用于连接高性能模块,如存储器、外设和处理器核心等。
- AHB 模块负责处理高带宽的数据传输,支持高速数据访问和传输,适用于对性能有较高要求的组件。
- 它提供了诸如总线分级、总线请求、总线使用权授予等功能,以实现高效的总线访问和通信。
-
AHB_FIFO模块:
-
数据缓冲:AHB FIFO 模块可以暂存来自处理器核心或外设的数据,以便在需要时进行
-