Cycle Accurate Simulator
硬件架构
graph TD A[Processor] --> B[Top Core] B --> C[Big Core] B --> D[SPM Controller] C --> E[Frontend] C --> F[Backend] E --> G[指令解码/分发] F --> H[执行单元阵列] H --> I[标量执行单元] H --> J[向量执行单元] H --> K[特殊功能单元]graph TD A[Processor] --> B[Top Core] B --> C[Big Core] B --> D[SPM Controller] C --> E[Frontend] C --> F[Backend] E --> G[指令解码/分发] F --> H[执行单元阵列] H --> I[标量执行单元] H --> J[向量执行单元] H --> K[特殊功能单元]
模块 | 功能描述 | 适用场景 |
---|---|---|
Frontend | 指令获取、解码、分发(支持VLIW超长指令字) | 多发射/多流水线架构(如VLIW) |
Backend | 执行单元阵列管理,包含标量/向量/特殊功能单元 | 简单顺序或单发射流水线 |
SPM Controller | 共享内存(ScratchPad Memory)管理,支持多端口并行访问 | |
DMA Engine | 高速数据传输(DRAM <-> SPM) | |
FSM & Ctrl | 状态机控制模块,处理异常、中断和调试接口 |
指令集
指令的排布需要考虑流水线的模式,RAW 等冲突是可能存在的,例如 SMOVI
指令后可能需要跟一个 SNOP 以等待写回阶段的完成,后面的连续指令才能正常访问寄存器的值