流水cpu设计计划.doc
文本预览下载声明
CPU总体逻辑结构图
二、CPU各模块电原理图
取指部分(IF)
模块功能:给出内存地址,读取指令并送入指令寄存器,为下一级准备数据,并更新PC。
输入端:Z、C 状态寄存器
TempZ、TempC 临时状态位,旁路处理
e_setFlag 状态寄存器写使能
PCPlusOffset PC加偏移量
PCStall 为‘1’时,PC保持不变
IFFlush 为‘1’时,将清空IR
OuterDB 内存读出的数据
输出端:PC_addr PC作为内存地址输出,用于下一节拍的取指
d_PCInc1 PC+1
d_IR 指令寄存器输出
译码部分(ID)
模块功能:读取寄存器值和指令译码。采取一次译码,逐级传递的方式,译出后几级流水所需的控制信号和数据(如立即数等),在每次时钟上升沿到来时送入下一级。
输入端:w_WBData 写回的数据
w_destReg 目标寄存器标志
w_wRegEn 寄存器写使能端
输出端:e_RAOut,e_RBOut 寄存器A,B输出
e_IMM 立即数输出
e_ALUSrc 运算器选源
e_ALUOpr 运算器操作
e_SetFlag 状态寄存器写使能
e_wRegEn 寄存器写使能
e_MemToReg 内存写入寄存器使能
e_wrMem 为00时,写,为 01时读,为 1-时,什么也不做
执行部分(EX)
模块功能:完成算术逻辑运算、计算有效地址和提供数据通道
输入端: forwardA,forwardB 傍路选择
e_ALUOut ALU的输出
w_WBdata 写回的数据
输出端: m_flag 内存标志
m_wRegEn 内存写回寄存器使能端
访存部分(MA)
模块功能:选择地址线的数据来源和数据线的流向。
输入端: PC PC输入
输出端: wr 内存读写控制 1:读 , 0:写
addr 输出到内存地址线
回写部分(WB)
功能:选择回写数据源和根据写使能信号将数据回写到通用寄存器组。
冲突检测部分(HD)
模块功能:检测结构相关
前向部分(FU)
模块功能:检测数据相关
三、指令系统
ADDI DR,IMM(立即数和寄存器相加),
SUB DR,IMM(寄存器和立即数相减),
STORE2 DR,OFFSET,SR (SR([DR+OFFSET]) ,
LOAD2 DR,SR,OFFSET ([SR+OFFSET](DR)
汇编语句 操作码 功能描述 指令类型 ADD DR,SRDR+SR(DR
算术逻辑指令 SUB DR,SRDR-SR(DR DEC DRDR-1(DR INC DRDR+1(DR CMP DR,SRDR-SR 比较 AND DR,SRDR and SR(DR 逻辑与 OR DR,SRDR or SR(DR 逻辑或 XOR DR,SRDR xor SR ( DR 异或 TEST DR,SRDR and SR, 测试 SHL DR逻辑左移,最低位补0,最高位移入C SHR DR 逻辑右移,最高位补0,最低位移入C SAR DR算术右移,最高位右移,同时再用自身的值填入 MOV DR,SRSR ( DR 数据传送指令 LOAD DR,SR[SR]( DR STORE DR,SR SR ( [DR]
显示全部