自动窄指令集设计框架与支持RTOS的硬件/软件协同模拟器
自动窄指令集设计框架
指令集规模
指令集(IS)的规模取决于所选指令的操作数形式。如果所选指令都是特定操作数形式,指令集的指令数量会有所不同。例如,如果所选指令都是“3 regs, in r0 - r7 / r8 - r15 / r16 - r23 / r24 - r31”操作数形式,IS 总共有 128 条指令;若为其他情况,IS 可能共有 16 条指令,混合 IS 的规模则介于这两个数字之间。
指令集描述模板(ISDT)
- 生成形式 :分析器以指令集描述模板(ISDT)的形式生成窄 IS 候选。在工具链的后处理阶段(即链接时优化阶段)进行混合代码生成,后处理工具的中间语言是一种低级语言,指定操作码、使用的寄存器、立即数等。
- 模板结构 :ISDT 旨在匹配其中间语言,具有多个描述操作码和操作数要求的字段。以下是 UniCore 的 ISDT 结构体:
struct inst_template
{
T_OPCODE opcode;
T_INT opmask_16;
T_ARGFORM argform;
T_CONDITION cond;
T_INT reg_dest_base;
T_INT reg_dest_mask;
T_INT reg_dest_shift;
T_INT reg_source1_base;
T_INT reg