1.一种流水线可逆CPU设计与仿真系统,其特征在于,所述流水线可逆CPU采用多种可逆指令进行操作,且所述可逆指令采用多条并行流水线来执行,所述流水线包括多个执行阶段;
所述流水线可逆CPU包括:
运算器,用于进行算术运算;
寄存器组,用于对计算过程中的中间数据进行存储;
数据存储器,用于对数据进行存储;
指令存储器,用于对所述可逆指令进行存储;
控制逻辑器,用于根据操作码生成操作信号;
逆控制逻辑器,用于根据操作信号还原操作码;
DIR方向寄存器,用于控制执行方向;
PC程序计数器,用于指向当前所述可逆指令;
PPC先前程序计数器,用于指向当前所述可逆指令的前一条所述可逆指令;
BR跳转寄存器,用于实现指令的跳转。
2.根据权利要求1所述的流水线可逆CPU设计与仿真系统,其特征在于,所述流水线包括七个执行阶段,依次为:取指令阶段、指令译码阶段、读寄存器阶段、执行运算/访问存储器阶段、写寄存器阶段、指令编码阶段以及返回指令阶段。
3.根据权利要求2所述的流水线可逆CPU设计与仿真系统,其特征在于,所述流水线的执行阶段具有对称性。
4.根据权利要求3所述的流水线可逆CPU设计与仿真系统,其特征在于,所述流水线可逆CPU包括:IF/ID段寄存器,用于保存所述取指令阶段与所述指令译码阶段之间的数据;
ID/RR段寄存器,用于保存所述指令译码阶段与所述读寄存器阶段之间的数据;
RR/EXE段寄存器,用于保存所述读寄存器阶段与所述执行运算/访问存储器阶段之间的数据;
EXE/WR段寄存器,用于保存所述执行运算/访问存储器阶段与所述写寄存器阶段之间的数据;
WR/IE段寄存器,用于保存所述写寄存器阶段与所述指令编码阶段之间的数据;
IE/IR段寄存器,用于保存所述指令编码阶段与所述返回指令阶段之间的数据。
5.根据权利要求4所述的流水线可逆CPU设计与仿真系统,其特征在于,所述流水线可逆CPU还包括数据冒险检测转换单元。
6.根据权利要求5所述的流水线可逆CPU设计与仿真系统,其特征在于,所述数据冒险检测转换单元包括:Read-Read转发器,用于测试所述ID/RR段寄存器中的寄存器ID字段和所述RR/EXE的源操作数寄存器ID字段是否有交集;
如有交集,则选择转发自所述RR/EXE段寄存器的相应数据作为该所述可逆指令执行阶段的操作数;
如没有交集,则选择来自于所述寄存器组的相应数据作为该所述可逆指令执行阶段的操作数;
Write-Read转发器,判断所述RR/EXE段寄存器中的任一操作数和所述EXE/WR段寄存器中的目的操作数是否出自相同寄存器;
若出自相同的寄存器,则将存储于所述EXE/WR段寄存器中的相应数据转发至所述运算器的输入端;
若不是出自相同的寄存器,则将存储于所述RR/EXE段寄存器中的相应数据转发至所述运算器的输入端。